質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.91%

FreeRADIUSによるIEEE802.1Xの認証

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 2,653

ma-yu

score 56

 FreeRADIUSによるIEEE802.1Xの認証がしたい

FreeRADIUSを使用して、IEEE802.1X認証を行いたいです。
うまく認証ができず困っています。ご教授いただけないでしょうか?

環境は下記のとおりです。

<RADIUSサーバー>
・ubuntu16.04
・FreeRADIUS v2.2.8
・環境構築参考URL: https://www.virment.com/radius-server-configuration/

<認証を受けたい端末>
・ubuntu12.04LTS
・wpa_supplicant v0.7.3

 発生している問題・エラーメッセージ

FreeRADIUSの起動を下記で行いました。
'# freeradius -X

認証を受けたい端末から下記を実行し、ログを確認しました。
'# ip link set wlan0 down
'# ip link set eth0 down
'# wpa_supplicant -i eth0 -c/home/usr/ssh/wpa_supplicant.conf -D wired -dd -K

以下該当ログ(一部抜粋)

Initializing interface 'eth0' conf '/home/usr/ssh/wpa_supplicant.conf' driver 'wired' ctrl_interface 'N/A' bridge 'N/A'
Configuration file '/home/usr/ssh/wpa_supplicant.conf' -> '/home/usr/ssh/wpa_supplicant.conf'
Reading configuration file '/home/usr/ssh/wpa_supplicant.conf'
ctrl_interface='/var/run/wpa_supplicant'
ap_scan=0
Line: 22 - start of a new network block
key_mgmt: 0x8
eap methods - hexdump(len=16): 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00
identity - hexdump_ascii(len=4):
     72 6f 6f 74                                       root            
password - hexdump_ascii(len=3):
     75 73 72                                          usr             
eapol_flags=0 (0x0)
Priority group 0
   id=0 ssid=''
wpa_driver_wired_init: Added multicast membership with packet socket
Own MAC address: 04:20:9a:46:24:b4
RSN: flushing PMKID list in the driver
Setting scan request: 0 sec 100000 usec
WPS: UUID based on MAC address - hexdump(len=16): 58 f2 e1 6d da b7 5f 55 89 18 5b 27 b4 9e c8 df
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: Supplicant port status: Unauthorized
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
EAPOL: Supplicant port status: Unauthorized
EAPOL: Supplicant port status: Unauthorized
Added interface eth0
EAPOL: External notification - EAP success=0
EAPOL: Supplicant port status: Unauthorized
EAPOL: External notification - EAP fail=0
EAPOL: Supplicant port status: Unauthorized
EAPOL: External notification - portControl=Auto
EAPOL: Supplicant port status: Unauthorized
Already associated with a configured network - generating associated event
Association info event
FT: Stored MDIE and FTIE from (Re)Association Response - hexdump(len=0):
State: DISCONNECTED -> ASSOCIATED
Associated to a new BSS: BSSID=01:80:c2:00:00:03
No keys have been configured - skip key clearing
Select network based on association information
Network configuration found for the current AP
WPA: clearing AP WPA IE
WPA: clearing AP RSN IE
WPA: clearing own WPA/RSN IE
EAPOL: External notification - EAP success=0
EAPOL: Supplicant port status: Unauthorized
EAPOL: External notification - EAP fail=0
EAPOL: Supplicant port status: Unauthorized
EAPOL: External notification - portControl=Auto
EAPOL: Supplicant port status: Unauthorized
Associated with 01:80:c2:00:00:03
WPA: Association event - clear replay counter
RSN: PMKSA cache search - network_ctx=0x9ccb968 try_opportunistic=0
RSN: Search for BSSID 01:80:c2:00:00:03
RSN: No PMKSA cache entry found
WPA: Clear old PTK
EAPOL: External notification - portEnabled=0
EAPOL: Supplicant port status: Unauthorized
EAPOL: External notification - portValid=0
EAPOL: Supplicant port status: Unauthorized
EAPOL: External notification - portEnabled=1
EAPOL: SUPP_PAE entering state CONNECTING
EAPOL: SUPP_BE entering state IDLE
EAP: EAP entering state INITIALIZE
EAP: EAP entering state IDLE
Cancelling scan request
EAPOL: startWhen --> 0
EAPOL: SUPP_PAE entering state CONNECTING
EAPOL: txStart
TX EAPOL: dst=01:80:c2:00:00:03
TX EAPOL - hexdump(len=4): 01 01 00 00
RX EAPOL from 34:76:c5:70:f4:15
RX EAPOL - hexdump(len=46): 02 00 00 05 01 01 00 05 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
EAPOL: Received EAP-Packet frame
EAPOL: SUPP_PAE entering state RESTART
EAP: EAP entering state INITIALIZE
EAP: EAP entering state IDLE
EAPOL: SUPP_PAE entering state AUTHENTICATING
EAPOL: SUPP_BE entering state REQUEST
EAPOL: getSuppRsp
EAP: EAP entering state RECEIVED
EAP: Received EAP-Request id=1 method=1 vendor=0 vendorMethod=0
EAP: EAP entering state IDENTITY
CTRL-EVENT-EAP-STARTED EAP authentication started
EAP: EAP-Request Identity data - hexdump_ascii(len=0):
EAP: using real identity - hexdump_ascii(len=4):
     72 6f 6f 74                                       root            
EAP: EAP entering state SEND_RESPONSE
EAP: EAP entering state IDLE
EAPOL: SUPP_BE entering state RESPONSE
EAPOL: txSuppRsp
TX EAPOL: dst=01:80:c2:00:00:03
TX EAPOL - hexdump(len=13): 01 00 00 09 02 01 00 09 01 72 6f 6f 74
EAPOL: SUPP_BE entering state RECEIVE
EAPOL: startWhen --> 0
EAPOL: authWhile --> 0
EAPOL: SUPP_BE entering state TIMEOUT
EAPOL: SUPP_PAE entering state CONNECTING
EAPOL: SUPP_BE entering state IDLE
EAPOL: startWhen --> 0
EAPOL: SUPP_PAE entering state CONNECTING
EAPOL: txStart
TX EAPOL: dst=01:80:c2:00:00:03
TX EAPOL - hexdump(len=4): 01 01 00 00
EAPOL: idleWhile --> 0
EAP: EAP entering state FAILURE
CTRL-EVENT-EAP-FAILURE EAP authentication failed
EAPOL: SUPP_PAE entering state AUTHENTICATING
EAPOL: SUPP_BE entering state FAIL
EAPOL: SUPP_PAE entering state HELD
EAPOL: Supplicant port status: Unauthorized
EAPOL: SUPP_BE entering state IDLE
EAPOL authentication completed unsuccessfully
EAPOL: startWhen --> 0
RX EAPOL from 34:76:c5:70:f4:15
RX EAPOL - hexdump(len=46): 02 00 00 05 01 02 00 05 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
EAPOL: Received EAP-Packet frame
EAPOL: SUPP_PAE entering state RESTART
EAP: EAP entering state INITIALIZE
EAP: EAP entering state IDLE
EAPOL: SUPP_PAE entering state AUTHENTICATING
EAPOL: SUPP_BE entering state REQUEST
EAPOL: getSuppRsp
EAP: EAP entering state RECEIVED
EAP: Received EAP-Request id=2 method=1 vendor=0 vendorMethod=0
EAP: EAP entering state IDENTITY
CTRL-EVENT-EAP-STARTED EAP authentication started
.(最初から同様に続いていきます。)
.
.
.

 設定ファイル

wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ap_scan=0

network={
    key_mgmt=IEEE8021X
    eap=MD5
    identity="root"
    password="usr"
    eapol_flags=0
}

 試したこと

・FreeRADIUSのeap.confはデフォルトを使用しました
・その他設定ファイルは環境構築参考URLに沿って設定しました
・RADIUS portは1812番で、radtestは通りました

 補足情報(FW/ツールのバージョンなど)

”EAPOL authentication completed unsuccessfully”とあり、うまく接続できていないようです。
”EAPOL: Supplicant port status: Unauthorized”が原因ではないかと思うのですが、これ以上分かりません。

FreeRADIUS側は、起動した状態から動きがないようです。
ログが”Ready to process requests.”で止まっています。

乱文大変恐縮です。
ご指摘頂ければその他必要な情報を追記いたします。
ご教授よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

"radiusd -X" の出力が止まっているということは、アクセスポイントから radiusd へのアクセスに問題がありそうです。
アクセスポイントの設定を確認ください。

(2018/03/23 09:54) 追記

WPA-PEAP ならば、

key_mgmt=WPA-EAP
eap=PEAP

WPA-TTLS ならば、

key_mgmt=WPA-EAP
eap=TTLS

とするのではないでしょうか(wpa_supplicant.conf(5))。

それとも、無線LAN ではなく、有線LAN で認証スイッチをご利用なのでしょうか?

(2018/03/23 17:38) 追記

有線LAN で認証スイッチとのことですので、まずは、認証スイッチから radiusd にパケットが届かないことを調査するといいと思います。
認証スイッチの設定、FreeRADIUS 側ファイアーウォール設定など。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/27 13:43

    早急にご回答いただきありがとうございます。

    radtest,eapol_testについて動作がよく分かっておらず申し訳ございません。
    ちなみにこれらの仕組みはどこで勉強できますでしょうか?


    eapol_testに"-a <radiusサーバーのIP>"オプションを追加するとテストが成功しました。
    ありがとうございます。
    eapol_test用設定ファイルは質問投稿時の"wpa_supplicant.conf"です。
    以下のコマンドにて実行しました。
    ”eapol_test -c <設定ファイル> -s <シークレットパスワード> -a <RADIUSサーバーのIP>”

    以下2つ、成功時のログです。

    <freeradiusログ>
    Sending Access-Accept of id 1 to 192.168.x.xx port 38880
    Reply-Message = "Hello, root"
    EAP-Message = 0x03010004
    Message-Authenticator = 0x00000000000000000000000000000000
    User-Name = "root"
    Finished request 62.
    Going to the next request
    Waking up in 4.9 seconds.
    Cleaning up request 61 ID 0 with timestamp +62522
    Cleaning up request 62 ID 1 with timestamp +62522
    Ready to process requests.

    <eapol_testログ>
    <eapol_test>
    EAPOL: SUPP_BE entering state RECEIVE
    Received 69 bytes from RADIUS server
    Received RADIUS message
    RADIUS message: code=2 (Access-Accept) identifier=1 length=69
    Attribute 18 (Reply-Message) length=20
    Value: 'Hello, root'
    Attribute 79 (EAP-Message) length=6
    Value: 03 01 00 04
    Attribute 80 (Message-Authenticator) length=18
    Value: 5f 39 be 9d 02 de 44 ce 14 e2 04 1e bc df 9c 2f
    Attribute 1 (User-Name) length=5
    Value: 'root'
    STA 02:00:00:00:00:01: Received RADIUS packet matched with a pending request, round trip time 0.00 sec

    RADIUS packet matching with station
    decapsulated EAP packet (code=3 id=1 len=4) from RADIUS server: EAP Success
    EAPOL: Received EAP-Packet frame
    EAPOL: SUPP_BE entering state REQUEST
    EAPOL: getSuppRsp
    EAP: EAP entering state RECEIVED
    EAP: Received EAP-Success
    EAP: EAP entering state SUCCESS
    CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
    EAPOL: IEEE 802.1X for plaintext connection; no EAPOL-Key frames required
    WPA: EAPOL processing complete
    EAPOL: SUPP_PAE entering state AUTHENTICATED
    EAPOL: SUPP_BE entering state RECEIVE
    EAPOL: SUPP_BE entering state SUCCESS
    EAPOL: SUPP_BE entering state IDLE
    eapol_sm_cb: success=1
    EAPOL: EAP key not available
    EAP: deinitialize previously used EAP method (4, MD5) at EAP deinit
    Control interface directory not empty - leaving it behind
    MPPE keys OK: 0 mismatch: 1
    FAILURE




    次に、wpa_supplicantでの認証を試みましたが、失敗しました。
    以下のコマンドを使用しています。
    "wpa_supplicant -i eth0 -c <設定ファイル> -D wired -dd"

    このコマンド実行時、"freeradius -X"は無反応でログが出力されません。
    wpa_supplicant側にはデバッグログが確認できました。

    <wpa_supplicantログ>

    eapol_flags=0 (0x0)
    Priority group 0
    id=0 ssid=''
    wpa_driver_wired_init: Added multicast membership with packet socket
    Own MAC address: 04:xx:xx:xx:xx:xx
    RSN: flushing PMKID list in the driver
    Setting scan request: 0 sec 100000 usec
    WPS: UUID based on MAC address - hexdump(len=16): 58 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
    EAPOL: SUPP_PAE entering state DISCONNECTED
    EAPOL: Supplicant port status: Unauthorized
    EAPOL: KEY_RX entering state NO_KEY_RECEIVE
    EAPOL: SUPP_BE entering state INITIALIZE
    EAP: EAP entering state DISABLED
    EAPOL: Supplicant port status: Unauthorized
    EAPOL: Supplicant port status: Unauthorized
    Using existing control interface directory.
    Added interface eth0
    EAPOL: External notification - EAP success=0
    EAPOL: Supplicant port status: Unauthorized
    EAPOL: External notification - EAP fail=0
    EAPOL: Supplicant port status: Unauthorized
    EAPOL: External notification - portControl=Auto
    EAPOL: Supplicant port status: Unauthorized
    Already associated with a configured network - generating associated event
    Association info event
    FT: Stored MDIE and FTIE from (Re)Association Response - hexdump(len=0):
    State: DISCONNECTED -> ASSOCIATED
    Associated to a new BSS: BSSID=01:xx:xx:xx:xx:xx
    No keys have been configured - skip key clearing
    Select network based on association information
    Network configuration found for the current AP
    WPA: clearing AP WPA IE
    WPA: clearing AP RSN IE
    WPA: clearing own WPA/RSN IE
    EAPOL: External notification - EAP success=0
    EAPOL: Supplicant port status: Unauthorized
    EAPOL: External notification - EAP fail=0
    EAPOL: Supplicant port status: Unauthorized
    EAPOL: External notification - portControl=Auto
    EAPOL: Supplicant port status: Unauthorized
    Associated with 01:xx:xx:xx:xx:xx
    WPA: Association event - clear replay counter
    RSN: PMKSA cache search - network_ctx=0x9698968 try_opportunistic=0
    RSN: Search for BSSID 01:xx:xx:xx:xx:xx
    RSN: No PMKSA cache entry found
    WPA: Clear old PTK
    EAPOL: External notification - portEnabled=0
    EAPOL: Supplicant port status: Unauthorized
    EAPOL: External notification - portValid=0
    EAPOL: Supplicant port status: Unauthorized
    EAPOL: External notification - portEnabled=1
    EAPOL: SUPP_PAE entering state CONNECTING
    EAPOL: SUPP_BE entering state IDLE
    EAP: EAP entering state INITIALIZE
    EAP: EAP entering state IDLE
    Cancelling scan request
    EAPOL: startWhen --> 0
    EAPOL: SUPP_PAE entering state CONNECTING
    EAPOL: txStart
    TX EAPOL: dst=01:xx:xx:xx:xx:xx
    TX EAPOL - hexdump(len=4): 01 01 00 00
    EAPOL: startWhen --> 0
    EAPOL: SUPP_PAE entering state CONNECTING
    EAPOL: txStart
    TX EAPOL: dst=01:xx:xx:xx:xx:xx
    TX EAPOL - hexdump(len=4): 01 01 00 00

    ※一部”xx”と記載変更させていただいております。

    実行オプションが足りないのでしょうか?

    以上、お手数ですがご教授よろしくお願いします。

    キャンセル

  • 2018/03/27 13:57

    eapol_test で "CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully" なので、FreeRADIUS 側は問題なさそうです。
    こちらの環境には認証スイッチがないのでログを比較できないのですが、wpa_supplicant 実行時に認証スイッチ-radiusd 間で RADIUS パケットのやりとりがないので、認証スイッチに問題がありそうとしかわかりません。

    キャンセル

  • 2018/03/27 14:32

    早急なご回答ありがとうございます。

    なんとか認証成功することができました。
    幾度にわたるご回答をいただけたことに感謝いたします。

    <成功したときの状態>
    wpa_supplicantを実行するクライアントPCを認証用ポートに接続し、RADIUSサーバーを許可ポートに接続すると"wpa_suppplicant"での実行が成功しました!
    実行オプションは上記同様です。
    (先ほどの失敗時はクライアントPCを許可ポートに接続していました。)

    <wpa_supplicant 成功ログ>

    CTRL-EVENT-EAP-STARTED EAP authentication started
    CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=4
    CTRL-EVENT-EAP-METHOD EAP vendor 0 method 4 (MD5) selected
    CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
    CTRL-EVENT-CONNECTED - Connection to 01:xx:xx:xx:xx:xx completed (auth) [id=0 id_str=]

    ログ以上です。


    本当にありがとうございました。
    仕組みの理解ができていないことが大きな要因であったかと思います。
    最後に、radtest,eapol_testの仕組みについて何で勉強できるかのご教示を頂ければ幸いです。
    ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る