温馨提示×

Linux防火墙怎样实现IP黑名单功能

小樊
38
2025-12-22 08:47:14
栏目: 智能运维

在Linux系统中,可以使用iptables或firewalld来实现IP黑名单功能。以下是两种方法的简要说明:

方法一:使用iptables

  1. 首先,确保iptables已安装在您的系统上。如果没有,请使用以下命令安装:

    对于基于Debian的系统(如Ubuntu):

    sudo apt-get update
    sudo apt-get install iptables
    

    对于基于RPM的系统(如CentOS、Fedora):

    sudo yum install iptables-services
    
  2. 创建一个黑名单文件,例如将需要屏蔽的IP地址添加到/etc/iptables-blacklist文件中:

    echo "123.123.123.123" | sudo tee -a /etc/iptables-blacklist
    echo "456.456.456.456" | sudo tee -a /etc/iptables-blacklist
    
  3. 编辑iptables规则,将黑名单中的IP地址添加到INPUT链中,拒绝其访问:

    sudo iptables -I INPUT -m set --match-set blacklist src -j DROP
    sudo iptables -I FORWARD -m set --match-set blacklist src -j DROP
    
  4. 创建一个新的iptables链,用于处理黑名单:

    sudo iptables -N BLACKLIST
    
  5. 将所有来自黑名单文件的IP地址跳转到BLACKLIST链:

    sudo iptables -A BLACKLIST -m set --match-set blacklist src -j DROP
    
  6. 将INPUT链和FORWARD链中的流量跳转到BLACKLIST链:

    sudo iptables -A INPUT -j BLACKLIST
    sudo iptables -A FORWARD -j BLACKLIST
    
  7. 保存iptables规则:

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

方法二:使用firewalld

  1. 首先,确保firewalld已安装在您的系统上。如果没有,请使用以下命令安装:

    对于基于Debian的系统(如Ubuntu):

    sudo apt-get update
    sudo apt-get install firewalld
    

    对于基于RPM的系统(如CentOS、Fedora):

    sudo yum install firewalld
    
  2. 启动firewalld服务并设置为开机启动:

    sudo systemctl start firewalld
    sudo systemctl enable firewalld
    
  3. 创建一个新的区域,例如命名为"blacklist":

    sudo firewall-cmd --permanent --new-zone=blacklist
    
  4. 将需要屏蔽的IP地址添加到黑名单区域:

    sudo firewall-cmd --permanent --zone=blacklist --add-source=123.123.123.123
    sudo firewall-cmd --permanent --zone=blacklist --add-source=456.456.456.456
    
  5. 将黑名单区域设置为拒绝所有流量:

    sudo firewall-cmd --permanent --zone=blacklist --set-target=DROP
    
  6. 重新加载firewalld配置:

    sudo firewall-cmd --reload
    

现在,您已经成功实现了IP黑名单功能。被列入黑名单的IP地址将无法访问您的Linux系统。

0