Thursday, July 24, 2008

讓FreeRadius Server整合Linux上的帳號做認證

很久以前有介紹透過FreeRadius Server裡的users來做使用者認證,在此update一下透過Linux本機帳號來做認證。

Step1. 將啟動radius server的使用者改為root
# vi /etc/raddb/radiusd.conf


如果不這麼做的話,當啟動radius server時,由於radiusd user對於/etc/shadow沒有讀取的權限,故會發生permission denied。網路上有找到PAM Support for FreeRadius (http://www.sfr-fresh.com/unix/misc/freeradius-1.0.5.tar.gz:a/freeradius-1.0.5/doc/rlm_pam)的文章,可是照著做還是不能work,所以先以此方法來實現。

Step2. Enable Unix account authentication
# vi /etc/raddb/radiusd.conf
unix {
cache=yes
passwd= /etc/passwd
group=/etc/group
shadow=/etc/shadow
radwtmp=${logdir}/radwtmp
}




Step3. 以debug mode啟動
先以debug mode啟動radius server看看是否能啟動成功:

………………. Message

如果看到Ready to process requests的話就代表成功了。
Note: 目前只允許localhost (127.0.0.1)可以連線,如果要允許別的網段或IP連線到本機認證的話請修改 /etc/raddb/clients.conf

Step4. 以本機使用者認證:
Usage: radtest

如果看到回應Access-Accept ……… 那麼就是代表認證成功。

Step6.以daemon方式啟動radius server,並測試:


成功的以daemon的方法啟動radius server,並且能正常工作。

3 comments:

瘋狂帽客 said...

補充:
port 1812 Radius 認證用
port 1813 Radius 計費用

瘋狂帽客 said...

About step2 也可以使用以下的方法,採取Linux本機帳號做身份認證:

# vi /etc/raddb/user
unix Auth-Type := System
Reply-Message = "Your account has been allowed."

Anonymous said...

有沒有方法讓 MS AD 使用 FREERADIUS做認證