在Linux系统中,可以使用iptables或firewalld来实现IP黑名单功能。以下是两种方法的简要说明:
方法一:使用iptables
首先,确保iptables已安装在您的系统上。如果没有,请使用以下命令安装:
对于基于Debian的系统(如Ubuntu):
sudo apt-get update
sudo apt-get install iptables
对于基于RPM的系统(如CentOS、Fedora):
sudo yum install iptables-services
创建一个黑名单文件,例如将需要屏蔽的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
编辑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
创建一个新的iptables链,用于处理黑名单:
sudo iptables -N BLACKLIST
将所有来自黑名单文件的IP地址跳转到BLACKLIST链:
sudo iptables -A BLACKLIST -m set --match-set blacklist src -j DROP
将INPUT链和FORWARD链中的流量跳转到BLACKLIST链:
sudo iptables -A INPUT -j BLACKLIST
sudo iptables -A FORWARD -j BLACKLIST
保存iptables规则:
sudo iptables-save > /etc/iptables/rules.v4
方法二:使用firewalld
首先,确保firewalld已安装在您的系统上。如果没有,请使用以下命令安装:
对于基于Debian的系统(如Ubuntu):
sudo apt-get update
sudo apt-get install firewalld
对于基于RPM的系统(如CentOS、Fedora):
sudo yum install firewalld
启动firewalld服务并设置为开机启动:
sudo systemctl start firewalld
sudo systemctl enable firewalld
创建一个新的区域,例如命名为"blacklist":
sudo firewall-cmd --permanent --new-zone=blacklist
将需要屏蔽的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
将黑名单区域设置为拒绝所有流量:
sudo firewall-cmd --permanent --zone=blacklist --set-target=DROP
重新加载firewalld配置:
sudo firewall-cmd --reload
现在,您已经成功实现了IP黑名单功能。被列入黑名单的IP地址将无法访问您的Linux系统。