Radiusセットアップ
Freeradius+MySQLでRdiusサーバーを立てる。
必要パッケージをインストール
apt install freeradius apt install freeradius-mysql
MySQLにデータベース、ユーザーを作成する。結構表現がややこしい。以下の設定は、ローカルホスト上にDBが存在するとしている。
CREATE DATABASE radius CHARACTER SET UTF8 COLLATE UTF8_BIN; CREATE USER 'radius'@'%' IDENTIFIED BY 'radius'; GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'%'; QUIT;
データベース名、ユーザー名、パスワードは適宜変更すること。
mysql -u radius -p radius < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql
moduleの設定ファイルを変更し、作成したDBに接続出来るようにする。
vi /etc/freeradius/3.0/mods-enabled/sql
sql {
driver = "rlm_sql_mysql"
dialect = "mysql"
server = "localhost"
port = 3306
login = "radius"
password = "radius"
radius_db = "radius"
acct_table1 = "radacct"
acct_table2 = "radacct"
postauth_table = "radpostauth"
authcheck_table = "radcheck"
groupcheck_table = "radgroupcheck"
authreply_table = "radreply"
groupreply_table = "radgroupreply"
usergroup_table = "radusergroup"
delete_stale_sessions = yes
pool {
start = ${thread[pool].start_servers}
min = ${thread[pool].min_spare_servers}
max = ${thread[pool].max_servers}
spare = ${thread[pool].max_spare_servers}
uses = 0
retry_delay = 30
lifetime = 0
idle_timeout = 60
}
read_clients = yes
client_table = "nas"
group_attribute = "SQL-Group"
$INCLUDE ${modconfdir}/${.:name}/main/${dialect}/queries.conf
}
管理用UIの設定
上記のようにMySQLを使用する場合には、データベースにさえアクセスできれば、Radiusサーバー上にUI用のWebサーバーを置く必要はない。ここれは、daloRADIUSを使用する。また、Nginxを使用した環境とする。
daloRADIUSをダウンロードする。以下のコマンドを投入するか、ここからダウンロードする。配置場所は/opt/Daloradius/daloradiusとする。
mkdir /opt/Daloradius cd /opt/Daloradius
ソフトウェアをダウンロードする。
wget https://codeload.github.com/lirantal/daloradius/zip/master unzip daloradius-1.1-2.zip
接続データベースのパラメータを書き込む。
vi Daloradiusのパス/library/daloradius.conf.php
$configValues['FREERADIUS_VERSION'] = '3';
$configValues['CONFIG_DB_ENGINE'] = 'mysqli';
$configValues['CONFIG_DB_HOST'] = 'DBサーバー名';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'ユーザー名';
$configValues['CONFIG_DB_PASS'] = 'パスワード';
$configValues['CONFIG_DB_NAME'] = 'データベース名';
Nginx用の設定ファイルを作成する。
vi /etc/nginx/sites-available/daloradius
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name ホスト名;
root daloradiusへのパス;
index index.html index.php login.php;
allow 192.168.0.0/24;
deny all;
location / {
index index.php;
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass fastcgi_backend;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80 http2;
listen [::]:80 http2;
server_name ホスト名;
root daloradiusへのパス;
return 301 https://$server_name$request_uri;
}
設定を有効化する。
ln -s /etc/nginx/sites-available/daloradius /etc/nginx/sites-enabled/
Nginxを再起動する。
service nginx restart
Debianでは標準パッケージのみでは、Daloradiusが動作しなかった。以下のコマンドで追加モジュールをインストールする。
pear install DB