好吧,我的情况基本上是这样的…我有一个框,充当路由器,有2个接口, eth0
和eth1
。 eth1
是我的上行链路,就是这个盒子通过它获得一个互联网连接的接口。 eth0
是下行链路,也就是其他设备/交换机/无线AP /您将连接的接口。
我想以某种方式,使用iptables,使所有请求端口53任何源于eth0
地址,而不是发送到运行在127.0.0.1
的DNS服务器,当该DNS服务器发送答复时,发送请求应该看起来像回复来自他们实际发送数据包的地址。
例如,假设有一台连接eth0
的机器configuration为使用8.8.8.8
作为DNS服务器。 路由器的DNS服务器有一个example.com
的logging,指向192.0.2.1
。 连接到eth0
的机器上有人运行dig example.com @8.8.8.8
。 他们得到的答复是来自8.8.8.8
,但ACTUALLY来自路由select框,并且这个答复表示example.com的Alogging是192.0.2.1
。
我怎样才能做到这一点?
请注意,这需要适用于任何DNS服务器地址,而不仅仅是8.8.8.8
。
你需要特定的软件来执行这个,它被认为是邪恶的。 通过对DNSstream量进行中间人攻击来打破互联网正是为什么像DNSSec这样的东西被推出的原因。
如果您打算查看,您可能需要检查“DNS拦截”和“透明DNS代理”的结果。 一些想到的东西是梭子鱼防火墙, dnschef
,也许是各种网页过滤套件提供这个function。