建立PPPOE服務器跟我來

 

建立PPPOE服務器跟我來
在Linux下建立PPPOE服務器的步驟
建立環境:
操作系統:DEBIAN 2.2 升級到3.0
內 核:2.4.18
硬件環境:賽揚3 1.1G ,內存 128M , 硬盤 40G ,主板芯片組 694T
顯 卡:ATI RAGE IIC(4M)
PPPOE服務器:RP-PPPOE 3.4.1
RADIUS服務器:FREERADIUS 0.8
數 據 庫: MYSQL 3.23.56
PPPOE服務器認證的建立分三種認證方式,第一種方式爲用RP-PPPOE自帶的基於文本認證方式,第二種方式爲建立在RADIUS認證服務器上的文本認證方式,第三種方式是基於MYSQL的數據庫認證方式
一、編譯內核
要建立PPPOE服務器,除了內核要支持PPP以外還需要內核支持PPPOE,不過在2.4.18裏需要打開內核的不成熟代碼纔可以選擇,內核的配置如下:
code maturity level options——>
[*] prompt for development and/or incomplete code/drivers
networking options——>
[*] packet socket
[*] packet socket:mmapped io
network device support——>
[*] ppp (point-to-point protocol) support
[*] ppp multilink support (experimental)
[*] ppp filtering
[*] ppp support for async serial ports
[*] ppp support for sync tty ports
[*] ppp deflate compression
[*] ppp bsd-compress compression
[*] ppp over Ethernet (experimental)
character devices——>
[*] non-standard serial port support
[*] hdlc line discipline support
編輯/etc/modules.conf(redhat好象是conf.modules),如果沒有就加入以下幾行:
? alias char-major-108 ppp_generic
? alias /dev/ppp ppp_generic
? alias tty-ldisc-3 ppp_async
? alias tty-ldisc-13 n_hdlc
? alias tty-ldisc-14 ppp_synctty
? alias ppp-compress-21 bsd_comp
? alias ppp-compress-24 ppp_deflate
? alias ppp-compress-26 ppp_deflate
完成以後就可以下一步,建立PPP撥號服務器了
二、建立PPP服務器
在建立撥號服務器之前,應確保你在內核中打開了IP轉發功能:
echo “1”>/proc/sys/net/ipv4/ip_forward
編譯PPP服務器很容易,就是按以下幾步就可以了:
?使用configure
?使用make編譯PPPD,這裏有幾個參數比較重要,要支持windows的客戶端,應該在編譯時加上選項USE_MS_DNS=1,如果你的系統shadow的話,你應該使用make HAS—SHADOW=1表示支持shadow密碼
?編譯完成後,將生成pppd、pppdump、chat和pppstats這幾個文件,使用make install安裝這些文件
?修改pppd的訪問權限,允許由root啓動服務進程
chmod u+s /usr/sbin/pppd
三、建立PPPOE服務器
cd /rp-pppoe-3.4/src
./configure
make
make install
啓動PPPOE進程:
pppoe-server –L 10.0.0.1 –R 10.0.0.2 –N 64 –k -u
-L: 指定PPPOE服務器的IP地址
-R: 指定PPPOE撥入服務器分配給客戶端的IP地址段
-N: 允許客戶端同時撥入的數量(默認是64 最大是65534)
-k: 使用內核方式(不過好象無法使用)
修改/etc/ppp/options,查看有沒有以下幾行,沒有就加進去:
local
repaire-pap
login
auth
defaultroute
hide-password
ipcp-accept-local
ipcp-accept-remote
10.0.0.1:10.0.0.255
netmask 255.255.255.0
ms-dns 10.0.0.1
修改/etc/ppp/pppoe-server-options,將所有的行都註釋掉
添加用戶到/etc/ppp/pap-secrets中,例如添加用戶luo,密碼爲123456,允許從任何位置撥入:
#client server secret ip addresses
luo * “123456” *
設置windows的用戶名:luo 密碼: 123456,如果連接成功就可以進行下一步
四、建立RADIUS認證服務器
cd /freeradius-0.81
./configure
make
make install
編輯/usr/local/etc/raddb/clients,輸入你的NAS(網絡認證服務器)的IP地址和serect,本例中NAS爲本機,serect爲linux,看上去如下:
localhost linux
編輯/usr/local/etc/raddb/clients.conf,加入以下幾行:
client 127.0.0.1{
secret = linux
shortname = localhost
}
nastype = other
編輯/usr/local/etc/raddb/naslist,加入:
localhost local
編輯/usr/local/etc/raddb/users,加入用戶:luo、密碼:123456,顯示如下:
luo Auth-Type:=local, User-Password==“123456”
Service-Type:= Framed-User,
Framed-Protocol = PPP
Framed-IP-Address := 10.0.0.2
Framed-IP-Netmask := 255.255.255.0

 

 啓動RADIUS服務、測試帳號
啓動調試模式
RADIUS –X
進行帳號測試
Radtest luo 123456 localhost 0 linux
如果能看到應答,說明RADIUS設置成功了
要使PPPD進程能夠使用RADIUS進行認證,需要加入RADIUS認證的插件
cp radius.so /usr/lib
編輯/etc/ppp/options,加入以下到文件:
plugin /usr/lib/radius.so
radius-servers localhost:1812/1813
radius-auth-key linux
radius-ip-pool 10.0.0.2:10.0.0.255
運行客戶端進行登陸,如果能通過認證則成功了
五、建立MYSQL服務器
tar zxvf mysql-3.23.56.tar.gz
cd mysql-3.23.56
./configure
make
make install
cd script
./mysql_install_db
/usr/local/bin/safe_mysqld&
安裝RADIUS數據庫
cd freeradius-0.81/src/modules/rlm_sql/drivers/rlm_sql_mysql
mysql –u root –p 密碼 radius<db_mysql.sql
編輯/usr/local/etc/raddb/radius.conf使其支持SQL,修改後如下:
authorize{
preprocess
chap
mschap
suffix
sql
}
accounting{
……
sql
……
}
修改sql.conf,如下所示:
server="loclahost" login="root" password="mysql的root的密碼"

加入組帳號
mysql –u root –p 密碼 radius
insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Auth-Tyep’,’:=’,’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-Netmask’,’:=’,’255.255.255.0’);
#設定撥入用戶的掩碼,本例只有PPPOE服務,所以可以與options中設定相同
加入用戶帳號:
insert into radcheck (username,attribute,op,value) values
(‘luo’,’User-Password’,’:=’,’123456’);
將用戶帳號加入組帳號
insert into usergroup(username,groupname) values(‘luo’,’user’);
如果提示無法找到rlm_sql_mysql文件,則:
cp /usr/local/lib /usr/lib
測試:
radtest luo 123456 localhost 0 linux
見到應答就OK了!

以上是我建立PPPOE服務器的方法,因本人才疏學淺,如有什麼錯誤請指正,如有什麼問題可以聯繫我:QQ 124249756 E-mail:[email protected]

發佈了37 篇原創文章 · 獲贊 1 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章