CentOS下VSFTP安全性保障指南
sudo yum update -y更新CentOS系统和VSFTPD至最新版本,修补已知安全漏洞。sudo yum install vsftpd -y安装CentOS官方仓库的VSFTPD,避免第三方源的安全风险。/etc/vsftpd/vsftpd.conf,设置anonymous_enable=NO,彻底阻止匿名用户登录。local_enable=YES允许本地用户登录,但需配合chroot_local_user=YES将用户锁定在主目录(防止访问系统其他路径);若需允许用户写入文件,需添加allow_writeable_chroot=YES(避免chroot目录不可写导致的服务错误)。userlist_enable=YES启用用户列表,设置userlist_file=/etc/vsftpd/user_list指定允许/拒绝的用户(userlist_deny=NO表示仅允许列表内用户登录);结合chroot_list_enable=YES和chroot_list_file=/etc/vsftpd/chroot_list,可将特定用户强制限制在chroot环境中。ssl_sslv2=NO和ssl_sslv3=NO,仅允许TLSv1及以上安全协议(ssl_tlsv1=YES),防止旧协议被破解。ssl_enable=YES,强制数据传输加密(force_local_data_ssl=YES、force_local_logins_ssl=YES);生成自签名证书(sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/vsftpd.key -out /etc/pki/tls/certs/vsftpd.pem),并指定证书路径(rsa_cert_file和rsa_private_key_file)。firewall-cmd开放FTP端口(21)和被动模式端口范围(如1024-1048或50000-50010),并设置为永久生效:sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=1024-1048/tcp
sudo firewall-cmd --reload
若更改了默认端口(如2121),需同步开放新端口。sudo setsebool -P ftp_home_dir on,允许FTP用户访问其主目录。sudo chcon -Rt svirt_sandbox_file_t /home/ftpuser
xferlog_enable=YES、xferlog_file=/var/log/vsftpd.log和xferlog_std_format=YES,记录文件传输活动;同时开启log_ftp_protocol=YES记录FTP协议交互日志,便于后续审计可疑行为。ftpuser),设置强密码(包含大小写字母、数字和特殊字符),并限制其主目录权限(chmod 755 /home/ftpuser)。/etc/hosts.deny文件禁止特定IP访问,例如:vsftpd: 192.168.1.100 : deny
sudo systemctl restart vsftpd重启VSFTPD服务。sudo tail -f /var/log/vsftpd.log实时监控登录和传输活动,及时发现异常(如频繁登录失败、大文件下载)。