我需要将所有流量从一个AWS实例转发到另一个AWS实例。
我正在尝试在云中设置Bro监视器。请参阅图片以获取概述。目前我设置的方式是TestVM的流量被重新路由到Bro worker(NAT),后者将所有内容转发给bro_master。但是我的问题是TestVM位于私有子网中,我需要将其替换为带有公共IP的蜜罐 - 它仍然需要将所有流量转发给bro_worker。此时它不可能,因为它是NATed而我无法分配弹性IP。
如何将所有流量从TestVM转发到Bro_worker并使TestVM公开可用?
谢谢
对于那些正在将AWS ec2实例转发到另一个ip的人来说,它就像魅力一样,见下文。
sudo su -
iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination <DESTINATION_IP>
iptables -t nat -A POSTROUTING -p tcp -d <DESTINATION_IP> --dport 80 -j MASQUERADE
sh -c "iptables-save > /etc/iptables.rules"
我没有完全理解这种情况,但我认为你需要的是反向代理或负载均衡器。
您可以在Linux服务器上配置IPTable,以将一台服务器上的所有流量重定向到另一台服务器。检查:How to redirect traffic to another machine in linux进行一步到位的过程。
以下是博客中解释的步骤:
步骤1:
# echo 1 >/proc/sys/net/ipv4/ip_forward
第2步:告诉IPTables将流量重定向到新服务器:
# iptables -t nat -D PREROUTING -p tcp –dport 80 -j DNAT –to-destination <DESTINATION IP>
第3步:这是IPTables魔术发生的地方。通过这一步,我们告诉IPTables重写到新服务器端口80的连接的来源,看起来来自旧服务器。
# iptables -t nat -D POSTROUTING -p tcp -d <DESTINATION IP> –dport 80 -j MASQUERADE
最后一步是必需的,因为如果我们不告诉新服务器的Web服务器连接来自客户端机器,它会认为它们来自旧服务器。
其他参考文献: