在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攻擊。