在CentOS系统下,为了防止VSFTPD(Very Secure FTP Daemon)受到FTP攻击,可以采取以下措施:
确保你的CentOS系统和VSFTPD都是最新版本,因为新版本通常包含安全补丁。
sudo yum update
使用firewalld或iptables来限制FTP访问。
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 21 -j DROP
sudo service iptables save
被动模式可以减少攻击面,因为数据连接是由客户端发起的。
编辑/etc/vsftpd/vsftpd.conf文件:
sudo vi /etc/vsftpd/vsftpd.conf
找到并修改以下行:
pasv_enable=YES
pasv_min_port=50000
pasv_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=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem
rsa_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.local
sudo vi /etc/fail2ban/jail.local
找到并修改以下行:
[vsftpd]
enabled = true
port = ftp
filter = vsftpd
logpath = /var/log/vsftpd.log
maxretry = 3
bantime = 600
启动Fail2Ban服务:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
定期检查VSFTPD的日志文件,以便及时发现异常活动。
sudo tail -f /var/log/vsftpd.log
通过以上措施,可以大大提高VSFTPD的安全性,防止常见的FTP攻击。