如何根据主机名标记数据包?

如何根据主机名标记数据包?

我们可以通过以下方式根据 IP 地址标记数据包 -

iptables -A FORWARD -t mangle -s 123.2.3.4 -j MARK --set-mark 1

如何根据主机名标记数据包?我试过这个 -

iptables -A FORWARD -t mangle -s google.co.in -j MARK --set-mark 1

但是该实用程序从 DNSiptables获取 IP 地址并将条目添加到 mangle 表中。如何标记来自 的所有数据包,而不仅仅是来自 Google 的单个服务器。由于有数千台服务器,手动添加所有 IP 地址也是不可能的。google.co.ingoogle.co.in

有什么方法可以读取数据包并获取主机名并标记它?

谢谢。

答案1

防火墙规则不在 DNS 级别运行。在某些情况下,iptables 会为您执行 DNS 解析,但结果可能不是您想要的结果,并且不会遵循 DNS 名称中的 IP 更改。

相反,你需要一个 HTTP 代理,比如 Squid 及其传出数据包标记 (http://www.squid-cache.org/Doc/config/tcp_outgoing_mark/) 功能来处理此类行为。

对于传入流量,如果你对 GoogleBot 特别感兴趣,你可以查看非官方的 IP 范围列表,例如https://evert.meulie.net/faqwd/googlebot-ip-ranges/并为此设置你的 iptables。

答案2

“由于服务器数量达数千台,手动添加所有 IP 地址也是不可能的。”

您可以建立并维护所有 google AS 的小列表,然后根据这些网络范围添加防火墙规则。

也许你甚至可以在互联网上找到所有的 google AS。

(看一下

相关内容