我在 NAT 路由器后面有一个专用的 openVPN 服务器,并且我在 DMZ 中设置了服务器的静态 IP;问题是使用当前规则集(如下面的屏幕截图所示),我无法从互联网连接到 VPN 服务器,也无法使用 SSH;但是,如果我允许 eth0 上的流量,则一切正常,但这几乎允许任何类型的流量到达主机,这完全违背了 iptables 规则集的目的;在屏幕截图中,我将到 eth0 的流量(从下到上的第二条规则)设置为零,并且使用我上面施加的规则无法访问主机,但如果我将该规则设置为接受,则一切正常,但正如我所说,这违背了上述所有规则的目的
主机只有一个物理以太网适配器 (eth0),其 IP 位于 NAT 路由器后面
我不知道这里的问题是什么,任何帮助都将不胜感激;如果我在 NAT 后面的网络上,一切正常,所有策略都有效,即使从下到上的第二条规则设置为 Nothing(不活动)
谢谢你!
https://i.stack.imgur.com/YOCpU.jpg
OpenVPN 守护进程实例在端口 1194 和 1195 上运行 SSH 守护进程在端口 50 上运行
这是 iptables 规则集配置文件,我修剪了所有规则,只留下端口 50 向公众开放,但我仍然无法访问它
# Generated by iptables-save v1.3.8 on Mon Jan 2 14:46:33 2012
*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Jan 2 14:46:33 2012
# Generated by iptables-save v1.3.8 on Mon Jan 2 14:46:33 2012
*mangle
:PREROUTING ACCEPT [213:219554]
:INPUT ACCEPT [213:219554]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [155:35616]
:POSTROUTING ACCEPT [155:35616]
COMMIT
# Completed on Mon Jan 2 14:46:33 2012
# Generated by iptables-save v1.3.8 on Mon Jan 2 14:46:33 2012
*filter
:FORWARD ACCEPT [0:0]
:INPUT DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp -m udp -i eth0 --sport 50 -j ACCEPT
-A INPUT -p tcp -m tcp -i eth0 --sport 50 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.0.0 -i eth0 -j ACCEPT
COMMIT
# Completed on Mon Jan 2 14:46:33 2012
编辑:
虽然真的很奇怪,SSH 可以工作,端口 10000 上的 Web 服务器也可以工作,但我似乎无法连接到 VPN 服务器,而且我设置的规则与你们建议的相同,但端口不同,即 1194 和 1195,即使我允许所有流量通过...
我切换到了 UDP,现在我可以公开连接,但客户端在接收服务器响应时挂起,所以基本上客户端可以将数据包发送到服务器,但服务器无法路由回来;openVPN 位于 2 个 NAT 路由器后面,第一个 NAT 路由器面向互联网,第二个 NAT 路由器在第一个后面有一个静态 IP,并且它设置在第一个面向互联网的路由器的 DMZ 中,并且我在第二个 NAT 路由器上转发了特定端口,然而让我困惑的是,我可以提供网页,并且可以在此配置下进行 SSH,但无法使 openVPN 正常工作......
答案1
我曾在 ubuntu 论坛上发布了链接问题,并且有用户回答了我的问题,一切都很好,但他们似乎没有在这里声称自己的功劳 :( 所以我链接回论坛并发布答案!
我想我需要目标端口条件而不是源端口条件,术语混淆:)
如果我理解正确的话(通常情况并非如此),SSH 守护进程正在监听端口 50。尝试更改此行:
-A INPUT -p tcp -m tcp -i eth0 --sport 50 -j ACCEPT
更改为:
-A INPUT -p tcp -m tcp -i eth0 --dport 50 -j ACCEPT