Linux下配置pppoe服务器

 

 

 

前提:内核要支持PPP

RPM安装

RPM此文章是转载 网址:

http://hi.baidu.com/telpublic/blog/item/41e080c3d4277b54b319a88b.html

系统环境:

fedora 4 2.6.11 i386

rp-pppoe-3.5-27

配置实现:

1、检查系统是否已安装PPPOE服务器

rpm -q rp-pppoe

如果未安装,可以到 www.roaringpenguin.com/pppoe/ 下载

2、配置系统以支持IP转发

修改/etc/sysctl.conf文件:net.ipv4.ip_forward = 1

3、修改PPPOE身份验证方式

修改/etc/ppp/pppoe-server-options,全部内容如下:

require-chap #使用chap验证协议,如果使用pap验证协议,则此行为 require-pap

login

lcp-echo-interval 10

lcp-echo-failure 2

ms-dns 202.96.134.133 #分配给客户端的DNS

ms-dns 202.96.128.68

4、添加身份验证账户

修改/etc/ppp/chap-secrets,添加账户 #如果使用pap验证,则修改/etc/ppp/pap-secrets

username * password *

5、启动pppoe服务器

pppoe-server -I eth0 -L 192.168.0.1 -R 192.168.0.5 -N 10

-I eth0 指定pppoe服务器在那个网卡接口监听连接请求

-L 192.168.0.1 指定pppoe服务器的ip地址。(注意:此IP地址不是网卡的IP地址,而是PPPOE服务器的虚拟IP)

-R 192.168.0.5 pppoe服务器分配给客户端的IP地址,从192.168.0.5开始,递增

-N 10 指定最多可以连接pppoe服务器的客户端数量

6、关闭PPPOE服务器

killall pppoe-server

备注:

1、如果使用pap验证方式,windowsxp以上系统自带的pppoe拨号,无法拨通。可能原因是pap使用明文密码验证,而windows保存的密码是加密的,而且是不可恢复的加密,所以windows无法提供密码明文。

2、/etc/ppp/pppoe-server-options和/etc/ppp/options,配置无论写在哪个文件中,都能够起到作用。

 

编译安装

这篇文章是根据网上的文章作为参考,在根据自己的实验而得出的。

软件:pppoe-3.8.tar.gz

Ppp-2.4.2.tar.gz(2.4.3的版本以上与syslog冲突)(ppp.samba.org)

这只是做内部测试,并未提供使用,正式提供使用的话,必须要使用iptalbes开放pppoe

echo “1”>/proc/sys/net/ipv4/ip_forward

二、建立PPP服务器

在建立拨号服务器之前,应确保你在内核中打开了IP转发功能:

编译PPP服务器很容易,就是按以下几步就可以了:

tar xzvf Ppp-2.4.2.tar.gz

cd ppp-2.4.2

./configure(默认会在/usr/sbin)

(如果你要修改执行文件的路径,还有配置文件的路径,就修改Makefiles.要想执行文件找到你指定配置文件的路径,必须要改源代码,在pppd的安装目录下,进入pppd目录,找到pathnames.h这个头文件,找到#define _PATH_* 行, 修改后面的路径就行了)

Make

Make install

修改pppd的访问权限,允许由root启动服务进程

chmod u+s /usr/sbin/pppd

三、建立PPPOE服务器

cd /rp-pppoe-3.8/src

./configure

make

make install

启动PPPOE进程:

pppoe-server -I eth0 –L 10.0.0.1 –R 10.0.0.2 –N 64 -u

-L: 指定PPPOE服务器的IP地址

-R: 指定PPPOE拨入服务器分配给客户端的IP地址段

-N: 允许客户端同时拨入的数量(默认是64 最大是65534)

-I: 监听的接口

修改/etc/ppp/options,查看有没有以下几行,没有就加进去:

linkname smooth

noauth

privgroup nobody

local

require-chap

login

auth

defaultroute

hide-password

ipcp-accept-local

ipcp-accept-remote

192.168.0.5:192.168.0.255

netmask 255.255.255.0

ms-dns 192.168.0.1

logfile /var/log/pppoe.log

修改/etc/ppp/pppoe-server-options,将所有的行都注释掉

添加用户到/etc/ppp/chap-secrets中,例如添加用户luo,密码为123456,允许从任何位置拨入:

#client server secret ip addresses

“luo” * “123456” *

在/etc/ppp/下有个ip-up的脚本,它的作用是每次客户端拨号成功它就执行这个脚本,大家可以自定义这个脚本做出你想要的功能。

还有个ip-down,这个没试过,我想应该是断开执行的脚本吧!

设置windows的用户名:luo 密码: 123456,如果连接成功就可以进行下一步