はじめに
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ファイルで設定した認証情報を入力すると無事にログインすることができました。
コメント