誰得な備忘録.
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>で設定すると,動作するはず.