No menu items!
No menu items!
More

    [Fortigate] VPN Site to Site sử dụng mã hoá 2 phase

    VPN Site-to-Site là dạng kết nối nhiều văn phòng trụ sở xa nhau thông qua các thiết bị chuyên dụng và một đường truyền được mã hoá ở quy mô lớn hoạt động trên nền Internet. VPN Site-to-Site là giải pháp phù hợp cho các khách hàng có nhu cầu nối các mạng với nhau để liên lạc và chia sẻ dữ liệu, đảm bảo an toàn bảo mật.

    Sơ đồ:

    1. DC Fortigate.

    Cài đặt Hostname và mật khẩu cho thiết bị.

    config sys global
      set hostname DC-Fortigate
    end
    
    config system admin
      edit admin
        set password Hoanghd164
    end

    Đặt ip cho các interface đấu nối, trong đó port 1 sẽ đi internet và port 2 sẽ là mạng local.

    config system interface
      edit port1
        set mode static
        set ip 192.168.13.225 255.255.254.0
        set allowaccess https http ssh ping snmp
      next
        edit "port2"
          set ip 30.0.0.1 255.255.255.0
          set allowaccess ping
          set type physical
      next
    end

    Trỏ default route ra internet

    config router static
      edit 1
        set dst 0.0.0.0 0.0.0.0
        set gateway 192.168.12.5
        set device port1
    end

    Cài đặt DNS cho thiết bị.

    config system dns
      set primary 8.8.8.8
      set secondary 1.1.1.1
    end

    Thay đổi port web management mặc định.

    config system global
      set admin-port 8480
      set admin-sport 8443
    end

    Nếu dòng Fortigate của bạn có port fortilink thì bạn có thể xoá nó nếu không dùng đến và nếu thiết bị của bạn không có port fortilink thì bạn có thể bỏ qua bước này.

    Hình ảnh cho thấy thiết bị của bạn có cổng fortilink

    Mình có cổng fortilink nên mình sẽ thao tác các lệnh bên dưới.

    config system ntp
      set ntpsync disable
      set server-mode disable
    end
    
    config system dhcp server
      delete 1
    end
    
    config system interface
      delete fortilink
    end

    Tạo kết nối VPN giữa 2 site.

    config vpn ipsec phase1-interface
      edit "VPN-DC-To-DR"
        set interface "port1"
        set peertype any
        set net-device disable
        set proposal des-sha256
        set dhgrp 20
        set remote-gw 192.168.13.226
        set psksecret Hoanghd164
      next
    end
    config vpn ipsec phase2-interface
      edit "VPN-DC-To-DR"
        set phase1name "VPN-DC-To-DR"
        set proposal des-sha256
        set pfs disable
        set keepalive enable
        set keylifeseconds 28800
      next
    end

    Verify lại cấu hình VPN.

    $ get vpn ipsec tunnel details
    
    gateway
      name: 'VPN-DC-To-DR'
      type: route-based
      local-gateway: 192.168.13.225:0 (static)
      remote-gateway: 192.168.13.226:0 (static)
      dpd-link: on
      mode: ike-v1
      interface: 'port1' (3)
      rx  packets: 4  bytes: 560  errors: 0
      tx  packets: 4  bytes: 336  errors: 3
      dpd: on-demand/negotiated  idle: 20000ms  retry: 3  count: 0
      selectors
        name: 'VPN-DC-To-DR'
        auto-negotiate: disable
        mode: tunnel
        src: 0:0.0.0.0/0.0.0.0:0
        dst: 0:0.0.0.0/0.0.0.0:0
        SA
          lifetime/rekey: 28800/28239
          mtu: 1446
          tx-esp-seq: 5
          replay: enabled
          qat: 0
          inbound
            spi: 39ea9384
            enc:     des  5c4dad8a808bae4f
            auth: sha256  673644c8474eee481bb194994041f6b3c5cba8864e3bb1224d757dd366b46fc3
          outbound
            spi: df87df26
            enc:     des  d9d4f7e5f8186591
            auth: sha256  411fa2192f358b2e2d87fc0b36dded8b5a54d780706bd5aeca454d1215196838
    
    

    Mình tạo một số Address để test.

    config firewall address
        edit "Subnet-10.0.101.0"
            set associated-interface "port2"
            set subnet 10.0.101.0 255.255.255.0
        next
        edit "Subnet-10.0.102.0"
            set associated-interface "port2"
            set subnet 10.0.102.0 255.255.255.0
        next
        edit "Subnet-30.0.0.0"
            set associated-interface "port2"
            set subnet 30.0.0.0 255.255.255.0
        next
        edit "Subnet-20.0.101.0"
            set associated-interface "VPN-DC-To-DR"
            set subnet 20.0.101.0 255.255.255.0
        next
        edit "Subnet-20.0.102.0"
            set associated-interface "VPN-DC-To-DR"
            set subnet 20.0.102.0 255.255.255.0
        next
        edit "Subnet-50.0.0.0"
            set associated-interface "VPN-DC-To-DR"
            set subnet 50.0.0.0 255.255.255.0
        next
    end

    Verify kết quả trên web console.

    Sau khi tạo kết nối xong, hãy tạo firewall policy cho kết nối này.

    config firewall policy
        edit 1
            set name "VPN DC To DR"
            set srcintf "port2"
            set dstintf "VPN-DC-To-DR"
            set srcaddr "Subnet-10.0.101.0" "Subnet-10.0.102.0" "Subnet-30.0.0.0"
            set dstaddr "Subnet-20.0.101.0" "Subnet-20.0.102.0" "Subnet-50.0.0.0"
            set action accept
            set status enable
            set schedule "always"
            set service "ALL"
            set logtraffic disable
        next
        edit 2
            set name "VPN DR To DC"
            set srcintf "VPN-DC-To-DR"
            set dstintf "port2"
            set srcaddr "Subnet-20.0.101.0" "Subnet-20.0.102.0" "Subnet-50.0.0.0"
            set dstaddr "Subnet-10.0.101.0" "Subnet-10.0.102.0" "Subnet-30.0.0.0"
            set action accept
            set status enable
            set schedule "always"
            set service "ALL"
            set logtraffic disable
        next
        edit 3
            set name "Local To Internet"
            set srcintf "port2"
            set dstintf "port1"
            set srcaddr "Subnet-10.0.101.0" "Subnet-10.0.102.0" "Subnet-30.0.0.0"
            set dstaddr "all"
            set action accept
            set status enable
            set schedule "always"
            set service "ALL"
            set logtraffic disable
            set nat enable
        next
    end

    Verify lại các firewall policy đã tạo bằng lệnh dưới.

    show firewall policy

    Hoặc sử dụng web console.

    Hãy tạo các vlan test của DC Site.

    config system interface
        edit "VlanID 101"
            set vdom "root"
            set ip 10.0.101.254 255.255.255.0
            set allowaccess ping ssh
            set device-identification enable
            set role lan
            set interface "port2"
            set vlanid 101
        next
        edit "VlanID 102"
            set vdom "root"
            set ip 10.0.102.254 255.255.255.0
            set allowaccess ping ssh
            set device-identification enable
            set role lan
            set interface "port2"
            set vlanid 102
        next
    end

    Tạo IP của Tunnel.

    config router static
        edit 1
            set gateway 192.168.12.5
            set device "port1"
        next
        edit 2
            set dst 20.0.101.0 255.255.255.0
            set device "VPN-DC-To-DR"
        next
        edit 3
            set dst 20.0.102.0 255.255.255.0
            set device "VPN-DC-To-DR"
        next
        edit 4
            set dst 50.0.0.0 255.255.255.0
            set device "VPN-DC-To-DR"
        next
    end

    Verify lại các interface và các subnet đã tạo.

    $ diagnose ip address list
    IP=192.168.13.225->192.168.13.225/255.255.254.0 index=3 devname=port1
    IP=30.0.0.1->30.0.0.1/255.255.255.0 index=6 devname=port2
    IP=172.30.1.1->172.30.1.1/255.255.255.255 index=21 devname=VPN-DC-To-DR
    IP=10.0.101.254->10.0.101.254/255.255.255.0 index=22 devname=VlanID 101
    IP=10.0.102.254->10.0.102.254/255.255.255.0 index=23 devname=VlanID 102

    Verify kết quả trên web console.

    Static route để học các subnet của DR Site.

    config router static
        edit 2
            set dst 20.0.101.0 255.255.255.0
            set device "VPN-DC-To-DR"
        next
        edit 3
            set dst 20.0.102.0 255.255.255.0
            set device "VPN-DC-To-DR"
        next
        edit 4
            set dst 50.0.0.0 255.255.255.0
            set device "VPN-DC-To-DR"
        next
    end

    Verify lại các route đã tạo.

    $ get router info routing-table static
    Routing table for VRF=0
    S*      0.0.0.0/0 [10/0] via 192.168.12.5, port1
    S       20.0.101.0/24 [10/0] via VPN-DC-To-DR tunnel 192.168.13.226
    S       20.0.102.0/24 [10/0] via VPN-DC-To-DR tunnel 192.168.13.226
    S       50.0.0.0/24 [10/0] via VPN-DC-To-DR tunnel 192.168.13.226
    S       172.30.1.0/30 [5/0] via VPN-DC-To-DR tunnel 192.168.13.226

    Verify kết quả trên web console.

    2. DR Fortigate.

    Cài đặt Hostname.

    config sys global
      set hostname DR-Fortigate
    end
    
    config system admin
      edit admin
        set password Hoanghd164
    end

    Đặt ip cho các interface đấu nối, trong đó port 1 sẽ đi internet và port 2 sẽ là mạng local.

    config system interface
      edit port1
        set mode static
        set ip 192.168.13.226 255.255.254.0
        set allowaccess https http ssh ping snmp
      next
        edit "port2"
          set ip 50.0.0.1 255.255.255.0
          set allowaccess ping
          set type physical
      next
    end

    Cài đặt IP đấu nối giữa 2 site.

    config router static
      edit 1
        set dst 0.0.0.0 0.0.0.0
        set gateway 192.168.12.5
        set device port1
    end

    Cài đặt DNS cho thiết bị.

    config system dns
      set primary 8.8.8.8
      set secondary 1.1.1.1
    end

    Thay đổi port web management mặc định.

    config system global
      set admin-port 8480
      set admin-sport 8443
    end

    Nếu dòng Fortigate của bạn có port fortilink thì bạn có thể xoá nó nếu không dùng đến và nếu thiết bị của bạn không có port fortilink thì bạn có thể bỏ qua bước này.

    Hình ảnh cho thấy thiết bị của bạn có cổng fortilink

    Mình có cổng fortilink nên mình sẽ thao tác các lệnh bên dưới.

    config system ntp
      set ntpsync disable
      set server-mode disable
    end
    
    config system dhcp server
      delete 1
    end
    
    config system interface
      delete fortilink
    end

    Tạo kết nối VPN giữa 2 site.

    config vpn ipsec phase1-interface
      edit "VPN-DR-To-DC"
        set interface "port1"
        set peertype any
        set net-device disable
        set proposal des-sha256
        set dhgrp 20
        set remote-gw 192.168.13.225
        set psksecret Hoanghd164
      next
    end
    config vpn ipsec phase2-interface
      edit "VPN-DC-To-DR"
        set phase1name "VPN-DR-To-DC"
        set proposal des-sha256
        set pfs disable
        set keepalive enable
        set keylifeseconds 28800
      next
    end

    Verify lại cấu hình VPN.

    $ get vpn ipsec tunnel details
    
    gateway
      name: 'VPN-DR-To-DC'
      type: route-based
      local-gateway: 192.168.1.12:0 (static)
      remote-gateway: 192.168.1.11:0 (static)
      mode: ike-v1
      interface: 'port1' (3)
      rx  packets: 45  bytes: 6084  errors: 0
      tx  packets: 52  bytes: 3564  errors: 4
      dpd: on-demand/negotiated  idle: 20000ms  retry: 3  count: 0
      selectors
        name: 'VPN-DC-To-DR'
        auto-negotiate: disable
        mode: tunnel
        src: 0:0.0.0.0/0.0.0.0:0
        dst: 0:0.0.0.0/0.0.0.0:0
        SA
          lifetime/rekey: 28800/28184
          mtu: 1446
          tx-esp-seq: 35
          replay: enabled
          inbound
            spi: a4cff75f
            enc:     des  7586bbb3cf67d77f
            auth: sha256  93d4a1caf662ca157b5cb110de6745896febed2b640eb9610fc4d36a77b23266
          outbound
            spi: 52f6eb7f
            enc:     des  28058a267950d8a8
            auth: sha256  ac8b879543d238f6afb99d20855f3308ef0fbf838c7a50308be74badeeb3f3ec

    Verify kết quả trên web console.

    Mình tạo một số Address để test.

    config firewall address
        edit "Subnet-10.0.101.0"
            set associated-interface "VPN-DR-To-DC"
            set subnet 10.0.101.0 255.255.255.0
        next
        edit "Subnet-10.0.102.0"
            set associated-interface "VPN-DR-To-DC"
            set subnet 10.0.102.0 255.255.255.0
        next
        edit "Subnet-30.0.0.0"
            set associated-interface "VPN-DR-To-DC"
            set subnet 30.0.0.0 255.255.255.0
        next
        edit "Subnet-20.0.101.0"
            set associated-interface "port2"
            set subnet 20.0.101.0 255.255.255.0
        next
        edit "Subnet-20.0.102.0"
            set associated-interface "port2"
            set subnet 20.0.102.0 255.255.255.0
        next
        edit "Subnet-50.0.0.0"
            set associated-interface "port2"
            set subnet 50.0.0.0 255.255.255.0
        next
    end

    Verify kết quả trên web console.

    Sau khi tạo kết nối xong, hãy tạo firewall policy cho kết nối này.

    config firewall policy
      edit 1
        set name "VPN DC To DR"
        set srcintf "port2"
        set dstintf "VPN-DR-To-DC"
        set action accept
        set srcaddr "Subnet-20.0.101.0" "Subnet-20.0.102.0" "Subnet-50.0.0.0"
        set dstaddr "Subnet-10.0.101.0" "Subnet-10.0.102.0" "Subnet-30.0.0.0"
        set schedule "always"
        set service "ALL"
        set logtraffic disable
      next
      edit 2
        set name "VPN DR To DC"
        set srcintf "VPN-DR-To-DC"
        set dstintf "port2"
        set action accept
        set srcaddr "Subnet-10.0.101.0" "Subnet-10.0.102.0" "Subnet-30.0.0.0"
        set dstaddr "Subnet-20.0.101.0" "Subnet-20.0.102.0" "Subnet-50.0.0.0"
        set schedule "always"
        set service "ALL"
        set logtraffic disable
      next
      edit 3
          set name "Local To Internet"
          set srcintf "port2"
          set dstintf "port1"
          set srcaddr "Subnet-20.0.101.0" "Subnet-20.0.102.0" "Subnet-50.0.0.0"
          set dstaddr "all"
          set action accept
          set status enable
          set schedule "always"
          set service "ALL"
          set logtraffic disable
          set nat enable
      next
    end

    Verify lại các firewall policy đã tạo.

    show firewall policy

    Verify kết quả trên web console.

    Hãy tạo các vlan test của DC Site.

    config system interface
        edit "VlanID 101"
            set vdom root
            set ip 20.0.101.254 255.255.255.0
            set allowaccess ping ssh
            set device-identification enable
            set role lan
            set interface "port2"
            set vlanid 101
        next
        edit "VlanID 102"
            set vdom root
            set ip 20.0.102.254 255.255.255.0
            set allowaccess ping ssh
            set device-identification enable
            set role lan
            set interface "port2"
            set vlanid 102
        next
    end

    Tạo IP của Tunnel.

    config system interface    
        edit "VPN-DR-To-DC"
            set ip 172.30.1.2 255.255.255.255
            set allowaccess ping ssh
            set type tunnel
            set remote-ip 172.30.1.1 255.255.255.252
            set interface "port1"
        next
    end

    Verify lại các interface và các subnet đã tạo.

    $ diagnose ip address list
    IP=192.168.13.226->192.168.13.226/255.255.254.0 index=3 devname=port1
    IP=50.0.0.1->50.0.0.1/255.255.255.0 index=6 devname=port2
    IP=172.30.1.2->172.30.1.2/255.255.255.255 index=21 devname=VPN-DR-To-DC
    IP=20.0.101.254->20.0.101.254/255.255.255.0 index=22 devname=VlanID 101
    IP=20.0.102.254->20.0.102.254/255.255.255.0 index=23 devname=VlanID 102

    Verify kết quả trên web console.

    Static route để học các subnet của DC Site.

    config router static
        edit 2
            set dst 10.0.101.0 255.255.255.0
            set device "VPN-DR-To-DC"
        next
        edit 3
            set dst 10.0.102.0 255.255.255.0
            set device "VPN-DR-To-DC"
        next
        edit 4
            set dst 30.0.0.0 255.255.255.0
            set device "VPN-DR-To-DC"
        next
    end

    Verify lại các route đã tạo.

    $ get router info routing-table static
    Routing table for VRF=0
    S*      0.0.0.0/0 [10/0] via 192.168.12.5, port1
    S       10.0.101.0/24 [10/0] via VPN-DR-To-DC tunnel 192.168.13.225
    S       10.0.102.0/24 [10/0] via VPN-DR-To-DC tunnel 192.168.13.225
    S       30.0.0.0/24 [10/0] via VPN-DR-To-DC tunnel 192.168.13.225
    S       172.30.1.0/30 [5/0] via VPN-DR-To-DC tunnel 192.168.13.225

    3. Kiểm tra.

    Trên Server của DC mình đặt ip là 30.0.0.254 của port số 2 trên Fortigate DC và check icmp và traceroute về phía DR, chúng ta sẽ có kết quả như dưới.

    $ ifconfig ens33
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 30.0.0.254  netmask 255.255.255.0  broadcast 30.0.0.255
            inet6 fe80::20c:29ff:fe18:955e  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:18:95:5e  txqueuelen 1000  (Ethernet)
            RX packets 31  bytes 3530 (3.5 KB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 37  bytes 2866 (2.8 KB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    $ ping 50.0.0.254
    PING 50.0.0.254 (50.0.0.254) 56(84) bytes of data.
    64 bytes from 50.0.0.254: icmp_seq=2 ttl=62 time=2.59 ms
    64 bytes from 50.0.0.254: icmp_seq=3 ttl=62 time=1.92 ms
    64 bytes from 50.0.0.254: icmp_seq=4 ttl=62 time=2.42 ms
    64 bytes from 50.0.0.254: icmp_seq=5 ttl=62 time=1.78 ms
    
    --- 50.0.0.254 ping statistics ---
    5 packets transmitted, 4 received, 20% packet loss, time 4023ms
    rtt min/avg/max/mdev = 1.782/2.182/2.599/0.341 ms
    
    $ traceroute 50.0.0.254
    traceroute to 50.0.0.254 (50.0.0.254), 30 hops max, 60 byte packets
     1  _gateway (30.0.0.1)  0.673 ms  1.370 ms  0.890 ms
     2  172.30.1.2 (172.30.1.2)  7.444 ms  7.162 ms  7.120 ms
     3  50-0-0-254.static.sonic.net (50.0.0.254)  7.089 ms  6.878 ms  6.710 ms

    Tương tự trên Server của DR mình đặt ip là 50.0.0.254 của port số 2 trên Fortigate DR và check icmp và traceroute về phía DR, chúng ta sẽ có kết quả như dưới.

    $ ifconfig ens33
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 50.0.0.254  netmask 255.255.255.0  broadcast 50.0.0.255
            inet6 fe80::20c:29ff:fedf:46ca  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:df:46:ca  txqueuelen 1000  (Ethernet)
            RX packets 185  bytes 19288 (19.2 KB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 323  bytes 23874 (23.8 KB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    $ ping 30.0.0.254
    PING 30.0.0.254 (30.0.0.254) 56(84) bytes of data.
    64 bytes from 30.0.0.254: icmp_seq=1 ttl=62 time=2.51 ms
    64 bytes from 30.0.0.254: icmp_seq=2 ttl=62 time=2.70 ms
    64 bytes from 30.0.0.254: icmp_seq=3 ttl=62 time=2.36 ms
    64 bytes from 30.0.0.254: icmp_seq=4 ttl=62 time=2.51 ms
    
    --- 30.0.0.254 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3008ms
    rtt min/avg/max/mdev = 2.369/2.528/2.708/0.125 ms
    
    $ traceroute 30.0.0.254
    traceroute to 30.0.0.254 (30.0.0.254), 30 hops max, 60 byte packets
     1  50-0-0-1.static.sonic.net (50.0.0.1)  1.510 ms  1.283 ms  0.584 ms
     2  172.30.1.1 (172.30.1.1)  6.518 ms  6.311 ms  6.164 ms
     3  30.0.0.254 (30.0.0.254)  8.519 ms  8.957 ms  8.743 ms

    Bài viết gần đây

    spot_img

    Related Stories

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    Đăng ký nhận thông tin bài viết qua email