在CentOS系统下,为了防止VSFTPD(Very Secure FTP Daemon)受到FTP攻击,可以采取以下措施:
确保你的CentOS系统和VSFTPD都是最新版本,因为新版本通常包含安全补丁。
sudo yum update使用firewalld或iptables来限制FTP访问。
sudo firewall-cmd --permanent --add-service=ftpsudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPTsudo iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPTsudo iptables -A INPUT -p tcp --dport 21 -j DROPsudo service iptables save被动模式可以减少攻击面,因为数据连接是由客户端发起的。
编辑/etc/vsftpd/vsftpd.conf文件:
sudo vi /etc/vsftpd/vsftpd.conf找到并修改以下行:
pasv_enable=YESpasv_min_port=50000pasv_max_port=50100然后重启VSFTPD服务:
sudo systemctl restart vsftpd使用SSL/TLS可以加密数据传输,防止中间人攻击。
生成SSL证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/vsftpd.pem -out /etc/pki/tls/certs/vsftpd.pem编辑/etc/vsftpd/vsftpd.conf文件:
sudo vi /etc/vsftpd/vsftpd.conf找到并修改以下行:
ssl_enable=YESallow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YESssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NOrsa_cert_file=/etc/pki/tls/certs/vsftpd.pemrsa_private_key_file=/etc/pki/tls/private/vsftpd.pem然后重启VSFTPD服务:
sudo systemctl restart vsftpd只允许特定用户通过FTP访问,并限制他们的权限。
编辑/etc/passwd文件,将FTP用户的shell设置为/sbin/nologin或自定义的shell脚本。
Fail2Ban可以防止暴力破解攻击。
安装Fail2Ban:
sudo yum install fail2ban配置Fail2Ban:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localsudo vi /etc/fail2ban/jail.local找到并修改以下行:
[vsftpd]enabled = trueport = ftpfilter = vsftpdlogpath = /var/log/vsftpd.logmaxretry = 3bantime = 600启动Fail2Ban服务:
sudo systemctl start fail2bansudo systemctl enable fail2ban定期检查VSFTPD的日志文件,以便及时发现异常活动。
sudo tail -f /var/log/vsftpd.log通过以上措施,可以大大提高VSFTPD的安全性,防止常见的FTP攻击。