在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黑名单功能。选择适合你需求的方法进行配置即可。