Active Directoryドメインのログインしているユーザが、そのログインユーザ情報で、プロキシの認証も行いたい場合、NTLM認証を使用することができます。
NTML認証では、認証する側と認証される側の間でチャレンジ、レスポンスによりパスワードのハッシュを送信します。認証される側のレスポンスのハッシュ値と認証する側が保持しているパスワードのハッシュ値が一致すれば、認証成功となります。
この記事では、FortigateをExplicit Proxyとして動作させ、ドメイン参加しているユーザがNTLM認証により、インターネットへ接続する動作を確認します。

Fortigateのプロキシ認証は以下の記事もあわせて参考にしてください。
>> 参考記事 : プロキシ認証(Explicit Proxy+ローカルユーザによるBasic認証)FortiOS6.2.4また、インターネットへのローカルブレークアウト(クラウドプロキシ)やSWG(Secure Web Gateway)を併用する場合は、以下の記事もあわせて参考にしてください。
>> 参考記事 : クラウドプロキシ(Explicit Proxy+ローカルブレークアウト)FortiOS6.2.4Active Directoryの準備
ホスト名:ad-1、ドメイン:hirotanoblog.localとしてドメインコントローラを準備します。
また、ドメインユーザ ntlm-user01 にてログオンのうえ、IEのプロキシ設定をFortigateのport2である10.0.1.99:8080とし、NTLM認証も有効化しているものとします。
DNSサーバの設定
まず、FortigateのDNSサーバをADサーバに設定します。また、ローカルドメイン名として、ADドメインを設定します。

FortigateからADサーバ(ad-1)の名前解決&疎通ができることを確認します。
FortiGate # execute ping ad-1 PING ad-1.hirotanoblog.local (10.0.1.25): 56 data bytes 64 bytes from 10.0.1.25: icmp_seq=0 ttl=128 time=0.4 ms 64 bytes from 10.0.1.25: icmp_seq=1 ttl=128 time=0.4 ms 64 bytes from 10.0.1.25: icmp_seq=2 ttl=128 time=0.5 ms 64 bytes from 10.0.1.25: icmp_seq=3 ttl=128 time=0.4 ms 64 bytes from 10.0.1.25: icmp_seq=4 ttl=128 time=0.4 ms --- ad-1.hirotanoblog.local ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.4/0.5 ms FortiGate #
LDAPサーバの設定
ユーザ&認証 >> LDAPサーバを選択し、新規作成をクリックします。

LDAPサーバの編集 画面が表示されます。ADサーバを登録します。

- 名前:ad-1 と設定
- サーバIP/名前 : ADサーバのIPアドレスである10.0.1.25を設定
- バインドタイプ:レジュラー を選択
- ユーザ名・パスワード:Active Directoryにアクセスできるユーザ。今回は、administratorとそのパスワードを設定
上記まで入力して識別名のブラウズをクリックします。LDAPのツリーが表示されるので、cn=users,dc=hirotanoblog,dc=local を選択します。

下記のように、識別名が登録されます。
接続をテストをクリックし、接続ステータスが成功になることを確認してください。

ユーザクレデンシャルをテストをクリックし、ユーザの認証が可能か確認します。
ADサーバには今回、ntlm-user01をいうユーザを登録しています。 ユーザ名、パスワードを入力後、テストをクリックし、接続ステータス、ユーザクレデンシャルともに成功であることを確認します。

Explicit プロキシの設定
ネットワーク >> Explicit プロキシ へ移動し、プロキシ機能を有効にします。

- Explicit Web プロキシ:有効にします。
- リッスンするインタフェース: port2を選択
- HTTPポート:任意の値。今回は8080とします。
認証ルールの設定
認証方式
ポリシー&オブジェクト >> 認証ルール へ移動し、新規作成より認証方式を選択します。

新規認証方式の画面が表示されます。
名前を任意の名前(今回はNTLM)とし、方式として、NTLMを選択します。

選択後、ドメインコントローラなどの設定画面が表示されます。 ドメインコントローラの設定項目を選択し、新規作成をクリックします。

ドメインコントローラを設定します。

- 名前:ad-1と設定
- IPアドレス : ADサーバのIPアドレスである10.0.1.25を設定
- LDAPサーバ:リストより、ad-1を選択
- ドメイン名:hirotanoblog.local を設定
OKをクリックすると、ドメインコントローラが登録されるので、OKをクリックします。

OKをクリックすると、以下のようなリストが表示されます。

認証ルール
ポリシー&オブジェクト >> 認証ルール へ移動し、新規作成より認証ルールを選択します。
新しいルールの追加 が表示されます。

- 名前:任意。今回は、NTLM-Ruleとします。
- 送信元アドレス:all を選択
- 認証方式:有効にし、先に設定したNTLMを選択。
OKをクリックすると、以下のとおり表示されます。

ユーザ設定
ユーザ&認証 >> ユーザグループへ移動し、新規作成をクリックします。

新規ユーザグループを設定する画面が表示されます。

- 名前:任意の名前。今回は、NTLM-User-Groupとします。
- タイプ:ファイアウォールを選択
リモートグループで追加をクリックすると、グループ一致の追加 が表示されます。 リモートサーバでad-1を選択し、OKをクリックします。

リモートサーバのad-1が追加されていることを確認し、OKをクリックします。

新しいNTLM-User-Groupが追加されました。

プロキシポリシーの設定
ポリシー&オブジェクト >> プロキシポリシー へ移動し、新規作成をクリックします。

プロキシポリシーを設定します。

- 名前:任意の名前。今回は、NTLM-Proxyとします。
- プロキシタイプ:Explicit Webを選択
- 発信インタフェース:インターネット接続向けであるport1を選択
- 送信元:送信元アドレスは制限せずにallとし、送信元ユーザとして、NTLM-User-Groupを選択
- 宛先:allを選択
- サービス:webproxyを選択
動作確認
ドメインユーザ ntlm-user01でログインし、ブラウザ(IE)を開くと、インターネットサイトへアクセスできることが確認できます。
ユーザは特にユーザ情報などを入力する必要はありません。

ユーザ認証ログを確認するため、ログ&レポート >> イベント からユーザイベントをクリックします。

ユーザ ntlm-user01の認証が成功していることが確認できます。

ログ&レポート >> 転送トラフィック よりトラフィックログを確認すると、プロキシポリシーNTLM-Proxyで、ntlm-user01がインターネットへアクセスしていることが確認できます。

ユーザの認証状況は diagnose wad user list で確認できます。
FortiGate # diagnose wad user list ID: 1, VDOM: root, IPv4: 10.0.1.51 user name : ntlm-user01 worker : 3 duration : 880 auth_type : IP auth_method : NTLM pol_id : 2 g_id : 2 user_based : 0 expire : no LAN: bytes_in=608236 bytes_out=7890660 WAN: bytes_in=7901810 bytes_out=558730
コメント