【问题标题】:Forwarding all network traffic to another AWS instance将所有网络流量转发到另一个 AWS 实例
【发布时间】:2016-03-01 16:57:02
【问题描述】:

我需要将所有流量从一个 AWS 实例转发到另一个。

我正在尝试在云中设置 Bro 监视器。请参阅图片了解概览。 目前,我将其设置为将 TestVM 的流量重新路由到 Bro worker (NAT),后者将所有内容转发到 bro_master。但是我的问题是 TestVM 位于私有子网中,我需要将其替换为具有公共 IP 的蜜罐 - 它仍然需要将所有流量转发到 bro_worker。目前不可能,因为它已经过 NAT,我无法分配弹性 IP。

如何将所有流量从 TestVM 转发到 Bro_worker 并使 TestVM 公开可用?

谢谢

【问题讨论】:

    标签: amazon-web-services forward traffic reroute


    【解决方案1】:

    对于那些正在搜索 AWS ec2 实例转发到另一个 ip 的人来说,它就像一个魅力,见下文。

    1. 必须以root登录,sudo不行,所以先用sudo su -
    2. 允许端口 80(不要忘记在您的 aws 安全组中允许端口 80): iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
    3. 转发到另一个 IP(使用 -- 而不是长破折号,也不知道为什么上面的答案有 D,因为那是删除,使用 A):
      1. iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination <DESTINATION_IP>
      2. iptables -t nat -A POSTROUTING -p tcp -d <DESTINATION_IP> --dport 80 -j MASQUERADE
    4. 如果您想在重启后保留设置,请保存:sh -c "iptables-save > /etc/iptables.rules"

    【讨论】:

    • 我必须添加“echo 1 >/proc/sys/net/ipv4/ip_forward”才能使其工作
    【解决方案2】:

    我没有完全理解这个场景,但我认为您需要的是反向代理或负载均衡器。

    【讨论】:

      【解决方案3】:

      您可以在 Linux 服务器上配置 IPTables,以将来自一台服务器的所有流量重定向到另一台服务器。检查: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
      

      最后一步是必需的,因为如果我们不告诉新服务器的网络服务器连接来自客户端计算机,它会认为它们来自旧服务器。

      其他参考资料

      【讨论】:

      • 谢谢,尝试了您的解决方案,但没有成功。我做了很多研究,似乎在 AWS 中无法进行端口转发。还有其他建议吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 2017-07-18
      • 2020-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多