温馨提示×

Linux FTP Server如何实现IP黑名单功能

小樊
48
2025-06-11 21:07:06
栏目: 智能运维

在Linux上,有多种方法可以实现FTP服务器的IP黑名单功能。以下是一些常见的方法:

方法一:使用vsftpd的配置文件

  1. 编辑vsftpd配置文件: 打开/etc/vsftpd/vsftpd.conf文件,添加或修改以下配置项:

    tcp_wrappers=YES 

    这将启用TCP Wrappers,允许你使用hosts.denyhosts.allow文件来控制访问。

  2. 配置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地址将被拒绝。

方法二:使用iptables

  1. 阻止特定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.100192.168.1.101的FTP连接。

  2. 允许特定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

  1. 安装fail2ban: 如果你还没有安装fail2ban,可以使用以下命令进行安装:

    sudo apt-get install fail2ban 
  2. 配置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 
  3. 创建过滤器: 创建或编辑/etc/fail2ban/filter.d/vsftpd.conf文件,添加以下内容:

    [Definition] failregex = ^%(__prefix_line)s(?:error:.*|.*denied|.*access denied).*$ ignoreregex = 
  4. 重启fail2ban: 重启fail2ban服务以应用配置:

    sudo systemctl restart fail2ban 

    fail2ban将监控FTP日志文件,并根据配置阻止恶意IP地址。

通过以上方法,你可以有效地实现Linux FTP服务器的IP黑名单功能。选择适合你需求的方法进行配置即可。

0