如何使用 iptables 阻止 IP

如何使用 iptables 阻止 IP

所以这应该是一个简单的问题,但无论出于什么原因,我都无法弄清楚。

以下是我当前的规则:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
block      all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
block      all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
block      all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain block (3 references)
target     prot opt source               destination
DROP       all  --  hit-nxdomain.opendns.com  anywhere

我正在尝试阻止“hit-nxdomain.opendns.com”位置(虚拟位置)。当我输入真实 IP 地址时,我可以从其他位置使用。如果我尝试从该位置访问我的服务器,它仍然可以正常连接。我如何让它丢弃来自该 IP 地址的所有请求?

我使用链是因为我将使用脚本动态修改被阻止的 IP 地址,因此我需要能够清除区块链而不破坏 INPUT 链并添加新地址。您能告诉我我目前做错了什么吗?正如我所说,“hit-nxdomain.opendns.com”只是一个虚拟名称。但如果我有一个有效的 IP,它就不会阻止它。

答案1

获取该主机名的 IP:

$ host hit-nxdomain.opendns.com
hit-nxdomain.opendns.com has address 67.215.65.132

阻止它:

$ iptables -I INPUT -s 67.215.65.132 -j DROP

答案2

我觉得这些规则没什么问题。要屏蔽 IP 地址,您可以使用

   # iptables -A INPUT -s 127.0.0.100 -j DROP

如果您仍然能够从该 IP 地址连接,请使用 tcpdump 检查您是否实际正在连接该 IP,或者是否由于某种原因(代理、VPN 等)您在具有 iptables 规则的主机上可见为另一个 IP 地址。

相关内容