如何用Ubuntu本地搭建pppoe服務器?
配置環境:ubuntu,兩張網卡eth0(連接外網,192.168.10.2)、eth1(ppoe服務器,192.168.8.2)
1、安裝pppoe服務軟件
1)#sudo apt-get install ppp
2)#sudo apt-get install libc6-dev
3)#wget -c http://www.roaringpenguin.com/files/download/rp-pppoe-3.11.tar.gz
#sudo tar zxvf rp-pppoe-3.11.tar.gz -C /opt/
#sudo /opt/rp-pppoe-3.11/go(配置網卡選擇eth1、防火墻選0)
2、配置服務
2.1、設置驗證信息
vim /etc/ppp/pppoe-server-options
#使用chap驗證協議,如果使用pap驗證協議,則此行為 require-pap
require-chap
以下為具體配置內容:
----------------------/etc/ppp/pppoe-server-options-------------------
# PPP options for the PPPoE server
# LIC: GPL
require-chap
auth
#login
lcp-echo-interval 10
lcp-echo-failure 2
ms-dns 192.168.10.1
------------------------------------------------------------------------------
#vim /etc/ppp/options
#(設置驗證方式)
-pap
+chap
#(允許本地驗證)
local
這里:
(1)、如果使用pap驗證方式,windowsxp以上系統自帶的pppoe撥號,無法撥通。可能原因是pap使用明文密碼驗證,而windows保存的密碼是加密的,而且是不可恢復的加密,所以windows無法提供密碼明文。
(2)、/etc/ppp/pppoe-server-options和/etc/ppp/options,配置無論寫在哪個文件中,都能夠起到作用
以下為具體配置內容:
------------------/etc/ppp/options-----------------------------
ms-dns 192.168.10.1
asyncmap 0
noauth
crtscts
local
lock
hide-password
modem
-pap
+chap
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
noipx
-------------------------------------------------------------------
2.2、添加用戶信息
#vim /etc/ppp/chap-secrets
#添加用戶名和密碼
#最后的* 不能少(系統安裝時,少了一個*)
# client server secret IP addresses
myuser * mypassword *
3、 啟用forward:
$sudo -i
#echo "1">/proc/sys/net/ipv4/ip_forward
注意: 這條命令一定要用root身份執行,sudo都沒用,否則會提示權限不夠。
如果不啟用forward, client即使拿到IP, traffic也不能出去,只能到server而已。
或者這樣改
修改/etc/sysctl.conf文件:net.ipv4.ip_forward = 1 啟用轉發功能
執行如下命令,讓配置即時生效
#sysctl -p
4、利用pppoe鏈接共享上網
首先,給pppoe服務添加默認網關使之能訪問外網(如果跟以下內容相符,可以不改):
#route add default gw 192.168.10.1 dev eth0
Destination Gateway Genmask Flags MSS Window irtt Iface
default 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
......
然后,轉發pppoe上的數據到外網上:
#iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o eth0 -j MASQUERADE
至此,可以用板子鏈接上外網了。
5、啟動和關閉PPPOE服務
5.1、啟動pppoe服務
#pppoe-server -I eth1 -L 192.168.8.1 -R 192.168.8.10 -N 20
-I eth1 指定pppoe服務器在哪個網卡接口監聽連接請求
-L 192.168.8.1 指定pppoe服務器的ip地址。(注意:此IP地址不是網卡的IP地址,而是PPPOE服務器的虛擬IP,和網卡eth1的地址無關,實際網卡eth1沒有IP也可以)
-R 192.168.8.10 pppoe服務器分配給客戶端的IP地址,從192.168.8.10開始,遞增。
-N 20 指定最多可以連接pppoe服務器的客戶端數量
5.2、關閉PPPOE服務器
#killall pppoe-server