前回の記事では、FortiGate の Explicit Proxy で、ローカルユーザによるプロキシ認証(Basic 認証)の動作を確認しました。今回は、LDAP サーバを使ったプロキシ認証を確認します。LDAP サーバには Active Directory を使います。検証時の FortiOS は 6.2.4 です。
ローカルユーザによるプロキシ認証は、次の記事を参照してください。この記事では、そこから LDAP サーバに変えるところだけをまとめます。
>> 参考記事:【Fortigate】プロキシ認証(Explicit Proxy+ローカルユーザによるBasic認証)FortiOS6.2.4
- FortiGate に LDAP サーバ(Active Directory)を登録し、ユーザ認証をテストする方法
- LDAP を使う認証方式・認証ルールと、リモートグループを使うユーザグループの設定
- ブラウザでの認証と、diagnose wad user list での確認
検証の構成
端末は、プロキシサーバとして FortiGate の 10.0.1.99:8080 を指定しています。FortiGate は、プロキシ認証で入力されたユーザ名とパスワードを、LDAP で Active Directory(10.0.1.10)に確認します。
Basic 認証のプロキシ認証は、次の流れで進みます。プロキシは、認証が必要なことを HTTP のステータス 407(Proxy Authentication Required)でブラウザに伝えます。
Active Directory の準備
ドメイン hirotanoblog.com として Active Directory を構築し、プロキシ認証に使うユーザをあらかじめ作っておきます。
LDAP サーバの設定
LDAP サーバを登録する
FortiGate に LDAP サーバ(Active Directory)を登録します。ユーザ&デバイス ›› LDAPサーバ を開き、新規作成 をクリックします。
この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。
| 1名前 | ActiveDirectory |
| 2サーバIP/名前 | 10.0.1.10 |
| サーバポート | 389 |
| 3コモンネーム識別子 | samAccountName |
| 4識別名 | cn=users,dc=hirotanoblog,dc=com |
| Exchangeサーバ | OFF |
| 5バインドタイプ | ○ シンプル○ 匿名◉ レギュラー |
| ユーザ名 | (伏せています) |
| パスワード | •••••••• |
| セキュアな接続 | OFF |
| 6接続ステータス | 成功 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 名前 | 任意の名前です。今回は ActiveDirectory にします。 |
| 2 | サーバIP/名前 | LDAP サーバの接続先です。今回は IP アドレス 10.0.1.10 を指定します。ポートは LDAP の 389 です。 |
| 3 | コモンネーム識別子 | ユーザを探すときに使う属性です。Active Directory の Windows 2000 より前の形式のログオン名(sAMAccountName)を使うので、samAccountName にします。 |
| 4 | 識別名 | ユーザを探し始める場所(DN)です。ドメインが hirotanoblog.com で、ユーザは Users コンテナにいるので、cn=users,dc=hirotanoblog,dc=com にします。 |
| 5 | バインドタイプ | レギュラー にし、Active Directory を参照できるユーザ(今回は管理者アカウント)のユーザ名とパスワードを入力します。 |
| 6 | 接続ステータス | 接続をテスト をクリックし、緑の 成功 になることを確認します。 |
ユーザの認証をテストする
ユーザクレデンシャルをテスト をクリックすると、ユーザ名とパスワードの入力画面が表示されます。プロキシ認証に使うユーザの名前とパスワードを入力し、テスト をクリックして、ユーザクレデンシャルが成功することを確認します。
| 1ユーザ名 | (伏せています) |
| パスワード | •••••••• |
| 接続ステータス | 成功 |
| 2ユーザクレデンシャル | 成功 |
認証ルールの設定
認証方式を作る
ポリシー&オブジェクト ›› 認証ルール を開き、新規作成 から 認証方式 をクリックします。
| 1名前 | Basic-LDAP |
| 2方式 | ベーシック |
| 3ユーザデータベース | ○ ローカル◉ その他 ActiveDirectory |
| FSSOゲスト | OFF |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 名前 | 任意の名前です。今回は Basic-LDAP にします。 |
| 2 | 方式 | + をクリックし、右側に表示される一覧から ベーシック を選びます。 |
| 3 | ユーザデータベース | その他 を選び、右側の一覧から先に作った ActiveDirectory を選びます。 |
認証ルールを作る
ポリシー&オブジェクト ›› 認証ルール の 新規作成 から 認証ルール をクリックし、次のように設定します。
| 1名前 | Auth-Rule |
| 2送信元アドレス | all |
| プロトコル | HTTP |
| 3認証方式 | ON Basic-LDAP |
| IPベース認証 | ◉ 有効○ 無効 |
| SSO認証方式 | OFF |
| このルールを有効にする | ◉ 有効○ 無効 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 名前 | 任意の名前です。今回は Auth-Rule にします。 |
| 2 | 送信元アドレス | 認証の対象にする送信元です。+ から all を選びます。 |
| 3 | 認証方式 | 有効にし、プルダウンから先に作った Basic-LDAP を選びます。 |
ユーザグループの設定
リモートグループを使うユーザグループを作る
ユーザ&デバイス ›› ユーザグループ を開き、新規作成 をクリックします。名前は任意で、今回は Proxy-LDAP-Users にします。リモートグループ の 追加 をクリックし、リモートサーバとして ActiveDirectory を選びます。
| 1リモートサーバ | ActiveDirectory
| ||||||||||
| LDAP のツリー | グループの一覧(Domain Users など)が表示される。今回はグループを選ばずに OK |
LDAP のツリー(グループの一覧)が表示されるので、OK をクリックします。リモートグループに ActiveDirectory が追加されたら、OK をクリックします。
| 1名前 | Proxy-LDAP-Users |
| タイプ | ファイアウォール |
| メンバー |
| リモートサーバ | グループ名 |
|---|---|
| 2ActiveDirectory |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 名前 | Proxy-LDAP-Users にします。 |
| 2 | リモートグループ | リモートサーバ ActiveDirectory を追加します。グループ名を指定していないので、この LDAP サーバで認証できたユーザがこのグループに一致します。特定のグループのユーザだけに絞りたい場合は、LDAP のツリーでグループを選びます。 |
プロキシポリシーの設定
プロキシポリシーの送信元にユーザグループを追加する
ポリシー&オブジェクト ›› プロキシポリシー を開き、前の記事で作ったプロキシポリシーを開きます。送信元 に Proxy-LDAP-Users を追加します。
| 名前 | Explicit Proxy |
| プロキシタイプ | ◉ Explicit Web○ トランスペアレントWeb○ FTP |
| 有効化済みインターフェース | port2 |
| 発信インターフェース | port1 |
| 1送信元 | all Proxy-LDAP-Users |
| 宛先 | all |
| スケジュール | always |
| サービス | webproxy |
| アクション | ◉ 許可○ 拒否 |
送信元にユーザグループを入れると、そのポリシーでは認証が必要になり、グループに一致したユーザの通信だけが許可されます。
端末の動作確認
ブラウザで認証する
端末のブラウザ(Internet Explorer)は、LAN の設定で、プロキシサーバに 10.0.1.99、ポートに 8080 を指定しています。この状態で Google にアクセスすると、ユーザ名とパスワードの入力画面が表示されます。Active Directory のユーザ名とパスワードを入力します。
ユーザ名:(伏せています) パスワード:••••••••
認証に成功すると、Google にアクセスできるようになります。ログ&レポート ›› 転送トラフィック には、プロキシポリシーを通った通信のログが、送信元のユーザ名付きで記録されます。
| 送信元 | 宛先 | サービス | アプリケーション名 | 結果 |
|---|---|---|---|---|
| 1(伏せています)(10.0.1.10) | ssl.gstatic.com | HTTPS | Google.Services | ✓ |
| (伏せています)(10.0.1.10) | www.google.com | HTTPS | Google.Services | ✓ |
| (伏せています)(10.0.1.10) | www.gstatic.com | HTTPS | Google.Services | ✓ |
| (伏せています)(10.0.1.10) | www.google.com | HTTPS | Google.Search | ✓ |
| ⋮(以下略) | ||||
認証状態を CLI で確認する
認証の状態は、CLI の diagnose wad user list でも確認できます。
FortiGate
# diagnose wad user list ID: 7, VDOM: root, IPv4: 10.0.1.10 user name : (伏せています) duration : 132 auth_type : IP auth_method : Basic pol_id : 2 g_id : 4 user_based : 0 expire : 572 LAN: bytes_in=10398 bytes_out=86697 WAN: bytes_in=85694 bytes_out=9104
| 表示 | 意味 |
|---|---|
| IPv4 | 認証したクライアントの IP アドレスです。 |
| user name | 認証したユーザ名です(この記事では伏せています)。 |
| duration | 認証してからの経過時間(秒)です。 |
| auth_type : IP | IP アドレス単位で認証状態を持っています。認証ルールで IPベース認証 を有効にしているためです。 |
| auth_method : Basic | Basic 認証で認証したことを示します。 |
| pol_id | 使われたプロキシポリシーの ID です。 |
| expire | 認証の有効期限が切れるまでの残り時間(秒)です。 |
まとめ
| 設定 | ローカルユーザからの変更点 |
|---|---|
| LDAP サーバ | Active Directory を登録し、接続をテスト と ユーザクレデンシャルをテスト で成功を確認 |
| 認証方式 | ユーザデータベースを その他 にして、LDAP サーバ(ActiveDirectory)を選ぶ |
| ユーザグループ | リモートグループに LDAP サーバを追加(必要ならグループで絞る) |
| プロキシポリシー | 送信元に LDAP 用のユーザグループを追加 |
| 確認 | 転送トラフィックのユーザ名、diagnose wad user list |
コメント