CentOSで802.1x(PEAP/証明書)の設定方法

この記事は約5分で読めます。
スポンサーリンク

前回の記事「CentOSで「有線」の802.1xのコマンドライン設定方法」の続きです。

せっかくなのでユーザ認証だけではなく証明書の設定方法も残しておきます。

PEAP方式の証明書について

先に言っておきますが、この話は「有線の802.1x」だろうが「無線の802.1x」だろうが、内容に変わりはありません。

 

 

802.1xのPEAP方式を使用してRadiusサーバと認証・認可をする場合、利用者側(サプリカント側)はユーザID/パスワードで認証・認可されます。

一方、サーバー側の認証は証明書を使用して行うことが可能。

ここでの「サーバー側の認証」というのは「利用者側」が「接続しているサーバーが真に想定しているサーバーである」事を確認するためのものです。サーバー側にとっては殆どどうだって良いことです。気にしているのは利用者側です。

 

サーバー側の正真性(誠に想定しているサーバーである)にこだわらなければ、利用者側のユーザID/パスワードを使用するだけでのPEAP認証も可能です。(というか、前回の検証で初めて知りました)

CentOSで「有線」の802.1xのコマンドライン設定方法
久しぶりに技術関係のネタです。 Linux(CentOS)で802.1xの設定方法を紹介します。 無線ではなく「有線」です。 Network Managerなしの、コマンドラインで全て完結する方法です。 Ce...

 

前置きはこのくらいにして・・・

前回の記事で「ユーザ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

コメント

タイトルとURLをコピーしました