2020年1月アーカイブ

誰得な備忘録.

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>で設定すると,動作するはず.

こちらの内容を備忘録がてら転載.(最新のzfs,sambaでは設定内容が一部変更となっているため,これを修正.)

zfs上にsamba共有ディレクトリを作る場合は,注意しないとアクセス速度が遅くなる.

原因はwindowsはファイル名の大文字小文字を区別しない,Unixは大文字小文字を区別するということ,らしい.

対応は簡単.

1. zfsファイルシステム作成時に以下の設定で行う.

zfs create -o casesensitivity=insensitive -o relatime=on -o compression=lz4 -o acltype=posixacl -o mountpoint=/hogetete ztank/path/to/cifs

2. sambaの設定を変える.smb.confの該当セクション([share]など)に,以下の項目を追加.

case sensitive = yes
preserve case = no
short preserve case = no