内容

概要

前提条件

要件

使用するコンポーネント

関連製品

WLC での Web 認証

Web 認証のトラブルシューティング

関連情報

概要

このドキュメントでは、ワイヤレスLANコントローラ(WLC)環境でWeb認証の問題をトラブルシューティングするためのヒントについて説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- Control and Provisioning of Wireless Access Points(CAPWAP)

- 基本動作用にLightweightアクセスポイント(LAP)とWLCを設定する方法

- Web認証に関する基本的な知識と、WLCでWeb認証を設定する方法。

WLCでWeb認証を設定する方法については、『ワイヤレスLANコントローラのWeb認証の設定例』を参照してください。

使用するコンポーネント

このドキュメントの情報は、ファームウェア バージョン 8.3.121 が稼働する WLC 5500 に基づくものです。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

関連製品

このドキュメントは、次のハードウェアでも使用できます。

- Cisco 5500 シリーズ ワイヤレス コントローラ

- Cisco 8500 シリーズ ワイヤレス コントローラ

- Cisco 2500 シリーズ ワイヤレス コントローラ

- Cisco Airespace 3500 シリーズ WLAN Controller

- Cisco Airespace 4000 シリーズ ワイヤレス LAN コントローラ

- Cisco Flex 7500 シリーズ Wireless Controller

- Cisco Wireless Services Module 2（WiSM2）

WLC での Web 認証

Web認証はレイヤ3セキュリティ機能であり、事前認証アクセスコントロールリスト(ACL)で許可されたトラフィックを除き、有効なユーザ名とパスワードが正しく入力されるまで、特定のクライアントからのIPトラフィック(DHCP関連パケット/ドメインネームシステム(DNS)関連パケットを除く)をコントローラで許可しません。Web 認証は、認証の前にクライアントが IP アドレスを取得することを許可する唯一のセキュリティ ポリシーです。これは、サプリカントやクライアント ユーティリティを必要としない簡単な認証方式です。Web 認証は WLC 上でローカルに実行することも、RADIUS サーバ経由で実行することもできます。一般に、Web 認証はゲスト アクセス ネットワークを展開する場合に使用されます。

Web 認証は、クライアントからの最初の TCP HTTP（ポート 80）GET パケットをコントローラがインターセプトしたときに開始されます。クライアントのWebブラウザでここまで到達するには、クライアントは最初にIPアドレスを取得し、WebブラウザのURLからIPアドレスへの変換（DNS解決）を行う必要があります。これによって、Web ブラウザが HTTP GET を送信する IP アドレスを認識できます。

WLAN で Web 認証が設定されている場合、コントローラは認証プロセスが完了するまで、クライアントからの DHCP および DNS トラフィックを除くすべてのトラフィックをブロックします。クライアントが最初のHTTP GETをTCPポート80に送信すると、コントローラはクライアントを処理のためにhttps://192.0.2.1/login.html（これが設定されている仮想IPである場合）にリダイレクトします。このプロセスは最終的にログイン Web ページを起動します。

注:Web認証に外部Webサーバを使用する場合、WLCプラットフォームには外部Webサーバ用の事前認証ACLが必要です。

このセクションでは、Web 認証のリダイレクトの手順を詳しく説明します。

- Web ブラウザを開き、たとえば、http://www.site.com などの URL を入力します。クライアントは、宛先の IP を取得するため、この URL の DNS 要求を送信します。WLCはDNS要求をDNSサーバに渡し、DNSサーバは宛先www.site.comのIPアドレスを含むDNS応答で応答します。このIPアドレスはワイヤレスクライアントに転送されます。

- 続いて、クライアントは宛先 IP アドレスを使用して TCP 接続を開始しようとします。www.site.com の IP アドレスを宛先とする TCP SYN パケットが送信されます。

- WLC にはクライアント用に設定されたルールがあるため、www.site.com のプロキシとして機能します。WLC は、www.site.com の IP アドレスを送信元とする TCP SYN-ACK パケットをクライアントに戻します。クライアントは、3ウェイTCPハンドシェイクを完了するためにTCP ACKパケットを返信し、TCP接続が完全に確立されます。

- クライアントは、宛先が www.site.com である HTTP GET パケットを送信します。 WLC はこのパケットをインターセプトして、リダイレクト処理用に送信します。HTTP アプリケーション ゲートウェイは、HTML 本文を準備し、クライアントから要求された HTTP GET への応答として返します。この HTML により、クライアントは WLC のデフォルト Web ページの URL（たとえば、http://<Virtual-Server-IP>/login.html.）に転送されます。

- クライアントは、www.site.comなどのIPアドレスとのTCP接続を閉じます。

- ここで、クライアントはhttp://<virtualip>/login.htmlに移動し、WLCの仮想IPアドレスを使用してTCP接続を開こうとします。192.0.2.1（ここでは仮想IP）のTCP SYNパケットをWLCに送信します。

- WLC は TCP SYN-ACK で返答し、クライアントはハンドシェイクを完了するために、TCP ACK を WLC に戻します。

- クライアントは、ログインページを要求するために、192.0.2.1宛ての/login.htmlに対してHTTP GETを送信します。

- この要求はWLCのWebサーバまで許可され、サーバはデフォルトのログインページで応答します。クライアントが、ブラウザ ウィンドウでユーザがログイン可能なログイン ページを受信します。

この例では、クライアントのIPアドレスは192.168.68.94です。クライアントは、アクセスしたWebサーバ10.1.0.13へのURLを解決しました。このように、クライアントは3ウェイハンドシェイクを実行してTCP接続を開始し、パケット96（00はHTTPパケット）で開始されるHTTP GETパケットを送信しました。これはユーザによってトリガーされたのではなく、オペレーティングシステムによってポータルの自動検出がトリガーされました（要求されたURLから推測できます）。コントローラはパケットを代行受信し、コード200で応答します。コード 200 のパケットには、次のように、リダイレクト URL が含まれています。

<HTML><HEAD>

<TITLE> Web Authentication Redirect</TITLE>

<META http-equiv="Cache-control" content="no-cache">

<META http-equiv="Pragma" content="no-cache">

<META http-equiv="Expires" content="-1">

<META http-equiv="refresh" content="1; URL=https://192.0.2.1/login.html?redirect=http://captive.apple.com/hotspot-detect.html">

</HEAD></HTML>

次に、3ウェイハンドシェイクを通じてTCP接続を閉じます。

次にクライアントは、コントローラの仮想IPアドレスである192.0.2.1に送信するリダイレクトURLへのHTTPS接続を開始します。SSL トンネルを開始するため、クライアントはサーバ証明書を検証するか、または無視する必要があります。この例では、証明書が自己署名証明書であるため、クライアントはそれを無視します。ログイン Web ページがこの SSL トンネルを経由して送信されます。トランザクションは、パケット 112 から始まります。

WLCの仮想IPアドレスのドメイン名を設定するオプションがあります。仮想 IP アドレスにドメイン名を設定する場合、このドメイン名は、クライアントからの HTTP GET パケットへの応答の際の HTTP OK パケットの中でコントローラから返されます。その後、このドメイン名に対してDNS解決を実行する必要があります。DNS解決からIPアドレスを取得すると、そのIPアドレス（コントローラの仮想インターフェイスに設定されたIPアドレス）を使用してTCPセッションのオープンを試みます。

最終的に、Webページはトンネルを介してクライアントに渡され、ユーザはSecure Sockets Layer(SSL)トンネルを介してユーザ名とパスワードを返信します。

次の 3 つの方法のいずれかによって、Web 認証が実行されます。

- 内部Webページを使用する（デフォルト）。

- カスタマイズされたログインページを使用します。

- 外部Webサーバからのログインページを使用します。

注：

– カスタマイズされたWeb認証バンドルには、ファイル名に最大30文字の制限があります。バンドル内のすべてのファイル名が 30 文字以内であることを確認する。

- WLCリリース7.0以降では、WLANでWeb認証が有効になっており、CPU ACLルールもある場合、クライアントがWebAuth_Reqd状態で非認証である限り、クライアントベースのWeb認証ルールが常に優先されます。クライアントが RUN 状態になると、CPU ACL ルールが適用されます。

- CPU ACLがWLCで有効になっている場合、次の条件では仮想インターフェイスIPの許可ルールが（任意の方向で）必要です。

-CPU ACL に、両方向の allow ALL ルールがない場合。

-allow ALL ルールがあるが、より優先順位の高い、ポート 443 または 80 に対する DENY ルールがある場合。

– 仮想IPの許可ルールは、TCPプロトコルとポート80（securewebが無効の場合）、またはポート443（securewebが有効の場合）に対して設定する必要があります。これは、CPU ACL が設定されている場合に、クライアントの仮想インターフェイス IP アドレスへのアクセスが、正常認証をポストできるようにするために必要です。

Web 認証のトラブルシューティング

Web認証を設定した後、機能が期待どおりに動作しない場合は、次の手順を実行します。

1. クライアントが IP アドレスを取得しているかどうかを確認します。そうでない場合は、WLANの[DHCP Required] チェックボックスをオフにして、ワイヤレスクライアントに固定IPアドレスを割り当てることができます。これによって、アクセス ポイントの割り当てが見込まれます。

2. プロセスの次のステップは、Web ブラウザでの URL の DNS 解決です。WLAN クライアントが、Web 認証用に設定された WLAN に接続したとき、クライアントは DHCP サーバから IP アドレスを取得します。ユーザはブラウザを開始し、Web サイトのアドレスを入力します。クライアントは、DNS 解決を実行して Web サイトの IP アドレスを取得します。ここで、クライアントがその Web サイトにアクセスしようとすると、WLC はクライアントの HTTP Get セッションをインターセプトし、ユーザを Web 認証ログイン ページにリダイレクトします。

3. したがって、リダイレクションが機能するように、クライアントが DNS 解決を実行できることを確認します。Microsoft Windowsで、[Start] > [Run] を選択し、CMDと入力してコマンドウィンドウを開き、「nslookup www.cisco.com」を実行してIPアドレスが戻るかどうかを確認します。
Mac/Linuxでターミナルウィンドウを開き、「nslookup www.cisco.com」を実行してIPアドレスが戻ってくるかどうかを確認します。

クライアントがDNS解決を取得しないと思われる場合は、次のいずれかを実行できます。

- URLのIPアドレスを入力します(たとえば、http://www.cisco.comはhttp://192.168.219.25です)。

- ワイヤレスアダプタを介して解決する必要があるIPアドレス（存在しないIPアドレスも含む）を入力します。

このURLを入力すると、Webページが表示されますか。DNS の問題である可能性が最も高くなります。証明書の問題である可能性もあります。コントローラはデフォルトで自己署名証明書を使用し、ほとんどのWebブラウザはその使用を警告します。

4. カスタマイズされたWebページを使用したWeb認証では、カスタマイズされたWebページのHTMLコードが適切であることを確認します。
サンプル Web 認証スクリプトは、シスコのソフトウェア ダウンロードからダウンロードできます。たとえば、5508コントローラの場合は、Products > Wireless > Wireless LAN Controller > Standalone Controllers > Cisco 5500 Series Wireless LAN Controllers > Cisco 5508 Wireless LAN Controller > Software on Chassis > Wireless Lan Controller Web Authentication Bundleの順に選択し、webauth_bundle.zipファイルをダウンロードします。

ユーザのインターネットブラウザがカスタマイズされたログインページにリダイレクトされると、次のパラメータがURLに追加されます。

- ap_mac：ワイヤレスユーザが関連付けられているアクセスポイントのMACアドレス。

- switch_url：ユーザクレデンシャルをポストする必要があるコントローラのURL。

- redirect：認証が成功した後にユーザがリダイレクトされるURL。

- statusCode：コントローラのWeb認証サーバから返されるステータスコード。

- wlan：ワイヤレスユーザが関連付けられているWLAN SSID。

次のステータス コードが使用できます。

- ステータスコード1:「すでにログインしています。特にアクションは必要ありません。」

- ステータスコード2:「You are not configured to authenticate against web portal.特にアクションは必要ありません。」

- ステータスコード3:「The username specified cannot be used at this time.あるいは、そのユーザ名はすでにシステムにログインしている可能性があります。」

- ステータスコード4:「You have been excluded.」

- ステータスコード5:「入力したユーザ名とパスワードの組み合わせが無効です。もう一度入力してください。」

5. カスタマイズされたWebページに表示する必要があるすべてのファイルと画像は、WLCにアップロードする前に.tarファイルにバンドルする必要があります。.tarバンドルに含まれるファイルの1つがlogin.htmlであることを確認します。login.html ファイルが含まれていない場合は、次のエラー メッセージが表示されます。

カスタマイズされた Web 認証ウィンドウの作成方法については、「ワイヤレス LAN コントローラ Web 認証の例」の「カスタマイズされた Web 認証のガイドライン」セクションを参照してください。

注：サイズの大きいファイルと名前の長いファイルでは、書き出しエラーが発生することがあります。画像は .jpg フォーマットをお勧めします。

6. WLC のカスタマイズされた Web ページは本質的に HTML スクリプトであるため、クライアント ブラウザで、Scripting オプションがブロックされていないことを確認します。

7. WLC の仮想インターフェイスにホスト名を設定した場合、仮想インターフェイスのホスト名に対して DNS 解決が使用できることを確認します。
注：仮想インターフェイスにDNSホスト名を割り当てるには、WLC GUIから[Controller] > [Interfaces] メニューに移動します。

8. 場合によっては、クライアント コンピュータにインストールされているファイアウォールによって Web 認証ログイン ページがブロックされることがあります。ログイン ページへのアクセスを試みる前に、ファイアウォールをディセーブルにしてください。Web 認証が完了した後は、ファイアウォールを再びイネーブルにしても問題ありません。

9. トポロジ/ソリューションファイアウォールは、ネットワークに応じて、クライアントとWeb認証サーバの間に配置できます。実装された各ネットワーク設計/ソリューションについて、エンドユーザは、これらのポートがネットワークファイアウォールで許可されていることを確認する必要があります。

プロトコル

ポート

HTTP/HTTPS トラフィック

TCP ポート 80/443

CAPWAP データ/コントロール トラフィック

UDP ポート 5247/5246

LWAPP データ/コントロール トラフィック（リリース 5.0 以前）

UDP ポート 12222/12223

EOIP パケット

IP プロトコル 97

モビリティ

UDP ポート 16666（非セキュア）UDP ポート 16667（セキュア IPSEC トンネル）

10. Web認証を実行するには、クライアントを最初にWLC上の適切なWLANに関連付ける必要があります。クライアントが WLC に関連付けられているかどうかを確認するには、WLC で [Monitor] > [Clients] メニューに順に移動します。クライアントが有効な IP アドレスを持っているかどうか確認します。

11. Web 認証が完了するまで、クライアント ブラウザのプロキシ設定をディセーブルにします。

12. デフォルトのWeb認証方式は、パスワード認証プロトコル(PAP)です。RADIUS サーバで PAP 認証が機能するように許可されていることを確認します。クライアント認証の状態を確認するために、RADIUS サーバからのデバッグ メッセージとログ メッセージを確認します。WLCでdebug aaa allコマンドを使用すると、RADIUSサーバからのデバッグを表示できます。

13. コンピュータのハードウェアドライバを製造元のWebサイトから最新のコードに更新します。

14. サプリカント（ラップトップのプログラム）の設定を確認します。

15. Windows に組み込みの Windows Zero Config サプリカントを使用する場合：

- ユーザに最新のパッチがインストールされていることを確認します。

- サプリカントでデバッグを実行します。

16. クライアントで、コマンドウィンドウからEAPOL(WPA+WPA2)およびRASTLSログをオンにします。Start > Run > CMDの順に選択します。
netsh ras set tracing eapol enable

netsh ras set tracing rastls enable

ログをディセーブルにするには同じコマンドを実行しますが、enable の部分を disable に置き換えます。XPの場合、すべてのログはC:\Windows\tracingにあります。

17. ログイン Web ページがまだない場合は、次の出力を 1 台のクライアントから収集して分析します。
debug client <mac_address in format xx:xx:xx:xx:xx:xx>

debug dhcp message enable

debug aaa all enable

debug dot1x aaa enable

debug mobility handoff enable

18. これらの手順を実行しても問題が解決しない場合は、これらのデバッグを収集し、Support Case Managerを使用してサービスリクエストをオープンします。
debug pm ssh-appgw enable

debug pm ssh-tcp enable

debug pm rules enable

debug emweb server enable

debug pm ssh-engine enable packet <client ip>

関連情報

- ワイヤレス LAN コントローラの Web 認証の設定例

- ワイヤレス LAN コントローラを使用した外部 Web 認証の設定例

- テクニカル サポートとドキュメント – Cisco Systems