在Linux上,您可以使用多种方法来限制FTP服务器的访问IP。以下是一些常见的方法:
iptables是Linux内核自带的防火墙工具,可以用来限制IP访问。
允许特定IP访问FTP服务器:
sudo iptables -A INPUT -p tcp --dport 21 -s 允许的IP地址 -j ACCEPT
拒绝所有其他IP访问FTP服务器:
sudo iptables -A INPUT -p tcp --dport 21 -j DROP
保存iptables规则(具体命令可能因发行版而异):
sudo iptables-save > /etc/iptables/rules.v4
ufw是Ubuntu和其他基于Debian的系统上的防火墙管理工具。
启用ufw:
sudo ufw enable
允许特定IP访问FTP服务器:
sudo ufw allow from 允许的IP地址 to any port 21
拒绝所有其他IP访问FTP服务器:
sudo ufw deny 21/tcp
重新加载ufw规则:
sudo ufw reload
如果您使用的是vsftpd(Very Secure FTP Daemon),可以在其配置文件中设置IP访问限制。
编辑vsftpd配置文件:
sudo nano /etc/vsftpd.conf
添加或修改以下配置:
tcp_wrappers=YES
编辑hosts.deny和hosts.allow文件:
sudo nano /etc/hosts.deny
sudo nano /etc/hosts.allow
在hosts.deny中添加:
vsftpd: ALL
在hosts.allow中添加:
vsftpd: 允许的IP地址
重启vsftpd服务:
sudo systemctl restart vsftpd
fail2ban是一个入侵防御软件框架,可以用来限制恶意IP访问。
安装fail2ban:
sudo apt-get install fail2ban
创建或编辑jail配置文件:
sudo nano /etc/fail2ban/jail.local
添加以下内容:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 3
[vsftpd]
enabled = true
port = ftp
filter = vsftpd
logpath = /var/log/vsftpd.log
bantime = 3600
创建或编辑过滤器文件:
sudo nano /etc/fail2ban/filter.d/vsftpd.conf
添加以下内容:
[Definition]
failregex = ^%(__prefix_line)s(?:error:.*|.*denied for user <HOST>).*$
ignoreregex =
重启fail2ban服务:
sudo systemctl restart fail2ban
通过以上方法,您可以根据自己的需求选择合适的方式来限制FTP服务器的访问IP。