Oracle Cloud : FortiGate에서 OCI에 IPsec VPN 연결을 시도했습니다.

새로운 DRG의 IPsec Connection에서는 NAT 아래의 VPN 장치의 IKE 인증 키를 Private IP 등으로 설정할 수 있게 되어 설정 항목도 늘어났습니다.
따라서 Oracle Cloud Infrastructure (OCI)에 배치 된 FortiGate와 다른 지역의 DRG를 IPsec VPN에 연결해보십시오.

■구성



이번에는 FortiGate-VM을 사용합니다.

FortiGate-VM은 물리적 하드웨어와 동일한 OS를 사용하므로 설정은 동일합니다.
FortiGate-VM 구성 절차는
Oracle Cloud : Fortinet FortiGate Next-Generation Firewall (NGFW)를 도입해 보았습니다. 참조

또한 FortiGate-VM과 같은 Software Router를 사용하면 OCI의 Sevice Limit을 넘는 다거점 연결 및 타사 클라우드 공급자와 연결할 수 있습니다.

■OCI DRG 환경



●Customer-Premises Equipment 작성



OCI의 Networking > ICustomer-Premises Equipment 화면에서 Create Customer-Premises Equipmentn을 클릭하여 다음 내용을 설정합니다.
・NAME:適当な名前を設定
・DRG:IPsec接続させる作成済みのDRGを設定
・STATIC ROUTE CIDER:対向側(FortiGate)のCIDERを設定 *後から追加変更削除可能です
・CPE IKE IDENTIFIER : FortiGateのWAN側Private IPを設定


Create Premises Equipment를 클릭하여 생성

● IPsec Connection 생성



①OCI의 [Networking] > [IPsec Connetion] 화면에서 [Create IPsec COnnection]을 클릭하여 다음 내용을 설정

Create IPsec Connection을 클릭하여 생성




② 작성한 IPsec Connetion의 VPN IP Address를 확인


③ 작성한 IPsec Connetion의 Shared Secret를 확인
・Tunnel1(200.200.200.201)의 Shared Secret


・Tunnel2(200.200.200.202)의 Shared Secret


■Fortigate 환경 설정



● OCI Security List 설정



IPsec에 필요한 포트 : 4500 및 500 설정


● IPsec 설정



①SSH 로그인
Fortigate에 ssh 로그인
[opc@inst01 ~]$ ssh [email protected]
 [email protected]'s password:
 Fortigate-inst01 #

② 방화벽 구성
config firewall address
    edit any_ipv4
    next
    edit OracleVcn-AshVCN_remote_subnet
        set subnet 10.0.0.0 255.0.0.0
    next
end

config firewall addrgrp
    edit OracleVcn-AshVCN_local
        set member any_ipv4
    next
    edit OracleVcn-AshVCN_remote
        set member OracleVcn-AshVCN_remote_subnet
    next
end
config firewall policy
    edit 101
        set name vpn_200.200.200.201_local
        set srcintf port1
        set dstintf 200.200.200.201
        set srcaddr OracleVcn-AshVCN_local
        set dstaddr OracleVcn-AshVCN_remote
        set action accept
        set schedule always
        set service ALL
        set comments "VPN: Oracle 200.200.200.201"
    next
    edit 102
        set name vpn_200.200.200.201_rhosiemote
        set srcintf 200.200.200.201
        set dstintf port1
        set srcaddr OracleVcn-AshVCN_remote
        set dstaddr OracleVcn-AshVCN_local
        set action accept
        set schedule always
        set service ALL
        set comments "VPN: Oracle 200.200.200.201"
    next
    edit 103
        set name vpn_200.200.200.202_local
        set srcintf port1
        set dstintf 200.200.200.202
        set srcaddr OracleVcn-AshVCN_local
        set dstaddr OracleVcn-AshVCN_remote
        set action accept
        set schedule always
        set service ALL
        set comments "VPN: Oracle 200.200.200.202"
    next
    edit 104
        set name vpn_200.200.200.202_remote
        set srcintf 200.200.200.202
        set dstintf port1
        set srcaddr OracleVcn-AshVCN_remote
        set dstaddr OracleVcn-AshVCN_local
        set action accept
        set schedule always
        set service ALL
        set comments "VPN: Oracle 200.200.200.202"
    next
end

③ISAKMP 1단계 구성
config vpn ipsec phase1-interface
    edit 200.200.200.201
        set interface port1
        set keylife 28800
        set proposal aes256-sha384 aes256-sha256
        set comments "VPN: Oracle 200.200.200.201"
        set dhgrp 5
        set remote-gw 200.200.200.201
        set psksecret FortigateSharedSecret01
    next
    edit 200.200.200.202
        set interface port1
        set keylife 28800
        set proposal aes256-sha384 aes256-sha256
        set comments "VPN: Oracle 200.200.200.202"
        set dhgrp 5
        set remote-gw 200.200.200.202
        set psksecret FortigateSharedSecret02
    next
end

④ IPSec 구성 - ISAKMP 2단계
config vpn ipsec phase2-interface
    edit 200.200.200.201
        set phase1name 200.200.200.201
        set proposal aes256-sha1
        set dhgrp 5
        set replay disable
        set auto-negotiate enable
        set comments "VPN: Oracle 200.200.200.201"
        set keylifeseconds 3600
    next
    edit 200.200.200.202
        set phase1name 200.200.200.202
        set proposal aes256-sha1
        set dhgrp 5
        set replay disable
        set auto-negotiate enable
        set comments "VPN: Oracle 200.200.200.202"
        set keylifeseconds 3600
    next
end

⑤VCN에 정적 경로 구성
config vpn ipsec phase2-interface
    edit 200.200.200.201
        set phase1name 200.200.200.201
        set proposal aes256-sha1
        set dhgrp 5
        set replay disable
        set auto-negotiate enable
        set comments "VPN: Oracle 200.200.200.201"
        set keylifeseconds 3600
    next
    edit 200.200.200.202
        set phase1name 200.200.200.202
        set proposal aes256-sha1
        set dhgrp 5
        set replay disable
        set auto-negotiate enable
        set comments "VPN: Oracle 200.200.200.202"
        set keylifeseconds 3600
    next
end

● IPsec Tunnel 확인


Fortigate-inst01 # diagnose vpn tunnel list
        list all ipsec tunnel in vd 0
        ------------------------------------------------------
        name=200.200.200.202 ver=1 serial=2 172.24.0.251:0->200.200.200.202:0
        bound_if=3 lgwy=static/1 tun=intf/0 mode=auto/1 encap=none/0
        proxyid_num=1 child_num=0 refcnt=11 ilast=0 olast=60 ad=/0
        stat: rxp=0 txp=0 rxb=0 txb=0
        dpd: mode=on-demand on=1 idle=20000ms retry=3 count=0 seqno=0
        natt: mode=none draft=0 interval=0 remote_port=0
        proxyid=200.200.200.202 proto=0 sa=0 ref=2 serial=1 auto-negotiate
          src: 0:0.0.0.0/0.0.0.0:0
          dst: 0:0.0.0.0/0.0.0.0:0
        ------------------------------------------------------
        name=200.200.200.201 ver=1 serial=1 172.24.0.251:0->200.200.200.201:0
        bound_if=3 lgwy=static/1 tun=intf/0 mode=auto/1 encap=none/0
        proxyid_num=1 child_num=0 refcnt=11 ilast=7 olast=67 ad=/0
        stat: rxp=0 txp=0 rxb=0 txb=0
        dpd: mode=on-demand on=1 idle=20000ms retry=3 count=0 seqno=0
        natt: mode=none draft=0 interval=0 remote_port=0
        proxyid=200.200.200.201 proto=0 sa=0 ref=2 serial=1 auto-negotiate
          src: 0:0.0.0.0/0.0.0.0:0
          dst: 0:0.0.0.0/0.0.0.0:0

● DRG IPsec Connection Status UP 확인



IPsec Connection의 Status가 UP하고 있는지 확인


●대향 인스턴스 ping 소통 확인



Fortigate-inst01에서 반대 london-inst01로 ping 할 수 있는지 확인
Fortigate-inst01 # execute ping 10.0.0.2
    PING 10.0.0.2 (10.0.0.2): 56 data bytes
    64 bytes from 10.0.0.2: icmp_seq=0 ttl=62 time=47.2 ms
    64 bytes from 10.0.0.2: icmp_seq=1 ttl=62 time=47.0 ms
    64 bytes from 10.0.0.2: icmp_seq=2 ttl=62 time=47.1 ms
    64 bytes from 10.0.0.2: icmp_seq=3 ttl=62 time=47.1 ms
    ^C
    --- 10.0.0.2 ping statistics ---
    4 packets transmitted, 4 packets received, 0% packet loss
    round-trip min/avg/max = 47.0/47.1/47.2 ms

■연결 확인



● ssh 연결 확인



· Frankfurt -> London 간 인스턴스 ssh 연결 확인
대향 인스턴스의 호스트 이름이 출력되는지 확인
[opc@fra-inst01 ~]$ ssh -i <ssh鍵> [email protected] hostname
    ldn-inst1

· London --> Frankfurt 간 인스턴스 ssh 연결 확인
대향 인스턴스의 호스트 이름이 출력되는지 확인
[opc@ldn-inst1 ~]$ ssh -i <ssh鍵> [email protected] hostname
    fra-inst01

■ Appendix



● 디버깅



IPsec Tunnel이 통신할 수 없는 경우 등은 디버그 로그를 활성화하고 확인합니다.

· IKE 디버그 로깅 사용
    diag vpn ike log 
    diag debug app ike -1
    diag debug enable

· IKE 디버그 로그 중지
    diagnose debug reset
    diagnose debug disable

좋은 웹페이지 즐겨찾기