物理サーバーの上に置いたUbuntu Server 22.04のゲストOSに、FreeRadiusをインスト―ルします。

こちらのページを参考にしますが、ファイアウォール(ufw)はOpenSSHなどもあるので後回しで設定していきます。
LAMPスタックインストール
ベツページ
UFWは後回し。
MariaDBのrootパスワードはとりあえず設定。「2d7nBPuXGnDF」に。
FreeRadiusインストール
sudo apt -y install freeradius freeradius-mysql freeradius-utils
インストールして、デバッグモードでの起動(いったんサービスを停止して、オプション「-X」で起動)をしてみたらエラーが出ています。
Failed binding to auth address 127.0.0.1 port 18120 bound to server inner-tunnel: Address already in use
/etc/freeradius/3.0/sites-enabled/inner-tunnel[33]: Error binding to port for 127.0.0.1 port 18120
サービスを停止してもプロセスが動いているからという話があったのですが、私の環境では止まっているのかプロセスは表示されませんでした。

(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 localhost:6010 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN - tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN - tcp 0 0 localhost:domain 0.0.0.0:* LISTEN - tcp6 0 0 ip6-localhost:6010 [::]:* LISTEN - tcp6 0 0 [::]:http [::]:* LISTEN - tcp6 0 0 [::]:ssh [::]:* LISTEN - udp 0 0 localhost:18120 0.0.0.0:* - udp 0 0 0.0.0.0:radius 0.0.0.0:* - udp 0 0 0.0.0.0:radius-acct 0.0.0.0:* - udp 0 0 localhost:domain 0.0.0.0:* - udp 0 0 tek2tech-ubuntu:bootpc 0.0.0.0:* - udp 0 0 0.0.0.0:53590 0.0.0.0:* - udp6 0 0 [::]:radius [::]:* - udp6 0 0 [::]:radius-acct [::]:* - udp6 0 0 [::]:35295 [::]:* - udp6 0 0 tek2tech-:dhcpv6-client [::]:* -
と思ったのですが、Apacheは動いているのでsudoをつけてやり直したら表示されました。再起動するだけでも大丈夫のようです。
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 localhost:6010 0.0.0.0:* LISTEN 1054/sshd: [email protected] tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 709/sshd: /usr/sbin tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN 9374/mariadbd tcp 0 0 localhost:domain 0.0.0.0:* LISTEN 644/systemd-resolve tcp6 0 0 ip6-localhost:6010 [::]:* LISTEN 1054/sshd: [email protected] tcp6 0 0 [::]:http [::]:* LISTEN 18381/apache2 tcp6 0 0 [::]:ssh [::]:* LISTEN 709/sshd: /usr/sbin udp 0 0 localhost:18120 0.0.0.0:* 24982/freeradius udp 0 0 0.0.0.0:radius 0.0.0.0:* 24982/freeradius udp 0 0 0.0.0.0:radius-acct 0.0.0.0:* 24982/freeradius udp 0 0 localhost:domain 0.0.0.0:* 644/systemd-resolve udp 0 0 tek2tech-ubuntu:bootpc 0.0.0.0:* 642/systemd-network udp 0 0 0.0.0.0:53590 0.0.0.0:* 24982/freeradius udp6 0 0 [::]:radius [::]:* 24982/freeradius udp6 0 0 [::]:radius-acct [::]:* 24982/freeradius udp6 0 0 [::]:35295 [::]:* 24982/freeradius udp6 0 0 tek2tech-:dhcpv6-client [::]:* 642/systemd-network
「sudo kill 24982(freeradiusのプロセスID)」で再度デバッグを起動したところ、動作確認できました。
Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel Listening on auth address * port 1812 bound to server default Listening on acct address * port 1813 bound to server default Listening on auth address :: port 1812 bound to server default Listening on acct address :: port 1813 bound to server default Listening on proxy address * port 45642 Listening on proxy address :: port 49754 Ready to process requests
「sudo systemctl enable –now freeradius」でサービス起動登録して終了です。
ファイアウォール登録
sudo ufw app list
をしてみましたが、ApacheとかOpenSSHと違って簡単に設定できるリストはないようですので、ApacheとOpenSSHと合わせて許可を出します。
sudo ufw allow in "Apache" sudo ufw allow in "OpenSSH" sudo ufw allow to any port 1812 proto udp sudo ufw allow to any port 1813 proto udp sudo ufw enable
FreeRadiusのデータベース作成
ここから先は、一部フロントエンドのdaloRADIUS用の設定も混ざってきます。
CREATE DATABASE radius; CREATE USER 'radius'@'localhost' IDENTIFIED by 'Somestrongpassword_321'; GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost'; FLUSH PRIVILEGES; quit;
WordPressのデータベース作成の手順とだいたい同じですね。(参考ページと同じユーザー名、パスワードにしています。)
スーパーユーザーで、設定をデータベースに流します。
sudo su - mysql -u root -p radius < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql sudo su - (ユーザー名)
途中で聞かれるパスワードは、データベースのrootユーザーパスワードです。
$sudo mysql -e "use radius;show tables;" +------------------+ | Tables_in_radius | +------------------+ | nas | | radacct | | radcheck | | radgroupcheck | | radgroupreply | | radpostauth | | radreply | | radusergroup | +------------------+
Free RadiusでMySQL使用する設定
次に、FreeRadiusからSQLへアクセスするように変更します。
sudo ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/
「sudo nano /etc/freeradius/3.0/mods-enabled/sql」で、
dialect = “sqlite” → dialect = “sqlite”
driver = “rlm_sql_null” → driver = “rlm_sql_${dialect}”
を設定すると、MySQL(or MariaDB)でアクセスできるようになります。
その他の設定
他に、SSL認証を行う設定の部分はテスト用サーバーなのでOFFにしたり、ちょこちょこと前述サイトの通りいじります。
最後に、設定ファイルのパーミッションを変更するため、所有者変更を行います。
#ファイルのグループとユーザーを変更 sudo chgrp -h freerad /etc/freeradius/3.0/mods-available/sql sudo chown -R freerad:freerad /etc/freeradius/3.0/mods-enabled/sql #再起動 sudo systemctl restart freeradius.service
daloRADIUSをインストール
FreeRadiusのウェブベースのフロントエンド、daloRADIUSをインストールします。LAMPスタックにしているのはdaloRADIUS用です。zipファイルをダウンロードしてきてユーザーのホームディレクトリに展開し、/var/www/html下へインストールという流れです。
- 作者のGithubからダウンロード
- 解凍してサーバーにアップロード
- コマンド
cd ~ cd daloradius-master sudo mysql -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql sudo mysql -u root -p radius < contrib/db/mysql-daloradius.sql cd .. sudo mv daloradius-master /var/www/html/daloradius sudo chown -R www-data:www-data /var/www/html/daloradius/ sudo cp /var/www/html/daloradius/library/daloradius.conf.php.sample /var/www/html/daloradius/library/daloradius.conf.php sudo chmod 664 /var/www/html/daloradius/library/daloradius.conf.php sudo nano /var/www/html/daloradius/library/daloradius.conf.php
テキストエディタでデータベースユーザーのパスワードを更新します。
sudo systemctl restart freeradius.service apache2
コメント