您好,登錄后才能下訂單哦!
RHEL5U4平臺怎樣實現pppoe+freeradius+mysql認證服務器,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
軟件需求:
紅帽自帶的:rp-pppoe,ppp,freeradius,freeradius-mysql,mysql,mysql-devel,mysql-server,openssl。
另需:freeradius-2.1.3以及ppp2.4.4的源代碼包。
有一點要說明,freeradius需要openssl 庫,所以如果系統里沒安裝的話,還是要事先安裝一下的。
第一部分:實現簡單的pppoe撥號服務
檢查系統上的rp-pppoe以及ppp軟件是否安裝,命令:
#rpm -q rp-pppoe ppp
如果安裝則會有顯示軟件包的名稱,若未安裝,找到安裝盤上的相關rpm包安裝。
配置 /etc/ppp/options
lock
crtscts
nobsdcomp
nodeflate
nopcomp
然后配置/etc/ppp/pppoe-server-options文件,內容為:
# PPP options for the PPPoE server
# LIC: GPL
auth
require-chap
default-mru
default-asyncmap
lcp-echo-interval 60
lcp-echo-failure 5
ms-dns 202.106.0.20
noipdefault
noipx
nodefaultroute
proxyarp
noktune
logfile /var/log/pppd.log
文件內容不做解釋,可以通過man pppd查尋相關幫助。此時pppoe服務器從/etc/ppp/ chap-secrets文件中讀取驗證的用戶名和密碼信息,此文件格式為:
# Secrets for authentication using CHAP
# client server secret IP addresses
aaa * aaa *
想要多添加用戶,再加入新行即可。
然后可以啟動pppoe服務了,命令是:
# pppoe-server -I eth2 -L 10.0.0.64 -R 192.168.0.5 -N 10
我簡單介紹一下這條命令中的各個參數的意思。
I:指定響應PPPOE請求的端口,本例中是在eth2口上。
L:PPPOE服務器的IP地址,這是客戶端所填的PPPOE服務器的地址。
R:這是分配給客戶端的地址池起始地址,本例中從192.168.0.5開始
N:地址池的IP地址遞增幾個,本例中添增10,也就是從192.168.0.5開始,到192.168.0.14結束。
可以看出我們在LINUX中將以上步驟都完成了,也就是說PPPOE服務準備好了,客戶端PPPOE撥號,順利的話就可以撥號成功了。
當然現在客戶端還不能上網,因為PPPOE服務器還沒有啟用NAT,我們用IPTABLES軟件來實現,寫一個這樣的腳本即可:
echo "1" >> /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o wan -j SNAT --to 10.0.0.65
第一行的作用是啟用IP轉發,第二行是啟動IPTABLES進行NAT轉換,下面是對各個參數的解釋
-t nat表示進行NAT轉化
-s 192.168.0.0/24表示源地址為192.168.0.0/24這個網段
-j SNAT --to 10.0.0.65表示將源地址都轉化成10.0.0.65這個外網地址
啟動NAT以后,這臺PPPOE服務器就功能完整了,客戶端不僅可以撥通服務器,撥通后還可以上網。
注:紅帽自帶的pppoe服務器,在RHEL5至RHEL5U2的版本上與系統的syslog服務有沖突。可現關閉syslog服務,讓pppoe服務器正常運行。
第二部分:讓pppoe服務使用freeradius服務器進行驗證
1)首先更改/etc/ppp/pppoe-server-options,添加一行設置:
# PPP options for the PPPoE server
# LIC: GPL
auth
require-chap
default-mru
default-asyncmap
lcp-echo-interval 60
lcp-echo-failure 5
ms-dns 202.106.0.20
noipdefault
noipx
nodefaultroute
proxyarp
noktune
plugin /usr/lib/pppd/2.4.4/radius.so
radius-config-file /etc/ppp/radiuds/radiusclient.conf
logfile /var/log/pppd.log
表示讓pppoe-server在運行時加入pppd的radius查檢,可以讓pppoe服務通過freeradius來驗證和記賬。添加此行之后,可以創建/etc/ppp/radiuds/目錄,創建完之后,我們需要使用一下ppp的源代碼,因為紅帽沒有給我們提供相應的配置文件。解壓ppp的源代碼目錄:
#wget ftp://ftp.samba.org/pub/ppp/ppp-2.4.4.tar.gz
#tar xvfz ppp-2.4.4.tar.gz
#cd ppp-2.4.4
#cd pppd/plugins/radius/etc/
#cp * /etc/ppp/radiuds/
2) 這個目錄下有我們需要的所有相關的配置文件,其中最重要的是/etc/ppp/radiuds/radiusclient.conf,我們先打開此文件配置,其內容為(已去掉注釋):
auth_order
radius
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /etc/ppp/radiuds/issue
authserver localhost:1812
acctserver localhost:1813
servers /etc/ppp/radiuds/servers
dictionary /etc/ppp/radiuds/dictionary
login_radius /usr/local/sbin/login.radius
seqfile /var/run/radius.seq
mapfile /etc/ppp/radiuds/port-id-map
default_realm
radius_timeout 10
radius_retries 3
login_local
/bin/login
3) 另外,還需更改此目錄下的servers文件,此文件用來指定讀取的radius服務器的主機名稱以及key值(需要在freeradius配置中指定)。
編輯 /etc/ppp/radius/servers ,設定radius 服務器的位置
localhost 123 // 這里的123是我前面設置的nas(localhost)訪問radius服務器的密碼
4) 編輯/etc/ppp/radius/dictionary ,修改一些路徑設置,主要是最后一個dictionary.microsoft 的路徑設置
INCLUDE /etc/ppp/radiuds/dictionary.microsoft
#INCLUDE /etc/ppp/radiuds/dictionary.ascend
#INCLUDE /etc/ppp/radiuds/dictionary.merit
#INCLUDE /etc/ppp/radiuds/dictionary.compat
5) 此時pppoe服務已經可以通過radius認證了。然后進行freeradius的配置。
首先檢查freeradius是否安裝:
#rpm -q freeradius freeradius-mysql
其中freeradius-mysql包使用來讓freeradius連接mysql數據庫的,本部分還用不到。
首先打開/etc/raddb/clients.conf配置客戶端訪問控制,文件內容如下:
client 127.0.0.1 {
secret = 123
shortname = localhost
nastype = othe
}
表示客戶端之允許從127.0.0.1的ip登錄radius服務,并且需要驗證的secret為123,就是在上面的servers文件中需要配置的信息。若要實現可以從別的機器訪問,請參考注釋獲得幫助。
6) 然后配置naslist文件,內容為:
# NAS Name Short Name Type
#---------------- ---------- ----
#portmaster1.isp.com pm1.NY livingston
#portmaster2.isp.com pm1.LA livingston
localhost local portslave
此文件用來配置記錄有哪些指定的nas服務器需要使用radius進行記賬。現在指定的是localhost。
7) 主控配置文件是radiusd.conf,目前沒有需要改的,可通過注釋學習其中配置方法。此文件主要是用來指定freeradius服務器默認的驗證和記賬方式。我們目前使用本地的文件方式,就是/etc/raddb/users文件,在其中添加我們需要提供給pppoe服務認證的用戶信息,內容如下(用戶名前面一定不能有空格):
aaa Auth-Type := Local, Simultaneous-Use := 1, User-Password == "aaa"
Service-Type = Framed-User,
Framed-Protocol = PPP,
Framed-IP-Address = 192.168.0.8,
Framed-IP-Netmask = 255.255.255.255
其中Simultaneous-Use := 1字段用來設置每個用戶同時登錄的個數。所有字段信息都在freeradius的源代碼中有文檔給予解釋。另外要注意,添加的用戶字段應寫在文件DEFAULT字段前面添加,否則可能不會生效。
8) 為了讓radius能正確地調用mysql,還要指定一下庫的位置:
echo /usr/lib >> /etc/ld.so.conf
ldconfig
9) 都配置完畢后,可以通過radiusd -X命令以排錯方式啟動,此時再啟動pppoe-server,用客戶端撥號驗證一下,檢查pppoe服務是否成功通過freeradius來驗證用戶。如果成功,這一部分完成。可通過 service radiusd restart來正常啟動radius服務。
radiusd -X
radtest aaa aaa localhost 0 123
看到 Access-Accept 之類的字樣就表示OK了。 這時可以正式啟動radiusd
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。