こんにちは。ネットワールド西日本技術部SEの山下大輔です。
現在、弊社では FortiGate における SSL-VPN 機能の廃止に伴い、
その代替手段の一つとして「IPSec-VPN」に関する各種検証を実施しています。
今回はその検証の中から、MACアドレスによるアクセス制御を実現するための
設定方法についてご紹介いたします。
課題
FortiGateの SSL-VPN では、ログイン時に端末の状態を確認する「ホストチェック」
機能が用意されており、MACアドレスによる認証制御も無償で実施することが
可能でした。
しかしながら、現時点において IPSec-VPN には同様のホストチェック機能が
存在しないため、完全な移行には課題があります。
現在ご提案可能な代替手段としては、以下のような選択肢があります。
・「IPSec-VPNでもクライアント証明書をご利用いただけます」
・「FortiClient EMS を導入いただくことで、MACアドレス制御が可能です」
ただし、これらの方法では別途ライセンスや有償機能の利用が必要となり、
お客様のご要件やコスト面での制約により採用が難しいケースもございます。
そこで今回は、追加費用を抑えながら、従来の MAC アドレスベースによる制御を
再現可能な代替手法をご紹介いたします。
代替案
IPSec-VPN 環境では、FortiGateの内蔵 DHCP サーバを使用して、VPNクライアントに
対し動的に IP アドレスを割り当てることが可能です。
このDHCPサーバには「IPアドレスの割り当てルール」機能があり、
端末のMACアドレスに応じて固定のIPアドレスを割り当てることができます。
この機能を活用することで、事前に登録されたMACアドレス以外の端末には
IPアドレスが払い出されず、VPN接続後であっても通信できない状態となります。
結果として、VPN環境における疑似的なMACアドレスによるアクセス制御が
実現できます。
設定方法
【FortiGate】
※FortiOS7.4.7
1.IPSec-VPNを設定します。設定方法はこちらのブログをご参照ください。
2.ネットワーク>インターフェースより、トンネルインターフェースを編集します。
2-1.『アドレス』にトンネルインターフェースで使用するIPアドレスを設定します。
・IP:10.255.255.254
・ネットマスク:255.255.255.0
・リモートIP/ネットマスク:10.255.255.254/255.255.255.0
2-2.『DHCPサーバ』を有効にし、払い出すIPアドレス範囲を設定します。
・アドレス範囲:10.255.255.1-10.255.255.2
・ネットマスク:255.255.255.0
2-3.『高度な設定』を開き、IPSecで払い出すIPアドレスとMACアドレスを設定します。
・タイプ:IPSec
・IP アドレスの割り当てルールを新規作成し、以下設定します。
・タイプ:MACアドレス
・MACアドレス:xx:xx:xx:xx ←端末のMACアドレスを設定します。
・アクションタイプ:IPの予約
・IP:10.255.255.1
2-4.すべて設定が終わったら、画面下部の『OK』をクリックします。
3.CLIより、IPSecトンネルを編集します。
3-1.『mode-cfg』を無効化します。
Fortigate # config vpn ipsec phase1-interface
Fortigate (phase1-interface) # edit dy-IPSecVPN
Fortigate (dy-IPSecVPN) # set mode-cfg disable
Fortigate (dy-IPSecVPN) # end
Fortigate #
3-2.『dhcp-ipsec』を有効化します。
Fortigate # config vpn ipsec phase2-interface
Fortigate (phase2-interface) # edit dy-IPSecVPN
Fortigate (dy-IPSecVPN) # set dhcp-ipsec enable
Fortigate (dy-IPSecVPN) # end
Fortigate #
以上でFortiGateの設定は終了です。
【FortiClient】
1.FortiClientのプロファイルを設定します。設定方法はこちらのブログをご参照ください。
2.プロファイルを編集します。
詳細設定>VPN設定より、以下設定します。
・Address Assignment:DHCP over IPsec
※ここで『IPv4スプリットトンネルを有効』を設定すると、指定したネットワーク宛の通信のみVPNトンネルへ転送するようルートテーブルが設定されます。
以上でFortiClientの設定は終了です。
動作確認
事前にMACアドレスを登録した端末からVPN接続を試みると、問題なく接続が確立し、内部ネットワークへの通信(例:ping)も成功します。
一方、MACアドレスの登録をしていない端末からは、接続試行後も進展がなく、
VPN接続に失敗します。この端末から内部ネットワークにpingを送信しても、応答がありません。
以上により、意図通りMACアドレスによるアクセス制御が有効に動作していることが確認できました。
まとめ
いかがでしたでしょうか。
FortiGateのSSL-VPN機能の廃止に伴い、IPSec-VPNへの移行が求められるケースが
今後増加していくかと思います。
本記事でご紹介したように、工夫次第ではIPSec-VPNでも一定の端末制御を実現することが
可能です。
弊社では、より高度な制御を求められる環境においては「クライアント証明書」や「FortiClient EMS」の導入を推奨しておりますが、本記事で紹介した設定も一つの有効な選択肢となるかと思います。
ぜひ、自社環境での設計検討にお役立ていただければ幸いです。
免責事項
- 本書は、株式会社ネットワールド(以下 弊社)が作成・管理します。
- 本書の記載内容の一部または全部を弊社に無断で改変・転載することを禁じます。
- 本書の記載内容は、一部または全部が将来予告無く変更されることがあります。
- 本書の利用は、利用者様の責任において行われるものとします。
- 本書の記載内容には、最善の注意を払っておりますが、正確性・完全性を保証するものではありません。
従いまして、本書の利用によって生じたあらゆる損害に関して、弊社は一切の責任を負いません。