所以这应该是一个简单的问题,但无论出于什么原因,我都无法弄清楚。
以下是我当前的规则:
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 地址。