在Linux上,有多种方法可以实现FTP服务器的IP黑名单功能。以下是一些常见的方法:
编辑vsftpd配置文件: 打开/etc/vsftpd/vsftpd.conf
文件,添加或修改以下配置项:
tcp_wrappers=YES
这将启用TCP Wrappers,允许你使用hosts.deny
和hosts.allow
文件来控制访问。
配置hosts.deny和hosts.allow:
创建或编辑/etc/hosts.deny
文件,添加你想要黑名单的IP地址:
vsftpd: 192.168.1.100 vsftpd: 192.168.1.101
创建或编辑/etc/hosts.allow
文件,允许特定的IP地址访问:
vsftpd: 192.168.1.1 vsftpd: 192.168.1.2
这样,只有hosts.allow
文件中列出的IP地址才能访问FTP服务器,其他IP地址将被拒绝。
阻止特定IP地址: 使用iptables
命令来阻止特定的IP地址访问FTP服务器:
sudo iptables -A INPUT -p tcp --dport 21 -s 192.168.1.100 -j DROP sudo iptables -A INPUT -p tcp --dport 21 -s 192.168.1.101 -j DROP
这将阻止来自192.168.1.100
和192.168.1.101
的FTP连接。
允许特定IP地址: 如果你需要允许某些IP地址访问FTP服务器,可以使用以下命令:
sudo iptables -A INPUT -p tcp --dport 21 -s 192.168.1.1 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 21 -s 192.168.1.2 -j ACCEPT
安装fail2ban: 如果你还没有安装fail2ban
,可以使用以下命令进行安装:
sudo apt-get install fail2ban
配置fail2ban: 创建或编辑/etc/fail2ban/jail.local
文件,添加以下配置:
[DEFAULT] bantime = 3600 findtime = 600 maxretry = 3 [vsftpd] enabled = true port = ftp filter = vsftpd logpath = /var/log/vsftpd.log banaction = iptables-multiport
创建过滤器: 创建或编辑/etc/fail2ban/filter.d/vsftpd.conf
文件,添加以下内容:
[Definition] failregex = ^%(__prefix_line)s(?:error:.*|.*denied|.*access denied).*$ ignoreregex =
重启fail2ban: 重启fail2ban
服务以应用配置:
sudo systemctl restart fail2ban
fail2ban
将监控FTP日志文件,并根据配置阻止恶意IP地址。
通过以上方法,你可以有效地实现Linux FTP服务器的IP黑名单功能。选择适合你需求的方法进行配置即可。