CentOS7安装配置FTP服务器

时间:2022-11-07 06:58:43
1. 使用yum安装 vsftpd ftp
 yum -y install ftp vsftpd

2. 查看配置文件所在路径
rpm -qc vsftpd

3. 备份vsftpd原有配置文件
cd /etc/vsftpd
cp vsftpd.conf vsftpd.conf.bak

4. 创建密码明文文件
touch vftpuser.txt

vi vftpuser.txt
输入内容(用户名和密码):
minbo
123456

5. 根据明文创建密码DB文件
db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db

6. 创建vftpd的guest账户(建议使用home目录)
useradd -d /home/ftpsite -s /sbin/nologin vftpuser

7. 打开 /etc/pam.d/vsftpd,将auth及account的所有配置行全部注释掉,添加如下内容:

64位的linux系统:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

32位的linux系统:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

8. 打开/etc/vsftpd/vsftpd.conf,将# anonymous_enable=YES 改为 anonymous_enable=NO
在最下面添加如下内容:
anon_root=/ftp/open
virtual_use_local_privs=YES
guest_enable=YES
guest_username=vftpuser
chroot_local_user=YES
allow_writeable_chroot=YES

9. 设置vsftpd开机启动
systemctl enable vsftpd

10. 重新启动vsftpd服务
systemctl restart vsftpd

11. 配置防火墙和SELinux
我去掉了所有防火墙:
iptables -F

SELinux:
getsebool -a | grep ftp
setsebool -P ftpd_full_access on

12. 查看vsftpd服务的状态
systemctl status vsftpd

搭建完成。

可以在Linux或Windows下测试了。

遇到的问题:
1. ftp报错 200 port command successful. consider using pasv 425 failed to establish connection
Linux防火墙和SELinux的问题,采取第11步

2. ftp登录验证失败,明明是输入了正确的用户名 minbo和密码 123456
这是因为上文中第7步的设置问题,我是Linux64位的,当时写成了32位的用法,所以错了,要使用64位的写法