查了很多資料,經過自己的實踐終于配置成功了。
現在在配置freeradius-client-1.1.6時,編譯其src下的radexample.c後運作或者直接運作radlogin,輸入使用者名和密碼,總是認證不成功,但用radtest就能夠完成認證。百思不得其解,郁悶中。。。
配置環境:VitualBox虛拟機下Ubuntu 9.10
Step 1:安裝 Mysql
#groupadd mysql
#useradd mysql -g mysql
#sudo apt-get install mysql-server
這裡會提示你為root使用者設定密碼,這裡可以暫設為123456
Step2:安裝freeradius-server-2.1.8
将freeradius-server-2.1.8.tar.gz 放至/software/下
#cd /software
#tar -zxvf freeradius-server-2.1.8.tar.gz
#cd freeradius-server-2.1.8
#./configure
#make
#make install
#radiusd -X
這裡出現了error while loading shared libraries: libfreeradius-radius-2.1.8.so
其實在言下之意就是缺少一個叫做libfreeradius-radius-2.1.8.so的庫檔案,經查找發現這個庫存在于/usr/local/lib目錄下
采取的解決方式是将/usr/local/lib添加到/etc/ld.so.conf中
ld.so.conf檔案内容如下:
include /etc/ld.so.conf.d/*.conf
添加一行 /usr/local/lib
完成後輸入/sbin/ldconfig,再重新進行上面步驟。
出現以下資訊說明安裝成功。
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on command file /usr/local/var/run/radiusd/radiusd.sock
Listening on proxy address * port 1814
Ready to process requests.
Ldconfig指令是将/etc/ld.so.conf列出的路徑下的庫檔案緩存到/etc/ld.so.cache以供使用。
Step3:配置mysql和freeradius
#mysql -uroot -p123456
mysql>create database radius
mysql>quit
#cd /software/freeradius-server-2.1.8/raddb/sql/mysql
#mysql -uroot -p123456 radius < schema.sql
接着:
更改/usr/local/etc/raddb/sites-available/default檔案,使其支援sql
把 sql前的#去掉
authorize {
preprocess
chap
mschap
suffix
sql
}
accouting {
….
sql
…
}
更改/usr/local/etc/raddb/sql.Conf使其與mysql連接配接
server=”localhost”
login=”root”
password=”mysql的root的密碼”
radius_db=”radius”
再更改/usr/local/etc/raddb/radiusd.conf
将$INCLUDE sql.conf前的#去掉
資料庫加入測試賬号
加入組:
mysql –uroot –p密碼 radius
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’);
加入測試賬号:
insert into radcheck (username,attribute,op,value) values (‘test’,’User-Password’,’:=’,’test’)
測試賬号加入組:
insert into radusergroup (username,groupname) values (‘test’,’user’);
接着需要下載下傳一個freeradius-mysql
#sudo apt-get install freeradius-mysql
然後到/usr/lib/freeradius将rlm_sql_mysql-2.1.0.so複制到/usr/lib下并改名為 rlm_sql_mysql.so
#cp /usr/lib/freeradius/rlm_sql_mysql_2.1.0.so /usr/lib
#mv rlm_sql_mysql_2.1.0.so rlm_sql_mysql.so
#radiusd -X
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on command file /usr/local/var/run/radiusd/radiusd.sock
Listening on proxy address * port 1814
Ready to process requests.
打開另一個終端:
#radtest test test localhost 0 testing123
這時會出現伺服器沒有響應的提示,這是由于ipv6的影響,将/etc/hosts檔案中的::1前加上#再運作以上指令。出現以下資訊說明配置成功。
Sending Access-Request of id 34 to 127.0.0.1 port 1812
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 127.0.1.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=34, length=38
Service-Type = Framed-User
Framed-IP-Address = 255.255.255.254
Framed-IP-Netmask = 255.255.255.0