1. 安装vsftpd ,启动,自启动
yum install -y vsftpd systemctl start vsftpd systemctl enable vsftpd
2. 配置vsftpd
2.1 创建虚拟用户
useradd vsftp -M -s /sbin/nologin
useradd vfuser -d /var/ftproot -s /bin/nologin # 创建ftp服务用户,创建系统用户关联虚拟用户
2.2 修改vsftpd配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak # 备份原配置文件 vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO # 匿名用户不可访问 local_enable=YES # 本地用户可以访问 local_umask=022 # 文件上传后默认权限掩码 dirmessage_enable=YES # 开启目录标语功能 xferlog_enable=YES # 开启日志 connect_from_port_20=NO # 关闭默认数据上传端口,之后会设置为被动模式启用随机端口 pasv_enable=YES # 开启被动模式,会开启随机端口用于数据传输 pasv_min_port=30000 pasv_max_port=35000 # 被动模式随机端口范围 xferlog_file=/var/log/xferlog # #设定Vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来,并且由于这里更改了Vsftpd的服务宿主用户为手动建立的Vsftpd。必须注意给与该用户对日志的写入权限,否则服务将启动失败 xferlog_std_format=YES #设定日志使用标准的记录格式。 idle_session_timeout=600 chroot_local_user=YES # 限制只能用使用主目录 chroot_list_enable=NO # 是否启动限制用户的名单 YES为启用 chroot_list_file=/var/ftproot # 指定主目录位置 listen=NO listen_ipv6=YES pam_service_name=vsftpd.vu 设定PAM服务下Vsftpd的验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd.vu文件配置 userlist_enable=YES # userlist_file中的用户将不得使用FTP tcp_wrappers=YES write_enable=YES # 开启写权限 download_enable=YES # 开启下载权限 guest_enable=YES # 开启虚拟用户模式 guest_username=vfuser # 指定虚拟用户 user_config_dir=/etc/vsftpd/vfusers_dir # 虚拟用户配置目录,该目录下的文件为单个用户的配置
2.3 创建日志文件并赋予ftp用户权限
touch /var/log/vsftpd.log chown vsftpd.vsftpd /var/log/vsftpd.log
2.4 虚拟用户配置
mkdir /etc/vsftpd/vfusers_dir -p # 创建虚拟用户配置目录 touch /etc/vsftpd/vfuser_list # 创建虚拟用户账户密码文件,其中包含所有虚拟用户的账户密码,奇数行为账户,偶数为密码 yum -y install db4-utils #安装pam,用户生成虚拟用户数据文件 db_load -T -t hash -f vfuser_list vfuser_list.db # 生成数据文件 # -T表示生成数据库文件 # -t表示使用hash算法(防止其他人看到数据库文件内容) # -f指定文件 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.vu # 备份pam文件 vim /etc/pam.d/vsftpd.vu #%PAM-1.0 auth required pam_userdb.so db=/etc/vsftpd/vfuser_list account required pam_userdb.so db=/etc/vsftpd/vfuser_list # 文件内容如上即可 vim /etc/vsftpd/vfusers_dir/ll local_root=/var/ftproot/ write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES allow_writeable_chroot=YES # 指定虚拟用户目录 # 拥有写权限 # 允许上传文件 # 允许具有创建目录的虚入权限 # 意味着本地用户将进入 chroot 环境,当登录以后默认进入家目录home目录
3. 重启vsftpd服务
systemctl restart vsftpd.service