在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黑名單功能。選擇適合你需求的方法進行配置即可。