【问题标题】:Iptables forward connection timeoutiptables 转发连接超时
【发布时间】:2018-08-09 12:35:37
【问题描述】:

我将从 Server3 连接到位于 Server2-OracleDB 上的 Oracle 数据库。 Server1-Proxy 和 Server3 位于 AWS 和不同的 VPC 网络中,但 VPC 已对等,并且它们可以使用私有 IP 相互访问。 Server2-OracleDB 位于外部网络中,我可以通过 Server1-Proxy 和 Server2-OracleDB 之间的 VPN 连接访问它。

所以只有 Server1-Proxy 可以访问外部 Oracle-DB 服务器。现在我需要从 Server3 访问 OracleDB。我想做的是使用 iptables 转发来实现这种访问。

我的 Iptables 规则在 Server1-Proxy 中如下所示:

Server3 IP:172.28.201.230,Server1-Proxy IP:172.28.205.10,Server2-OracleDB IP:10.130.180.230

iptables -t nat -A PREROUTING -p tcp -s 172.28.201.230 --dport 1521 -j DNAT --to 10.130.180.230
iptables -A FORWARD -s 10.130.180.230 -p tcp --sport 1521 -j ACCEPT
iptables -A FORWARD -d 10.130.180.230 -p tcp --dport 1521 -j ACCEPT
iptables -A FORWARD -s 10.130.180.230 -p tcp --sport 1024:65535 -j ACCEPT
iptables -t nat -A POSTROUTING -p tcp -j MASQUERADE

当我尝试从 Server3 到 Server2-OracleDB 的 telnet 时,它给了我连接超时,当我检查 Server3 网络中的流日志时,我可以看到:

2 myaccount-id myinterface-id 172.28.201.230 10.130.189.230 49864 1521 6 7 420 1533815087 1533815207 ACCEPT OK

我似乎没有从 OracleDB 服务器得到答案,我猜是 iptables 设置有问题。

ip_forward 已启用,并且路由表和安全组看起来正确。

谁能帮我解决这个问题?

【问题讨论】:

    标签: amazon-web-services vpn iptables amazon-vpc


    【解决方案1】:

    我不是 iptables 方面的专家,但我认为你需要伪装你的规则,而不仅仅是做 DNAT。如果你做 DNAT 服务器 2 应该有服务器 3 网络的路由。 如果你愿意,你可以在服务器 1 上尝试这样的事情:

    iptables -t nat -A POSTROUTING -p tcp --dport 1521 -j MASQUERADE
    alternatively you can specify source ip:
    iptables -t nat -A POSTROUTING -p tcp --dport 1521 -s 172.28.205.10 -j MASQUERADE
    

    在这两个规则中,您应该为 server2 网络指定路由,例如:

    route add -net 10.130.180.230/24 gw  172.28.205.10
    

    【讨论】:

    • 谢谢你的回答,我试过了,还是不行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    相关资源
    最近更新 更多