网络知识
怎样配置CentOS FTP Server虚拟用户
2025-07-11 11:34  点击:0

在CentOS上配置FTP服务器以使用虚拟用户涉及几个步骤。以下是一个基本的指南,使用vsftpd作为FTP服务器软件:

1. 安装vsftpd

首先,确保你的系统是最新的,并安装vsftpd。

sudo yum update -ysudo yum install vsftpd -y
2. 配置vsftpd

编辑vsftpd的配置文件 /etc/vsftpd/vsftpd.conf

sudo vi /etc/vsftpd/vsftpd.conf

进行以下配置:

# 启用虚拟用户guest_enable=YESguest_username=ftpuser# 指定虚拟用户的根目录local_root=/home/ftpuser# 允许虚拟用户登录allow_writeable_chroot=YES# 启用被动模式pasv_enable=YESpasv_min_port=1024pasv_max_port=1048# 启用用户隔离chroot_local_user=YES# 日志记录xferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YES# 安全选项userlist_enable=YESuserlist_file=/etc/vsftpd/user_listuserlist_deny=NO
3. 创建虚拟用户数据库

使用db_load工具创建一个虚拟用户数据库。

sudo mkdir /etc/vsftpd/virtual_userssudo touch /etc/vsftpd/virtual_users/passwdsudo touch /etc/vsftpd/virtual_users/shadow

编辑 /etc/vsftpd/virtual_users/passwd 文件,添加虚拟用户信息:

ftpuser:mypassword

然后使用db_load工具创建数据库:

sudo db_load -T -t hash -f /etc/vsftpd/virtual_users/passwd /etc/vsftpd/virtual_users/passwd.db

同样地,编辑 /etc/vsftpd/virtual_users/shadow 文件,添加虚拟用户密码信息(可选):

ftpuser:mypassword

然后使用db_load工具创建shadow数据库:

sudo db_load -T -t hash -f /etc/vsftpd/virtual_users/shadow /etc/vsftpd/virtual_users/shadow.db
4. 配置PAM认证

安装PAM模块并配置PAM以使用虚拟用户数据库。

sudo yum install pam_passwdqc -ysudo vi /etc/pam.d/vsftpd

添加以下行:

auth required pam_userdb.so db=/etc/vsftpd/virtual_usersaccount required pam_userdb.so db=/etc/vsftpd/virtual_users
5. 启动并启用vsftpd服务

启动vsftpd服务并设置开机自启。

sudo systemctl start vsftpdsudo systemctl enable vsftpd
6. 配置防火墙

确保防火墙允许FTP流量。

sudo firewall-cmd --permanent --add-service=ftpsudo firewall-cmd --reload
7. 测试FTP连接

使用FTP客户端连接到服务器,测试虚拟用户登录。

ftp localhost

输入用户名 ftpuser 和密码 mypassword,看看是否能成功登录。

通过以上步骤,你应该能够在CentOS上成功配置一个使用虚拟用户的FTP服务器。