ftp工作模式:主动(FTP服务器主动向客户端发起连接请求)、被动(默认方式)

vsftpd三种认证模式:匿名模式、本地用户模式、虚拟用户模式(最安全)

 

1、安装vsftpd并设置开启启动
             yum -y install vsftpd ftp
             systemctl enable vsftpd
     2、编辑虚拟数据库文件
        vi /etc/vsftpd/ftp.list
            文件内容:
            奇数行为用户名,偶数行为密码
            如xiaoming
                123
                xiaohong
                456
     3、将虚拟用户数据库文件转换为认证模块识别的数据文件
            db_load -T -t hash -f /etc/vsftpd/ftp.list /etc/vsftpd/ftp.db
   4、给虚拟用户数据库文件和认证模块识别的数据文件指定权限
            chmod 600 /etc/vsftpd/ftp.*(此处的ftp与步骤2中的ftp.list对应)
     5、创建一个目录作为上传数据目录 
        mkdir /data/
     6、创建用户并指定家目录
        useradd -d /data/ -s /sbin/nologin ftpuser
     7、查看是否创建系统用户并指定家目录为/data/ 
        cat /etc/passwd
     8、给这个用户家目录设置权限 
        chmod 755 /data/
     9、创建每个虚拟用户的家目录 
        mkdir /data/file_1
        mkdir /data/file_2
     10、递归更改用户家目录属性 
        chown -R ftpuser:ftpuser /data/(此处的ftpuser与步骤6的ftpuser对应)
     11、备份pam认证模块配置文件 
        cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.pam
     12、配置pam认证模块文件 
        vi /etc/pam.d/vsftpd
        文件内容:(下面的ftp与步骤2中ftp.list对应)
                auth       required     pam_userdb.so    db=/etc/vsftpd/ftp
                account    required     pam_userdb.so    db=/etc/vsftpd/ftp
     13、备份vsftpd配置文件 
        cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup
     14、编辑vsftpd配置文件 
        vi /etc/vsftpd/vsftpd.conf
        文件内容:
            local_umask=022
                connect_from_port_20=YES
                use_localtime=YES
                local_enable=YES
                anonymous_enable=NO
                anon_upload_enable=NO
                anon_mkdir_write_enable=NO
                anon_other_write_enable=NO
                guest_enable=YES
                #此处的ftpuser与步骤6的ftpuser对应
                guest_username=ftpuser
                user_config_dir=/etc/vsftpd/dir
                listen=YES
                pam_service_name=vsftpd
                userlist_enable=YES
                tcp_wrappers=YES
                allow_writeable_chroot=YES
                ascii_upload_enable=YES
                ascii_download_enable=YES
                chroot_list_enable=YES
                chroot_list_file=/etc/vsftpd/chroot_list
                xferlog_file=/var/log/vsftpd.log
                xferlog_enable=YES
                xferlog_std_format=YES
                pasv_enable=YES
                pasv_min_port=40000
                pasv_min_port=41000
    15、创建根本目录列表文件 
        vi /etc/vsftpd/chroot_list
        文件内容:
            xiaoming
            xiaohong
    16、创建虚拟用户配置文件目录 
        mkdir /etc/vsftpd/dir
    17、创建虚拟用户配置文件
        vi /etc/vsftpd/dir/xiaoming
        vi /etc/vsftpd/dir/xiaohong
        文件内容:
          #此处为file_1或file_2
            local_root=/data/file_1/
                write_enable=YES
                anon_umask=022
                anon_world_readable_only=no
                anon_upload_enable=YES
                anon_mkdir_write_enable=YES
                anon_other_write_enable=YES
                max_per_ip=10
                local_max_rate=2500000
                idle_session_timeout=300
                data_connection_timeout=300
                max_clients=2
    18、重启vsftpd服务 
        systemctl restart vsftpd
    19、打开防火墙端口
        firewall-cmd --permanent --add-port=21/tcp
      firewall-cmd --permanent --add-port=40000-41000/tcp
  20、重启防火墙
      firewall-cmd --reload

21、关闭SELinux
          vi /etc/selinux/config
          SELINUX=disabled