iptables 没有正确路由 ssh

iptables 没有正确路由 ssh

我正在研究 AWS 系统,建立自己的小型网络。

我在开放子网中有一个 AWS 负载均衡器。在带有负载均衡器的子网中有一个纳米大小的服务器,运行 Apache,它充当我的穷人代理服务器,路由到我的 DMZ 子网。我让它运行得很好,路由到 HTTPS 和一切。它是一种简单而美丽的东西。

这就是我现在痛苦的原因。

我的 DMZ 中的一台机器是 gitlab 服务器。Git 需要 SSH 访问权限才能进行克隆等操作。由于我运行的是 apache,而且我了解 apache,可以蒙着眼睛配置它,所以我需要转发 SSH。由于这台机器是唯一需要从外部进行 SSH 的机器,所以我觉得这很简单,iptables 端口转发。

因此,在尝试让 IP 表正确转发大约 5 个小时后,我开始进行完整的系统测试,并意识到不知何故我的机器只能接受端口 22。这真的很糟糕。即使从本地 curl,我也无法访问 apache。我今天就此放弃,但各位大师有没有在我的 iptables 配置中看到任何会关闭对代理机器的 http 和 https 访问的内容?

我认为我的问题在于输出部分中的 forward 语句。我认为发生的事情是 forward 语句将所有流量转发到该 .69:22 端口。问题是该语句是使 SSH 内容转发的关键。

代理机器 = 10.0.0.5

gitlab = 10.0.1.69

# Generated by iptables-save v1.4.18 on Sun Aug 14 01:06:58 2016
*filter
:INPUT ACCEPT [326:116424]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [306:122290]
-A INPUT -p tcp -m tcp --dport 22 -j LOG
-A FORWARD -d 10.0.0.5/32 -p tcp -m tcp --dport 22 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 22 -j LOG
COMMIT
# Completed on Sun Aug 14 01:06:58 2016
# Generated by iptables-save v1.4.18 on Sun Aug 14 01:06:58 2016
*nat
:PREROUTING ACCEPT [112:6680]
:INPUT ACCEPT [112:6680]
:OUTPUT ACCEPT [54:3304]
:POSTROUTING ACCEPT [54:3304]
-A PREROUTING -d 10.0.0.5/32 -i eth0 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.1.69:22
-A POSTROUTING -d 10.0.1.69/32 -p tcp -m tcp --dport 22 -j SNAT --to-source 10.0.0.5
COMMIT
# Completed on Sun Aug 14 01:06:58 2016

相关内容