无法通过 2 个 Fortigate 防火墙后的 VPN 访问服务器;但是 ping 工作正常

网络工程 防火墙 纳特 加强
2022-02-18 02:47:46

客户端 -> VPN -> FG1 -> FG2 -> 服务器

  1. 使用远程 IP 10.20.30.4/32 和本地 IP 10.20.30.40/32 创建了一个 VPN 隧道
  2. 在 FG1 上,建立 NAT/VIP,VIP 为 10.20.30.40,服务器 IP 为 192.168.2.6

现在,客户端能够 ping VIP 但无法在端口 35390 上建立 tcp 调试流日志是:

*id=13 trace_id=1011 func=print_pkt_detail line=4307 msg="vd-root received a packet(proto=6, 10.20.30.4:46663->192.168.2.6:35390) from INTERNET-INTERFACE. flag [S], seq 186011604, ack 0, win 8192" id=13 trace_id=1011 func=init_ip_session_common line=4463 msg="allocate a new session-36c86cf8" id=13 trace_id=1011 func=vf_ip4_route_input line=1605 msg="find a route: flags=00000000 gw-192.168.2.6 via SERVER-INTERFACE" id=13 trace_id=1011 func=__iprope_tree_check line=534 msg="use addr/intf hash, len=3" id=13 trace_id=1011 func=fw_forward_handler line=537 msg="**Denied by forward policy check (policy 0)**"*

但是FG2中有政策;并且通过这个政策只有 ping 工作(在日志中检查相同)

无法理解问题出在哪里。请指导。

2个回答
  1. 除非没有其他方法,否则不要将(源)NAT 与 VPN 一起使用。
  2. 虚拟 IP 是目标 NAT - 也应避免
  3. 在每个 FGT 的远端设置相应的路由,确保节点使用 FGT 作为网关(或另一个知道路由的网关) - 建议使用 OSPF 或 RIP 动态路由
  4. 在每一侧添加策略,允许您需要的通信

假设调试跟踪来自 FG2,这表示流量被丢弃,因为 FG2 不知道源网络(而不是:地址)10.20.30.4/32。回程路线不见了。
修复:
- 在 FG2 上创建指向 FG1 的 10.20.30.4/32 的静态路由

- 将 FG2 的默认路由指向连接 FG1 的接口

- 在 FG1 的出站策略上启用 NAT - 这将交换源地址10.20.30.4到10.20.30.xx,即FG1的出接口地址。

最后一个选项仅修复配置错误,因此前两个选项更可取,因为它们可以纠正问题并记录来自外部子网的流量进入的事实。