【FortiGate】IPsec VPN の設定例【トンネル IP アドレス設定】

ファイアウォール(UTM)
スポンサーリンク

はじめに

  • FortiGate にて IPsec VPN を設定する例を記載します
  • IPsec トンネルには静的に(手動で)IP アドレスを設定します
  • 対向機器には Cisco ルータを使用します
    • Cisco ルータの設定方法についての詳細はここでは省略します

作業環境

■ FortiGate

  • 型番:FortiGate 60E
  • バージョン:6.4.5

■ ルータ

  • Cisco C891FJ-K9
  • バージョン:15.3(3)M5

検証構成

IPsec 設定の事前準備

IPsec VPN 設計

IPsec VPN を設定する場合は各種設定値を決めておく必要があります。

ここでは以下のような設定値とすることにします。

項目IKE フェーズ1IKE フェーズ2
物理インターフェース(FortiGate)wan2
セキュリティプロトコルesp
暗号化アルゴリズム3des3des
ハッシュアルゴリズムsha1
認証方式/認証アルゴリズムpre-shareesp-sha-hmac
DH/PFS グループ1無効
ISAKMP/IPsec  SA ライフタイム86400秒3600秒
Pre-shared Keypassword
IPsec 通信モードtunnel
IKE キープアライブ(DPD)無効
IPsec の対象トラフィックANY ⇔ ANY
IKE モードMainQuick
ISAKMP/IPsec のピアアドレス200.1.1.1 (200.1.1.2)200.1.1.1 (200.1.1.2)
NAT トラバーサル無効
IPsec トンネルセグメント
(IP アドレス)
10.254.1.0/30
(.1 および .2)

C891FJ-K9 の設定

C891FJ-K9 では上の設計に合わせて以下の設定をしておきます。

※ IPsec VPN 用設定の抜粋

!# IKE ポリシーの設定
crypto isakmp policy 1
 authentication pre-share
 encryption 3des
 group 1
 hash sha
 lifetime 86400

!# 共通鍵の指定 (password) と対向ルータのIPアドレス (200.1.1.1) の設定
crypto isakmp key password address 200.1.1.1

!# IPsec トランスフォーム (TF-SET) の設定
crypto ipsec transform-set TF-SET esp-3des esp-sha-hmac
 mode tunnel

!# IPsec プロファイルの作成
crypto ipsec profile IPS-PRF
 set security-association lifetime seconds 3600
 set transform-set TF-SET

!# IPsec トンネルの作成
interface Tunnel0
 ip address 10.254.1.2 255.255.255.252
 tunnel source Vlan202
 tunnel mode ipsec ipv4
 tunnel destination 200.1.1.1
 tunnel protection ipsec profile IPS-PRF

!# インターフェース設定
interface GigabitEthernet6
 switchport access vlan 111
 no ip address

interface GigabitEthernet7
 switchport access vlan 202
 no ip address

interface Vlan111
 ip address 10.111.1.1 255.255.255.0

interface Vlan202
 ip address 200.1.1.2 255.255.255.252

!# ルーティング設定
ip route 192.168.1.0 255.255.255.0 Tunnel0

IPsec VPN 設定手順

以下の手順で設定していきます。

  1. IKE フェーズ1 の設定
    • この設定をした時点でトンネルインターフェースが自動で作成されます
  2. IKE フェーズ2 の設定
  3. トンネルインターフェースの設定
  4. ポリシーの設定
  5. スタティックルートの設定

また、設定は GUI と CLI のどちらでも可能ですが、ここでは CLI で行うこととします。

GUI で設定を行う場合は以下の記事を参考にしてください。

IKE フェーズ1 の設定

IKE フェーズ1 の設定に対応する設定項目は config vpn ipsec phase1-interface です。

IPsec の各設定項目と CLI での設定内容の対応は以下の通りです。

項目設定したい値CLI 設定内容
設定オブジェクト名Tunnel0edit "Tunnel0"
物理インターフェースwan2set interface "wan2"
暗号化アルゴリズム3desset proposal 3des-sha1
※ハッシュアルゴリズムとセットで設定
ハッシュアルゴリズムsha1set proposal 3des-sha1
※暗号化アルゴリズムとセットで設定
認証方式pre-shareset authmethod psk
DH グループ1set dhgrp 1
ISAKMP ライフタイム86400秒set keylife 86400
Pre-shared Keypasswordset psksecret password
IKE キープアライブ(DPD)無効set dpd disable
IKE モードMainset mode main
ISAKMP のピアアドレス200.1.1.2set remote-gw 200.1.1.2
NAT トラバーサル無効set nattraversal disable

上の表の内容をまとめると CLI での設定コマンドは以下の様になります。

config vpn ipsec phase1-interface
    edit "Tunnel0"
        set interface "wan2"
        set proposal 3des-sha1
        set authmethod psk
        set dhgrp 1
        set keylife 86400
        set psksecret password
        set dpd disable
        set mode main
        set remote-gw 200.1.1.2
        set nattraversal disable
    next
end

設定後のコンフィグ内容

FG60E # show vpn ipsec phase1-interface
config vpn ipsec phase1-interface
    edit "Tunnel0"
        set interface "wan2"
        set peertype any
        set net-device disable
        set proposal 3des-sha1
        set dpd disable
        set dhgrp 1
        set nattraversal disable
        set remote-gw 200.1.1.2
        set psksecret ENC Mi08eMRVADp/cpG3qHx8nGjP33HrUAkVlJBU5lbJZ9FXeIs2f+j8o0eIkcUJESrn8mZDGdggHqnu2gYT+BnNRX0YOYN4wwinG1LhmCZvfOEwfSFsHDEYFthO7ETj6W/TB6B4zMQMwPjO0Gk4Qy1OSzNE2vUwm/dOVw/iIh8DjIOkUaAy/TdCaHbT+7Eh9BgXQxUR/w==
    next
end

FG60E #
FG60E # show full-configuration vpn ipsec phase1-interface
config vpn ipsec phase1-interface
    edit "Tunnel0"
        set type static
        set interface "wan2"
        set ip-version 4
        set ike-version 1
        set local-gw 0.0.0.0
        set keylife 86400
        set authmethod psk
        set mode main
        set peertype any
        set net-device disable
        set passive-mode disable
        set exchange-interface-ip disable
        set aggregate-member disable
        set mode-cfg disable
        set proposal 3des-sha1
        set localid ''
        set localid-type auto
        set auto-negotiate enable
        set negotiate-timeout 30
        set fragmentation enable
        set ip-fragmentation post-encapsulation
        set dpd disable
        set forticlient-enforcement disable
        set comments ''
        set npu-offload enable
        set dhgrp 1
        set suite-b disable
        set wizard-type custom
        set xauthtype disable
        set mesh-selector-type disable
        set idle-timeout disable
        set ha-sync-esp-seqno enable
        set auto-discovery-sender disable
        set auto-discovery-receiver disable
        set auto-discovery-forwarder disable
        set encapsulation none
        set nattraversal disable
        set rekey enable
        set remote-gw 200.1.1.2
        set monitor ''
        set tunnel-search selectors
        set add-gw-route disable
        set psksecret ENC Mi08eMRVADp/cpG3qHx8nGjP33HrUAkVlJBU5lbJZ9FXeIs2f+j8o0eIkcUJESrn8mZDGdggHqnu2gYT+BnNRX0YOYN4wwinG1LhmCZvfOEwfSFsHDEYFthO7ETj6W/TB6B4zMQMwPjO0Gk4Qy1OSzNE2vUwm/dOVw/iIh8DjIOkUaAy/TdCaHbT+7Eh9BgXQxUR/w==
    next
end

トンネルインターフェースについて

上の IKE フェーズ1 の設定を行うと以下コンフィグが自動で設定されトンネルインターフェースが作成されます。

config system interface
    edit "Tunnel0"
        set vdom "root"
        set type tunnel
        set snmp-index 8
        set interface "wan2"
    next
end

IKE フェーズ2 の設定

IKE フェーズ2 の設定に対応する設定項目は config vpn ipsec phase2-interface です。

IPsec の各設定項目と CLI での設定内容の対応は以下の通りです。

項目設定したい値CLI 設定内容
設定オブジェクト名Tunnel0edit "Tunnel0"
対応付ける IKE フェーズ1 設定の
オブジェクト名
Tunnel0set phase1name "Tunnel0"
セキュリティプロトコルespなし(設定不要)
暗号化アルゴリズム3desset proposal 3des-sha1
※認証アルゴリズムとセットで設定
認証アルゴリズムesp-sha-hmacset proposal 3des-sha1
※暗号化アルゴリズムとセットで設定
PFS グループ無効set pfs disable
IPsec  SA ライフタイム3600秒set keylifeseconds 3600
IPsec 通信モードtunnelset encapsulation tunnel-mode
IPsec の対象トラフィックANY ⇔ ANYset src-subnet 0.0.0.0 0.0.0.0
set dst-subnet 0.0.0.0 0.0.0.0

IKE モードQuickなし(設定不要)
IPsec のピアアドレス200.1.1.2なし(設定不要)

上の表の内容をまとめると CLI での設定コマンドは以下の様になります。

config vpn ipsec phase2-interface
    edit "Tunnel0"
        set phase1name "Tunnel0"
        set proposal 3des-sha1
        set pfs disable
        set keylifeseconds 3600
        set encapsulation tunnel-mode
        set src-subnet 0.0.0.0 0.0.0.0
        set dst-subnet 0.0.0.0 0.0.0.0
    next
end

設定後のコンフィグ内容

FG60E # show vpn ipsec phase2-interface
config vpn ipsec phase2-interface
    edit "Tunnel0"
        set phase1name "Tunnel0"
        set proposal 3des-sha1
        set pfs disable
        set keylifeseconds 3600
    next
end

FG60E #
FG60E # show full-configuration vpn ipsec phase2-interface
config vpn ipsec phase2-interface
    edit "Tunnel0"
        set phase1name "Tunnel0"
        set proposal 3des-sha1
        set pfs disable
        set ipv4-df disable
        set replay enable
        set keepalive disable
        set auto-negotiate disable
        set auto-discovery-sender phase1
        set auto-discovery-forwarder phase1
        set keylife-type seconds
        set encapsulation tunnel-mode
        set comments ''
        set diffserv disable
        set protocol 0
        set src-addr-type subnet
        set src-port 0
        set dst-addr-type subnet
        set dst-port 0
        set keylifeseconds 3600
        set src-subnet 0.0.0.0 0.0.0.0
        set dst-subnet 0.0.0.0 0.0.0.0
    next
end

トンネルインターフェースの設定

トンネルインターフェースに対して以下を設定します。

  • IP アドレス: 10.254.1.1 255.255.255.255
    • サブネットマスクは 255.255.255.255 にする必要があります
  • リモートアドレス: 10.254.1.2 255.255.255.252

設定コマンドは以下の通りです。

config system interface
    edit "Tunnel0"
        set ip 10.254.1.1 255.255.255.255
        set remote-ip 10.254.1.2 255.255.255.252
    next
end

設定後のコンフィグ内容

FG60E (Tunnel0) # show
config system interface
    edit "Tunnel0"
        set vdom "root"
        set ip 10.254.1.1 255.255.255.255
        set type tunnel
        set remote-ip 10.254.1.2 255.255.255.252
        set snmp-index 8
        set interface "wan2"
    next
end

ポリシーの設定

IPsec トンネルを通る通信を許可するポリシーを設定します。

例では Internal インターフェースと Tunnel0(IPsec トンネル)間の通信をすべて許可します。

設定コマンドは以下の通りです。(edit 番号は任意の未使用番号にします。)

config firewall policy
    edit 2
        set name "VPN-in"
        set srcintf "Tunnel0"
        set dstintf "internal"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
    next
    edit 3
        set name "VPN-out"
        set srcintf "internal"
        set dstintf "Tunnel0"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
    next
end

ここまで設定した時点で、IPsec トンネルステータスがアップとなります。

スタティックルートの設定

リモートサイト宛の場合は IPsec トンネルを通るようスタティックルートを設定します。

設定コマンドは以下の通りです。(edit 番号は任意の未使用番号にします。)

config router static
    edit 2
        set dst 10.111.1.0 255.255.255.0
        set device "Tunnel0"
    next
end

ここまで設定すると端末間の疎通が可能となります。

GUI での設定確認

IPsec 設定

[VPN] > [IPsecトンネル] 画面で IPsec の設定を確認できます。

設定の編集画面で詳細な設定内容を確認できます。

トンネルインターフェース

[ネットワーク] > [インターフェース] 画面でトンネルインターフェースの設定を確認できます。

IPsec VPN 関連のコマンド

確認コマンド

get 系

  • get vpn ike gateway
FG60E # get vpn ike gateway

vd: root/0
name: Tunnel0
version: 1
interface: wan2 6
addr: 200.1.1.1:500 -> 200.1.1.2:500
created: 1728s ago
IKE SA  created: 2/2  established: 2/2  time: 0/0/0 ms
IPsec SA  created: 2/2  established: 2/2  time: 10/15/20 ms

  id/spi: 149 2463ae5ab666b1b1/918bd0dd7b95a54f
  direction: responder
  status: established 1723-1723s ago = 0ms
  proposal: 3des-sha1
  key: ffc8ccea5adb918f-2fed34d8cadd579a-48da95bfd68240d2
  lifetime/rekey: 86400/84406
  DPD sent/recv: 00000000/00000000

  id/spi: 148 a03ce2d378126afe/03f84d9b3711e685
  direction: initiator
  status: established 1728-1728s ago = 0ms
  proposal: 3des-sha1
  key: d85d40d303288f8d-14215f4e714f67a5-2aeb8d4698c47d5e
  lifetime/rekey: 86400/84371
  DPD sent/recv: 00000000/00000000

  • get vpn ipsec tunnel summary
FG60E # get vpn ipsec tunnel summary
'Tunnel0' 200.1.1.2:0  selectors(total,up): 1/1  rx(pkt,err): 1/0  tx(pkt,err): 14/1

  • get vpn ipsec tunnel details
FG60E # get vpn ipsec tunnel details

gateway
  name: 'Tunnel0'
  type: route-based
  local-gateway: 200.1.1.1:0 (static)
  remote-gateway: 200.1.1.2:0 (static)
  mode: ike-v1
  interface: 'wan2' (6)
  rx  packets: 1  bytes: 152  errors: 0
  tx  packets: 14  bytes: 1320  errors: 1
  dpd: disabled
  selectors
    name: 'Tunnel0'
    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: 3600/1445
      mtu: 1446
      tx-esp-seq: f
      replay: enabled
      qat: 0
      inbound
        spi: 5a3d3a86
        enc:    3des  f4538a922220d57793dbbe516e95abc132599588937e4463
        auth:   sha1  07cd0bac60513da67728200f035816cbb92b18aa
      outbound
        spi: 2d6013d7
        enc:    3des  3e3b870329879ea8d824e23268401a9028693190641644ca
        auth:   sha1  91abeba8408d14728c541f45decb3fe9f5ed2ddd
      NPU acceleration: encryption(outbound) decryption(inbound)
    SA
      lifetime/rekey: 3600/1445
      mtu: 1446
      tx-esp-seq: 1
      replay: enabled
      qat: 0
      inbound
        spi: 5a3d3a85
        enc:    3des  002b54db91098d334dcaf4ebabf0a66acd9458fe82a65905
        auth:   sha1  cd57764bcc939cc406eb145e11addbf83e212953
      outbound
        spi: 73545689
        enc:    3des  8b3391028225a7c06b6c0437fe19da926fce04b71a15d3ec
        auth:   sha1  c76b5384085b7f663d65525226f18672d3ec5e54
      NPU acceleration: none

diagnose 系

  • diagnose vpn ike status summary
FG60E # diagnose vpn ike status summary
connection: 1/1
IKE SA: created 2/2  established 2/2  times 0/0/0 ms
IPsec SA: created 2/2  established 2/2  times 10/15/20 ms

  • diagnose vpn ike status detailed
FG60E # diagnose vpn ike status detailed

vd: root/0
name: Tunnel0
version: 1
connection: 1/1
IKE SA: created 2/2  established 2/2  times 0/0/0 ms
IPsec SA: created 2/2  established 2/2  times 10/15/20 ms

  • diagnose vpn ipsec status
FG60E # diagnose vpn ipsec status
All ipsec crypto devices in use:
NP6LITE_0:
    Encryption (encrypted/decrypted)
        null             : 0                0
        des              : 0                0
        3des             : 0                0
        aes              : 0                0
        aes-gcm          : 0                0
        aria             : 0                0
        seed             : 0                0
        chacha20poly1305 : 0                0
    Integrity (generated/validated)
        null             : 0                0
        md5              : 0                0
        sha1             : 0                0
        sha256           : 0                0
        sha384           : 0                0
        sha512           : 0                0

NPU Host Offloading:
    Encryption (encrypted/decrypted)
        null             : 0                0
        des              : 0                0
        3des             : 17               0
        aes              : 0                0
        aes-gcm          : 0                0
        aria             : 0                0
        seed             : 0                0
        chacha20poly1305 : 0                0
    Integrity (generated/validated)
        null             : 0                0
        md5              : 0                0
        sha1             : 17               0
        sha256           : 0                0
        sha384           : 0                0
        sha512           : 0                0

SOC3:
    Encryption (encrypted/decrypted)
        null             : 0                0
        des              : 0                0
        3des             : 4                3
        aes              : 0                0
        aes-gcm          : 0                0
        aria             : 0                0
        seed             : 0                0
        chacha20poly1305 : 0                0
    Integrity (generated/validated)
        null             : 0                0
        md5              : 0                0
        sha1             : 4                3
        sha256           : 0                0
        sha384           : 0                0
        sha512           : 0                0

SOFTWARE:
    Encryption (encrypted/decrypted)
        null             : 0                0
        des              : 0                0
        3des             : 0                0
        aes              : 0                0
        aes-gcm          : 0                0
        aria             : 0                0
        seed             : 0                0
        chacha20poly1305 : 0                0
    Integrity (generated/validated)
        null             : 0                0
        md5              : 0                0
        sha1             : 0                0
        sha256           : 0                0
        sha384           : 0                0
        sha512           : 0                0

  • diagnose vpn tunnel list
FG60E # diagnose vpn tunnel list
list all ipsec tunnel in vd 0
------------------------------------------------------
name=Tunnel0 ver=1 serial=3 200.1.1.1:0->200.1.1.2:0 dst_mtu=1500
bound_if=6 lgwy=static/1 tun=intf/0 mode=auto/1 encap=none/520 options[0208]=npu frag-rfc  run_state=0 accept_traffic=1 overlay_id=0

proxyid_num=1 child_num=0 refcnt=12 ilast=2289 olast=1932 ad=/0
stat: rxp=1 txp=14 rxb=152 txb=1320
dpd: mode=off on=0 idle=20000ms retry=3 count=0 seqno=0
natt: mode=none draft=0 interval=0 remote_port=0
proxyid=Tunnel0 proto=0 sa=2 ref=3 serial=1
  src: 0:0.0.0.0/0.0.0.0:0
  dst: 0:0.0.0.0/0.0.0.0:0
  SA:  ref=6 options=10026 type=00 soft=0 mtu=1446 expire=1039/0B replaywin=1024
       seqno=f esn=0 replaywin_lastseq=00000001 itn=0 qat=0 hash_search_len=1
  life: type=01 bytes=0/0 timeout=3329/3600
  dec: spi=5a3d3a86 esp=3des key=24 f4538a922220d57793dbbe516e95abc132599588937e4463
       ah=sha1 key=20 07cd0bac60513da67728200f035816cbb92b18aa
  enc: spi=2d6013d7 esp=3des key=24 3e3b870329879ea8d824e23268401a9028693190641644ca
       ah=sha1 key=20 91abeba8408d14728c541f45decb3fe9f5ed2ddd
  dec:pkts/bytes=1/100, enc:pkts/bytes=14/2048
  npu_flag=03 npu_rgwy=200.1.1.2 npu_lgwy=200.1.1.1 npu_selid=2 dec_npuid=1 enc_npuid=1
  SA:  ref=3 options=10026 type=00 soft=0 mtu=1446 expire=1039/0B replaywin=1024
       seqno=1 esn=0 replaywin_lastseq=00000000 itn=0 qat=0 hash_search_len=1
  life: type=01 bytes=0/0 timeout=3329/3600
  dec: spi=5a3d3a85 esp=3des key=24 002b54db91098d334dcaf4ebabf0a66acd9458fe82a65905
       ah=sha1 key=20 cd57764bcc939cc406eb145e11addbf83e212953
  enc: spi=73545689 esp=3des key=24 8b3391028225a7c06b6c0437fe19da926fce04b71a15d3ec
       ah=sha1 key=20 c76b5384085b7f663d65525226f18672d3ec5e54
  dec:pkts/bytes=0/0, enc:pkts/bytes=0/0
  npu_flag=00 npu_rgwy=200.1.1.2 npu_lgwy=200.1.1.1 npu_selid=2 dec_npuid=0 enc_npuid=0
run_tally=1

操作コマンド

  • diagnose vpn ike restart
    • IKE の再起動
  • diagnose vpn ike gateway clear
    • IKE ゲートウェイのクリア

―――――――――――――

タイトルとURLをコピーしました