#author("2018-12-13T22:46:28+09:00","default:nowsky","nowsky") #author("2018-12-13T22:48:09+09:00","default:nowsky","nowsky") *daloRADIUS [#w1cfb5cf] -[[daloRADIUS:+http://www.daloradius.com/]] -[[GitHub daloradius:+https://github.com/lirantal/daloradius]] FreeRADIUSの認証データをMySQLに蓄えつつ、 ユーザ、パスワード、アトリビュート等をWebブラウザ経由で管理出来るフロントエンド。 メインラインの開発は0.9-9で終了しているが、GitHub版で稀に更新されている事がある。 SourceForge版はSQL構文エラーが出力されたり、日本語対応していない為、 GitHub版のdaloRADIUSを使う方が良い。 挙動にクセがあるが慣れで対処可能なレベル。 自宅サーバ等のホームユースなら必要十分の機能を保持している。 SourceForge版はSQL構文エラーが出たり日本語対応していなかったりするが、 GitHub版は諸々のDB不具合解消と日本語対応が行われている。 ~ *FreeRADIUSのMySQL管理化 [#y4180e1e] daloRADIUSを利用するには、[[FreeRADIUS>Linux/Source/Radius]]環境が動いている事が前提となる。 通常のFreeRADIUSはテキストベースで認証データを管理している。 その為、daloRADIUSで読み込める様に、テキスト管理からDB管理にする必要がある。 &font(b){※一度FreeRADIUSを構築した状態からMySQLへ組み替える際に、バックアップはとる事}; $ mysql -u root -p mysql> create database radius; mysql> grant all on radius.* to radius identified by 'FreeRadiusPass'; mysql> flush privileges; mysql> quit; $ mysql -u radius -p radius < /etc/radius/raddb/sql/mysql/nas.sql Enter Password: ***** $ mysql -u radius -p radius < /etc/radius/raddb/sql/mysql/schema.sql Enter Password: ***** $ vi /etc/radius/raddb/sql/mysql/dialup.conf ========= 289 :: # Uncomment simul_count_query to enable simultaneous use checking 290 :: simul_count_query = "SELECT COUNT(*) \ 291 :: FROM ${acct_table1} \ 292 :: WHERE username = '%{SQL-User-Name}' \ 293 :: AND acctstoptime IS NULL" ~ FreeRADIUSのMySQL-DBを作成したら、コンフィグの変更を行う。 以下に書いてある箇所以外は全部コメントにする。 $ vi /etc/radius/raddb/sql.conf ※実際に書き換えた箇所は"server"と"password"の二箇所のみ ========= sql { database = "mysql" driver = "rlm_sql_${database}" server = "RadiusServerAddress" login = "radius" password = "FreeRadiusPass" radius_db = "radius" acct_table1 = "radacct" acct_table2 = "radacct" postauth_table = "radpostauth" authcheck_table = "radcheck" authreply_table = "radreply" groupcheck_table = "radgroupcheck" groupreply_table = "radgroupreply" usergroup_table = "radusergroup" deletestalesessions = yes sqltrace = no sqltracefile = ${logdir}/sqltrace.sql num_sql_socks = ${thread[pool].max_servers} connect_failure_retry_delay = 60 lifetime = 0 max_queries = 0 nas_table = "nas" $INCLUDE sql/${database}/dialup.conf } $ vi /etc/radius/raddb/radiusd.conf ※sql.confをINCLUDEする箇所のアンコメントと、instantiateステートのコメントアウト ========= 743 :: $INCLUDE sql.conf 779 :: instantiate { 785 :: #exec 802 :: #expr 808 :: #daily 809 :: #expiration 810 :: #logintime 825 :: } $ vi /etc/radius/raddb/sites-enabled/default ※SQL認証をONにして、File認証をコメントアウト ========= ###EAPトンネル内で許可する認証方式 069 :: authorize { 088 :: preprocess 107 :: mschap 136 :: suffix 156 :: eap { 157 :: ok = return 158 :: } 177 :: sql 198 :: expiration 199 :: logintime 223 :: } ###アカウンティングの接続ログ書式 378 :: accounting { 406 :: sql 432 :: exec 443 :: } ~ *テストデータの挿入 [#nd40dc5a] 初期状態ではDBにユーザ情報が入っていないので、テストユーザを作成して登録しておく。 下記では、Passwordアトリビュートのみを設定している。 -RadiusTestUser : テストユーザ名 -RadiusTestPass : テストユーザパスワード ※テストが終わったら、SQLコマンドかdaloRADIUS経由でテストユーザを削除する事 $ mysql -u radius -p Enter Password: ***** mysql> use radius; mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('RadiusTestUser', 'Password', 'RadiusTestPass'); Query OK, 1 row affected (0.06 sec) mysql> quit; ~ *daloRADIUSコンフィグ [#vc094905] apacheの設定に合わせて、daloRADIUSディレクトリのオーナーとユーザを変更したり、 ディレクトリ先に対してapacheのAliasを書く必要がある。 また、daroRADIUSには"PEAR::DB"が必要なので、合わせてインストールも行う。 ・SourceForge版 $ wget "http://downloads.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz" daloradius-0.9-9.tar.gz $ tar zxvf daloradius-0.9.9.tar.gz ・GitHub版 $ git clone https://github.com/lirantal/daloradius daloradius $ rm -rf daloradius/.git* $ rm -rf daloradius/.ht* $ pear install DB $ cd /usr/local/src $ mv daloradius-0.9-9 {$ApacheDocumentRoot}/daloradius $ cd {$ApacheDocumentRoot}/daloradius $ mysql -u radius -p radius < ./contrib/db/fr2-mysql-daloradius-and-freeradius.sql Enter Password: ***** $ vi library/daloradius.conf.php ========= 26 :: $configValues['DALORADIUS_VERSION'] = '0.9-9'; 27 :: $configValues['FREERADIUS_VERSION'] = '2'; 28 :: $configValues['CONFIG_DB_ENGINE'] = 'mysql'; 29 :: $configValues['CONFIG_DB_HOST'] = 'localhost'; 30 :: $configValues['CONFIG_DB_PORT'] = '3306'; 31 :: $configValues['CONFIG_DB_USER'] = 'radius'; 32 :: $configValues['CONFIG_DB_PASS'] = 'FreeRadiusPass'; 33 :: $configValues['CONFIG_DB_NAME'] = 'radius'; ~ *アクセス方法 [#cf0855d7] Webブラウザから「http://"サーバIPアドレス"/daloradius/」に移動すれば、 daloRADIUSのログイン画面になる。 daloRADIUSの初期管理ユーザは、[ユーザ:administrator | パスワード:radius]になっている。 管理ユーザのパスワードを変更するには、以下の順番に移動して管理ユーザを編集する。 [Config] -> [Operators] -> [List Operators] -> [administrator] -> [Operator Info] ~ *PHP7.0対応 [#g5074134] -[[daloRADIUS PHP-7 Support:+https://github.com/lirantal/daloradius/issues/5]] -[[Database error:+https://github.com/lirantal/daloradius/issues/14]] SourceForgeで配布しているdaloRADIUSは、PHP7.0以上に対応していない。 PHP7.0環境で動かすには、MySQLモジュールの参照部分と、DBエンジン選択箇所のソースを書き換える。 # diff /daloradius/library/daloradius.conf.php /daloradius/library/daloradius.conf.php.org --- 28c28 < $configValues['CONFIG_DB_ENGINE'] = 'mysqli'; --- > $configValues['CONFIG_DB_ENGINE'] = 'mysql'; # diff /daloradius/library/opendb.php /daloradius/library/opendb.php.org 97d96 < $dbSocket->query("SET SESSION sql_mode = '';");