一、vsftpd安装

  1. yum安装
    安装依赖:yum install -y pam pam-devel db4 db4-devel db4-uitls db4-tcl
    安装vsftpd:yum install -y vsftpd
  2. rpm安装
  1. rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm //安装vsftpd
  2. rpm -ivh pam-1.1.8-18.el7.x86_64.rpm pam-devel-1.1.8-18.el7.x86_64.rpm //安装PAM

注:需要关闭selinux。

二、vsftpd配置

vsftpd配置文件:/etc/vsftpd/vsftpd.conf

1.本地用户方式

  1. 配置vsftpd.conf

    anonymous_enable=NO      //禁止匿名用户登录
    anon_upload_enable=NO    //禁止匿名用户上传
    anon_mkdir_write_enable=NO    //禁止匿名用户创建目录
    pasv_enable=YES        //开启被动模式
    pasv_min_port=3000     //最小端口号
    pasv_max_port=4000     //最大端口号
    #anon_root=/ftp/           //匿名用户目录
    
  2. 创建ftp用户
    创建ftp目录:mkdir /ftp
    创建用户:useradd -d /ftp/user1 -g ftp -s /sbin/nologin user1
    重启vsftp:systemctl restart vsftpd
    开机启动vsftp:systemctl enable vsftpd
    注:需开启对应防火墙端口。

2.虚拟用户方式

  1. 配置vsftpd.conf
    创建宿主用户:useradd -d /ftp/ -g ftp -s /sbin/nologin vsftpd
    更改目录权限:chmod 700 /ftp
    创建虚拟用户配置文件目录:mkdir /etc/vsftpd/vconf ``` anonymous_enable=NO //禁止匿名用户登录 anon_upload_enable=NO //禁止匿名用户上传 anon_mkdir_write_enable=NO //禁止匿名用户创建目录 write_enable=YES //允许写操作 local_umask=022 //上传文件后掩码 chroot_local_user=YES //锁定用户在主目录 chroot_list_enable=NO //禁止用户登出自己的目录 chroot_list_file=/etc/vsftpd/chroot_list //设定宿主用户文件 async_abor_enable=YES //开启异步传输 userlist_enable=YES //设定userlist_file中的用户不能使用ftp tcp_wrappers=YES //设定支持TCP Wrappers

主动模式

port_enable=YES //开启主动模式 connect_from_port_20=YES //主动模式连接使用20端口 ftp_data_port=20 //自定义ftp数据传输端口(可选)

被动模式

pasv_enable=YES //开启被动模式 port_promiscuous=YES //禁用端口安全检查 pasv_address=192.168.10.10 //被动模式地址

pasv_min_port=3000 //最小端口号

pasv_max_port=4000 //最大端口号

max_client=100 //最大连接数 max_per_ip=3 //同一IP最大连接数

虚拟用户

guest_enable=YES //开启虚拟用户 guest_username=vsftpd //虚拟用户使用的宿主用户 pam_service_name=vsftpd //开启pam virtual_use_local_privs=NO //不使用宿主账户相同权限 allow_writeable_chroot=YES //允许用户目录可写 user_config_dir=/etc/vsftpd/vconf //用户配置文件目录


2. 在/etc/vsftpd下创建chroot_list文件<br />
`vi /etc/vsftpd/chroot_list`<br />
写入:`vsftpd`
2. 创建虚拟用户名单文件<br />
`vi /etc/vsftpd/vuser.txt`<br />
如下(奇数行帐号,偶数行密码):

aaa 111111 bbb 222222


4. 生成虚拟用户数据文件<br />
`db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db`
4. 配置PAM验证文件<br />
`vi /etc/pam.d/vsftpd`<br />
注释掉原文件内容,然后输入以下内容:

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser


6. 虚拟用户配置<br />
创建虚拟用户目录:`mkdir /ftp/aaa`<br />
更改虚拟用户目录权限:

chown vsftpd.vsftpd /ftp/aaa chmod 700 /ftp/aaa


6. 编辑虚拟用户配置文件,这里以用户aaa为例:

local_root=/home/ftp/aaa //设定用户主目录 anon_world_readable_only=NO //允许下载 anon_upload_enable=YES //允许上传 anon_mkdir_write_enable=YES //允许创建目录 anon_other_write_enable=YES //允许删除和重命名 anon_umask=022 //文件目录掩码 ```

  1. 启动vsftpd
    systemctl start vsftpd