FortiGate のキャプティブポータル認証について

  • URLをコピーしました!
目次

はじめに

前回は、ブラウザに認証ポップアップを表示させてアクセス制御を行う「Explicit Proxy 認証」の設定方法をご紹介しました。

今回は、もう一つの代表的な認証方式である 「キャプティブポータル (Captive Portal)」 について解説します。

この記事でわかること
  • キャプティブポータル とプロキシ認証の使い分け
  • ゲスト Wi-Fi 構築に向けた FortiGate 設定手順
  • CLI で行う タイムアウト設定(利用時間の強制制限)

ホテルや空港などの フリー Wi-Fi に接続した際、最初に 「ログイン画面」や「利用規約の同意画面」 がブラウザに表示された経験はありませんか?
あの仕組みが「キャプティブポータル」です。 ユーザーが Web サイトを見ようとすると、強制的に認証ページへリダイレクト(転送)し、認証が完了するまでインターネットへのアクセスをブロックする技術です。

プロキシ認証 vs キャプティブポータル

FortiGate には複数の認証機能がありますが、前回紹介した「プロキシ認証(Explicit Proxy)」と、今回の「キャプティブポータル」はどう使い分ければ良いのでしょうか?

最大の違いは 「ユーザー(クライアント端末)側の設定が必要かどうか」 です。

キャプティブポータルプロキシ認証(Explicit Proxy)
主な用途ゲストWi-Fi、BYOD社内 PC の Web 管理
PC 側の設定不要(つなぐだけで OK)必要(ブラウザ設定)
認証の見た目Web ページ(デザイン変更可)ポップアップ(地味)
仕組み初回アクセスを強制リダイレクトプロキシ経由で認証

例えば、来客用のゲスト Wi-Fi でお客様に対して「ブラウザの設定を開いて、プロキシのアドレスを入力してください」とお願いするのは現実的ではありませんよね。
キャプティブポータルであれば、ユーザーは端末を Wi-Fi に繋いでブラウザを開くだけ です。 誰でも直感的に利用を開始できる点が、不特定多数が利用するゲスト Wi-Fi に最適とされる理由です。

キャプティブポータルの設定手順

手順
ユーザーとグループの作成

まずは「誰にアクセスを許可するか」というアカウント情報を作成します。

STEP
ローカルユーザーの作成
  1. 「ユーザー&認証」>「ユーザー定義」 へ移動し、「新規作成」をクリックします。
  2. タイプは「ローカルユーザー」を選択
  3. ユーザー名(例: userA)と パスワード を入力し、「OK」をクリックします。
STEP
ユーザーグループの作成

FortiGate の設定では、ユーザー単体ではなく「グループ」に対して権限を割り当てるのが基本です。

  1. 「ユーザー&認証」>「ユーザーグループ」 へ移動し、「新規作成」をクリックします。
  2. 名前(例: Internet-Group)を入力します。
  3. メンバー に、先ほど作成した userA を追加して「OK」をクリックします。

ユーザーをグループに入れておくことで、後から「userB」や「userC」を追加した際も、グループ設定を変えるだけで済むので管理が楽になります。

手順
キャプティブポータルの有効化

次に、LAN 側のインターフェースでキャプティブポータル機能を ON にします。 ここが今回の設定の核となる部分です。

  1. 「ネットワーク」>「インターフェース」 へ移動します。
  2. 対象の LAN側インターフェース(例: internal1)をダブルクリックして編集画面を開きます。
  3. 画面中ほどの 「セキュリティモード」 を有効にし、「キャプティブポータル」 を選択します。
  4. 認証ポータル:「ローカル」 を選択(FortiGate 内蔵の標準ログインページを使用します)
  5. ユーザーグループ: 先ほど作成した Internet-Group を指定します。ここで指定したグループのメンバーだけが認証可能です。

設定が完了したら、画面最下部の「OK」をクリックして保存します。

手順
ファイアウォールポリシーの設定

最後に、認証を通過したユーザーがインターネットへ出られるように、ファイアウォールポリシーを作成します。

  1. 「ポリシー&オブジェクト」>「ファイアウォールポリシー」 へ移動します。
  2. 「新規作成」をクリックし、通常のインターネットアクセス許可ポリシーを作成します。
項目設定内容
送信元all
宛先all
サービスALL
アクションACCEPT
NAT有効
  1. 「OK」をクリックします。

今回はインターフェース設定(手順2)の段階で認証をかけているため、ポリシーの送信元は all でも問題ありません。 (認証されていないユーザーは、そもそもこのポリシーまで到達できないためです)

手順
タイムアウト設定(CLI)

GUI での設定は以上ですが、ゲスト Wi-Fi などを運用する場合、「1時間経ったら自動で切断したい」 といった要望が出ることがあります。

この詳細なタイムアウト設定は GUI には用意されていないため、CLI(コマンドライン)で設定を行います。 今回は 「ログインから1分後に強制的に切断する(テスト用)」 設定を入れてみます。

コマンドの入力

FortiGate の CLI コンソール(画面右上の >_ アイコン)を開き、以下のコマンドを実行します。

config user setting
    set auth-cert "Fortinet_Factory"
    set auth-timeout 1               <-- 1分でタイムアウト
    set auth-timeout-type hard-timeout
end

3つのタイムアウト設定の違い

auth-timeout-type には、以下の3つのモードがあります。運用に合わせて使い分けましょう。

モード動作の仕組みおすすめの用途
idle-timeout(デフォルト)通信がない状態が続くと切断
使い続けていれば切れません。
社内ユーザー向け
hard-timeout通信していても、時間が来たら強制切断ゲスト Wi-Fi
new-session時間経過後の「新しい通信」で再認証
既存の通信(ダウンロード等)は切れません。
利便性重視

不特定多数が使うフリーWi-Fiの場合、居座りを防止するために hard-timeout を設定するのが一般的です。

動作確認

最後に、実際にクライアント PC を接続して、期待通りの動作をするか確認してみましょう。

認証リダイレクトの確認

  1. PC を対象のインターフェース(または Wi-Fi)に接続します。
  2. ブラウザを開き、Web サイトへアクセスします。

Google などの HTTPS サイトは、セキュリティの仕様(HSTS など)により、認証画面へのリダイレクトが警告ブロックされる場合があります。 初回は http://neverssl.com などの HTTP サイトへアクセスすると、スムーズに認証画面が表示されます。

  1. FortiGate の認証画面 に自動的にリダイレクトされます。
  2. 作成したユーザー名 userA とパスワードを入力し、「続行」をクリックします。
  3. 認証が成功し、元の Web サイトが表示されれば成功です。

セキュリティ機能の確認(EICAR テスト)

「ただインターネットに繋がるだけ」ではありません。FortiGate の強みは 「認証した上でセキュリティチェックができる」 点です。 試しに、テスト用ウイルスファイル(EICAR)をダウンロードしてみます。

以下のように、認証済みのユーザーであっても、危険なファイルはしっかりと ブロック されます。

ステータスの詳細確認(CLI)

最後に、FortiGate がユーザーをどう認識しているか、CLI コマンドで確認してみます。

FortiGate# diagnose firewall auth list

192.168.101.200, userA
    src_mac: e8:d8:d1:3f:99:e5
    type: fw, duration: 3, ...
    flag(804): hard no_idle    <-- ここに注目!
    group_name: Internet       <-- 所属グループ
  • userA : 認証されているユーザー名
  • flag: hard: 先ほど設定した hard-timeout(強制切断)が効いていることが分かります。

ステータスの詳細確認(GUI)

「ログ&レポート」>「セキュリティイベント」を見れば、ブロックログにユーザー名が紐付いて記録されているはずです。

まとめ

本記事では、ゲスト Wi-Fi 構築などに最適な 「キャプティブポータル認証」 の設定方法を解説しました。

「不特定多数に使わせたいけれど、セキュリティも考慮したい」 そんな場合にぜひ活用を検討してみてください。

以上、最後までお読みいただきありがとうございました。

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

この記事を書いた人

インフラ(クラウド/NW/仮想化)から Web 開発まで、技術領域を横断して活動するエンジニア💻 コンシューマー向けエンタメ事業での新規開発・運営経験を活かし、実戦的な技術ノウハウを発信中

[ Certs ] CCIE Lifetime Emeritus / VCAP-DCA ✒️ [ Life ] 技術書・ビジネス書愛好家📖 / 小・中学校で卓球コーチ👟

目次