温馨提示×

Linux FTP Server如何限制访问IP

小樊
46
2025-09-25 21:56:50
栏目: 智能运维

在Linux上,您可以使用多种方法来限制FTP服务器的访问IP。以下是一些常见的方法:

方法一:使用iptables

iptables是Linux内核自带的防火墙工具,可以用来限制IP访问。

  1. 允许特定IP访问FTP服务器

    sudo iptables -A INPUT -p tcp --dport 21 -s 允许的IP地址 -j ACCEPT
    
  2. 拒绝所有其他IP访问FTP服务器

    sudo iptables -A INPUT -p tcp --dport 21 -j DROP
    
  3. 保存iptables规则(具体命令可能因发行版而异):

    sudo iptables-save > /etc/iptables/rules.v4
    

方法二:使用ufw(Uncomplicated Firewall)

ufw是Ubuntu和其他基于Debian的系统上的防火墙管理工具。

  1. 启用ufw

    sudo ufw enable
    
  2. 允许特定IP访问FTP服务器

    sudo ufw allow from 允许的IP地址 to any port 21
    
  3. 拒绝所有其他IP访问FTP服务器

    sudo ufw deny 21/tcp
    
  4. 重新加载ufw规则

    sudo ufw reload
    

方法三:使用vsftpd配置文件

如果您使用的是vsftpd(Very Secure FTP Daemon),可以在其配置文件中设置IP访问限制。

  1. 编辑vsftpd配置文件

    sudo nano /etc/vsftpd.conf
    
  2. 添加或修改以下配置

    tcp_wrappers=YES
    
  3. 编辑hosts.deny和hosts.allow文件

    sudo nano /etc/hosts.deny
    sudo nano /etc/hosts.allow
    
  4. 在hosts.deny中添加

    vsftpd: ALL
    
  5. 在hosts.allow中添加

    vsftpd: 允许的IP地址
    
  6. 重启vsftpd服务

    sudo systemctl restart vsftpd
    

方法四:使用fail2ban

fail2ban是一个入侵防御软件框架,可以用来限制恶意IP访问。

  1. 安装fail2ban

    sudo apt-get install fail2ban
    
  2. 创建或编辑jail配置文件

    sudo nano /etc/fail2ban/jail.local
    
  3. 添加以下内容

    [DEFAULT]
    bantime = 600
    findtime = 600
    maxretry = 3
    
    [vsftpd]
    enabled = true
    port = ftp
    filter = vsftpd
    logpath = /var/log/vsftpd.log
    bantime = 3600
    
  4. 创建或编辑过滤器文件

    sudo nano /etc/fail2ban/filter.d/vsftpd.conf
    
  5. 添加以下内容

    [Definition]
    failregex = ^%(__prefix_line)s(?:error:.*|.*denied for user <HOST>).*$
    ignoreregex =
    
  6. 重启fail2ban服务

    sudo systemctl restart fail2ban
    

通过以上方法,您可以根据自己的需求选择合适的方式来限制FTP服务器的访问IP。

0