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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

1回答

6669閲覧

FreeRADIUSによるIEEE802.1Xの認証

ma-yu

総合スコア57

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2018/03/22 10:21

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.”で止まっています。

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

"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/22 15:43

編集2018/03/23 08:38
TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ma-yu

2018/03/23 07:38 編集

ご回答ありがとうございます。 説明不足で申し訳ございません。 有線LANで認証スイッチを用います。 認証スイッチ(オーセンティケータ)はBSH-G08Mを使用しています。 また、EAPタイプですが最終的にはPEAPまたはEAP-TLSを使用したいです。 しかし、開通の確認としてまずeap=MD5を試みています。 以上、よろしくお願いします。
ma-yu

2018/03/26 09:01

追記いただきありがとうございます。 FWの設定等ですが、認証SWとRADIUS側端末は通信ができているように思います。 "radtest"コマンドを実行すればfreeradiusはレスポンスをします。 認証を受けたい端末でeapol_testを実行しましたがやはり接続できません。 お手数ですが更なるご教授よろしくお願いします。
TaichiYanagiya

2018/03/26 09:42

ratest は認証スイッチ経由ではなく、localhost で試したのですよね? 認証スイッチ経由でアクセスした際に "radiusd -X" に何も出力されないとのことでしたので、認証スイッチ→ radiusd にパケットが届いていないと判断しました。 また、eapol_test の際、"radiusd -X" にどのように出力されますでしょうか。 このテストは認証スイッチ側は全許可(一般的なスイッチ)となっているのですよね?
ma-yu

2018/03/27 01:48

説明不足で大変失礼しました。 以下詳細です。 <ローカルでのradtestについて> RADIUSサーバーで"freeradius -X"を起動後、RADIUSサーバーPCより”radtest”を行いました。 このときは認証SWを持ちず、localhostで行いました。 "freeradius -X"は認証ができた旨のログを出しました。 <認証SWを用いたradtestについて> ①全許可ポート使用 認証を受けたい端末(以下クライアントPC)とRADIUSサーバーPCを全許可状態の認証SWに繋ぎ、クライアントPCからRADIUSサーバーに向けて"radtest"を行いました。 クライアントPCで"radtest"の応答が確認でき、FRADIUSサーバーPCの"freeradius -X"にも成功の旨のログが確認できました。 ②認証用と許可ポート使用 認証SWはポートごとに、許可(一般的)/認証用(IEEE802.1X用) を設定できます。 RADIUSサーバーPCを全許可状態のポートに、クライアントPCを認証用のポートに繋いで"radtest"を行ったところ、失敗しました。このときRADIUSサーバーにログは一切出力されませんでした。 ③認証用ポート使用 RADIUSサーバーPCとクライアントPCの両方を認証用ポートに接続したところ、②と同じ結果で失敗しました。 <eapol_testについて> 使用ポートはRADIUSサーバーもクライアントPCも全許可用の一般的なポートです。 pingが双方に通ります。 クライアントPCから”eapol_test”を行うと、"eapol_test"のログは質問投稿時に示した”該当ログ”のような出力がされます。 "freeradius -X"側は反応がなく、ログは出力されませんでした。 以上が試したこととなります。 お手数ですがよろしくお願いします。
TaichiYanagiya

2018/03/27 03:06

詳細な情報、ありがとうございます。 ①で、FreeRADIUS 側ファイアーウォール設定に問題がないことを確認できます。 ②③は、そもそもプロトコル、レイヤが違うので、テストとしては意味がありません。認証スイッチで認証しないと通信できないことを再確認するのみ。 RADIUS パケットのやりとりは、本来は認証スイッチと radiusd 間です。 PC から radtest, eapol_test を実行して、PC-radiusd 間で RADIUS パケットをやりとりしても、radiusd の動作確認にはなりますが、認証スイッチ-radiusd のテストにはなりません。 > "eapol_test"のログは質問投稿時に示した”該当ログ”のような出力がされます。 > "freeradius -X"側は反応がなく、ログは出力されませんでした。 radiusd に RADIUS パケットが届いていません。 eapol_test の "-a" オプションは FreeRADIUS サーバーを指定していますでしょうか?
ma-yu

2018/03/27 04: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”と記載変更させていただいております。 実行オプションが足りないのでしょうか? 以上、お手数ですがご教授よろしくお願いします。
TaichiYanagiya

2018/03/27 04:57

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

2018/03/27 05: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の仕組みについて何で勉強できるかのご教示を頂ければ幸いです。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問