内网主机通过公网IP访问VIP

需求场景一

  • PC与Server对于FortiGate属于不同的接口、相同的网段。
  • PC与Server属于不同网段。

image-20231201085246519

  1. FortiGate的port1(WAN1)连接ISP。默认路由1指向port1(WAN1)。

    FortiGate # get router info routing-table all
    
    Routing table for VRF=0
    S*      0.0.0.0/0 [10/0] via 101.106.1.254, port1, [1/0]
    C       10.10.1.0/24 is directly connected, port3
    C       10.10.2.0/24 is directly connected, port4
    C       101.106.1.0/24 is directly connected, port1
    
  2. FortiGate通过配置VIP,在port1(WAN1)的公网IP 101.106.1.1上映射了FTP Server的21端口。

  3. 内网PC通过port1(WAN1)做SNAT访问互联网。

  4. 内网PC和FTP Server位于不同的FortiGate内网口下,属于不同网段。

  5. 内网PC需要通过FortiGate在port1(WAN1)上映射的公网IP 101.106.1.1(或通过域名解析得到此公网IP)的21端口访问FTP Server。

配置步骤

  1. 正常配置属于外网接口port1(WAN1)的VIP条目,注意这里必须配置VIP的关联接口(此例中为port1),否则无法实现此功能

    image-20231201090050069

    config firewall vip
        edit "VIP_FTP_Server_WAN1"
            set extip 101.106.1.1
            set mappedip "10.10.2.100"
            set extintf "port1"
            set portforward enable
            set extport 21
            set mappedport 21
        next
    end
    
  2. 配置安全策略放通外网port1(WAN1)到内网port4(DMZ)且目的IP为VIP条目的策略,注意这里不用开启SNAT。

    image-20231201144108587

    config firewall policy
        edit 2
            set name "VIP_FTP_Server_WAN1"
            set srcintf "port1"
            set dstintf "port4"
            set action accept
            set srcaddr "all"
            set dstaddr "VIP_FTP_Server_WAN1"
            set schedule "always"
            set service "FTP"
        next
    end
    
  3. 正常配置放通内网port3(LAN)到外网port1(WAN1)的上网策略。

    image-20231201144232574

    config firewall policy
        edit 1
            set name "PC_to_Internet"
            set srcintf "port3"
            set dstintf "port1"
            set action accept
            set srcaddr "10.10.1.0/24"
            set dstaddr "all"
            set schedule "always"
            set service "ALL"
            set nat enable
        next
    end
    

结果验证

内网PC就可以通过FTP服务器的VIP公网IP访问到DMZ区域的FTP服务器。

image-20231201144742422

抓包分析

image-20231201150836953

Debug Flow分析

image-20231201152009062

需求场景二

  • PC与Server对于FortiGate属于相同的接口、相同的网段。
  • PC与Server属于相同网段。

image-20231201170211642

  1. FortiGate的port1(WAN1)连接ISP。默认路由1指向port1(WAN1)。

    FortiGate # get router info routing-table all
    
    Routing table for VRF=0
    S*      0.0.0.0/0 [10/0] via 101.106.1.254, port1, [1/0]
    C       10.10.1.0/24 is directly connected, port3
    C       101.106.1.0/24 is directly connected, port1
    
  2. FortiGate通过配置VIP,在port1(WAN1)的公网IP 101.106.1.1上映射了FTP Server的21端口。

  3. 内网PC通过port1(WAN1)做SNAT访问互联网。

  4. 内网PC和FTP Server位于相同的二层交换机下,与FortiGate的port3(LAN)接口都属于同一网段。

  5. 内网PC需要通过FortiGate在port1(WAN1)上映射的公网IP 101.106.1.1(或通过域名解析得到此公网IP)的21端口访问FTP Server。

配置步骤

  1. 正常配置属于外网接口port1(WAN1)的VIP条目,注意这里必须配置VIP的关联接口(此例中为port1),否则无法实现此功能

    image-20231201170919897

    config firewall vip
        edit "VIP_FTP_Server_WAN1"
            set extip 101.106.1.1
            set mappedip "10.10.1.100"
            set extintf "port1"
            set portforward enable
            set extport 21
            set mappedport 21
        next
    end
    
  2. 配置安全策略放通外网port1(WAN1)到内网port3(LAN)且目的IP为VIP条目的策略,注意这里不用开启SNAT。

    image-20231201171612784

    config firewall policy
        edit 2
            set name "VIP_FTP_Server_WAN1"
            set srcintf "port1"
            set dstintf "port3"
            set action accept
            set srcaddr "all"
            set dstaddr "VIP_FTP_Server_WAN1"
            set schedule "always"
            set service "FTP"
        next
    end
    
  3. 正常配置放通内网port3(LAN)到外网port1(WAN1)的上网策略。

    image-20231201144232574

    config firewall policy
        edit 1
            set name "PC_to_Internet"
            set srcintf "port3"
            set dstintf "port1"
            set action accept
            set srcaddr "10.10.1.0/24"
            set dstaddr "all"
            set schedule "always"
            set service "ALL"
            set nat enable
        next
    end
    

结果验证

内网PC就可以通过FTP服务器的VIP公网IP访问到LAN区域的FTP服务器。

image-20231201171804364

抓包分析

image-20231201172735337

Debug Flow分析

image-20231201173124322

需求场景三

  • PC与Server对于FortiGate属于不同的接口、不同的网段。
  • PC与Server属于不同网段。

image-20231201191040437

  1. FortiGate的port1(WAN1)连接ISP。默认路由1指向port1(WAN1)。

    FortiGate # get router info routing-table all
    
    Routing table for VRF=0
    S*      0.0.0.0/0 [10/0] via 101.106.1.254, port1, [1/0]
    S       10.10.1.0/24 [10/0] via 10.10.3.2, port3, [1/0]
    S       10.10.2.0/24 [10/0] via 10.10.4.2, port4, [1/0]
    C       10.10.3.0/24 is directly connected, port3
    C       10.10.4.0/24 is directly connected, port4
    C       101.106.1.0/24 is directly connected, port1
    
  2. FortiGate通过配置VIP,在port1(WAN1)的公网IP 101.106.1.1上映射了FTP Server的21端口。

  3. 内网PC通过port1(WAN1)做SNAT访问互联网。

  4. 内网PC和FTP Server位于不同的3层交换机下,属于不同网段,网关为各自相连的L3-SW,且PC可以和FTP Server通过两台L3-SW直接通信。两台L3-SW与FortiGate的2个接口分别三层互联,两台L3-SW的网关都指向FortiGate。

  5. 内网PC需要通过FortiGate在port1(WAN1)上映射的公网IP 101.106.1.1(或通过域名解析得到此公网IP)的21端口访问FTP Server。

配置步骤

  1. 正常配置属于外网接口port1(WAN1)的VIP条目,强烈建议配置VIP的关联接口(此例中为port1,不要配置为any),否则可能产生其他问题

    image-20231201201218563

    config firewall vip
        edit "VIP_FTP_Server_WAN1"
            set extip 101.106.1.1
            set mappedip "10.10.2.100"
            set extintf "port1"
            set portforward enable
            set extport 21
            set mappedport 21
        next
    end
    
  2. 配置安全策略:公网port1(WAN1)到port4(DMZ),源地址为内网PC网段10.10.1.0/24,且目的IP为VIP条目的策略,注意这条策略开启SNAT,用于内网PC对VIP的访问。

    image-20231201201539251

    config firewall policy
        edit 3
            set name "LAN_to_VIP_FTP_Server"
            set srcintf "port1"
            set dstintf "port4"
            set action accept
            set srcaddr "10.10.1.0/24"
            set dstaddr "VIP_FTP_Server_WAN1"
            set schedule "always"
            set service "ALL"
            set nat enable
        next
    end
    
  3. 配置安全策略放通外网port1(WAN1)到内网port4(DMZ)且目的IP为VIP条目的策略,注意这里不用开启SNAT,用于外网客户端对VIP的访问。

    image-20231201193155973

    config firewall policy
        edit 2
            set name "VIP_FTP_Server_WAN1"
            set srcintf "port1"
            set dstintf "port4"
            set action accept
            set srcaddr "all"
            set dstaddr "VIP_FTP_Server_WAN1"
            set schedule "always"
            set service "FTP"
        next
    end
    
  4. 正常配置放通内网port3(LAN)到外网port1(WAN1)的上网策略。

    image-20231201144232574

    config firewall policy
        edit 1
            set name "PC_to_Internet"
            set srcintf "port3"
            set dstintf "port1"
            set action accept
            set srcaddr "10.10.1.0/24"
            set dstaddr "all"
            set schedule "always"
            set service "ALL"
            set nat enable
        next
    end
    
  5. 注意策略顺序如下。

    image-20231201201653635

结果验证

内网PC就可以通过FTP服务器的VIP公网IP访问到DMZ区域的FTP服务器。

image-20231201193902859

抓包分析

image-20231201202301273

Debug Flow分析

image-20231201202526416

需求场景四

  • PC与Server对于FortiGate属于不同的接口、相同的网段。
  • PC与Server属于不同网段。

image-20231201085333133

  1. FortiGate的port1(WAN1)和port2(WAN2)分别连接两个ISP。默认路由1指向port1(WAN1),路由优先级为10,默认路由2指向port2(WAN2),路由优先级为20。

    FortiGate # get router info routing-table all
    
    Routing table for VRF=0
    S*      0.0.0.0/0 [10/0] via 101.106.1.254, port1, [10/0]
                      [10/0] via 202.106.1.254, port2, [20/0]
    C       10.10.1.0/24 is directly connected, port3
    C       10.10.2.0/24 is directly connected, port4
    C       101.106.1.0/24 is directly connected, port1
    C       202.106.1.0/24 is directly connected, port2
    
  2. FortiGate通过配置VIP,在port2(WAN2)的公网IP 202.106.1.1上映射了FTP Server的21端口。

  3. 内网PC通过port1(WAN1)做SNAT访问互联网(备用通过port2上网)。

  4. 内网PC需要通过FortiGate在port2(WAN2)上映射的公网IP 202.106.1.1(或通过域名解析得到此公网IP)的21端口访问FTP Server。

配置步骤

  1. 正常配置属于外网接口port2(WAN2)的VIP条目,强烈建议配置VIP的关联接口(此例中为port2,不要配置为any),否则可能引起其他问题

    image-20231204092932586

    config firewall vip
        edit "VIP_FTP_Server_WAN2"
            set extip 202.106.1.1
            set mappedip "10.10.2.100"
            set extintf "port2"
            set portforward enable
            set extport 21
            set mappedport 21
        next
    end
    
  2. 配置安全策略放通外网port2(WAN2)到内网port4(DMZ)且目的IP为VIP条目的策略,注意这里不用开启SNAT。

    image-20231204093406832

    config firewall policy
        edit 2
            set name "VIP_FTP_Server_WAN1"
            set srcintf "port2"
            set dstintf "port4"
            set action accept
            set srcaddr "all"
            set dstaddr "VIP_FTP_Server_WAN2"
            set schedule "always"
            set service "FTP"
        next
    end
    
  3. 正常配置放通内网port3(LAN)到外网port1(WAN1)、port2(WAN2)的上网策略。

    image-20231204095110227

    config firewall policy
        edit 1
            set name "PC_to_Internet"
            set srcintf "port3"
            set dstintf "port1" "port2"
            set action accept
            set srcaddr "all"
            set dstaddr "all"
            set schedule "always"
            set service "ALL"
            set nat enable
        next
    end
    

结果验证

内网PC就可以通过FTP服务器的VIP公网IP访问到DMZ区域的FTP服务器。

image-20231204095832666

抓包分析

image-20231204100735750

Debug Flow分析

image-20231204101027345

总结

内网PC通过VIP的公网地址访问内部服务器时,对于FortiGate来说:

  • 如果发起访问的内网PC和VIP映射的真实服务器在FortiGate的同一个内网口下(与网段无关),FortiGate会自动做DNAT+SNAT。
  • 如果发起访问的内网PC和VIP映射的真实服务器不在FortiGate的同一个内网口下(与网段无关),FortiGate会自动做DNAT,但不会做SNAT。如果内网服务器和PC的内网IP可以不通过FortiGate直接访问,则需要像场景三的步骤2那样额外配置一条源为内网PC网段,目标为VIP的开启SNAT的策略,否则服务器返回的Syn ack会从下游交换机直接返回,而不会经过FortiGate。

特殊情况

如果FortiGate开启了异步路由(asymroute),且针对内网PC和服务器配置了用于上网的策略路由。客户端访问服务器后,服务器返回的流量也会查找策略路由,有可能匹配上上网的策略路由从公网口发出,从而导致返回的流量无法到达客户端。

所以这种情况下一定要针对服务器→客户端反向的流量配置策略路由,出接口配置为内网口,并放置在上网策略路由的前边。

Copyright © 2024 Fortinet Inc. All rights reserved. Powered by Fortinet TAC Team.
📲扫描下方二维码分享此页面👇
该页面修订于: 2024-03-14 11:19:35

results matching ""

    No results matching ""