在CentOS上搭建VSFTP站点的步骤如下:
首先,确保你的CentOS系统已经更新到最新状态。然后,使用以下命令安装VSFTP:
sudo yum update -y
sudo yum install vsftpd -y
安装完成后,你需要编辑VSFTP的配置文件 /etc/vsftpd/vsftpd.conf。
sudo vi /etc/vsftpd/vsftpd.conf
在配置文件中,你可以根据需要进行以下设置:
匿名访问:如果你希望允许匿名用户访问,可以取消注释或添加以下行:
anonymous_enable=YES
本地用户登录:确保本地用户可以登录:
local_enable=YES
写权限:如果你希望用户能够上传文件,可以启用写权限:
write_enable=YES
被动模式:大多数情况下,你需要启用被动模式:
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
安全设置:为了提高安全性,你可以禁用某些功能,例如:
chroot_local_user=YES
allow_writeable_chroot=YES
配置完成后,启动VSFTP服务并设置为开机自启:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
如果你的CentOS系统启用了防火墙(firewalld),你需要打开FTP所需的端口:
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=1024-1048/tcp
sudo firewall-cmd --reload
你可以使用FTP客户端(如FileZilla)来测试你的FTP站点。输入服务器的IP地址、用户名和密码,确保可以成功连接并上传/下载文件。
如果你的系统启用了SELinux,可能需要调整SELinux策略以允许VSFTP正常工作:
sudo setsebool -P ftp_home_dir on
sudo chcon -Rt svirt_sandbox_file_t /home/*
如果你希望使用虚拟用户而不是系统用户,可以参考以下步骤:
安装db4-utils和db4库:
sudo yum install db4-utils db4 -y
创建一个虚拟用户数据库:
sudo touch /etc/vsftpd/virtusers.txt
sudo db_load -T -t hash -f /etc/vsftpd/virtusers.txt /etc/vsftpd/virtusers.db
sudo chmod 600 /etc/vsftpd/virtusers.db
编辑/etc/pam.d/vsftpd文件,添加以下行:
auth required pam_userdb.so db=/etc/vsftpd/virtusers
account required pam_userdb.so db=/etc/vsftpd/virtusers
创建一个PAM配置文件 /etc/pam.d/vsftpd-virtusers:
auth required pam_unix.so nullok_secure
account required pam_unix.so
编辑/etc/vsftpd/vsftpd.conf文件,添加以下行:
guest_enable=YES
guest_username=ftpuser
user_sub_token=$USER
local_root=/home/$USER
chroot_local_user=YES
allow_writeable_chroot=YES
创建虚拟用户并设置密码:
sudo adduser --disabled-login --gecos "" ftpuser
sudo passwd ftpuser
重新启动VSFTP服务:
sudo systemctl restart vsftpd
通过以上步骤,你应该能够在CentOS上成功搭建一个VSFTP站点。