[Debian]RADIUS + MySQL認證

RADIUS除了可以使用本機使用者認證之外,也可以透過其他不同的資源做認證控管

結合MySQL就是一個例子,不過在設定上需要有一些改變

安裝

apt-get install mysql-server
apt-get install freeradius
#freeradius連MySQL的套件
apt-get install freeradius-mysql

建立資料庫

mysql -u root -p
mysql> CREATE DATABASE radius;

匯入資料表

#安裝freeradius-mysql後在此路徑下會有許多*.sql檔
cd /etc/freeradius/sql/mysql/

#匯入
#admin.sql會新增一個radius帳號(密碼為radpass)是Free RADIUS用來連線mysql用的,如果想要自己開MySQL帳號的話可以不用匯入
mysql -u root -p radius < ippool.sql
mysql -u root -p radius < schema.sql
mysql -u root -p radius < nas.sql

建立group (radgroupreply)

#以下為MySQL語法
insert into radgroupreply (groupname,attribute,op,value) values  ('user','Auth-Type',':=','Local');

insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type',':=','Framed-User');

insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Address',':=','255.255.255.254');

insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');

加入測試帳號

#以下為MySQL語法
insert into radcheck (username,attribute,op,value) values ('test','User-Password',':=','test');

insert into radusergroup (username,groupname) values ('test','user');

修改/etc/freeradius/radiusd.conf

#將此行include sql設定檔的註解拿掉
$INCLUDE sql.conf

修改/etc/freeradius/sites-enabled/default

#將兩個群組的sql註解拿掉
authorize {
    sql
}
accounting {
    sql
}

修改/etc/freeradius/sql.conf

#DB連線帳密
login = ""
password = ""

重啟服務

service freeradius restart

測試連線

#顯示rad_recv: Access-Accept則為成功
radtest test test localhost 0 testing123

[Debian]RADIUS

[ZF]建立Database Table Model