freeradius and MySQL on FreeBSD

[ Nob's Home | FreeBSD ]

freeradiusMySQLを使用できるようにします。

Information

freeradiusの再install

/usr/local/lib/mysqlと/usr/local/include/mysqlを指定して再度./configureします。
$ cd freeradius-0.50
$ ./configure  --with-rlm-mysql-lib-dir=/usr/local/lib/mysql --with-rlm-mysql-include-dir=/usr/local/include/mysql
$ make
$ su
# make install

radius databaseを作成

MySQLに"radius"という名前のユーザを追加します。パスワードも設定します。
このユーザーが使用する"radius"というdatabaseを作成します。
$ mysql -u root -p
Enter password:******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 3.23.49-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database radius;
Query OK, 1 row affected (0.01 sec)


mysql> grant all on radius.* to radius@localhost identified by "hogehoge";
Query OK, 0 rows affected (0.02 sec)

mysql> flush privileges;

mysql> quit
Bye

radiusのtableを作成

ちょっと修正が必要です。
$ vi freeradius-0.50/src/modules/rlm_sql/drivers/rlm_sql_mysql/db_mysql.sql
###########################################################################
USE radius ← これを追加
#
# Table structure for table 'radacct'
#
CREATE TABLE radacct (
  RadAcctId bigint(21) NOT NULL auto_increment,
$ mysql -u radius -p  < freeradius-0.5/src/modules/rlm_sql/drivers/rlm_sql_mysql/db_mysql.sql
Enter password:
これにより、
+------------------+
| Tables_in_radius |
+------------------+
| radacct          |
| radcheck         |
| radgroupcheck    |
| radgroupreply    |
| radreply         |
| usergroup        |
+------------------+
と6つのtableが作成されます。

グループ、ユーザーの登録

まず、usergroupに static(固定IP)からaccessするfrodとdynamic(変動IP)からaccessするsamを登録します。
次にfrodとsamのパスワードを登録します。
さらにradreplyにfrodの固定IPを登録します。
最後にstaticとdynamicの属性を登録します。
$ vi radius.sql
 
USE radius 
INSERT INTO usergroup (UserName,GroupName) VALUES ('frod','static');
INSERT INTO usergroup (UserName,GroupName) VALUES ('sam','dynamic');    
INSERT INTO radcheck (UserName,Attribute,Value) VALUES ('frod','User-Password','lordoftherings');  
INSERT INTO radcheck (UserName,Attribute,Value) VALUES ('sam','User-Password','fellowshipofthering');    
INSERT INTO radreply (UserName ,Attribute,Value) VALUES ('frod','Framed-IP-Address','211.10.195.179');
INSERT INTO radgroupreply (GroupName, Attribute, Value)	VALUES ('dynamic','Framed-Compression', 'Van-Jacobsen-TCP-IP');
INSERT INTO radgroupreply (GroupName, Attribute, Value) VALUES ('dynamic','Framed-Protocol','PPP');
INSERT INTO radgroupreply (GroupName, Attribute, Value) VALUES ('dynamic','Service-Type','Framed-User');
INSERT INTO radgroupreply (GroupName, Attribute, Value) VALUES ('dynamic','Auth-Type','Local');
INSERT INTO radgroupreply (GroupName, Attribute, Value) VALUES ('dynamic','Framed-MTU','1500');
INSERT INTO radgroupreply (GroupName, Attribute, Value) VALUES ('static','Auth-Type','Local');
INSERT INTO radgroupreply (GroupName, Attribute, Value) VALUES ('static','Framed-Protocol','PPP');
INSERT INTO radgroupreply (GroupName, Attribute, Value) VALUES ('static','Service-Type','Framed-User');
INSERT INTO radgroupreply (GroupName, Attribute, Value) VALUES ('static','Framed-Compression','Van-Jacobsen-TCP-IP');
$ mysql -u radius -p < radreply.sql

sql.confの編集

# vi /usr/local/etc/raddb/sql.conf
        # Connect info
        server = "localhost"
        login = "radius"        
        password = "password-of-radius"

usersの編集

PPP接続でMS-CHAPv2を使用するので、DEFAULT Auth-TypeはMS-CHAPとします。
(cf. freeRADIUS on FreeBSD)
# vi /usr/local/etc/raddb/users
        DEFAULT Auth-Type := MS-CHAP
        Fall-Through = 1   

radiusd.confの編集

# vi /usr/local/etc/raddb/radiusd.conf

authorize {
        sql
        files
        mschap
}

authenticate {
        mschap
}

accounting {
        unix
        sql
        radutmp
}
これでうまくいっています。
[ Nob's Home | FreeBSD ]

nob@makioka.y-min.or.jp