- 論壇徽章:
- 0
|
紅帽RHEL5U3平臺(tái)實(shí)現(xiàn)pppoe接入記賬認(rèn)證服務(wù)器
作者:zorro
郵件:zorro@uplooking.com
軟件需求:
紅帽自帶的:rp-pppoe,ppp,freeradius,freeradius-mysql,mysql。
另需:freeradius-2.1.3以及ppp2.4.4的源代碼包。
第一部分:實(shí)現(xiàn)簡(jiǎn)單的pppoe撥號(hào)服務(wù)
檢查系統(tǒng)上的rp-pppoe以及ppp軟件是否安裝,命令:
#rpm -q rp-pppoe ppp
如果安裝則會(huì)有顯示軟件包的名稱,若未安裝,找到安裝盤上的相關(guān)rpm包安裝。
然后配置/etc/ppp/pppoe-server-options文件,內(nèi)容為:
# PPP options for the PPPoE server
# LIC: GPL
require-chap
login
lcp-echo-interval 10
lcp-echo-failure 2
defaultroute
ms-dns 192.168.1.1
logfile /var/log/pppod.log
文件內(nèi)容不做解釋,可以通過man pppd查尋相關(guān)幫助。此時(shí)pppoe服務(wù)器從/etc/ppp/ chap-secrets文件中讀取驗(yàn)證的用戶名和密碼信息,此文件格式為:
# Secrets for authentication using CHAP
# client server secret IP addresses
"zorro" * "123456" *
想要多添加用戶,再加入新行即可。
然后可以啟動(dòng)pppoe服務(wù)了,命令是:
#pppoe-server -I eth0 -L $LOCALIP -R $REMOTEIP -N $CONNLIMIT
命令詳細(xì)信息查詢man pppoe-server。
注:紅帽自帶的pppoe服務(wù)器,在RHEL5至RHEL5U2的版本上與系統(tǒng)的syslog服務(wù)有沖突。可現(xiàn)關(guān)閉syslog服務(wù),讓pppoe服務(wù)器正常運(yùn)行。
第二部分:讓pppoe服務(wù)使用freeradius服務(wù)器進(jìn)行驗(yàn)證
首先更改/etc/ppp/pppoe-server-options,添加一行設(shè)置:
# PPP options for the PPPoE server
# LIC: GPL
require-chap
login
lcp-echo-interval 10
lcp-echo-failure 2
defaultroute
ms-dns 192.168.1.1
logfile /var/log/pppod.log
plugin /usr/lib/pppd/2.4.4/radius.so
表示讓pppoe-server在運(yùn)行時(shí)加入pppd的radius查檢,可以讓pppoe服務(wù)通過freeradius來驗(yàn)證和記賬。添加此行之后,可以創(chuàng)建/etc/radiusclient/目錄,創(chuàng)建完之后,我們需要使用一下ppp的源代碼,因?yàn)榧t帽沒有給我們提供相應(yīng)的配置文件。解壓ppp的源代碼目錄:
#tar xvfz ppp-2.4.4.tar.gz
#cd ppp-2.4.4
#cd pppd/plugins/radius/etc/
#cp * /etc/radiusclient/
這個(gè)目錄下有我們需要的所有相關(guān)的配置文件,其中最重要的是/etc/radiusclient/radiusclient.conf,我們先打開此文件配置,其內(nèi)容為(已去掉注釋):
auth_order radius
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /etc/radiusclient/issue
authserver localhost:1812
acctserver localhost:1813
servers /etc/radiusclient/servers
dictionary /etc/radiusclient/dictionary
login_radius /sbin/login.radius
seqfile /var/run/radius.seq
mapfile /etc/radiusclient/port-id-map
default_realm
radius_timeout 10
radius_retries 3
login_local /bin/login
字段相關(guān)意義清參考文件自帶的注釋。
另外,還需更改此目錄下的servers文件,此文件用來指定讀取的radius服務(wù)器的主機(jī)名稱以及key值(需要在freeradius配置中指定)。
此時(shí)pppoe服務(wù)已經(jīng)可以通過radius認(rèn)證了。然后進(jìn)行freeradius的配置。
首先檢查freeradius是否安裝:
#rpm -q freeradius freeradius-mysql
其中freeradius-mysql包使用來讓freeradius連接mysql數(shù)據(jù)庫的,本部分還用不到。
首先打開/etc/raddb/clients.conf配置客戶端訪問控制,文件內(nèi)容如下(已刪除注釋):
client 127.0.0.1 {
secret = hello
shortname = localhost
nastype = othe
}
表示客戶端之允許從127.0.0.1的ip登錄radius服務(wù),并且需要驗(yàn)證的secret為hello,就是在上面的servers文件中需要配置的信息。若要實(shí)現(xiàn)可以從別的機(jī)器訪問,請(qǐng)參考注釋獲得幫助。
然后配置naslist文件,內(nèi)容為:
# NAS Name Short Name Type
#---------------- ---------- ----
#portmaster1.isp.com pm1.NY livingston
#portmaster2.isp.com pm1.LA livingston
localhost local portslave
此文件用來配置記錄有哪些指定的nas服務(wù)器需要使用radius進(jìn)行記賬。現(xiàn)在指定的是localhost。
主控配置文件是radiusd.conf,目前沒有需要改的,可通過注釋學(xué)習(xí)其中配置方法。此文件主要是用來指定freeradius服務(wù)器默認(rèn)的驗(yàn)證和記賬方式。我們目前使用本地的文件方式,就是/etc/raddb/users文件,在其中添加我們需要提供給pppoe服務(wù)認(rèn)證的用戶信息,內(nèi)容如下(某段截。
zorro Auth-Type := Local, Simultaneous-Use := 1, User-Password == "zorro"
Service-Type = Framed-User,
Framed-Protocol = PPP,
Framed-IP-Address = 10.0.0.33,
Framed-IP-Netmask = 255.255.255.255
其中Simultaneous-Use := 1字段用來設(shè)置每個(gè)用戶同時(shí)登錄的個(gè)數(shù)。所有字段信息都在freeradius的源代碼中有文檔給予解釋。另外要注意,添加的用戶字段應(yīng)寫在文件DEFAULT字段前面添加,否則可能不會(huì)生效。
都配置完畢后,可以通過radiusd -X命令以排錯(cuò)方式啟動(dòng),此時(shí)再啟動(dòng)pppoe-server,用客戶端撥號(hào)驗(yàn)證一下,檢查pppoe服務(wù)是否成功通過freeradius來驗(yàn)證用戶。如果成功,這一部分完成?赏ㄟ^ service radiusd restart來正常啟動(dòng)radius服務(wù)。
第三部分:配置freeradius從mysql數(shù)據(jù)庫讀取用戶信息
首先更改/etc/raddb/radiusd.conf,首先將$INCLUDE ${confdir}/sql.conf字段這行原有的注釋去掉,然后找到authorize字段中的sql將注釋取消掉,以及accouting字段中的sql的注釋取消。然后需要更改sql.conf中的設(shè)置,主要是設(shè)置讀取的mysql服務(wù)器的相關(guān)信息,可更改如下一些字段:
server = "localhost" #數(shù)據(jù)庫服務(wù)器
login = "mysql_username" #數(shù)據(jù)庫用戶
password = "mysql_password" #數(shù)據(jù)庫密碼
radius_db = "radius" #數(shù)據(jù)庫名稱
當(dāng)然前提是你要現(xiàn)把mysql服務(wù)設(shè)置好,設(shè)置方法是:
先啟動(dòng)你的mysqld:
service mysqld start
然后設(shè)置root帳戶密碼:
mysqladmin –uroot –p password 12345
創(chuàng)建radius數(shù)據(jù)庫
mysqladmin –uroot –p123456 create radius
建立mysql的數(shù)據(jù)庫raius的表,我們可以通過軟件已經(jīng)給出的sql腳本導(dǎo)入數(shù)據(jù)庫:
mysql -uroot –p123456 radius
本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u1/48768/showart_1982460.html |
|