centos

centos下vsftp如何防止FTP攻击

小樊
46
2025-08-08 09:48:10
栏目: 网络安全

在CentOS系统下,为了防止VSFTPD(Very Secure FTP Daemon)受到FTP攻击,可以采取以下措施:

1. 更新系统和软件

确保你的CentOS系统和VSFTPD都是最新版本,因为新版本通常包含安全补丁。

sudo yum update

2. 配置防火墙

使用firewalldiptables来限制FTP访问。

使用firewalld

sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload

使用iptables

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

3. 启用被动模式

被动模式可以减少攻击面,因为数据连接是由客户端发起的。

编辑/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

4. 启用SSL/TLS加密

使用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

5. 限制用户访问

只允许特定用户通过FTP访问,并限制他们的权限。

编辑/etc/passwd文件,将FTP用户的shell设置为/sbin/nologin或自定义的shell脚本。

6. 使用Fail2Ban

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

7. 监控和日志

定期检查VSFTPD的日志文件,以便及时发现异常活动。

sudo tail -f /var/log/vsftpd.log

通过以上措施,可以大大提高VSFTPD的安全性,防止常见的FTP攻击。

0
看了该问题的人还看了