1、安装vsftp
防止后面出现500错误,先把selinux关闭
vim /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=disabled
修改完后,需要重启服务器才能生效,reboot一下
开始安装
yum install -y vsftpd
直接用yum安装就好
然后systemctl查看一下状态
systemctl status vsftpd
2、配置
关闭匿名登录
配置用户只能访问指定目录
开启被动模式
限制被动模式端口范围
对应配置
关闭匿名登录可以需要改,其他的在配置文件末尾追加
进入目录
cd /etc/vsftpd/
vim vsftpd.conf
关闭匿名登录
anonymous_enable=YES改为anonymous_enable=NO
配置用户只能访问指定目录,在文件末尾追加,这段配置的意思是,未配置在**/etc/vsftpd/chroot_list**文件中的账号,只能访问创建账号时指定的目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
**注意:**chroot_list文件需要手动创建,先保存配置文件,创建chroot_list文件
touch chroot_list
chmod 777 chroot_list
如果不需要能访问所有目录的账号,则chroot_list为空,否则,只需要将账号名写在chroot_list中,一个账号一行,例如root账号和admin。
创建完毕文件后,继续修改配置
开启被动模式
限制被动模式端口范围
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30020
修改完成,:wq保存一下
修改pam.d/vsftpd文件
如果只是修改了上面的配置,登录账号是会出现530错误的
/etc/pam.d
用vim打开,注释掉auth required pam_shells.so
启动vsftp
systemctl start vsftpd
创建账号
创建账号并指定用户根目录,并禁止ssh登录,只能登录FTP
useradd -d /home/ftp -s /bin/false ftpuser
-d:指定目录
-s:禁止登录
设置密码
passwd ftpuser
测试
使用FileZilla连接FTP
小结
追加的配置项
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30020
创建用户
useradd -d /home/ftp -s /bin/false ftpuser
passwd ftpuser
记得将vsftpd添加自启动
systemctl enable vsftpd