本記事について
本記事では、Fortinet 社のファイアウォール製品である FortiGate について、拠点間で IPsec VPN 接続を確立し、それぞれの拠点のローカルネットワーク間で IPsec トンネルを介した通信を行う方法について説明します。
動作確認環境
本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。
- FortiGate-60F
- FortiOS 7.6.6
前提と事前決定事項
WAN を介して接続可能な2つの拠点の双方で FortiGate が直接 WAN に接続しています。この2台の FortiGate 間で IPsec VPN 接続を行うことを目的とします。

拠点内部セグメント間で IPsec トンネルを介した通信を行うことを想定します。

IKE バージョンは 2 を推奨
IKE バージョンについては 1 と 2 のどちらかを選択して使用可能ですが、FortiOS 7.6.6 ではバージョン 2 がデフォルトであり、セキュリティ面からもバージョン 2 を使用することをお勧めします。本記事では IKEv2 を使用することを前提とします。
暗号化・認証アルゴリズムについて
IPsec VPN 設定のフェーズ1とフェーズ2のそれぞれで暗号化・認証アルゴリズムのペアを選択する必要があります。FortiGate のデフォルトの設定ではいくつかのペアが有効になっていますが、複数のアルゴリズムペアが有効の場合、対向ルータと共通のアルゴリズムの中から強度のより強いものが使用されます。
対向ルータで使用しているアルゴリズムを特定できる場合は複数のアルゴリズムを有効化する意味がないので、必要な1つのみに絞って有効化することをお勧めします。
アルゴリズムの選択基準としては1例としては CRYPTREC が公開している「電子政府推奨暗号リスト」が参考になります。2026年3月版に基づくと「表2 耐量子計算機暗号(PQC)リスト」に含まれる AES-256/SHA-512 のペアがお勧めです。
ただしより強度の高いアルゴリズム程 IPsec 確立時の計算時間やリソース消費が多くかかるといわれているため、IPsec 確立時の動作やリソース状況に問題が無いかは確認することをお勧めします。
DH グループについて
IPsec VPN 設定のフェーズ1とフェーズ2のそれぞれで DH グループを指定する必要があります。DH グループは番号が大きいほどセキュリティ強度が高いとされています。
FortiOS 7.6.6 のデフォルトでは 20,21 が有効になっていますが、DH グループも対向ルータで使用している DH グループを特定できる場合は複数の番号を有効化する意味がないので、必要な1つのみに絞って有効化することをお勧めします。
DH グループの選定に関しては Fortinet コミュニティに以下情報があります。
重要なポイント:
- グループ1、2、5 → レガシー。後方互換性のためにどうしても必要な場合を除き、使用を避けてください。
- グループ14(MODP 2048) →楕円曲線グループが利用できない場合はベースラインセーフ。
- グループ19および20(ECP) →楕円曲線グループ、効率的で推奨されます。
- グループ21(MODP 3072) →14よりも強度が高いが重量も重い。ECCが使用できない場合は許容範囲内とみなされる。
- グループ31(Curve25519) → 最新鋭で、セキュリティとパフォーマンスの両面で非常におすすめです。
FortiGateでは、IPsecフェーズ1または2を設定する際に、ピアの互換性に応じてグループ14、19、20、または31を選択するのがベストプラクティスです 。
https://community.fortinet.com/fortigate-3/technical-tip-understanding-diffie-hellman-groups-and-ikev1-vs-ikev2-in-fortigate-vpns-211318
トンネルインターフェースの IP アドレスはオプション
FortiGate では IPsec の設定を行うと対応するトンネルインターフェースが作成されます。トンネルインターフェースには IP アドレスを設定することができますが、必須ではなくオプションです。
トンネルインターフェースに IP アドレスを設定するとトンネルインターフェース宛の Ping、SSH、HTTPS 等の管理アクセス等をすることができますが、必要ないのであれば IP アドレスを設定する必要はありません。
GUI の VPN ウィザードでの設定は非推奨
GUI の VPN ウィザードは手軽に IPsec の設定ができますが、使用するオブジェクト、ポリシー、スタティックルートが自動で作成されるため柔軟な設定ができず結局設定後に手動で調整が必要になります。また各オブジェクトにコメントで VPN ウィザードで設定した旨のコメントが設定されます。このため FortiGate 設計・構築案件においては VPN ウィザードを使用して設定することは非推奨です。
本記事では VPN ウィザードではなく、通常の新規トンネル作成画面での設定方法、CLI での設定方法について説明します。
拠点間 IPsec VPN 設定の流れ
拠点間 IPsec VPN は以下の流れで設定します。
IPsec ではローカルプロキシID、リモートプロキシIDと呼ばれる、IPsec 通信を行う自拠点と対向拠点のアドレスを定義する必要があります。この設定で使用するアドレスオブジェクトおよびアドレスグループを作成します。
IPsec 設定にはフェーズ1とフェーズ2の2段階があります。それぞれ設定します。
IPsec トンネルを通したい宛先ネットワークについて IPsec トンネルを出力先とするスタティックルートを設定します。また必要に応じて IPsec トンネル未確立時はパケットを破棄するようブラックホールルートを作成します。
IPsec 通信についても通常の通信と同様にファイアウォールポリシーで許可設定を行う必要があります。送信元側拠点と宛先側拠点それぞれでポリシー設定が必要です。
- 送信元側拠点 → 内部インターフェースを入力、トンネルインターフェースを出力とするポリシー
- 宛先側拠点 → トンネルインターフェースを入力、内部インターフェースを出力とするポリシー
拠点間 IPsec VPN 設定手順 (GUI、CLI)
この項目では拠点A側の FortiGate を設定する場合の設定例を掲載します。拠点B側の FortiGate でも同様に設定してください。
① アドレスオブジェクト、アドレスグループの設定
まず、IPsec 設定およびスタティックルートで使用するアドレスオブジェクト、アドレスグループを作成します。
本記事の構成例の場合、拠点A、拠点Bの内部セグメントに対応するアドレスオブジェクト、グループを作成します。

- アドレスオブジェクト
- 10.1.1.0/24・・・拠点A側内部セグメント
- 10.1.2.0/24・・・拠点A側内部セグメント
- 10.2.1.0/24・・・拠点B側内部セグメント
- 10.2.2.0/24・・・拠点B側内部セグメント
- アドレスグループ
- IPsec_Group_A
- メンバー:10.1.1.0/24、10.1.2.0/24
- IPsec_Group_B
- メンバー:10.2.1.0/24、10.2.2.0/24
- IPsec_Group_A
GUI 設定手順
左メニューから「ポリシー&オブジェクト > アドレス」を開き、「Address」タブにある「新規作成」をクリックします。

拠点A側内部セグメントを示すアドレスと、拠点B側内部セグメントを示すアドレスを作成します。これらのアドレスは拠点別にグループ化するためインターフェースを「any」にする必要があります。
なお、拠点Aの FortiGate では拠点Bの内部セグメントを示すアドレスオブジェクトを後で設定するスタティックルート設定の宛先としても使用予定のため「ルーティング設定」を ON にすることがポイントです。

左メニューから「ポリシー&オブジェクト > アドレス」を開き、「Address Group」タブにある「新規作成」をクリックします。

拠点A側内部セグメントをまとめたグループと、拠点B側内部セグメントをまとめたグループを作成します。
なお、拠点Aの FortiGate では拠点Bの内部セグメントを示すアドレスグループを後で設定するスタティックルート設定の宛先としても使用予定のため「ルーティング設定」を ON にすることがポイントです。

CLI 設定手順
上の GUI 設定例と同等の設定を CLI を行う場合は以下の設定コマンドを実行します。
◆アドレスオブジェクト
config firewall address
edit "10.1.1.0/24"
set subnet 10.1.1.0 255.255.255.0
next
edit "10.1.2.0/24"
set subnet 10.1.2.0 255.255.255.0
next
edit "10.2.1.0/24"
set allow-routing enable
set subnet 10.2.1.0 255.255.255.0
next
edit "10.2.2.0/24"
set allow-routing enable
set subnet 10.2.2.0 255.255.255.0
next
end◆アドレスグループ
config firewall addrgrp
edit "IPsec_Group_A"
set member "10.1.2.0/24" "10.1.1.0/24"
next
edit "IPsec_Group_B"
set allow-routing enable
set member "10.2.1.0/24" "10.2.2.0/24"
next
end② IPsec フェーズ1/フェーズ2 の設定
GUI 設定手順
左側メニューから「VPN > VPNトンネル」を開き、「新規作成」をクリックします。

以下のような設定画面が表示されるため各項目を要件に応じて設定します。ポイントとなる箇所にコメントを付けています。




以下のような設定画面が表示されるため各項目を要件に応じて設定します。ポイントとなる箇所にコメントを付けています。




VPNトンネル画面にてリストにトンネルが追加されたことを確認します。

「ネットワーク > インターフェース」画面にて WAN インターフェース配下にトンネルインターフェースが追加されていることを確認します。

CLI 設定手順
◆IPsec フェーズ1 設定
config vpn ipsec phase1-interfaceがフェーズ1 に該当するコンフィグ項目です。
以下は GUI 設定例と同等の設定コマンドです。
config vpn ipsec phase1-interface
edit "Tunnel-To-B"
set interface "wan1"
set ike-version 2
set peertype any
set net-device disable
set proposal aes256-sha512
set dhgrp 20
set nattraversal disable
set transport udp
set remote-gw 100.1.1.2
set psksecret password
next
endデフォルト値も含むフルコンフィグだと以下です。
config vpn ipsec phase1-interface
edit "Tunnel-To-B"
set type static
set interface "wan1"
set ip-version 4
set ike-version 2
set local-gw 0.0.0.0
set keylife 86400
set authmethod psk
unset authmethod-remote
set peertype any
set monitor-min 0
set net-device disable
set passive-mode disable
set exchange-interface-ip disable
set aggregate-member disable
set packet-redistribution disable
set peer-egress-shaping disable
set mode-cfg disable
set proposal aes256-sha512
set localid ''
set localid-type auto
set auto-negotiate enable
set negotiate-timeout 30
set fragmentation enable
set ip-fragmentation post-encapsulation
set dpd on-demand
set comments ''
set npu-offload enable
set dhgrp 20
set suite-b disable
set eap disable
set ppk disable
set wizard-type custom
set reauth disable
set idle-timeout disable
set ha-sync-esp-seqno enable
set fgsp-sync disable
set inbound-dscp-copy disable
set auto-discovery-sender disable
set auto-discovery-receiver disable
set auto-discovery-forwarder disable
set encapsulation none
set nattraversal disable
set fragmentation-mtu 1200
set childless-ike disable
set rekey enable
set fec-egress disable
set fec-ingress disable
set network-overlay disable
set dev-id-notification disable
set link-cost 0
set kms ''
set exchange-fgt-device-id disable
set ems-sn-check disable
set qkd disable
set transport udp
set remote-gw 100.1.1.2
set add-gw-route disable
set psksecret password
set dpd-retrycount 3
set dpd-retryinterval 20
next
end◆IPsec フェーズ1 設定後のトンネルインターフェース確認
フェーズ1 設定後、トンネルインターフェースが自動で追加されます。
FortiGate-60F-A # show system interface
config system interface
#中略
edit "Tunnel-To-B"
set vdom "root"
set type tunnel
set snmp-index 15
set interface "wan1"
next
endトンネルインターフェースのIPアドレス設定については以下の記事を参考にしてください。
・https://kagechiku.com/fortigate-ipsec/#index_id6
◆IPsec フェーズ2 設定
config vpn ipsec phase2-interfaceがフェーズ1 に該当するコンフィグ項目です。
以下は GUI 設定例と同等の設定コマンドです。
config vpn ipsec phase2-interface
edit "Tunnel-To-B"
set phase1name "Tunnel-To-B"
set proposal aes256-sha512
set dhgrp 20
set src-addr-type name
set dst-addr-type name
set src-name "IPsec_Group_A"
set dst-name "IPsec_Group_B"
next
endデフォルト値も含むフルコンフィグだと以下です。
config vpn ipsec phase2-interface
edit "Tunnel-To-B"
set phase1name "Tunnel-To-B"
set proposal aes256-sha512
set pfs enable
set dhgrp 20
set replay enable
set keepalive disable
set auto-negotiate disable
set inbound-dscp-copy phase1
set auto-discovery-sender phase1
set auto-discovery-forwarder phase1
set keylife-type seconds
set encapsulation tunnel-mode
set comments ''
set initiator-ts-narrow disable
set diffserv disable
set protocol 0
set src-addr-type name
set src-port 0
set dst-addr-type name
set dst-port 0
set keylifeseconds 43200
set src-name "IPsec_Group_A"
set dst-name "IPsec_Group_B"
next
end③ IPsec 通信用スタティックルートの設定
GUI 設定手順
左側メニューから「ネットワーク > スタティックルート」を開き、「新規作成」をクリックします。

以下の通りスタティックルートを設定し作成します。

宛先としてアドレスグループを指定したルートではなく、個別セグメントごとにサブネットタイプのルートを作成しても問題ありません。
Tunnel がダウンしている場合、対向拠点宛の通信がデフォルトルートに合致し WAN 向けにルーティングされる可能性があります。これを防止し、Tunnel がダウンしているときはパケット破棄するためにはブラックホールルートを作成します。

VPN ウィザードを使用してサイト間 IPsec VPN を設定した場合、自動でブラックホールルートが作成されます。
スタティックルート画面にてリストにルート設定が追加されたことを確認します。

CLI 設定手順
以下は GUI 設定例と同等の設定コマンドです。
config router static
edit 2
set device "Tunnel-To-B"
set dstaddr "IPsec_Group_B"
next
edit 3
set distance 254
set blackhole enable
set dstaddr "IPsec_Group_B"
set vrf 0
next
endedit 番号は未使用の番号を指定してください。
④ IPsec 通信用ファイアウォールポリシーの設定
IPsec 通信についても通常の通信と同様にファイアウォールポリシーで許可設定を行う必要があります。送信元側拠点と宛先側拠点それぞれでポリシー設定が必要です。
- 送信元側拠点 → 内部インターフェースを入力、トンネルインターフェースを出力とするポリシー
- 宛先側拠点 → トンネルインターフェースを入力、内部インターフェースを出力とするポリシー

GUI 設定手順
左側メニューから「ポリシー&オブジェクト > ファイアウォールポリシー」を開き、「新規作成」をクリックします。

自拠点から対向拠点への通信要件がある場合は、該当する通信を許可するポリシーを作成します。IPsec トンネルを通る通信を対象とするためには発信インターフェースにトンネルインターフェースを指定します。

対向拠点から自拠点への通信要件がある場合は、該当する通信を許可するポリシーを作成します。IPsec トンネルを通る通信を対象とするためには着信インターフェースにトンネルインターフェースを指定します。

ファイアウォールポリシー画面にてリストにポリシー設定が追加されたことを確認します。

CLI 設定手順
以下は GUI 設定例と同等の設定コマンドです。
config firewall policy
edit 1
set name "internal1_to_IPsec-To-B"
set srcintf "internal1"
set dstintf "Tunnel-To-B"
set action accept
set srcaddr "IPsec_Group_A"
set dstaddr "IPsec_Group_B"
set schedule "always"
set service "ALL"
set logtraffic all
next
edit 2
set name "IPsec-To-B_to_internal1"
set srcintf "Tunnel-To-B"
set dstintf "internal1"
set action accept
set srcaddr "IPsec_Group_B"
set dstaddr "IPsec_Group_A"
set schedule "always"
set service "ALL"
set logtraffic all
next
endedit 番号は未使用の番号を指定してください。
IPsec VPN 状態確認
GUI での状態確認
VPN トンネル画面にてトンネルのステータスがアップになっていることを確認します。ステータスの「アップ」をクリックすると詳細情報を表示できます。また「一致するログを表示」をクリックすることで関係する VPN ログを確認できます。

以下の詳細画面ではフェーズごとの状態を確認できます。

IPsec トンネル確立に成功している場合、VPN ログでは以下のようにフェーズ1、フェーズ2の success ログ、tunnle-up のログが表示されます。

CLI での状態確認
- diagnose vpn ike gateway list
- フェーズ1トンネルの状態確認
FortiGate-60F-A # diagnose vpn ike gateway list
vd: root/0
name: Tunnel-To-B
version: 2
interface: wan1 5
addr: 100.1.1.1:500 -> 100.2.1.1:500
tun_id: 100.2.1.1/::100.2.1.1
remote_location: 0.0.0.0
network-id: 0
transport: UDP
created: 835s ago
peer-id: 100.2.1.1
peer-id-auth: no
pending-queue: 0
PPK: no
IKE SA: created 1/2 established 1/1 time 30/30/30 ms
IPsec SA: created 1/2 established 1/1 time 10/10/10 ms
id/spi: 39 48da26bd53ccec68/4fda1340bf20eb78
direction: responder
status: established 825-825s ago = 30ms
proposal: aes256-sha512
child: no
SK_ei: ab71fa5a69773629-7a37d6cbfd5ddb52-d93f5bed6ababda3-e80b707b3a23e4f1
SK_er: c65cc7177c058dd1-8b3f57b78d260a31-e8ac547b82c899cc-27f7fe88e7b905a8
SK_ai: 7884fa171ab669c1-1a6f1d99a94c6b60-7d870050720e2e8d-7f028759744a9d45-5bcb4a9f5ec0a8f3-f5cbd66460dcbe8e-1d096d0dc7a2f318-83c5d14f57f3c7bd
SK_ar: f21c83a83226b6a9-64ef8aa0f2cd4213-b472500b3b95a66d-0933ca45a3a9cb2d-1768af7d0972e107-25f7ecd87ccc7cac-59d3727ec2f257e0-01b097e6728a00af
PPK: no
message-id sent/recv: 0/2
QKD: no
PQC-KEM (IKE): no
PQC-KEM (all IPsec): no
lifetime/rekey: 86400/85304
DPD sent/recv: 00000000/00000000
peer-id: 100.2.1.1- diagnose vpn tunnel list
- フェーズ2トンネルの状態確認
FortiGate-60F-A # diagnose vpn tunnel list
list all ipsec tunnel in vd 0
------------------------------------------------------
name=Tunnel-To-B ver=2 serial=1 100.1.1.1:0->100.2.1.1:0 nexthop=0.0.0.0 tun_id=100.2.1.1 tun_id6=::100.2.1.1 status=up dst_mtu=0 weight=1
bound_if=5 real_if=0 lgwy=static/1 tun=intf mode=auto/1 encap=none/552 options[0228]=npu frag-rfc run_state=0 role=primary accept_traffic=1 overlay_id=0
proxyid_num=1 child_num=0 refcnt=4 ilast=42964199 olast=42964199 ad=/0
stat: rxp=0 txp=0 rxb=0 txb=0
dpd: mode=on-demand on=1 status=ok idle=20000ms retry=3 count=0 seqno=0
natt: mode=none draft=0 interval=0 remote_port=0
fec: egress=0 ingress=0
proxyid=Tunnel-To-B proto=0 sa=1 ref=2 serial=1
src: 0:10.1.2.0-10.1.2.255:0 0:10.1.1.0-10.1.1.255:0
dst: 0:10.2.1.0-10.2.1.255:0 0:10.2.2.0-10.2.2.255:0
SA: ref=3 options=10226 type=00 soft=0 mtu=1280 expire=41994/0B replaywin=2048
seqno=1 esn=0 replaywin_lastseq=00000000 qat=0 rekey=0 hash_search_len=1
life: type=01 bytes=0/0 timeout=42928/43200
dec: spi=856163ab esp=aes key=32 6d6fa084cf8ad86bdac9a1b8d3b5367d278fcc8f59c85ec6b14528b60d95e4e0
ah=sha512 key=64 5d10f35d92cf824a41a08bb8b8719c21da104059245bcc5cb1ba3091e2ddb9dbe0954ed63a93fd2fa4020aeb01458172ec52bf2948ac21c4480a147ffdbd8cc4
enc: spi=f4334430 esp=aes key=32 728c15e7736fce745dbccae6f601480b4375afd6ae44e3dc906e6d487a063276
ah=sha512 key=64 6fdf8a058a5783ec533061957bba5db0d0f3137323a1d1bc992d2cfe428e0f93ee49dfbfd51fd79c39a404a318d4443d9f22003a0e2b503686d6d1653315a22c
dec:pkts/bytes=0/0, enc:pkts/bytes=0/0
npu_flag=00 npu_rgwy=0.0.0.0:0 npu_lgwy=0.0.0.0:0 npu_selid=0
dec_npuid=0 enc_npuid=0 dec_engid=-1 enc_engid=-1 dec_saidx=-1 enc_saidx=-1- get router info routing-table all
- ルーティングテーブル表示
- 対向拠点セグメント宛で Tunnel 出力のルートがインストールされていることを確認
FortiGate-60F-A # get router info routing-table all
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
V - BGP VPNv4
* - candidate default
Routing table for VRF=0
S* 0.0.0.0/0 [10/0] via 100.1.1.2, wan1, [1/0]
C 10.1.1.0/24 is directly connected, internal1
S 10.2.1.0/24 [10/0] via Tunnel-To-B tunnel 100.2.1.1, [1/0]
S 10.2.2.0/24 [10/0] via Tunnel-To-B tunnel 100.2.1.1, [1/0]
C 100.1.1.0/30 is directly connected, wan1CLI での状態確認については以下の記事も参考にしてください。
・https://kagechiku.com/fortigate-ipsec/#index_id9
参考資料
【おすすめ】FortiGate の設計構築中なら以下の記事も役立つかもです
- 基礎知識
- HA (冗長構成) 設定
- FortiGate HA モードの Active-Passive と Active-Active の違いを解説します
- FortiGate HA(冗長構成)の概要と設定ガイド【詳しく解説】※note記事
- FortiGate HA 構成時のコンフィグ同期の仕様について解説します
- FortiGate HA 構成時の NTP,Syslog,SNMP 等の送信元インターフェースを解説 [ha-direct 設定]
- FortiGate HA 構成時の仮想 MAC アドレスについて解説します
- FortiGate HA ハートビート送信間隔と障害判定しきい値の設定ガイド
- FortiGate HA 構成時のバックアップ及びリストア実施ガイド
- FortiGate HA 構成でのモニタインターフェースダウン時の通信断時間について解説
- FortiGate HA 構成に関するQ&A 【良くありそうな疑問集】
- FortiGate で override が無効なのにフェイルバックが発生する理由 ※note記事
- VDOM (バーチャルドメイン) 設定
- トランスペアレントモード設定
- システム系設定
- 管理者アカウント設定
- 時刻・NTP 設定
- ロギング・Syslog 送信設定
- SNMP 設定
- DHCP サーバ機能設定
- Proxy サーバ機能設定
- アラートメール送信
- ネットワーク系設定
- インターフェース設定
- ルーティング設定
- DNS 設定
- NAT 及び NAPT 設定
- ファイアウォール系設定
- アドレス設定
- サービス設定
- ファイアウォールポリシー設定
- ゾーンを使用したポリシー設定
- VPN 系設定
- SSL-VPN 設定
- IPsec VPN 設定
- Tips
- NCA (Network Construction Assistant)
Amazon アフィリエイトリンク
以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。








コメント