linux

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

小樊
63
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
看了该问题的人还看了