AlmaLinux9 daloRADIUSのインストール

スポンサーリンク

FreeRADIUSは本来、ユーザアカウントなどをテキストファイルで管理するのですが、viなどでそれらを編集するのは利便性にかけるので、誰でも簡単に一括登録もできる管理ツールはないか探してみたところ、daloRADIUSというソフトがありました。

これはMySQLを使ってユーザ管理を行い、Web管理画面から操作を行うことのできるツールです。日本語には未対応ですが直感的でわかりやすく、ユーザの一括登録や削除などを行いたい場合はそれなりに使えるツールだと思われます。

Webから管理を行うのでApacheがインストールされているという前提です。まず、ベースとなるfreeradiusとMariaDBをインストールします。下記は2回にわけてインストールしていますが、一度に行っても問題ありません。

# dnf install freeradius freeradius-utils freeradius-mysql

私の環境ではdnfでfreeradius-mysqlパッケージが見つからず、仕方なく以下のサイトから手動で持ってきて個別にインストールしました。

https://rpmfind.net/linux/rpm2html/search.php?query=freeradius-mysql(x86-64)

# rpm -Uvh freeradius-mysql-3.0.21-37.el9.x86_64.rpm

次にデータベースのインストールおよび設定を行います。

# dnf install mariadb-server
# vi /etc/my.cnf.d/mariadb-server.cnf 

<追記>
[mysqld]
default-time-zone=Asia/Tokyo
character_set_server=utf8mb4

次にデータベースを起動してデータベース作成を行います。

# systemctl enable mariadb
# systemctl start mariadb
# mysql -u root -p
Enter password:[rootパスワード入力]
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.16-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database radius;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> grant all privileges on radius.* to radius@localhost identified by 'radius@123';
Query OK, 0 rows affected (0.013 sec)

MariaDB [(none)]> flush privileges; 
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> exit
Bye

つづけてRADIUSデータベースにSQL文の流しこみを行います。以下のコマンドでユーザradiusでデータベースradiusに接続してschema.sqlを流し込みます。

# mysql -u root -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql
Enter password:[パスワードを入力]

次に以下のようにシンボリックリンクをはっておきます。

# ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/

次に接続するMySQLサーバに関する設定を行います。/etc/raddb/mods-available/sqlを以下のように編集します。

# vi /etc/raddb/mods-available/sql

<省略>
sql {
<省略>
        dialect = "mysql"
        driver = "rlm_sql_mysql"
<省略>
        mysql {
                # If any of the files below are set, TLS encryption is enabled
                #tls {
                #        ca_file = "/etc/ssl/certs/my_ca.crt"
                #        ca_path = "/etc/ssl/certs/"
                #        certificate_file = "/etc/ssl/certs/private/client.crt"
                #        private_key_file = "/etc/ssl/certs/private/client.key"
                #        cipher = "DHE-RSA-AES256-SHA:AES128-SHA"

                #        tls_required = yes
                #        tls_check_cert = no
                #        tls_check_cert_cn = no
                #}

                # If yes, (or auto and libmysqlclient reports warnings are
                # available), will retrieve and log additional warnings from
                # the server if an error has occured. Defaults to 'auto'
                warnings = auto
        }
<省略>
        # The dialect of SQL you want to use, this should usually match
        # the driver you selected above.
        #
        # If you're using rlm_sql_null, then it should be the type of
        # database the logged queries are going to be executed against.
        dialect = "mysql"
        # Connection info:
        #
        server = "localhost"
        port = 3306
        login = "radius"
        password = "radius@123"
<省略>
        # Set to 'yes' to read radius clients from the database ('nas' table)
        # Clients will ONLY be read on server startup.
        read_clients = yes

あとはこのファイルの権限を変更しておきます。

# chgrp -h radiusd /etc/raddb/mods-enabled/sql

設定を有効にするためにfreeradiusを再起動しておきます。

# systemctl restart radiusd

FreeRADIUS側の設定は以上となりますが、daloRadiusはPHPで動きますのでPHPもインストールしておきます。

# dnf -y install @php php-{cli,curl,mysqlnd,devel,gd,pear,mbstring,xml,pear}
# pear install DB
# pear install MDB2
# systemctl restart httpd


daloRADIUSをインストールします。まず最新バージョンをwgetでダウンロードし展開します。

# cd /tmp
# wget https://github.com/lirantal/daloradius/archive/master.zip
# unzip master.zip
# mv daloradius-master/ daloradius
# cd daloradius

このあとSQL文を流し込みます。

# mysql -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql
Enter password:[パスワード入力]
# mysql -u root -p radius < contrib/db/mysql-daloradius.sql
Enter password:[パスワード入力]


後はこのdaloRADIUS本体をApacheのドキュメントルートに配置します。

# cd ..
# mv daloradius/ /var/www/html/
# chown -R apache.apache /var/www/html/daloradius/
# cp /var/www/html/daloradius/app/common/includes/daloradius.conf.php.sample /var/www/html/daloradius/app/common/includes/daloradius.conf.php
# chmod 664 /var/www/html/daloradius/app/common/includes/daloradius.conf.php


続けてdaloRADIUS用のSQLの設定を行います。以下の3行を必要に応じて編集します。

# vi /var/www/html/daloradius/app/common/includes/daloradius.conf.php

<省略>
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'radius@123';
$configValues['CONFIG_DB_NAME'] = 'radius';
<省略>

 後はWebから画面が見えるか試してみます。アクセス先はhttp://[ip-address]/daloradius/login.phpとなります。以下の画面が見えたらOKです。

デフォルトのログインID/PASSはadministrator / radiusとなります。ログインできるか試して見てください。ログイン直後は以下のような画面となります。

WebUIのManagement – New Userから認証ユーザを追加することができます。テスト的にtestuser / testpasswordで作成し、認証に成功するかどうか試してみます。ユーザを作成した後に以下のコマンドでテストしてみてください。

# radtest testuser testpassword localhost 0 testing123
Sent Access-Request Id 250 from 0.0.0.0:45131 to 127.0.0.1:1812 length 78
        User-Name = "testuser"
        User-Password = "testpassword"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Message-Authenticator = 0x00
        Cleartext-Password = "testpassword"
Received Access-Accept Id 250 from 127.0.0.1:1812 to 0.0.0.0:0 length 20

上記のようになれば成功です。/var/log/radius/radius.logにも以下のような出力が残っているはずです。

Auth: (0) Login OK: [testuser/testpassword] (from client localhost port 0)


上のdaloradiusはログイン画面に出ている通り、versionが2.0のものです。1系とはインターフェース面結構な変更がかかっているので、従来どおりのものがよければ1.1.2が最新となります。

個人的にはID/PASSを一括インポートすることが多いのですが、最新バージョン(2.0)ですとインポートの際にid,pass,mail,fullnameなど少し多くの属性をいれることが必須となっておりますので、それを煩わしく感じて古いバージョンに戻しました。

古いバージョンのものは以下からダウンロード可能です。

https://sourceforge.net/projects/daloradius/files/daloradius/

作業内容はほぼ同じなのですが、ディレクトリ配置が少し変わっているので注意が必要です。ほとんど同じであるものの、違うところだけ太字にしておきます。

# unzip daloradius-1.1-2.zip
# cd daloradius/
# mysql -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql
Enter password:[パスワード入力]
# mysql -u root -p radius < contrib/db/mysql-daloradius.sql
Enter password:[パスワード入力]

後はこのdaloRADIUS本体をApacheのドキュメントルートに配置します。

# cd ..
# mv daloradius/ /var/www/html/
# chown -R apache.apache /var/www/html/daloradius/
# chmod 664 /var/www/html/daloradius/library/daloradius.conf.php


続けてdaloRADIUS用のSQLの設定を行います。以下の3行を必要に応じて編集します。

# vi /var/www/html/daloradius/library/daloradius.conf.php

<省略>
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'radius@123';
$configValues['CONFIG_DB_NAME'] = 'radius';
<省略>

あとの処理は同様です。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする