iptables 在 OUTPUT 链中添加规则

iptables 在 OUTPUT 链中添加规则

我们可以iptables根据 IP/网络/主机名插入规则:

iptables -t filter -A OUTPUT -p tcp -d www.google.com -j ACCEPT -m comment --comment "www.google.com" 

它不接受:

iptables v1.4.7: host/network www.google.com not found
Try iptables -h' or 'iptables --help' for more information.

答案1

找不到主机/网络 www.google.com

您可能在配置 DNS 之前或在防火墙配置阻止 DNS 时执行此操作。

无论如何,您都使用了错误的工具来完成这项工作。您正在尝试用锤子拧入螺丝。即使你能把事情做好,我也不会坐在那张椅子上。

对于此示例,它不起作用:www.google.com有许多 IP 地址,而给定的 DNS 查找仅返回其中的几个。您无法轻松枚举 的所有 IP 地址www.google.com。所以你的请求www.google.com会随机通过或不通过。相反,许多比 Google 小的网站都使用相同的 IP 地址运行,因此您只能阻止全部或不阻止它们。

为了过滤网络访问,您需要网络代理。在 itables 配置中,阻止除端口 443 之外的所有传出访问(无论如何,您几乎无法过滤 HTTPS,除非以侵入性和不安全的方式,我不会在本答案中讨论),并且运行代理的用户除外。

iptables -P OUTPUT DROP
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -m owner --uid-owner wwwproxy -j ACCEPT

替换wwwproxy为运行 HTTP 代理的用户名,这取决于您的代理配置。

有很多 HTTP 代理。 Squid 很受欢迎,但对于小型安装,您可能更喜欢较小的东西。

相关内容