はじめに
FreeRADIUSがDebianのリポジトリーにあるバージョンだと少々古いことに気付いたので最新版をインストールしてみます。
基本的には下記記事と同じですが、インストールに事前準備が必要なのとFreeRADIUSの設定ファイルのパスが違っている点が異なります。
LXCコンテナ
下記記事で生成したコンテナをベースにFreeRADIUSをインストールします。
インストール
今回の前提バージョンは
- Debian GNU/Linux : 11
- FreeRADIUS : 3.0.25
- Samba : 4.13.13
です。
事前準備
コンテナにcURL
がインストールされていないのでインストールする。
sudo apt update && sudo apt install curl
GPGキー登録
curl -s 'https://packages.networkradius.com/pgp/packages%40networkradius.com' | sudo tee /etc/apt/trusted.gpg.d/packages.networkradius.com.asc > /dev/null
リポジトリー登録
NetworkRADIUSのリポジトリーをシステムに登録する。
echo "deb http://packages.networkradius.com/freeradius-3.0/debian/bullseye bullseye main" | sudo tee /etc/apt/sources.list.d/networkradius.list > /dev/null
インストール
必要なパッケージをインストールします。
sudo apt update && sudo apt install freeradius samba winbind krb5-user krb5-config
設定
- レルム : AD.INAHO.SPACE
- シークレットキー : testing123
Kerberos
/etc/krb5.conf
を編集して設定を行います。
[libdefaults]
default_realm = AD.INAHO.SPACE
dns_lookup_realm = false
dns_lookup_kdc = true
Samba
/etc/samba/smb.conf
を編集して設定を行います。
[global]
netbios name = PVE-RADIUS
server string = FreeRADIUS Server
realm = AD.INAHO.SPACE
workgroup = AD
security = ads
invalid users = root
socket options = TCP_NODELAY
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
winbind use default domain = no
winbind max domain connections = 5
winbind max clients = 1000
password server = *
Active DirectoryにJOINします。
sudo kinit Administrator
sudo net ads join -k
Winbindを再起動します。
sudo systemctl restart winbind.service
FreeRADIUS
クライアント情報設定
/etc/freeradius/clients.conf
を編集して設定を行う。
下記内容を末尾に追記する。
client venus1 {
ipaddr = 172.16.0.2
secret = testing123
}
client venus2 {
ipaddr = 172.16.0.3
secret = testing123
}
Active Directory認証
/etc/freeradius/mods-available/mschap
を編集して設定を行う。
mschap {
:
:
winbind_username = "%{mschap:User-Name}"
winbind_domain = "%{mschap:NT-Domain}"
:
:
}
所有者変更
FreeRADIUSから/var/lib/samba/winbindd_privileged/
にアクセスできるようにグループを変更する。
sudo chgrp freerad /var/lib/samba/winbindd_privileged/
動作確認
FreeRADIUSをデバッグモードで起動して、別端末からradtestを使用して動作確認を行う。
サービスを止めて、デバッグモードでの起動。
sudo systemctl stop freeradius.service
sudo freeradius -X
動作確認。
radtest -t mschap <ユーザーID>@<ドメイン名> <パスワード> <接続先ホスト> <ポート> <シークレット>
例:
radtest -t mschap [email protected] P@ssword localhost 12345 testing123
実稼働
FreeRADIUSを起動して、システム起動時の自動起動を有効にする。
sudo systemctl enable freeradius.service
sudo systemctl start freeradius.service
アクセスポイントにRADIUS認証の設定を行い実稼働する。
APの機種毎に設定のしかたが異なるので割愛します。
おわりに
とりあえず無事に最新版を動かすことが出来てよかった。
コンテナを新しく作り直して新規でインストールしたので、コンテナってクリーンな環境をサクッと作れて便利ですね。