IPTables:阻止特定的源 IP 地址

IPTables:阻止特定的源 IP 地址

我正在尝试使用 IPTables 阻止特定 IP。当我使用以下 shell 命令(Xs 隐藏实际 IP)时:

iptables -A INPUT -s XXX.XXX.XXX.XXX/32 -j DROP

我在 IPTables 中添加了以下行:

DROP       all  --  XXX-XXX-XXX-XXX.dhcp.trcy.mi.charter.com  anywhere

这是怎么回事?为什么会这样?看起来完全不对劲。

我的设置是一个 Raspberry Pi,连接到我的家用路由器,然后连接到互联网。

答案1

iptables像许多其他网络工具一样,默认情况下对 IP 地址进行反向 DNS 查找。因此,这意味着主机部分显示的字符串是您要阻止的 IP 地址的 DNS 名称。

另一方面,您正在阻止 ISP DHCP 池中的单个地址。这没有效果,因为通过 DHCP 获取地址的用户的 IP 地址会随时间而变化。因此,一旦此 IP 的用户获得新地址,另一个用户稍后将获得此地址,新用户将被阻止。

答案2

我想我过去偶然发现过这个问题,我不知道为什么,但是脚本有所帮助,一般来说,这里还有另一行你没有包括的来阻止传入和传出的流量。

尝试创建一个文件,其中包含您想要阻止的 IP 地址,然后尝试编写一个脚本来使用该文件,也许这会起作用。

BLOCKDB=/root/ip.block
BIPS=$(grep -Ev "^#" $BLOCKDB)
for $i in $BIPS
do
iptables -A INPUT -s $i -j DROP
iptables -A OUTPUT -d $i -j DROP  

相关内容