【Fortigate】プロキシ認証(Explicit Proxy+ローカルユーザによるBasic認証)FortiOS6.2.4

FortiGate をプロキシとして使うとき、プロキシを使う前にユーザ認証を求めることができます。この記事では、FortiGate の Explicit Proxy に、FortiGate に作ったローカルユーザによるプロキシ認証(Basic 認証)を設定し、動作を確認します。検証時の FortiOS は 6.2.4 です。

プロキシ自体の設定は、次の記事で行っています。今回は、この記事の構成にプロキシ認証を足します。

>> 参考記事:【Fortigate】セキュアWeb ゲートウェイ(SWG : Explicit Proxy+SSLインスペクション+UTM) の設定と動作確認 FortiOS6.2.4

この記事でわかること
  1. Basic 認証の認証方式と、認証ルールの設定
  2. ローカルユーザとユーザグループの作成
  3. プロキシポリシーへのユーザグループの追加と、ログ・CLI での確認

検証の構成

端末は、プロキシサーバとして FortiGate の 10.0.1.99:8080 を指定しています。FortiGate は、プロキシ認証で入力されたユーザ名とパスワードを、FortiGate に作ったローカルユーザと照合します。

Internet端末プロキシ 10.0.1.99:8080FortiGate(10.0.1.99)HTTP/HTTPS認証できた通信ローカルユーザユーザグループ Proxy-Users(FortiGate の中に作成)
図1 検証の構成

Basic 認証のプロキシ認証は、次の流れで進みます。プロキシは、認証が必要なことを HTTP のステータス 407(Proxy Authentication Required)でブラウザに伝え、ブラウザはユーザ名とパスワードを付けてリクエストを送り直します。

端末(ブラウザ)FortiGateWeb サイト① Google へのリクエスト② 407 認証が必要(Basic)③ ユーザ名・パスワード④ ローカルユーザと照合⑤ 通信を中継⑥ 応答
図2 ローカルユーザを使ったプロキシ認証の流れ
ほかの認証方法

ユーザを LDAP サーバ(Active Directory)で認証する場合や、NTLM 認証を使う場合は、次の記事を参照してください。

認証ルールの設定

認証方式を作る

ポリシー&オブジェクト ›› 認証ルール を開き、新規作成 から 認証方式 をクリックします。認証方式の編集画面で、次のように設定します。

画面イメージについて

この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› 認証ルール ›› 認証方式の編集
1名前Basic-Local
2方式
ベーシック
エントリを選択ベーシックダイジェスト
フォームベース
Fortinetシングルサインオン(FSSO)
Negotiate
NTLM
RADIUSシングルサインオン(RSSO)
SSH公開鍵
3ユーザデータベース◉ ローカル○ その他
FSSOゲスト OFF
OKキャンセル
図3 認証方式の設定(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定内容
1名前任意の名前です。今回は Basic-Local にします。
2方式+ をクリックし、右側に表示される一覧から ベーシック を選びます。
3ユーザデータベースローカル を選びます。FortiGate に作ったローカルユーザで認証します。

認証方式は「どの方式で、どのユーザデータベースを使って認証するか」を決めるものです。どの通信に認証を求めるかは、次の認証ルールで決めます。

認証ルールを作る

ポリシー&オブジェクト ›› 認証ルール の 新規作成 から 認証ルール をクリックし、次のように設定します。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› 認証ルール ›› 新しいルールの追加
1名前Auth-Rule
2送信元アドレスall
プロトコルHTTP
3認証方式 ON Basic-Local
IPベース認証◉ 有効○ 無効
SSO認証方式 OFF
このルールを有効にする◉ 有効○ 無効
OK
図4 認証ルールの設定(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定内容
1名前任意の名前です。今回は Auth-Rule にします。
2送信元アドレス認証の対象にする送信元です。+ から all を選びます。
3認証方式有効にし、プルダウンから先に作った Basic-Local を選びます。

IPベース認証 は有効のままにしています。有効にすると、認証の状態を送信元の IP アドレス単位で持つので、一度認証した端末は有効期限まで認証し直さずに通信できます。

ローカルユーザの作成

ローカルユーザを作る

プロキシ認証に使うローカルユーザを作ります。ユーザ&認証 ›› ユーザ定義 を開き、新規作成 をクリックすると、ユーザ作成のウィザード(Users/Groups Creation Wizard)が始まります。4つの画面で、次のように設定します。

FortiGate 管理画面画面イメージ
ユーザ&認証 ›› ユーザ定義 ›› Users/Groups Creation Wizard
① ユーザタイプ
1ユーザタイプ
ローカルユーザリモートRADIUSユーザ
リモートTACACS+ユーザ
リモートLDAPユーザ
FSSO
FortiNACユーザ
② ログインクレデンシャル
2ユーザ名(伏せています)
パスワード••••••••
③ コンタクト情報
二要素認証 OFF
④ エキストラ情報
ユーザアカウントステータス◉ 有効化済み○ 無効化済み
ユーザグループ OFF
< 戻るサブミットキャンセル
図5 ローカルユーザの作成(実際の画面ではなく、ウィザードの4つの画面で設定する項目を1つにまとめたイメージです)
No.画面設定内容
1ユーザタイプローカルユーザ を選び、次へ をクリックします。
2ログインクレデンシャルユーザ名とパスワードを入力し、次へ をクリックします。
コンタクト情報何も設定せず、次へ をクリックします。
エキストラ情報何も設定せず、サブミット をクリックします。ユーザグループには、次の STEP で入れます。

作成すると、ユーザ定義の一覧に、タイプが ローカル のユーザとして登録されます。

FortiGate 管理画面画面イメージ
ユーザ&認証 ›› ユーザ定義
名前タイプ二要素認証
guestローカル✕
1(伏せています)ローカル✕
図6 作成したローカルユーザ(実際の画面ではなく、表示のポイントを示したイメージです)

ユーザグループを作る

作ったユーザを、ユーザグループに入れます。プロキシポリシーには、ユーザではなくユーザグループを指定するためです。ユーザ&認証 ›› ユーザグループ を開き、新規作成 をクリックして、次のように設定します。

FortiGate 管理画面画面イメージ
ユーザ&認証 ›› ユーザグループ ›› 新規ユーザグループ
1名前Proxy-Users
2タイプ
ファイアウォールFortinetシングルサインオン(FSSO)
RADIUSシングルサインオン(RSSO)
ゲスト
3メンバー(伏せています)
リモートグループ
リモートサーバグループ名(今回は設定しません)
OK
図7 ユーザグループの設定(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定内容
1名前任意の名前です。今回は Proxy-Users にします。
2タイプファイアウォール を選びます。
3メンバーSTEP 3 で作ったローカルユーザを選びます。

プロキシポリシーの設定

プロキシポリシーの送信元にユーザグループを追加する

ポリシー&オブジェクト ›› プロキシポリシー を開くと、前の記事で作ったプロキシポリシー(ID 2、Explicit Proxy)があります。このポリシーを開き、送信元 の + をクリックします。右側の エントリを選択 で上部の ユーザ を選ぶと、ユーザグループを選べるので、Proxy-Users を選びます。OK をクリックしてポリシーを保存します。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› プロキシポリシー ›› プロキシポリシーの編集
名前Explicit Proxy
プロキシタイプ◉ Explicit Web○ トランスペアレントWeb○ FTP
有効化済みインターフェースport2
発信インターフェースport1
1送信元
all
Proxy-Users
エントリを選択(ユーザ)ユーザ (3)
 (伏せています)
 guest
 (伏せています)
ユーザグループ (4)
 Guest-group
 Proxy-Users SSL-VPN-LDAP
 SSO_Guest_Users
宛先all
スケジュールalways
サービスwebproxy
アクション◉ 許可○ 拒否
OK
図8 プロキシポリシーの送信元にユーザグループを追加する(実際の画面ではなく、設定する項目を示したイメージです)

保存すると、ポリシーの一覧で、送信元に Proxy-Users が追加されていることを確認できます。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› プロキシポリシー
ID名前送信元宛先スケジュールアクションセキュリティプロファイル
explicit-web proxy → port1
2Explicit Proxy1all
Proxy-Users
allalways✓ 許可AV default
WEB default
APP default
IPS default
SSL deep-inspection
図9 送信元にユーザグループを追加したプロキシポリシー(実際の画面ではなく、表示のポイントを示したイメージです)

送信元にユーザグループを入れると、そのポリシーでは認証が必要になり、グループに入っているユーザの通信だけが許可されます。

端末の動作確認

ブラウザで認証する

端末のブラウザ(Internet Explorer)は、LAN の設定で、プロキシサーバに 10.0.1.99、ポートに 8080 を指定しています。この状態で Google にアクセスすると、ユーザ名とパスワードの入力画面が表示されます。STEP 3 で作ったローカルユーザのユーザ名とパスワードを入力します。

端末のブラウザ(Windows セキュリティ)画面イメージ
https://www.google.com/
The server 10.0.1.99 is asking for your user name and password.That server also reports: “default”.
ユーザ名:(伏せています) パスワード:••••••••
図10 プロキシ認証の入力画面(実際の画面ではなく、表示のポイントを示したイメージです)

認証に成功すると、Google にアクセスできるようになります。ログ&レポート ›› 転送トラフィック には、プロキシポリシーを通った通信のログが、送信元のユーザ名付きで記録されます。

FortiGate 管理画面画面イメージ
ログ&レポート ›› 転送トラフィック
送信元宛先サービスアプリケーション名結果
1(伏せています)(10.0.1.10)encrypted-tbn0.gstatic.comHTTPSGoogle.Services✓
(伏せています)(10.0.1.10)adservice.google.comHTTPSGoogle.Services✓
(伏せています)(10.0.1.10)www.google.comHTTPSGoogle.Services✓
(伏せています)(10.0.1.10)www.google.comHTTPSGoogle.Search_Search.Phrase✓
⋮(一部の行だけを示しています)
図11 プロキシポリシーを通った通信のログ(実際の画面ではなく、表示のポイントを示したイメージです。ユーザ名は伏せ、宛先はホスト名だけを示しています)

認証状態を CLI で確認する

認証の状態は、CLI の diagnose wad user list でも確認できます。

FortiGate

# diagnose wad user list 

ID: 3, VDOM: root, IPv4: 10.0.1.10
  user name   : (伏せています)
  duration    : 163
  auth_type   : IP
  auth_method : Basic
  pol_id      : 2
  g_id        : 3
  user_based  : 0
  expire      : 545
  LAN:
    bytes_in=20177 bytes_out=106500
  WAN:
    bytes_in=105749 bytes_out=18439
表示意味
IPv4認証したクライアントの IP アドレスです。
user name認証したユーザ名です(この記事では伏せています)。
duration認証してからの経過時間(秒)です。
auth_type : IPIP アドレス単位で認証状態を持っています。認証ルールで IPベース認証 を有効にしているためです。
auth_method : BasicBasic 認証で認証したことを示します。
pol_id使われたプロキシポリシーの ID です。図9 のポリシー(ID 2)と一致します。
expire認証の有効期限が切れるまでの残り時間(秒)です。

まとめ

設定内容
認証方式方式 ベーシック、ユーザデータベース ローカル(Basic-Local)
認証ルール送信元 all、プロトコル HTTP、認証方式 Basic-Local、IP ベース認証は有効
ローカルユーザユーザ&認証 ›› ユーザ定義 のウィザードで ローカルユーザ を作成
ユーザグループタイプ ファイアウォール の Proxy-Users にユーザを追加
プロキシポリシー送信元に Proxy-Users を追加
確認転送トラフィックのユーザ名、diagnose wad user list

コメント