温馨提示×

centos下vsftp如何配置虚拟主机

小樊
56
2025-06-24 07:52:51
栏目: 云计算

在CentOS系统下配置VSFTPD以支持虚拟主机,可以按照以下步骤进行:

1. 安装VSFTPD

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

sudo yum install vsftpd

2. 配置VSFTPD

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

sudo vi /etc/vsftpd/vsftpd.conf

在配置文件中添加或修改以下内容以启用虚拟主机:

# 启用虚拟用户
guest_enable=YES
guest_username=ftpuser

# 虚拟用户的根目录
local_root=/home/vsftpd/$USER

# 允许虚拟用户登录
write_enable=YES
chroot_local_user=YES

# 其他常用配置
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

3. 创建虚拟用户数据库

使用 db_load 命令创建一个虚拟用户数据库文件。首先,创建一个文本文件来存储用户名和密码,例如 ftpusers.txt

sudo vi /etc/vsftpd/ftpusers.txt

在文件中添加用户名和密码,每行一个用户,格式如下:

username1
password1
username2
password2

然后,使用 db_load 命令将文本文件转换为数据库文件:

sudo db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/ftpusers.db

4. 配置PAM认证

编辑PAM配置文件 /etc/pam.d/vsftpd 以启用虚拟用户认证:

sudo vi /etc/pam.d/vsftpd

添加以下行:

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

5. 创建虚拟用户的根目录

为每个虚拟用户创建一个根目录,并设置适当的权限:

sudo mkdir -p /home/vsftpd/username1
sudo chown ftpuser:ftpuser /home/vsftpd/username1
sudo chmod 755 /home/vsftpd/username1

重复上述步骤为其他虚拟用户创建根目录。

6. 重启VSFTPD服务

最后,重启VSFTPD服务以应用所有更改:

sudo systemctl restart vsftpd

7. 配置防火墙

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

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

如果使用的是 iptables,可以添加以下规则:

sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo service iptables save

完成以上步骤后,你应该能够在CentOS系统下成功配置VSFTPD以支持虚拟主机。

0