scale out!! -6ページ目

scale out!!

こゆくてマニアックな自己満足。

iPhoneからWPA2エンタープライズ接続が成功し、大規模なワイヤレスネットワーク内でも端末としても活用できるんだなって、改めて実感できたのはいーんですが、新たな疑問が。

iPhoneが802.1X認証通す時って、どのEAPメソッド使ってるんだ?


前回で見た通り、接続にあたってはiPhone上でユーザ名とパスワード入力が求められました。

なおかつ、その後にサーバから、認証局の署名付き証明書情報も取得している・・・。


こちらに各認証方式がとても分かりやすく比較されています。
WLAN - IEEE802.1X/EAP

証明書を用いる方式で思い当たるのはEAP-TLS・EAP-TTLS・PEAP-MSCHAPv2の3つ。

だけど、クライアント側にもデジタル証明書のインストールが必要なEAP-TLSは外れます。

iPhoneにそんなんインストールできる余地なんて、多分無いはずなんで。

(とゆうか、した記憶が無い)

そうなると、証明書ベースとユーザベースのハイブリッド認証であるEAP-TTLS・PEAP-MSCHAPv2のどちらかである可能性が高くなってきました。

(PEAP-TLSなんてのもあるにはあるみたいですが、実際の設定画面ではちょっと見たことないです・・・)


RADIUSのデバッグを見てみると、こんな表示。

scale out!!

どうも、PEAPっぽいな・・・


試しに、FreeRADIUSのeap.confをいじくって、MSCHAPv2を無効にしてみた所、やはり繋がらなくなりました。

無効にするというのは、eap.confのMSCHAPv2に関する記述箇所をすべて#でコメントアウトさせるという意味ですが、RADIUS君からはこんなコト言われちゃってます。

[eap] Request found, released from the list
[eap] EAP NAK
[eap] NAK asked for unsupported type PEAP
[eap] No common EAP types found.
[eap] Failed in EAP select

EAPの選択に失敗?

再びコメントアウトを外し(MSCHAPv2を有効にして)、RADIUSを再起動。

改めてiPhoneから接続を試行すると、やっぱり繋がりました。



以上から個人的には、「フツーに802.1X認証をする場合、iPhoneはPEAP-MSCHAPv2を使う」という結論で落ち着いてるんですが・・・もしも訂正情報があったら僕も勉強にさせて頂きたいです。

少なくとも、MSCHAPv2を無効にしてしまうとiPhoneはWPA/WPA2エンタープライズのネットワークに接続できないということは確認できました。

MacBookからエンタープライズ接続したときも、複数の方式を許可してると自動的に一番優先されちゃうのはやはり、MSCHAPv2でしたね。

なんか、この方式を一番重視してるような気もします。


でもMSCHAPv2って、確かマイクロソフトが作った方式なんですよね。その辺をさくっと取り入れちゃうあたり、ホントにAppleは頭が柔らかくなったなーと思います。

いや、比較の対象がLC630の時代だから、ちょっとアレなんですが・・・。


 


前回のアップ以来、「Mac」「WPA2エンタープライズ」でググると、このブログが4位か5位にヒットするようになってました。

アクセス頂いた結果なのだとしたら、とてもありがたいことです。

情報を求めてる方の、何かお役に立てているとしたらこんな嬉しいことはありません。

更新ペースも本当に気まぐれですが、どうぞ今後ともよろしくお願い申し上げます。


さて、Macと言ったらiPhoneでしょう。まあそういうことにしときましょう。

とゆうことで今回のお題は、
iPhoneからWPA2エンタープライズ接続してみよう。


使用するのはiPhone4ですが、3Gとかでもそんなに変わんないんじゃないかと思います。

(違ってたらごめんなさい)


環境は前回と全く同じです。

アクセスポイントに設定したWPAエンタープライズ用のSSID“test-Entrprs”を引き続き使用し、RADIUSサーバも前回のまま、ユーザ情報もそのままです。


iPhoneの[設定]→[Wi-Fi]から、SSID“test-Entrprs”を探します。

接続を試みると、ユーザ名とパスワードを訊かれます。

WPA2パーソナルの場合だと、パスワードはSSIDの事前共有キーになるんですが、エンタープライズの場合はRADIUSサーバに登録したユーザ名とパスワードを入力します。

$scale out!!

パスワードを入力し終わると、iPhoneがサプリカントとして、アクセスポイント経由でRADIUSサーバに認証を要求します。

scale out!!

ユーザ名とパスワードに間違いがなければ、RADIUSサーバから取得した、サーバのデジタル証明書情報が表示され、確認を求められます。

scale out!!


ここで表示されている、「radius.com」や「server.com」はそれぞれ、FreeRADIUS設定時に作成したサーバのデジタル証明書の身元と、認証局(CA)の身元になります。(どちらの名前も任意に設定したものです)

認証サーバと認証局はもともと独立の概念なんですが、どちらもRADIUSサーバの内部に構築して、兼業させてるイメージですね。

RADIUSサーバの構築にあたって多いに参考にさせて頂いたサイトで言うと、以下のページになります。
認証局、Certificate Authorityの構築 - FreeRADIUSによる無線LANセキュリティ強化
RADIUSサーバのデジタル証明書を作成 - FreeRADIUSによる無線LANセキュリティ強化


ではiPhoneに戻って、サーバ証明書の確認画面において[了解]をタップします。これで接続は完了です。

scale out!!

ちゃんとDHCPでIPアドレスも取れました。


でも接続してみると、いろいろ気になることは出てくるもので・・・


とゆうことで、次回に続きます!(笑)



 

さあ、いよいよ。

AirMacからWPA2エンタープライズ接続してみます。


やっとMacのお話までこぎつけた!!

では、右上のメニューバーのおなじみAirMacの設定から、「ほかのネットワークに接続」を選択。

scale out!!

WPA2エンタープライズ接続用に立ち上げたSSID「test-Entrprs」を入力、ユーザ名とパスワードには、前回users.conf上に設定したものをそれぞれ入力し、接続


・・・あれ?


失敗した?


てゆうか、CentOS上のFreeRADIUSも、ウンともスンとも言ってない。

パスワードが間違ってたら、それはそれでエラーが流れてくるはずなのに、オーセンティケータ(アクセスポイント)とやり取りしている様子すら、見受けられない。


これはおかしいと思って、CentOS上でWiresharkを立ち上げて、パケットの流れを見てみると。

確かにアクセスポイントからAccess-Requestは受け取っているんだけど、その直後に必ず、「Destination Unreachable(到達不可能)」のICMPメッセージ。

pingは通ってるのに、RADIUSサーバからアクセスポイントにメッセージが返せない?・・・そんなことあるの?


その詳細を見てみると、「Administratively Prohibited」。


「管理上の禁止」って・・・あ!!


ファイアウォールでした。


確かに、RADIUSプロトコルをファイアウォールで許可した記憶が無いかも。

CentOS上で、「システム」→「管理」→「セキュリティレベルとファイヤーウォールの設定」から、RADIUSで使うUDPのポート1812と1813を開けてあげましょう。

(アカウンティングサービスを使わず単に認証通すだけなら、1812だけでOK)

scale out!!


さ、今度こそ!


果たして、RADIUSのデバッグがめまぐるしく流れ始めました。

Sending Access-Accept of id 65 to 192.168.1.219 port 2054
MS-MPPE-Recv-Key = 0x8ad70424261297b3beb8072f3094f50d1ab84d3f9009b620e64b60bb453d6fd1
MS-MPPE-Send-Key = 0x675511c681178031e3c96e4221182d3c475b590f2f1c9e06b070ade3b9f8e165
EAP-Message = 0x03100004
Message-Authenticator = 0x00000000000000000000000000000000
User-Name = "tutti"
Finished request 86.
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 86 ID 65 with timestamp +654
Ready to process requests.



「Finished request」!やたっ!!


そしてAirMacの状態は・・・

scale out!!

"PEAPを使用して認証済み(MSCHAPv2)"とのメッセージ!そして下には接続時間!

もちろん、DHCPでの自動取得も完了!


ユーザ名やパスワード、またEAPメソッドは、「ネットワーク環境設定」→「AirMac」→「詳細」→「802.1X」のタブから編集できます。

scale out!!

今回は「PEAP・TTLS・MD5のうちどれかで認証してちょうだい」っていう複数選択で接続してみたんですが、どれもRADIUSサーバ的に有効な場合、PEAP-MSCHAPv2が認証メソッドとして優先されたみたいです。

その後AirMac上で、TTLSだけ、MD5だけっていう認証も試してみたんですが、どちらも同様にうまく行きました。


セキュリティを考えるんであれば、お好きなEAPメソッドを一本に絞って、FreeRADIUSのeap.conf上でも、それだけを有効にする設定に変更されるのが良いかなと思います。

ちなみに管理の手軽さとセキュリティ強度のバランスから、一番人気が高いのはPEAP-MSCHAPv2みたいですね。



とゆうことで、我ながら穴だらけなレポートなんですが、MacでWPA2エンタープライズ接続について書かれた記事があまりにも見つからないので、ちょっとやってみました。

長々とお付き合い頂き、ありがとうございました。



さて、唯一紹介してないEAP-TLSを使った認証なんですが、また機会があれば改めて書こうと思います。

前回挙げたこちらにあるFreeRADIUSの設定解説は、EAP-TLSの使用を前提に書かれていますので、こちらの手順に従えばRADIUSサーバ側でTLS用の設定も整っているはずです。


ところでMac OS Xサーバも、Snow LeopardからRADIUSが実装され、真のオールインワンサーバになったとか。

しかも、それがFreeRADIUSだというのは本当でしょうか?

サーバエンジニアでもないのに、Mac OS X サーバをいじりたくて仕方ない今日この頃なんです。