在 AWS 中,我们在同一个子网/VPC 中有 3 个实例。我们希望客户端实例向第二个分析实例发出 DNS 请求,然后将请求转发到运行 DNS 服务的第三个实例。然后,DNS 服务应向分析实例提供响应,然后分析实例应响应客户端。
目的是分析实例可以拦截客户端和 DNS 实例之间的流量以进行分析。
客户端实例 -> 分析实例 (NAT) -> DNS 实例
当前设置允许客户端实例通过分析实例向 DNS 实例发送 DNS 请求。DNS 实例响应分析实例,tcpdump
但客户端实例从未收到分析实例的响应。
我们在 AWS 中为执行 NAT 的分析实例关闭了源/目标检查。
我们首先在 Analysis 实例上启用了转发:
sudo sysctl -w net.ipv4.ip_forward=1
然后我们将以下 IPTables 规则添加到 Analysis 实例中
sudo iptables -A FORWARD -p udp --dport 53 -d 192.168.1.151 -j ACCEPT
sudo iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination 192.168.1.151
sudo iptables -t nat -A POSTROUTING -d 192.168.1.151 -s 192.168.1.156 -p udp --dport 53 -j SNAT --to 192.168.1.213
POSTROUTING
还尝试了以下其他规则
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -p udp -d 192.168.1.151 --dport 53 -j SNAT --to-source 192.168.1.213
sudo iptables -t nat -A POSTROUTING -p udp -d 192.168.1.151 --dport 53 -j MASQUERADE
所有结果都相同,客户端实例永远不会收到 DNS 应答。关于什么可能阻止分析实例返回响应的想法?