在CentOS操作系统上安装vsftpd(Very Secure FTP Daemon)是一个相对简单的过程,但需要对系统配置和安全设置进行一些调整,以下是详细的步骤和相关说明。
一、安装前的准备工作
1、检查是否已安装vsftpd:

rpm qa | grep vsftpd
如果已经安装,可以选择卸载并重新安装,以确保配置的一致性。
2、更新软件包(可选):
sudo yum update
二、安装vsftpd
1、安装vsftpd:
sudo yum install y vsftpd
2、启动vsftpd服务并设置为开机自启:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
3、查看vsftpd服务状态:
sudo systemctl status vsftpd
三、配置vsftpd
1、备份原始配置文件(可选):

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
2、编辑vsftpd配置文件:
sudo vi /etc/vsftpd/vsftpd.conf
基本配置:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=/home/$USER
user_sub_token=$USER
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
pasv_enable=YES
pasv_min_port=30010
pasv_max_port=30015
pasv_address={vsftpd服务器的公网IP}解释:
anonymous_enable=NO:禁用匿名登录。
local_enable=YES:允许本地用户登录。
write_enable=YES:允许写操作。

local_umask=022:设置本地用户的默认文件掩码为022。
dirmessage_enable=YES:启用目录消息功能。
xferlog_enable=YES:启用上传下载记录。
connect_from_port_20=YES:通过20端口建立数据连接。
xferlog_std_format=YES:使用标准格式记录日志。
chroot_local_user=YES:限制本地用户在其主目录中。
allow_writeable_chroot=YES:允许在chroot环境中写操作。
listen=YES:监听所有IP地址。
listen_ipv6=NO:禁用IPv6监听。
pam_service_name=vsftpd:指定PAM服务名称为vsftpd。
userlist_enable=YES:启用用户列表。
tcp_wrappers=YES:启用TCP包装器。
local_root=/home/$USER:设置本地用户的根目录为其主目录。
user_sub_token=$USER:用户子令牌为用户用户名。
userlist_deny=NO:不拒绝用户列表中的用户。
userlist_file=/etc/vsftpd/user_list:指定用户列表文件。
pasv_enable=YES:启用被动模式。
pasv_min_port和pasv_max_port:指定被动模式的端口范围。
pasv_address:指定vsftpd服务器的公网IP。
3、创建FTP用户:
sudo adduser ftpUser sudo passwd ftpUser
4、创建FTP目录并设置权限:
sudo mkdir p /home/ftpUser/ftp sudo chown R ftpUser:ftpUser /home/ftpUser/ftp sudo chmod 755 /home/ftpUser/ftp
5、添加FTP用户到用户列表:
echo "ftpUser" >> /etc/vsftpd/user_list
四、防火墙配置
1、使用firewalld管理防火墙:
sudo firewallcmd permanent addport=21/tcp sudo firewallcmd permanent addservice=ftp sudo firewallcmd reload
2、使用iptables管理防火墙:
sudo iptables A INPUT p tcp dport 20 j ACCEPT sudo iptables A INPUT p tcp dport 21 j ACCEPT sudo service iptables save sudo service iptables restart
五、SELinux配置(可选)
如果SELinux导致问题,可以暂时关闭它:
sudo setenforce 0 sudo sed i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
六、测试FTP服务
可以使用FTP客户端软件(如FileZilla、WinSCP等)测试FTP服务器的连接和文件传输功能,使用命令行方式测试:
ftp IP地址 用户名 密码
ftp 192.168.1.100 ftpUser password
是CentOS安装vsftpd的详细步骤和配置说明,为了确保系统的安全性,建议在生产环境中进行充分的测试和验证。
