Welcome Guest 
Login
Username:

Password:


Lost Password?

Register now!
サイト内検索
Main Menu
Site Info
Webmasters

m-naka
 


Who's Online
14 user(s) are online (9 user(s) are browsing MyWorks(記事))

Members: 0
Guests: 14

more...
Themes

(2 themes)
SmartSection is developed by The SmartFactory (http://www.smartfactory.ca), a division of INBOX Solutions (http://inboxinternational.com)
MyWorks(記事) > サーバ管理日記 > WPA2エンタープライズ(EAP-PEAP)による認証無線LAN化
WPA2エンタープライズ(EAP-PEAP)による認証無線LAN化
Published by M-naka on 2012/2/4 (31068 reads)
freeradius2でEAP-PEAPな認証無線LANを構築した。


自宅で使っているWHR-HP-GNはDD-WRT化してあり、WPA2エンタープライズが使えるようになっている。あとはRADIUSサーバと然るべき設定が使える。で、チャレンジしてみた。


1.認証方式の選定
 EAPにはいくつか種類があって、セキュリティが強力なものではEAP-TLS、EAP-PEAP、EAP-TTLSだ。
EAP-TLS:サーバ・クライアント相互で電子証明書で認証する。セキュリティ強度は最強クラス。
EAP-TTLS:クライアント証明書は不要ながらEAP-TLSと同等のセキュリティ強度。ただWindows標準サプリカントでは非対応で別途サプリカントが必要。
EAP-PEAP:セキュリティ強度はEAP-TLS/TTLSに譲るが、Windows標準サプリカントで対応、サーバ認証は電子証明書、クライアント認証はIDとパスワード。
となっている。別途サプリカントが必要な時点でEAP-TTLSは却下(汎用性重視)。EAP-TLSはクライアントに電子証明書を突っ込まされるのが性に合わない。汎用性が高く、サーバ側の電子証明書だけあればOKなEAP-PEAPで行くことにした。ちなみにうちの会社の社内無線LANもEAP-PEAPだ。


2.電子証明書の取得

 RADIUSサーバを外向きのgungnir.mythril.ne.jpで運用するのはリスクがあるので、内向きのmjolnir.mythril.ne.jpで運用する。この関係で、電子証明書は www.mythril.ne.jp のものの流用ができない。今更自己署名証明書(いわゆる『オレオレ証明書』)で構築するのは論外だ。超円高なのでもう一枚買うか……と思ったのだが、調べてみると
 StartSSL
で無料取得できることが判明。これで行くことにした。取得手順については本論から外れるので省略。FQDNをsecgw.mythril.ne.jpにして取得。中間証明書が必要なことをお忘れなく。


3.freeradius2のインストールと設定

 インストールは「yum install freeradius2 freeradius2-utils」で完了。設定は以下。

 1)radius.conf
   実はデフォルトのままでOKだったりする。

 2)client.conf
   radiusクライアントとなる無線LANルータのIPアドレス、共有シークレット、shortnameを追記する。共有シークレットとshortnameは任意の文字列でOK。
   >    client {
   >     require_message_authenticator = yes
   >     secret     = xxxxxxxxxxxxxxxxx
   >     shortname    = xxxxxxxxxxxxxxxxx
   > }

 3)users
   radius的にはUNIXユーザ(/etc/passewd)やMySQL+OpenLDAPでの認証でも行けるそうだが、今回はライトにradius用のユーザファイルで管理することにした。以下を追記。
   > <ユーザ名> Cleartext-Password := "<パスワード>"
   >          Service-Type = Framed-User,
   >          Framed-Protocol = PPP

 4)eap.conf
   今回の山場。
    ・default_eap_typeはpeapにする。
    ・PrivateKeyとCertificateはフツーに指定すればOK。/etc/pki/tls以下へのシンボリックリンクでも可。
    ・StartSSLは中間証明書必須だが、freeradius的にはCAは単一ファイルしか指定できないので、
      cat CA.pem 中間証明書.pem > 結合した証明書.pem
     で、単一ファイル化する。StartSSLのルート証明書、中間証明書はここ。pem形式で。
    ・randomファイルは/dev/urandamを指定する。

 システム的にはランダムデバイスは/dev/randomと/dev/urandomの2つあり、eap.conf的にはここから作りこんだrandomファイルを設定で想定しているが、/dev/randomと/dev/urandomから作りこんだファイルではradiusdが起動せず、/dev/urandomを直接指定することで解決した。

 あとはfreeradiusを/usr/sbin/radiusd -Xでデバッグモード起動させ、クライアントからの接続を試みる。


4.Windows7で設定、接続

 Windows7側の設定はこんな感じ。

 セキュリティの種類は「WPA2エンタープライズ」、暗号化の種類は「AES」、認証の種類は「Microsoft:保護されたEAP(PEAP)」をそれぞれ選択。終わったら「詳細設定」を押す。


 認証モードは「ユーザー認証」で指定。今回はWindowsユーザー/パスワードで認証する仕組みにしてあるので、シングルサインオンを有効にしておく。必須ではないが無線LANへの接続がWindowsログオンとシームレスになる。


 RADIUSサーバの認証をするので設定はこんな感じ。CAはStartSSLのルートであるStartComにチェックを入れる。認証方式はEAP-MSCHAPv2を選択。終わったら「構成」を押す。


 デフォルトだとここにチェックが入っているので外す。これをチェックを入れたままにしておくと、PC名\ユーザー名でRADIUS認証が実行されてしまい、うちの環境では上手く認証できない。ここはfreeradius側のレルム設定に依存するようだが、前段のシングルサインオンを行うこともあり、ここは不要。


 ここまでやって、ようやく成功。
 ささっと書いているが、大体二ヶ月くらいちびちびやっての結果である。

 認証無線LANということで、セキュリティレベルが上がったことになる。
 DD-WRTと仮想サーバというインフラで、自宅で安価に高セキュリティな無線LANが組めるのは素晴らしい。


 freeradius、他にも活用の用途はあるので、

 ・ServersMan@VPSをバックアップRADIUSサーバ化
 ・OpenVPNのRADIUS認証導入
 ・MySQL+OpenLDAP認証化

あたりを追々やってみるつもり。

Navigate through the articles
Previous article WPA2エンタープライズ(EAP-PEAP)による認証無線LAN化(おまけ) SSLサーバ証明書更新(2011/12) Next article
The comments are owned by the poster. We aren't responsible for their content.
XOOPS Cube PROJECT
Powered by Mythril Networks © 2003-2022 The Mythril Networks Project