CentOS RADIUS server Configuration

標準

下載與安裝Freerdius:

1.到Freeradius官網下載,目前最新的stable版為1.1.7(http://www.freeradius.org)
2.下載到/tmp
3.tar  zxvf freeradius-1.1.7.tar.gz
4.cd freeradius-1.1.7
5../configure
6.make
7.make install
8. 預設的設定檔安裝在/usr/local/etc/raddb/,log檔在/usr/local/var/log/radius ,測試程式radtest在/usr/local/bin,主程式radiusd 在/usr/local/sbin/,說明文件在/usr/local/share/doc/freeradius

修改raddb下的radiusd.conf

修改unix模組(大約在612行)使freeradius能讀取系統的/etc/passwd並使用系統的帳號密碼,修改的設定值如下:
unix{
cache=no   //預設值
cache_reload=600    //預設值

passwd=/etc/passwd
shadow=/etc/shadow
group=/etc/group

radwtmp=${logdir}/radwtmp

}

因為 /etc/shadow 只有 root 權限可以讀取,所以將 radiusd.conf 的 user 改成 root 即可

啟動radius server

1.正常模式(背景執行)
/usr/local/sbin/radiusd

2.除錯模式(前景+大量Debug訊息)
/usr/local/sbin/radiusd -X

or /usr/sbin/radius

修改client.conf

這個檔是定義那個IP或網路區段可以和本radius server溝通,故若您有AP或Client或認證伺服器需要利用本radius server的帳號密碼認證,則就要在client.conf設定,才能准許連線認證。

原本系統就有內建的值為
client 127.0.0.1{
secret    =     testing123
shorename    =     localhost
nastype    =    other

}

故可以在local端先行測試是否設定有問題,利用radtest這個指令
使用方法:radtest 使用者名稱 使用者密碼 radius伺服器的IP:Port NAS-Port-Num secret

我們利用UNIX系統帳號來測試,鍵入
radtest root root的密碼 localhost 0 testing123

若測試結果若回應以下訊息,則代表運作ok
rad_recv:Access-Accept packet frem host 127.0.0.1:1812

若有內部網路的無線AP要使用該radius認證的話,可以在client.conf加入該AP的IP,例如有一部AP的IP為192.168.1.00,則加入

client 192.168.1.100{
secret    =     tseting123-1
shorename    =     wireless-ap1

}

本單位有一部sonicwall 3060,內部的AP透過此firewall認證,則在sonicwall3060中需要作以下的設定:

Users->Settings->Authentication Method選擇RADIUS+LocalUsers->configure
RADIUS Servers中的Primary server內要填入Radius Server的IP,Shared Secret 及Port number(以上要在Radius Server中的Client.conf中加入本Firewall的真實IP)
RADIUS Users中的設定要選Use RADIUS Filter-id attribute on RADIUS server
Test中輸入測試的帳號密碼(測試的方式選Password authentication),若出現Radius Client Authentication Succeeded就表示連線成功了!

radius伺服器的output可打radiusd -sfxxyz stdout

User Datebasae to login

一、安裝mysql
本人用的是光碟上的RPM包
rpm –ivh mysql-3.23.41.1.i386.rpm
rpm –ivh mysql-devel-3.23.41.1.i386.rpm
rpm –ivh mysql-server-3.23.41.1.i386.rpm
rpm –ivh mysqlclient9-3.23.22-6.i386.rpm
啟動mysql服務
service mysqld start
更改mysql的root密碼(注意:mysql的root 和系統的root是2個不用的概念)
mysql –uroot –p
創建radius資料庫
creat database radius;
use mysql;
update user set password=password(‘你的密碼’) where user=’root’;
允許遠端機器連接
update user set host=’%’ where user=’root’;
退出及重新啟動mysql
quit
service mysqld restart
二、安裝openSSL
本人也是用的光碟上的RPM包
rpm –ivh openssl095a-0.9.5a-11.i386.rpm
rpm –ivh openssl096-0.9.6-6.i386.rpm
三、安裝freeradius
從www.freeradius.org上下載freeraidus,本文版本是0.8.1
編譯和安裝
tar xvfz freeradius.tar.gz
cd xvfz freeradius-0.8.1
./configure
make
make install
建立mysql的資料庫raius的表
cd src/modules/rlm_sql/drivers/rlm_sql_mysql
mysql –uroot –p密碼 radius < db_mysql.sql
更改freeradius的設置
cd /usr/local/etc/raddb
更改radiusd.conf,讓其支持sql (如下面所說)
authorize {
preprocess
chap
mschap
suffix
sql
}
accouting {
….
sql

}
更改sql.conf
server=”localhost”
login=”root”
password=”mysql的root的密碼”
radius_db=”radius”
更改 client.conf支援所用的NAS具體可以看該文檔,要注意的是secret是NAS和radius伺服器的共用密碼
資料庫加入測試帳號
加入組
mysql –uroot –p密碼 radius
insert into radgroupreply (groupname,attribute,op,values) values (‘user’,‘Auth-Type’,’:=’,’Local’);
insert into radgroupreply (groupname,attribute,op,values) values (‘user’,‘Service-Type’,’:=’,’Framed-User’);
insert into radgroupreply (groupname,attribute,op,values) values (‘user’,‘Framed-IP-Address’,’:=’,’255.255.255.254’);
insert into radgroupreply (groupname,attribute,op,values) values (‘user’,‘Framed-IP-Netmask’,’:=’,’255.255.255.0’);
加入測試帳號
insert into radcheck (username,attribute,op,value) values (‘test’,’User-Password’,’:=’,’test’)
測試帳號加入組
insert into usergroup (username,groupname) values (‘test’,’user’);
四、啟動radius服務、測試帳號
啟動到debug模式
radiusd –X
有時候會報找不到檔rlm_sql_mysql這個時候只要把庫檔加入系統搜索的目錄裡
比如:
cp /usr/local/lib/* /usr/lib
測試帳號
radtest test teset localhost 0 testing123