前回の記事「CentOSで「有線」の802.1xのコマンドライン設定方法」の続きです。
せっかくなのでユーザ認証だけではなく証明書の設定方法も残しておきます。
PEAP方式の証明書について
先に言っておきますが、この話は「有線の802.1x」だろうが「無線の802.1x」だろうが、内容に変わりはありません。
802.1xのPEAP方式を使用してRadiusサーバと認証・認可をする場合、利用者側(サプリカント側)はユーザID/パスワードで認証・認可されます。
一方、サーバー側の認証は証明書を使用して行うことが可能。
ここでの「サーバー側の認証」というのは「利用者側」が「接続しているサーバーが真に想定しているサーバーである」事を確認するためのものです。サーバー側にとっては殆どどうだって良いことです。気にしているのは利用者側です。
サーバー側の正真性(誠に想定しているサーバーである)にこだわらなければ、利用者側のユーザID/パスワードを使用するだけでのPEAP認証も可能です。(というか、前回の検証で初めて知りました)
前置きはこのくらいにして・・・
前回の記事で「ユーザID/パスワードだけのCentOSでのPEAP方式設定方法」を紹介しました。今回はそれに若干コンフィグを付け加えて証明書によるサーバー認証もやってみます。
前提として
- サーバーから証明書を貰っていること
- 証明書を利用者(CentOS)のローカルに保存していること
とします。
/etc/wpa_supplicant/wpa_supplicant.confの修正
前回と同様に完全にコピペして頂いて結構です。
# Where is the control interface located? This is the default path: ctrl_interface=/var/run/wpa_supplicant # Who can use the WPA frontend? Replace "0" with a group name if you # want other users besides root to control it. # There should be no need to chance this value for a basic configuration: ctrl_interface_group=0 # IEEE 802.1X works with EAPOL version 2, but the version is defaults # to 1 because of compatibility problems with a number of wireless # access points. So we explicitly set it to version 2: eapol_version=2 # When configuring WPA-Supplicant for use on a wired network, we don’t need to # scan for wireless access points. See the wpa-supplicant documentation if # you are authenticating through 802.1x on a wireless network: ap_scan=0 network={ key_mgmt=IEEE8021X eap=PEAP identity="cisco1" password="cisco1" ca_cert="/root/cert/radiuscert.pem" phase1="peaplabel=1" phase2="auth=MSCHAPV2" }
追加しているのは「ca_cert=”/root/cert/radiuscert.pem”」の部分だけです。パスは実際に証明書を保存した場所を指定してください。(今回はローカルの検証なので適当に保存しています)
成功例・失敗例の出力結果
では上記の設定を実行した後、手動でwpa_supplicantを起動してみましょう。
wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -D wired -i eth0
成功した場合(利用者が持っている証明書とサーバー側の秘密鍵の組み合わせが成立した場合)、以下のメッセージが表示されて802.1x認証が進むはずです。
CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected CTRL-EVENT-EAP-PEER-CERT depth=0 subject='/CN=hoge.com' hash=XXXXXXXXXXXX EAP-MSCHAPV2: Authentication succeeded CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
一方、指定した証明書とサーバー側の秘密鍵の組み合わせが成立しなかった場合、以下のメッセージが表示されてサーバーの認証が失敗します。(今回は証明書の文字を一つ変更してみました)
CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected TLS: Certificate verification failed, error 18 (self signed certificate) depth 0 for '/CN=hoge.com' OpenSSL: openssl_handshake - SSL_connect error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed CTRL-EVENT-EAP-FAILURE EAP authentication failed
コメント