![WatchGuard 端口转发/静态 NAT](https://linux22.com/image/659993/WatchGuard%20%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%2F%E9%9D%99%E6%80%81%20NAT.png)
我正在尝试将 WatchGuard 防火墙上的特定端口转发到特定 VLAN 中的内部主机。我的设置大致如下:
INTERNET
vv
WatchGuard
vv--------vv--------vv
[VLAN1] [VLAN2] [VLAN3]
vv
Server
我设置了一条 SNAT 规则,从Any-External
到内部服务器的 IP 地址,无需端口转换。然后,我添加了一条防火墙策略,其中
- 行动:允许
- 端口上的自定义过滤器TCP:10000
- 从任何来源
- 致我的斯奈特规则
这一切都是按照文档但是当尝试从外部 IP 访问它时,端口仍然被过滤并且被记录为未处理(xxx 是外部客户端,yyy 是防火墙的 IP):
Process=firewall Disposition=Deny Policy=Unhandled External Packet-00 Source IP=xx.xx.xx.xx Destination IP=yy.yy.yy.yy Source Interface=0-External Destination Interface=0-External Source Port=19852 Destination Port=10000 Protocol=webmin/tcp
我一直在尝试端口转换、更具体的 SNAT 和代理接口设置(而不是过滤操作),但就是无法让它正常工作。我错过了什么?
编辑(2015-06-16):这是我的配置屏幕:
内网端口检查:
$ nmap -sT -p 10000 192.168.79.100
[...]
PORT STATE SERVICE
10000/tcp open snet-sensor-mgmt
[...]
从外部网络进行端口检查(在互联网连接的 IP yyy 上,xxx 是已知的开放管理端口):
user@extServer:~# nmap -sT -p xxx,10000 yyy.yyy.yyy.yyy
[...]
PORT STATE SERVICE
8089/tcp open unknown
10000/tcp filtered snet-sensor-mgmt
[...]
答案1
如果您在 SNAT 规则中使用了“Any-External”,那么您就在这里犯了错误。
选择您实际将用于此 SNAT 规则的外部 IP 地址,而不是别名“Any-External”,然后一切就会开始正常工作。
您仍然可以在过滤规则中使用“Any-External”。
问题在于对别名“Any-External”的理解。防火墙上端口上配置的所有 IP 地址都包含在别名“Firebox”中,而“Any-External”则从提供商的网关 IP 地址开始。您可以创建一个别名“external-ports” - 这样在 SNAT 规则中就可以正常工作,但“Any-External”不行。
答案2
事实证明,我的 ISP 为连接提供了两个 IP 地址(没有注意到我),而我一直在与错误的 IP 地址通信。管理端口已绑定到所有接口(因此它是开放的),但绑定的外部端口却没有。
提醒自己:仔细检查 IP。
向@BZ 致谢,感谢他的 rubbishducking