freeradius + samba AD で WPA2-Enterprise の EAP-PEAP-MSCHAPv2

| コメント(0)

誰得な備忘録.

samba ADのドメインコントローラ(DC)上でfreeradiusを用いたRADIUSサーバを動作させ,無線LAN APからのWPA2-EnterpriseでのEAP-PEAP-MSCHAPv2を受け付ける.

前提条件: Gentoo Linux上でsamba AD DCが動作している.SSLライブラリはLibreSSLである(これはあまり影響しない・・・はず),当該サーバに有効なサーバ証明書が作成されている.

1. freeradiusをインストール

/etc/portage/package.use/freeradiusに以下記述.

net-dialup/freeradius ldap samba

インストール

sudo -E emerge -v freeradius

2. freeradiusの設定

2.1 設定ファイル所有者所有グループ変更

chown -R radius:radius /etc/raddb

2.2 /etc/raddb/client.confの設定

無線LANアクセスポイントとの接続情報を設定

上記ファイルの適当な場所に以下の設定を記述

client WCT_LAB_AP {
ipaddr = <WLAN_AP_IPADDR>
secret = <WLAN_AP_password>
shortname = <WLAN_AP_ShorName> # 必ずしも必要ではない?
}

2.3 /etc/raddb/mods-enabled/eapの設定

EAPの設定

eap {

default_eap_type = PEAP

tls-config tls-common {
private_key_password = <サーバ証明書の秘密鍵のパスワード>
private_key_file = ${certdir}/<サーバ証明書の秘密鍵ファイル名>

certificate_file = ${certdir}/<サーバ証明書ファイル名>

ca_file = <ルート証明書のファイル名・フルパス>

dh_file = ${certdir}/dh4096.pem

random_file = /dev/urandom

}

peap {

copy_request_to_tunnel = yes

use_tunneled_reply = yes

2.4 DHファイルの作成

openssl dhparam -out dh4096.pem 4096

ここまでビット長が長くなくても良いかも.

2.5 /etc/raddb/mods-enabled/mschap

MSCHAPv2の認証アプリケーション設定

mschap {

use_mppe = yes

require_encryption = yes

require_stron = yes

ntlm_auth = "/usr/bin/ntlm_auth --allow-mschapv2 --request-nt-key --username=%{%{Stripped-User-Name}:-%{%{mschap:User-Name}:-None}} --domain=%{%{mschap:NT-Domain}:-<ドメイン名>} --challenge=%{%{mschap:Challenge}:-00} --nt-response=%{%{mschap:NT-Response}:-00}"

(後略)

2.6 /etc/raddb/sites-enabled/default

待ち受けアドレス・ポート番号の設定

server default {

listen {

type = auth

ipaddr = <サーバIPアドレス>

}

listen {

type acct

ipaddr = <サーバIPアドレス>

}

}

2.7 /var/lib/samba/private/winbindd_privilegedのグループ変更

radius:radiusよりntlm_authを行えるように.

chgrp radius /var/lib/samba/private/winbindd_privileged

3. テスト用プリケーションのインストールとテスト

wpa_supplicantをインストールする.USEフラグを設定./etc/portage/package.use/wpa_supplicantに以下を設定.

net-wireless/wpa_supplicant gnutls eapol_test

インストール.

sudo -E emerge -v wpa_supplicant

次の内容を適当なファイル名で保存.

network={
ssid="<無線 SSID>"
key_mgmt=WPA-EAP
eap=PEAP
identity="<ユーザ名>"
password="<パスワード>"
phase2="autheap=MSCHAPV2"
ca_cert="<ルート証明書ファイル名・フルパス>"
}

以下のコマンドでテスト.

sudo eapol_test -c <上記ファイルをフルパスで> -s <WLAN_AP_password> -a <サーバIPアドレス>

上記コマンドを実行すると,大量の表示がされるが,最後にSUCCESSという表示が出れば,設定は成功.

4. 無線LAN APにradiusサーバに関する必要事項を設定.

接続先を<サーバIPアドレス>,パスワードを<WLAN_AP_password>で設定すると,動作するはず.

コメントする