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

作者:袖梨 2026-08-04

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

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

方法一:使用iptables

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

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

    sudo apt-get updatesudo 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-blacklistecho "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 DROPsudo 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 BLACKLISTsudo iptables -A FORWARD -j BLACKLIST
  7. 保存iptables规则:

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

方法二:使用firewalld

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

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

    sudo apt-get updatesudo apt-get install firewalld

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

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

    sudo systemctl start firewalldsudo 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.123sudo 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系统。

相关文章

精彩推荐