Archive for the ‘RADIUS’ Category

RADIUSサーバをたててみた…ときのひっかかったポイント

FreeRADIUSを使って立てたので、個人的メモ。
設定のやりかたとかは他に書いてあるのでそっちを見てね

最終目的は、EAP-PEAP/EAP-TTLSで認証通すとこ。

(証明書作成、FreeRADIUSをインストールしてとりあえずユーザー作ったよーというレベルまで)

1.ローカルでの接続テスト

radtestを使います。

radtest rikka@chu2byo.example.com jyaoushingan localhost 0 testing123

テストするとこんなかんじに結果が出てきます。

Sending Access-Request of id 123 to localhost port 1812
	User-Name = "rikka@chu2byo.example.com"
	User-Password = "jyaoushingan"
	NAS-IP-Address = xxx.xxx.xxx.xxx
	NAS-Port = 1812
	Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host localhost port 1812, id=123, length=20

正しいパスワードを入れてAccess-Acceptになれば、usersとproxy.confの設定は問題なし。
念のため間違ったパスワードを入れると

radtest rikka@chu2byo.example.com darkflamemaster localhost 0 testing123

こんなかんじにRejectになる。

rad_recv: Access-Reject packet from host localhost port 1812, id=244, length=20

間違ったパスワードできちんとRejectされれば問題なし。

だが、正しいパスワードでAccess-Rejectになれば、user@realmとpasswordが一致してないので、そのへんを調べてみるべし。

2.リモートからのテスト

localhostを相手ホストにするだけ。

radtest rikka@chu2byo.example.com jyaoushingan remotehost 1812 testing123

出てくる結果は同じなので省略
Access-AcceptになればOK、Access-Rejectになればどっかおかしい。
たぶんcients.confのclientの設定がおかしい。

3.EAPをテストする

radtest/radclientではEAPが使えないので、WPA supplicantにあるeapol_testを使います。
この時点で、Linux限定になっちゃいます。
WPA supplicantを普通にmakeしても生成されないので注意。
CONFIG_EAPOL_TEST=y にして make eapol_test する。
参考:Deploying RADIUS: EAP Testing
なお、「/usr/bin/ld : cannot find -lnl」と出る場合は、libnlを入れてから再度 make eapol_test。

$ aptitude install libnl2 libnl2-dev

eapol_test と同じディレクトリに eapoltest.conf を作成

network={
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="rikka@chu2byo.example.com"
    password="jyaoushingan"
    phase2="auth=MSCHAPV2"
    eap_workaround=0
}

設定ファイルを書いたら、

$ ./eapol_test -a [remote] -p 1812 -s [client secret] -A [local IP] -M [local MAC] -n -c ./eapoltest.conf

通信の詳細が一気に表示されます。
TLSトンネリングなのか、eap.conf内の設定の問題かが、ほぼわかると思います。
これでわからなければ、RADIUSサーバをdebugモードで起動。

# freeradius -X

なお、Windowsで接続した場合「EAP session for state 0x******* did not finish! Please read 〜」とメッセージが出る場合、オレオレ証明書を使ってる場合だと思いますので、「保護されたEAPのプロパティ」で「サーバの証明書を検証する」をオフにします(またはオレオレルート証明書等のインストールが必要)

参考にしたもの