【FortiGate】IPsecリモートアクセスVPN設定手順|60FとFortiClientをIKEv2で接続

FortiGate 60F IPsec VPN設定のアイキャッチ画像

当ページのリンクには広告が含まれています。

FortiGateへ社外PCから接続する方法の1つが、FortiClientを使ったIPsecリモートアクセスVPNです。この記事では、FortiGate 60F(FortiOS 7.4.9)とMac版FortiClient 7.4.3を使い、IKEv2とEAPユーザー認証でVPN接続し、社内PCへの疎通とログまで実機で確認します。

FortiGateのIPsecウィザードは初期状態でIKEv1を使います。一方、Fortinet公式ドキュメントではFortiClient 7.4.4以降はIKEv1をサポートしないと案内されています。そのため、ウィザードで基本オブジェクトを作成したあと、IKEv2/EAPへ変更する手順まで扱います。

目次

SSL-VPNから移行する方へ

FortiGateのリモートアクセスにはSSL-VPNもありますが、2GB RAMのFortiGate 60Fなどでは、FortiOS 7.6以降でSSL-VPNのWebモード・トンネルモードが利用できません。さらにFortiOS 7.6.3以降では、SSL-VPNトンネルモード自体が非対応となっています。

ただしFortiOS 7.4系や一部の機種では引き続き利用できる場合があります。SSL-VPNが使えるかどうかは、対象機種・搭載RAM・FortiOSバージョンの組み合わせで変わるため、必ず公式資料で確認してください。

当サイトでは2019年に公開したSSL-VPN設定手順を今後保守しないため、リモートアクセスVPNはこの記事のIPsec手順を案内しています。

すでにSSL-VPNを運用中の環境で移行する場合は、既存のSSL-VPNを先に停止しないでください。設定のバックアップを取得したうえでIPsecリモートアクセスVPNを並行して構築し、疎通とログを確認して利用者を切り替えてから、旧方式を停止する順序が安全です。

今回の検証構成

今回はwan1側のLANをインターネット側に見立て、MacからFortiClientで接続しました。VPN接続後はinternal側のWindows PCへpingし、FortiGateの転送トラフィックログでも往復を確認しています。

機器・項目設定値
FortiGateFortiGate 60F / FortiOS 7.4.9
wan1192.168.10.250/24
internal192.168.1.99/24
VPNクライアントMac / FortiClient 7.4.3
VPNクライアント割当範囲10.20.30.1~10.20.30.5
接続先PCWindows PC / 192.168.1.111

IPアドレスは検証例です。実環境では、VPNクライアントの割当範囲がwan、LAN、DMZ、拠点間VPN、社内ルーティング上のネットワークと重複しないことを先に確認してください。

VPNユーザーとユーザーグループを作成する

ユーザ&認証 > ユーザ定義でVPN接続用ユーザーを作成します。続いてユーザ&認証 > ユーザグループを開き、ユーザーグループを作成して先ほどのユーザーをメンバーへ追加します。

  • ユーザー名の例:vpnuser01
  • ユーザーグループ名の例:vpn-group
  • パスワード:推測されにくい値を設定
FortiGate 60FでVPNユーザーグループvpn-groupを作成した画面
ユーザーグループvpn-groupへVPN接続用ユーザーを追加します。

IPsecウィザードでリモートアクセスVPNを作成する

1. リモートアクセスとFortiClientを選択する

VPN > IPsecウィザードを開き、次の値を指定します。

  • 名前:remote-vpn
  • テンプレートタイプ:リモートアクセス
  • リモートデバイスタイプ:クライアントベース
  • クライアント:FortiClient
FortiGate 60FのIPsecウィザードでリモートアクセスとFortiClientを選択した画面
リモートアクセス、クライアントベース、FortiClientを選択します。

2. 認証設定を入力する

着信インターフェースにwan1、認証方式に事前共有鍵、ユーザーグループにvpn-groupを指定します。事前共有鍵は記事や設定資料へ平文で残さず、安全な方法でFortiClient利用者へ共有してください。

FortiGate 60FのIPsecウィザードでwan1と事前共有鍵とユーザーグループを設定した画面
wan1、事前共有鍵、VPNユーザーグループを指定します。

3. ポリシーとクライアントアドレス範囲を指定する

ローカルインターフェースにinternal、ローカルアドレスに社内LANのアドレスオブジェクトを指定します。クライアントアドレス範囲には、ほかのネットワークと重複しない10.20.30.1-10.20.30.5を使用しました。

ローカルインターフェースinternal
ローカルアドレスinternal-subnet(192.168.1.0/24)
クライアントアドレス範囲10.20.30.1~10.20.30.5
スプリットトンネル有効

設定確認画面では、Phase1、Phase2、クライアントアドレス、スプリットトンネル用グループ、ファイアウォールポリシーが作成されることを確認して「作成」を選択します。

FortiGate 60FのIPsecウィザードで作成されるVPNオブジェクトを確認する画面
ウィザードが作成するVPNオブジェクトを確認します。
FortiGate 60FのIPsecウィザードでVPN設定が作成された完了画面
VPN設定と関連オブジェクトが作成されました。

ウィザードの設定をIKEv2/EAPへ変更する

FortiOS 7.4.9のIPsecウィザードはIKEv1で設定を作成します。FortiClient 7.4.4以降との互換性を考慮し、作成後にIKEv2とEAPへ変更します。CLIコンソールまたはSSHで次の設定を投入します。

config firewall address
    edit "remote-vpn_range"
        set type iprange
        set start-ip 10.20.30.1
        set end-ip 10.20.30.5
    next
end

config vpn ipsec phase1-interface
    edit "remote-vpn"
        set ike-version 2
        set peertype any
        set net-device disable
        set mode-cfg enable
        set proposal aes128-sha256 aes256-sha256
        set dhgrp 20
        set eap enable
        set eap-identity send-request
        set authusrgrp "vpn-group"
        set ipv4-start-ip 10.20.30.1
        set ipv4-end-ip 10.20.30.5
        set dns-mode auto
        set ipv4-split-include "remote-vpn_split"
    next
end

config vpn ipsec phase2-interface
    edit "remote-vpn"
        set proposal aes128-sha256 aes256-sha256
        set dhgrp 20
    next
end

set ike-version 2へ変更した際にモードコンフィグが無効化される場合があるため、set mode-cfg enableとクライアントアドレス範囲を明示しています。事前共有鍵はウィザードで設定済みなので、このコマンドには記載していません。

FortiGate 60FのIPsec VPN最終設定でIKEバージョン2とアドレス範囲と暗号方式を確認した画面
IKEバージョン2、クライアントアドレス範囲10.20.30.1~10.20.30.5、AES/SHA256、DHグループ20を確認します。

FortiClientでIKEv2接続を作成する

FortiClient VPNでIPsec VPN接続を作成し、FortiGateと同じ値を指定します。

リモートGWFortiGateのwan1側IPまたはFQDN
認証方法事前共有鍵
認証(EAP)ユーザー名入力
IKEバージョン2
オプションモードコンフィグ
Phase1プロポーザルAES256/SHA256、AES128/SHA256
Phase1 DHグループ20
Phase2プロポーザルAES256/SHA256、AES128/SHA256
PFS / DHグループ有効 / 20

今回のFortiClient 7.4.3では、IKEバージョンを2へ切り替えたときにプロポーザルがDES/SHA1系へ戻りました。IKEバージョンを変更したあと、Phase1とPhase2の暗号方式・認証方式・DHグループを再確認してください。

FortiClientのIKEv2設定でAESとSHA256とDHグループ20を指定した画面
Phase1とPhase2をAES/SHA256、DHグループ20へ揃えます。

VPNへ接続して疎通とログを確認する

FortiClientの接続画面でVPNユーザー名とパスワードを入力し、「接続」を選択します。接続後、VPNクライアントIPとして10.20.30.1が割り当てられました。

FortiClientでIPsec IKEv2 VPNへ接続し10.20.30.1が割り当てられた画面
IKEv2/EAPで接続し、10.20.30.1が割り当てられた状態です。

Macのルートと社内PCへのpingを確認する

% netstat -rn -f inet | grep 192.168.1
192.168.1          10.20.30.1         UGSc                utun8

% ping -c 5 192.168.1.111
PING 192.168.1.111 (192.168.1.111): 56 data bytes
64 bytes from 192.168.1.111: icmp_seq=0 ttl=127 time=6.934 ms
64 bytes from 192.168.1.111: icmp_seq=1 ttl=127 time=9.203 ms
64 bytes from 192.168.1.111: icmp_seq=2 ttl=127 time=4.776 ms
64 bytes from 192.168.1.111: icmp_seq=3 ttl=127 time=4.534 ms
64 bytes from 192.168.1.111: icmp_seq=4 ttl=127 time=4.223 ms

5 packets transmitted, 5 packets received, 0.0% packet loss

VPNイベントを確認する

ログ&レポート > システムイベントを開き、右上のイベント種別を「VPNイベント」へ変更します。tunnel-upphase2-upinstall_saと、ステータスsuccessを確認します。

FortiGate 60FのVPNイベントでIKEv2接続成功とトンネルアップを確認した画面
VPNイベントでPhase1、Phase2、トンネルアップを確認します。

転送トラフィックログを確認する

ログ&レポート > 転送トラフィックでは、送信元10.20.30.1、宛先192.168.1.111、アプリケーションPING、結果「許可」を確認できました。接続済み表示だけでなく、実際の社内向け通信がポリシーを通過していることまで確認します。

FortiGate 60Fの転送トラフィックログでVPNクライアントから社内PCへのPING許可を確認した画面
VPNクライアントから社内PCへのPINGが許可され、往復バイトが記録されています。

トンネルは接続済みなのに通信できない場合

VPNクライアント範囲が既存ネットワークと重複していないか

今回、最初に指定した10.10.10.1-10.10.10.5はFortiGateのDMZ(10.10.10.0/24)と重複していました。その結果、VPNクライアント向けの動的/32ルートが有効にならず、受信カウンタだけ増えて返信を暗号化できない状態になりました。重複しない10.20.30.1-10.20.30.5へ変更して解消しています。

Phase1とPhase2のプロポーザルが一致しているか

FortiGateのVPNイベントにpeer SA proposal not match local policyと表示される場合は、FortiGateとFortiClientの暗号方式、認証方式、DHグループを比較します。今回の環境ではFortiClient側がDESへ戻っていたため、AES/SHA256とDHグループ20へ揃えると接続できました。

動的ルートと送受信カウンタを確認する

diagnose vpn ike gateway list
diagnose vpn tunnel list name remote-vpn_0
get router info routing-table details 10.20.30.1
  • version: 2になっているか
  • EAPユーザーと割当IPが表示されているか
  • IKE SAとIPsec SAがestablishedか
  • 10.20.30.1/32 via remote-vpnのルートが有効か
  • decencの両方が増えているか

diagnose vpn tunnel listの完全な出力にはIPsec SAの鍵情報が含まれます。画面共有、記事、チケットへ貼る場合は、必要な状態とカウンタだけを抜粋し、鍵情報を公開しないでください。

社内PCのファイアウォールを確認する

VPNトンネルとFortiGateポリシーが正常でも、接続先PCのファイアウォールが別サブネットからのICMPや業務ポートを拒否していると応答は返りません。今回のWindows PCはVPNクライアント範囲からのICMPを拒否したため、疎通証跡の取得時だけVPNポリシーのNATを有効にしました。

本番構成では、必要な送信元とサービスだけを端末側で許可し、VPNクライアントIPをログやアクセス制御に利用できるよう、NATを使わない設計も含めて検討してください。

検証後にVPN設定を削除する

検証用設定を削除する場合は、依存関係の逆順で削除します。ポリシーIDは環境ごとに異なるため、事前に一覧で確認してください。

config firewall policy
    delete <VPNポリシーID>
end

config vpn ipsec phase2-interface
    delete "remote-vpn"
end

config vpn ipsec phase1-interface
    delete "remote-vpn"
end

config firewall addrgrp
    delete "remote-vpn_split"
end

config firewall address
    delete "remote-vpn_range"
    delete "internal-subnet"
end

config user group
    delete "vpn-group"
end

config user local
    delete "vpnuser01"
end

まとめ

  • FortiOS 7.4.9のIPsecウィザードはIKEv1で作成されるため、現行FortiClientを見据えてIKEv2/EAPへ変更する
  • VPNクライアントのアドレス範囲は、wan、LAN、DMZ、拠点間ネットワークと重複させない
  • FortiGateとFortiClientのPhase1/Phase2プロポーザルとDHグループを一致させる
  • 接続済み表示だけでなく、動的ルート、VPNイベント、転送ログ、実通信まで確認する

今回の実機では、IKEv2/EAPでVPN接続し、割当IP10.20.30.1からinternal側PC192.168.1.111へのping、FortiGateのVPNイベントと転送トラフィックログまで確認できました。

関連ページ

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

30歳未経験からネットワークエンジニアに転職し、運用→構築→設計の仕事をやってます。色んな機器(Cisco、YAMAHA、Fortigate、PaloAlto)を触らせてもらいとても楽しい仕事です!

現在は派遣にて主にCiscoを中心としたネットワーク設計~構築をしております。

また、2023年より副業で個人事業主や小規模企業からのパソコン設定~ネットワーク作業の仕事を請け負っておりますので、もしお困りの方がいましたらお気軽にお問い合わせください。

●今までの作業履歴
- パソコンの新旧入れ替え
- 拠点間のインターネットVPN接続(YAMAHA-Fortigate)

コメント

コメントする

目次