• 学习ftp


    一、FTP介绍

    1.FTP(File Transfer Protocol)是一种应用广泛且古老的互联网文件传输协议。
    2.主要应用于互联网中文件的双向传输(上传/下载)、文件共享
    3.跨平台 Linux、Windows。
    4.FTP是C/S架构,拥有一个客户端和服务端,使用TCP协议作为底层传输协议,提供可靠的数据传输。
    5.FTP的默认端口21(命令端口),20(数据端口,主动模式下)默认被动模式下
    FTP程序vsftp

    二、两种模式(主动模式和被动模式)

    ★主动模式
    在这里插入图片描述
    在这里插入图片描述
    ★被动模式
    在这里插入图片描述
    在这里插入图片描述

    三、FTP配置文件详解

    /usr/lib/systemd/system/vsftpd.service #启动脚本
    /etc/vsftpd #配置文件的目录
    /etc/vsftpd/ftpusers #用户列表文件,黑名单
    /etc/vsftpd/user_list #用户列表文件,可黑可白(默认是黑名单)
    /etc/vsftpd/vsftpd.conf #配置文件(主配置文件)
    /usr/sbin/vsftpd #程序本身(二进制的命令)
    /var/ftp #匿名用户的默认数据根目录
    /var/ftp/pub #匿名用户的扩展数据目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    [root@localhost vsftpd]# grep -v ^# /etc/vsftpd/vsftpd.conf 
    anonymous_enable=YES #支持匿名用户访问
    local_enable=YES #支持非匿名用户,普通账号登录,默认进入到自己的家目录
    write_enable=YES #写总开关
    local_umask=022 #反掩码 file:644,dir:755
    dirmessage_enable=YES #启用消息功能
    xferlog_enable=YES #开启或关闭xferlog日志
    connect_from_port_20=YES #支持主动模式
    xferlog_std_format=YES #xferlog的日志格式
    listen=NO #ftp服务独立模式下的监听
    listen_ipv6=YES
    
    pam_service_name=vsftpd #指定认证文件
    userlist_enable=YES #启用用户列表
    tcp_wrappers=YES #支持tcp_wrappers功能(ftp限速操作)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    四、实际场景举例

    禁止匿名登录,创建一个kefu用户专用于登录ftp,登录以后不进入家目录,进入/data/ftp目录并且不可以切换目录。

    [root@localhost ~]# useradd kefu
    [root@localhost ~]# echo 123456 |passwd --stdin kefu
    [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
    anonymous_enable=NO #禁止匿名登录
    local_enable=YES
    local_root=/data/ftp #登录以后的默认目录
    chroot_local_user=YES #锁定目录,不让切换
    allow_writeable_chroot=YES
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    无法上传,赋予权限

    setfacl -R -m u:kefu:rwx /data/ftp
    
    • 1

    禁锢目录细节
    在这里插入图片描述

    五、黑白名单

    ftpusers 黑名单文件。
    user_list默认是黑名单,user_list从黑名单变成白名单需要在vsftpd.conf配置文件中添加这一行。

    userlist_deny=NO
    
    • 1

    六、网络限制

    在这里插入图片描述
    查看知否支持tcp_wrappers两种查询方式

    1. /configure --enable-libwrap (如果是源码安装)
    2. ldd /usr/sbin/vsftpd |grep libwrap* (如果是rpm安装)

    限制FTP流量

    [root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
    local_max_rate=0
    0表示不限速
    local_max_rate=数字+字节
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    Mysql时间操作
    技术分享 | 接口自动化中如何完成接口加密与解密?
    Docker 安装 (完整详细版)
    .NET 团队公布.NET 9开发目标 并发布.NET9的首个预览版
    将大量文件的拓展名中大写字母改为小写:Python实现
    聊聊Mybatis的插件接口之责任链模式
    【论文阅读】Anchor-Free Person Search
    手把手基于YOLOv5定制实现FacePose之《YOLO结构解读、YOLO数据格式转换、YOLO过程修改》
    Depth from Motion:探索突破纯视觉 3D 检测瓶颈
    实操演练 | 批量插入的三种方式
  • 原文地址:https://blog.csdn.net/qq_48440248/article/details/133861583