centos

vsftp在centos上如何实现用户认证

小樊
41
2025-12-19 09:28:39
栏目: 智能运维

在CentOS上使用VSFTPD(Very Secure FTP Daemon)实现用户认证,通常涉及以下几个步骤:

1. 安装VSFTPD

首先,确保你的CentOS系统上已经安装了VSFTPD。如果没有安装,可以使用以下命令进行安装:

sudo yum install vsftpd

2. 配置VSFTPD

编辑VSFTPD的配置文件 /etc/vsftpd/vsftpd.conf,以启用用户认证和其他必要的设置。

sudo vi /etc/vsftpd/vsftpd.conf

在配置文件中,确保以下设置是启用的:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

3. 启用PAM认证

确保PAM(Pluggable Authentication Modules)已启用。编辑 /etc/pam.d/vsftpd 文件:

sudo vi /etc/pam.d/vsftpd

确保文件中有以下行:

auth required pam_userdb.so db=/etc/vsftpd/vsftpd_user_list
account required pam_userdb.so db=/etc/vsftpd/vsftpd_user_list

4. 创建用户列表文件

创建一个用户列表文件 /etc/vsftpd/vsftpd_user_list,并在其中添加允许使用FTP的用户。

sudo vi /etc/vsftpd/vsftpd_user_list

在文件中添加用户名,每行一个:

user1
user2

5. 创建用户数据库文件

创建一个用户数据库文件 /etc/vsftpd/vsftpd_user_list.db,以便PAM可以读取它。

sudo touch /etc/vsftpd/vsftpd_user_list.db
sudo db_load -T -t hash -f /etc/vsftpd/vsftpd_user_list /etc/vsftpd/vsftpd_user_list.db

6. 重启VSFTPD服务

完成配置后,重启VSFTPD服务以应用更改。

sudo systemctl restart vsftpd

7. 测试FTP连接

使用FTP客户端(如FileZilla)连接到你的服务器,并尝试使用你在 /etc/vsftpd/vsftpd_user_list 中定义的用户进行登录。

8. 防火墙设置

确保防火墙允许FTP流量。如果使用的是firewalld,可以添加以下规则:

sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload

通过以上步骤,你应该能够在CentOS上使用VSFTPD实现用户认证。如果有任何问题,请检查日志文件 /var/log/messages/var/log/vsftpd.log 以获取更多信息。

0
看了该问题的人还看了