無線LANのメリットや運用の注意点、電波や規格などの用語、要件定義や基本設計から
設定・構築・テストにいたるまで、たくさんのことをまとめています。
さらに、Arubaの機器を中心とした無線LANの設計と設定を解かりやすく解説しています。

タグ:EAP-TLS

証明書はただのデータであり、無効にしたいからといって回収はできない。PKIにおいてはCRLという、証明書のブラックリストを管理するしくみで証明書を無効にするしくみがある。

CRLの作成方法は、こちらを参照のこと。
EAP-TLSでも、CRLを利用するようにしておかないと、漏洩した秘密鍵や退職した社員による情報漏えいが危惧される。

ここでは、FreeRadiusでCRLを参照し、無効になった電子証明書でのアクセスを拒否する設定を紹介する。

まず、CRLのファイルをFreeRadiusの証明書フォルダにコピーしておく。
認証局とFreeRadiusが同じサーバで動いていればシンボリックリンクを張ればよい。
# mkdir /etc/raddb/certs/crl
# ln -s /etc/pki/CA/crl/crl.pem /etc/raddb/certs/crl/

別のサーバで動いていれば、rsyncなりwgetで定期的、あるいはCRL発行の都度コピーしておく。

CRLを有効にするには、/etc/raddb/eap.conf ファイルを修正し、tlsセクションで次の2行を有効にしておく。
                        check_crl = yes
                        CA_path = ${cadir}/crl
このあと、CRLのディレクトリをハッシュ化する作業が必要。c_rehashコマンドが必要になるので、インストールする。
# yum install openssl-perl
c_rehashコマンドが使えるようになったら、/etc/raddb/certs/crl/に対して実行する。
# c_rehash /etc/raddb/certs/crl/
Doing /etc/raddb/certs/crl/
crl.pem => 3ccdfed5.r0
終わったら、radiusdをrestart。

無効化した証明書では、認証できないことを確認する。/var/log/radius/radius.logには次のようなログが残るはず。
Thu May  2 11:27:04 2013 : Error: --> verify error:num=23:certificate revoked
Thu May  2 11:27:04 2013 : Error: TLS Alert write:fatal:certificate revoked
Thu May  2 11:27:04 2013 : Error:     TLS_accept: error in SSLv3 read client certificate B
Thu May  2 11:27:04 2013 : Error: rlm_eap: SSL error error:140890B2:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned
Thu May  2 11:27:04 2013 : Error: SSL: SSL_read failed in a system call (-1), TLS session fails.
Thu May  2 11:27:04 2013 : Auth: Login incorrect (certificate revoked): [testuser4] (from client 10.0.1.135 port 0 cli 1ce62b******)

この作業を自動化するのであれば、
・CRLファイルの取得
・c_rehash
・radiusdのrestart
の実行をcronに組み込むようにする。ハッシュを再実行してもradiusdは自動的に再読み込みしてくれない。radiusdのrestartは必須。

・注意事項
CRLを使うときには、有効期限に注意が必要。詳しくは、こちらを参照。

iOSデバイス(iPhone,iPad,iPad mini,iPod touch)での802.1X認証は,接続だけでよければ簡単である。ただし,RADIUSサーバ側の証明書を厳密に検証しようとすると,iPhone構成ユーティリティでの設定が必要だ。

まず,簡易版として簡単にEAP-TLSを設定する方法を紹介する。この方法では,RADIUSサーバ証明書の検証はできないが,RADIUSサーバ側ではクライアントの証明書の検証はできる。

設定の流れは,
①CA証明書のインポート
②クライアント証明書・秘密鍵(PKCS#12)のインポート
③無線LANの設定
だ。

①CA証明書のインポート
・CA証明書ファイル(拡張子.cer)と、PKCS#12形式のクライアント証明書・秘密鍵ファイル(拡張子.p12)を、メールでiOSデバイスに送る。
・CA証明書をタップ。
001

















CA証明書が表示されるのでインストールをタップする。
※この段階で「信頼されていません」が出るのは,この証明書を信頼するための情報がないため。
002

































警告が出るので,内容を確認して「インストール」をタップ。
003

































パスフレーズを聞かれるので,入力。
004

































CA証明書のインストールが完了。「完了」をタップすると,終了。
005

































②クライアント証明書・秘密鍵のインポート

メールで送信した,PKCS#12のファイルをタップする。
001
















証明書インポートの画面が出るので,「インストール」をタップ。
001

































確認画面が出るので,再度「インストール」をタップ。
002

































パスコードを入力
003

































PKCS#12ファイルに設定したパスワードを入力。
(PKCS#12ファイル作成時に設定したパスワード)
004
































クライアント証明書のインポートが完了。「完了」で終了。
005

































③無線LAN(EAP-TLS)の設定

設定で,Wi-Fiを選択する。802.1Xを設定したSSIDをタップする。
001

































認証設定の画面が出るので,「モード」をタップする。
002

































デフォルトでは「自動」になっているので,「EAP-TLS」を選択する。
003

































前の画面に戻ると「パスワード」だった箇所が「ID」に変わっている。「ID」をタップする。
004

































インポートしたクライアント証明書が表示されているので,チェックし,前の画面に戻る。
005

































パスワード入力画面に戻っても,IDは表示されない。実際にはクライアント証明書が登録されているので,そのまま「接続」をタップする。
006
































RADIUSサーバ証明書の確認画面が出てくる。未検証となる理由は,CA証明書をインポートしただけではRADIUSサーバ証明書を検証してくれないから。
接続はできるので,念のため詳細を確認後,「了解」をタップ。
007

































WiFi設定画面に戻る。802.1Xを設定したSSIDに接続できていることを確認する。
008



































iOS(iPhone,iPad,iPod touch)のEAP-TLS設定で、証明書未検証の警告を出さないための方法。
iPhone構成ユーティリティの操作性がイマイチで、スマートではない。しかし、これ以外の方法で「未検証」の警告を出さずにEAP-TLSを設定する方法が見つかっていない。

作業の流れは次のとおり。
①PKCS#12のPCへのインストール
②iPhone構成ユーティリティで、CA証明書とクライアント証明書・秘密鍵ペアのインポート
③iPhone構成ユーティリティで、WiFi設定を構成
④iOSデバイスへのインストール

①PKCS#12ファイルのPCへのインストール
iPhone構成ユーティリティを使ってプロファイルに証明書を含める場合、あらかじめiPhone構成ユーティリティを起動するPCに証明書類をインポートしておかなければならない。(iPhone構成ユーティリティで、直接.cerや.p12ファイルを指定できればスマートだが、そういう機能は現状ない)

PKCS#12ファイル(拡張子.p12)をダブルクリックすると、証明書インポートウィザードが出てくる。
001




















インポートするファイル名を確認する。
002






















PKCS#12ファイルに設定したパスワードを入力する。
このとき、「このキーをエクスポート可能にする」にチェックを入れる。iPhone構成ユーティリティがキー(秘密鍵)を取り出すためだ。
003




















証明書ストアは自動でよい。
004




















確認画面で、「完了」をクリック。
005




















インポート完了。
006













②iPhone構成ユーティリティで、CA証明書とクライアント証明書・秘密鍵ペアのインポート
iPhone構成ユーティリティを起動する。

構成プロファイルを選び、左上の「新規」をクリックする。
007


















プロファイルの名前と識別子を入力する。わかりやすい名前にしておこう。
008



















「資格情報」を選び、「構成」をクリック。
009



















証明書の選択画面が出るので、CA証明書を探して「OK」をクリック。
010





















資格情報にCA証明書が出てきたことを確認し、さらに「+」をクリック。
011



















今度はクライアント証明書を探しだし、「OK」をクリック。
012


















識別子エクスポート用のパスワードを決めて入力。※1
013
















証明書に、CA証明書とクライアント証明書の2件が登録されたことを確認する。
014


















③iPhone構成ユーティリティで、WiFi設定を構成
続けてWiFiを構成する。

Wifiを選択し、「構成」をクリック。
015




















SSIDを入力し、セキュリティの種類を「WPA/WPA2エンタープライズ」にする。
016


















「プロトコル」でTLSにチェックを入れる。
017



















「認証」で、「固有名証明書」にインポートしたクライアント証明を指定する。
018


















「信頼」で、インポートしたCA証明書をチェックする。
019




















④iOSデバイスへのインストール

iOSデバイスをUSB経由で接続する。
「デバイス」でインストール先のデバイスを選択し、「構成プロファイル」タブで構成プロファイルをインストールする。
020


















iOS側で確認画面が出てくるので、「インストール」をタップ。
021

































確認画面で「インストール」をタップ。
022

































パスコードを入力。
023

































インストール完了画面が出てくるので、「完了」で終了。
024

































「WiFi」で、作成したプロファイルのSSIDをクリックすると、EAP-TLSで接続できる。
026










FreeRADIUSを使って、認証ユーザごとに異なるVLANを割り当てる設定方法を説明する。
AP側の設定はこちらを参照のこと。

基本的にはPEAPと同じである。PEAPとの違いは、Cleartext-Passwordを設定する必要がないという点。

FreeRADIUSでは、/etc/raddb/usersファイルでユーザを管理する。この中に、ユーザ情報とともに属性値(VLANIDの情報など)を設定する。設定する属性値は3つ。
・Tunnell-Typeとは、どのようなトンネルの方式を使うかの設定(802.1Xの場合"VLAN")
・Tunnel-Medium-Typeとは、トンネルプロトコル(上記で設定したVLAN)をどのようにトランスポート(輸送)するかを設定(802.1Xの場合"IEEE-802")
Tunnel-private-Group-Idは認証後に所属するVLANIDを指定する。

設定例は以下のとおり。
testuser001      
        Tunnel-Type = VLAN,    ←全ユーザでVLAN固定
        Tunnel-Medium-Type = IEEE-802,      ←全ユーザでIEEE-802固定
        Tunnel-Private-Group-Id = 210       ←VLANIDを210に設定
testuser002
        Tunnel-Type = 13,    ←全ユーザでVLAN固定(別の書き方)
        Tunnel-Medium-Type = 6,   ←全ユーザでIEEE-802固定(別の書き方)
        Tunnel-Private-Group-Id = 220       ←VLANIDを220に設定
testuser003
        Tunnel-Type = 13,
        Tunnel-Medium-Type = 6,
        Tunnel-Private-Group-Id = 200
※カンマの有無に注。
※testuser001とtestuser002では、Tunnel-TypeとTunnel-Medium-Typeの記述の仕方を変えているが、同じ意味の設定である。Tunnel-Typeが6であればVLANを意味し、 Tunnel-Medium-Typeが13ならばIEEE-802を意味するからだ。
※Arubaの設定では、本来Tunnel-Private-Group-IDにVLANIDを設定するだけでVLANを割り当て可能。しかし、一般的には3つの属性値を必要とする機種もあるため、ここでは3箇所とも設定している。
※DEFAULT設定が残っているときちんと動作しないことがある。余分な設定を全部消して、ユーザ情報だけにしておくほうがよい。

(補足)
上記の/etc/raddb/usersは、下記のような書き方もできる。
testuser001      
        Tunnel-Private-Group-Id = 210
testuser002      
        Tunnel-Private-Group-Id = 220
testuser003      
        Tunnel-Private-Group-Id = 200

DEFAULT Auth-Type == EAP
        Tunnel-Type = VLAN,
        Tunnel-Medium-Type = IEEE-802
 全ユーザで共通となるTunnel-TypeとTunnel-Medium-Typeをデフォルト値として共用にしておく。こうしておけば、各ユーザのところでは Tunnel-Private-Group-Idを設定しておくだけでよい。
 なお、DEFALUTは全ユーザを定義した後に記述すること。ユーザ名より前に記述するときちんと動作しない。






スポンサードリンク

このページのトップヘ