我正在寻找一种可靠的方法来阻止不需要的 TCP/IP 流量。
在我的 Linux 机器上,iptables 和 ipset 似乎提供了一种不错的方法。
到目前为止我已经这样做了:
ipset create ipsok hash:net maxelem (result of wc -l for my cidr list in a file)
ipset add <network address>
并确保这是唯一使用的 ipset:
service ipset status
这仅显示具有正确条目数的 ipset ipsok。我还确保在重启后使用该 ipset。然后我将 ipset 添加到 iptables 规则中:
iptables -I INPUT -m set --match-set ipsok src -j ACCEPT
为了测试这是否有效,我让 TOR 为我提供一个 IP 地址,并使用以下命令进行检查:
ipset test ipsok <tor ip address>
这告诉我地址是不是在 ipsok 集中。
当我将 tor 浏览器指向我的机器时,连接就建立了。这是正确的吗?我以为连接会失败,因为在 ipset 中找不到 ip 地址。
我需要做什么才能让 iptables(和 ipset)阻止流量不是来自 ipset ipsok 中的任何网络地址?
答案1
Iptables 的默认策略是ACCEPT
。因此,通过将 IP 添加到列表中,您只会接受它们两次。
您iptables -L
应该展示尽可能多的内容 - 也就是说,唯一的规则就是接受规则。
将默认值更改为 DROP,然后将您的项目添加到 ACCEPT。
在比赛设置规则之前尝试一下这个:
iptables -P INPUT DROP
请小心 - 不要远程执行此操作,否则您可能会将自己锁在外面。