一、查看是否装了ftp
rpm -qa | grep vsftpd
二、关闭selinux
setenforce 0
三、安装vsftp软件包
yum install -y vsftpd
四、备份vsftpd的默认配置文件
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak
五、修改配置
vim vsftpd.conf
# 添加配置local_enable=YES
write_enable=YES
chroot_local_user=YES
# 所有用户都被限制在自己的用户目录内。allow_writeable_chroot=YES
pasv_enable=Yes
# 允许被动模式pasv_min_port=10000
# 被动模式最小端口pasv_max_port=10100
# 被动模式最大端口

六、添加FTP账号
useradd -d /data/ -g ftp -s /sbin/nologin user1
# 其格式为 useradd -d [路径] -g ftp -s /sbin/nologin [用户]
# 写错了可以使用 usermod -d /data2/ 进行修改
# 目录修改权限
chown -R user1 /data
chmod -R 755 /data
七、设置密码
passwd user1
八、重启服务
service vsftpd restart
九、防火墙修改
vim /etc/sysconfig/iptables
# 增加 21 端口-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
# 如果是云服务器还需要在管理端设置开放端口
十、重启防火墙
service iptables restart
十一、使用 ftp 进行测试

# 如果提示 ftp commond not found 则使用 yum install ftp 安装
十一、vsftpd 530 Login incorrect 根本原因和解决方案
网络上有好多解决方案,例如修改/etc/vsftpd.conf文件 将pam_service_name=vsftpd 修改为 pam_service_name=ftp ,虽然能够解决这个问题,但是这种方法其实是错误的。这样由于/etc/pam.d/ftp文件不存在,等于是绕过了PAM。
cat /etc/pam.d/vsftpd

auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
该配置项的含义是 /etc/ftpusers 中的用户禁止登陆,如果文件不存在在默认所有用户均允许登录. 所以确保用户没在这个文件内。
auth required pam_shells.so 配置项的含义为仅允许用户的shell为 /etc/shells
文件内的shell命令时,才能够成功
# 查看不允许登录ftp的用户列表,确保用户没在这个文件内 cat /etc/vsftpd/ftpusers

修改 /etc/pam.d/vsftpd 文件,将auth required pam_shells.so修改为auth required pam_nologin.so
vim /etc/pam.d/vsftpd

重启 vsftpd
service vsftpd restart
测试 FTP

评论已关闭。