PR

【2024年度】freeradiusでRADIUS-SERVERを構築してみた

Linux
スポンサーリンク
スポンサーリンク

はじめに

Radiusサーバの構築方法を手順として残しておきます。
ネットで探しても地味にない手順がRadiusサーバ構築手順なので。

マシンの情報

AlmaLinux 8.9を使用します。RHELと思っていただければ大丈夫です。

[root@zabbix ~]# cat /etc/system-release
AlmaLinux release 8.9 (Midnight Oncilla)

freeradiusのインストール

RHEL系のディストリビューションの場合は次のコマンドでインストールします。

yum install freeradius freeradius-mysql

設定ファイルの格納場所の確認

設定を編集する必要のあるファイルは以下に格納されています。

[root@zabbix ~]# ll /etc/raddb/
total 132
-rw-r----- 1 root radiusd 20807 4月 3 2023 README.rst
drwxrwx--- 2 root radiusd 4096 5月 18 22:59 certs
-rw-r----- 1 root radiusd 7476 4月 3 2023 clients.conf
-rw-r--r-- 1 root radiusd 1440 4月 3 2023 dictionary
lrwxrwxrwx 1 root radiusd 30 4月 3 2023 hints -> ./mods-config/preprocess/hints
lrwxrwxrwx 1 root radiusd 35 4月 3 2023 huntgroups -> ./mods-config/preprocess/huntgroups
drwxr-x--- 2 root radiusd 4096 5月 18 22:59 mods-available
drwxr-x--- 6 root radiusd 85 5月 18 22:59 mods-config
drwxr-x--- 2 root radiusd 4096 5月 18 22:59 mods-enabled
-rw-r----- 1 root radiusd 52 4月 3 2023 panic.gdb
drwxr-x--- 2 root radiusd 160 5月 18 22:59 policy.d
-rw-r----- 1 root radiusd 27990 4月 3 2023 proxy.conf
-rw-r----- 1 root radiusd 30586 4月 3 2023 radiusd.conf
drwxr-x--- 2 root radiusd 4096 5月 18 22:59 sites-available
drwxr-x--- 2 root radiusd 41 5月 18 22:59 sites-enabled
-rw-r----- 1 root radiusd 3470 4月 3 2023 templates.conf
-rw-r----- 1 root radiusd 8536 4月 3 2023 trigger.conf
lrwxrwxrwx 1 root radiusd 29 4月 3 2023 users -> ./mods-config/files/authorize

radiusd.confの編集

次のコマンドでファイルを修正します。

[root@zabbix ~]# vi /etc/raddb/radiusd.conf

次のように編集します。この場所をyesにすることで、認証成功時と失敗時にログに出力されるようになります。

 # Log all (accept and reject) authentication results to the log file.
#
# This is the same as setting "auth_accept = yes" and
# "auth_reject = yes"
#
# allowed values: {no, yes}
#
auth = yes

ログは次の場所に格納されています。

[root@zabbix ~]# cat /var/log/radius/radius.log | tail -n 3
Tue May 28 22:46:01 2024 : Info: Ready to process requests
Tue May 28 22:46:42 2024 : Auth: (0) Login OK: [test] (from client private-network port 0)
Tue May 28 23:13:10 2024 : Auth: (1) Login OK: [test] (from client private-network port 0)

clients.confの編集

次のコマンドでファイルを修正します。

[root@zabbix ~]# vi /etc/raddb/clients.conf

次のように追記します。
ipaddrは、Radiusによる接続を許可するセグメントを指定します。
secretは、RadiusクライアントとRadiusサーバで使用する共有暗号鍵となります。

#client private-network-1 {
# ipaddr = 192.0.2.0/24
# secret = testing123-1
#}

#client private-network-2 {
# ipaddr = 198.51.100.0/24
# secret = testing123-2
#}
 
client private-network {
ipaddr = 192.168.0.0/24
secret = testing123
}

usersの編集

次のコマンドでファイルを修正します。

vi /etc/raddb/users

次のように追記します。
ユーザー名はtestとします。また、パスワードはhelloとします。

#"John Doe" Cleartext-Password := "hello"
# Reply-Message = "Hello, %{User-Name}"

"test" Cleartext-Password := "hello"      ※注意:""でユーザー名などを括らないとサービス起動でエラーを起こします。
Reply-Message = "Hello, %{User-Name}"

iptablesの許可

次のコマンドを投入してください。udp1812とupd1813を許可します。ポリシーの順番を1番とすることで、必ず初めにポリシーがヒットするようにしています。

iptables -I INPUT 1 -s 192.168.0.0/24 -p udp --dport 1812:1813 -j ACCEPT

192.168.0.0/24の箇所は、/etc/raddb/clients.confで設定した情報と一致させてください。

radiusdの有効化と起動

次のコマンドでradiusdを常時有効化します。

[root@zabbix ~]# systemctl enable radiusd

また、radiusdを起動します。既に起動している場合は再起動してください。

[root@zabbix ~]# systemctl (re)start radiusd

確認します。

[root@zabbix ~]# systemctl status radiusd
● radiusd.service - FreeRADIUS high performance RADIUS server.
Loaded: loaded (/usr/lib/systemd/system/radiusd.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2024-05-28 22:46:01 JST; 58min ago
Main PID: 2087 (radiusd)
Tasks: 6 (limit: 50383)
Memory: 77.2M
CGroup: /system.slice/radiusd.service
mq2087 /usr/sbin/radiusd -d /etc/raddb

NW機器側のRadiusの設定

今回はCSR1000vにRadiusの設定を投入して検証します。

次のコマンドを投入してください。

aaa new-model

radius server test
address ipv4 192.168.0.21 auth-port 1812 acct-port 1813
key testing123

aaa group server radius test
server name test

aaa authentication login default group test

192.168.0.21はRadiusサーバのIPアドレスに変えてください。

key は/etc/raddb/clients.confで設定した共有鍵の文字列に変えてください。

確認

exitでログアウトした後、エンターキーを押すと、認証情報を尋ねられます。
usersファイルで設定した認証情報を入力すると無事にログインすることができました。

参考

RADIUSによる認証ネットワーク環境構築のための7ステップ
ネットワーク環境、特にwifi環境をよりセキュアにするために、RADIUSサーバを構築し、ネットワークに接続するユーザに対してユーザ名とパスワードを求める認証ネットワークの構築に必要な7ステップを説明します。
AAA - RADIUSクライアントの設定
AAA - RADIUSクライアントの設定。
freeradiusサーバ設定のコツとベストプラクティス ~基本設定から動作確認まで~
FreeRADIUSの設定方法を徹底解説!初心者でもわかるステップバイステップ設定方法から、動作確認まで、効率的なネットワーク認証の設定法を紹介します。ネットワーク管理者必見の情報満載!
FreeRadius構築。初心者に優しい5つの手順まとめ | インフラエンジニアの技術LOG
FreeRadiusを構築したので大きく5つの手順にまとめてメモることにしました。 前回、radtestがうまくいかなかったことなど、その対処方はをおさらいします。
FreeRADIUS構築メモ

コメント