iptables 解析的地址与 nslookup 不同

iptables 解析的地址与 nslookup 不同

为了阻止公司网络上的个人电子邮件,我阻止FORWARDmail.google.commail.live.com。以下是如何iptables解析这些地址:

$  sudo iptables -L

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Mail-Forward-Block  all  --  anywhere             anywhere         

Chain Mail-Forward-Block (2 references)
target     prot opt source               destination            
REJECT     all  --  anywhere             lhr14s24-in-f5.1e100.net  reject-with icmp-port-unreachable
REJECT     all  --  anywhere             lhr08s07-in-f5.1e100.net  reject-with icmp-port-unreachable
REJECT     all  --  anywhere             origin.du113w.dub113.mail.live.com  reject-with icmp-port-unreachable
REJECT     all  --  anywhere             origin.du114w.dub114.mail.live.com  reject-with icmp-port-unreachable

nslookup用于比较(192.168.0.10Samba 是否运行其内部 DNS 并将查找转发到8.8.8.8):

$ nslookup mail.google.com
Server:     192.168.0.10
Address:    192.168.0.10#53

Non-authoritative answer:
mail.google.com canonical name = googlemail.l.google.com.
Name:   googlemail.l.google.com
Address: 216.58.208.69

$ nslookup mail.live.com
Server:     192.168.0.10
Address:    192.168.0.10#53

Non-authoritative answer:
mail.live.com   canonical name = dispatch.kahuna.glbdns2.microsoft.com.
Name:   dispatch.kahuna.glbdns2.microsoft.com
Address: 157.56.195.156
Name:   dispatch.kahuna.glbdns2.microsoft.com
Address: 157.55.235.51

显然,这并没有阻止任何事情。重新添加相同的规则以某种方式使 的iptable地址与 相同nslookup。但为什么会有这样的差异呢?我们不能做iptable反向 DNS 查找并检查它是否与这些域匹配吗?

答案1

简短的回答:不会。 iptables规则影响 IP 地址,而不是域名。这就是它被称为 iptables 的原因。

在iptables运行的网络层,域名本质上是无关紧要的。当您将域名与 iptables 规则一起使用时,将执行 DNS 查找并将域名解析为 IP 地址,并且在规则中使用该特定时刻的 IP 地址。如果域被更新并且 A 记录指向不同的 IP,iptables 将不知道任何变化。

您想要做的事情(阻止某些网站,例如 Gmail)可能最好使用squid.这将允许您记录和监控网络使用情况,并且有一些附加组件squidguard可以帮助管理允许/拒绝列表。

如果您想阻止对外部 smtp 的访问,请阻止相关端口(例如 25、465、587)以强制网络上的本地计算机使用本地 smtp 网关 - 您可以在其中控制邮件。

相关内容