当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 在Linux下建立PPPOE服务器的步骤

Linux服务器
中小企业服务器配置-邮件服务器(1)
中小企业服务器配置-邮件服务器(2)
典型WEB服务器Apache高级设置指南
从HTTP服务器状态代码分析
基于反向代理的Web缓存加速现代理服务器
在ApacheHTTPD服务器中使用DSO完全分析
组网不求人!搭建简易Linux局网服务器
基于NUMA架构的高性能服务器技术(1)
基于NUMA架构的高性能服务器技术(2)
复制另一台Linux服务器及相关问题
Linux服务器之间怎么样SSH不需密码
Rsync在服务器间镜像或者备份目录
服务器诊所:鲜为人知但很有用的观念
服务器诊所:并不是仅仅就是线程化而已
服务器诊所:PDF自动生成专业质量输出
用低代价的服务器过程将文档处理自动化
设置一个企业级的LinuxPOP3服务器
WEB服务器Apache编译指南及高级技巧
给Qmail邮件服务器加个病毒防火墙
LinuxCVS服务器与WinCVS的配置与使用

Linux服务器 中的 在Linux下建立PPPOE服务器的步骤


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 35 ::
收藏到网摘: n/a


在Linux下建立PPPOE服务器的步骤
建立环境:
操作系统:DEBIAN2.2升级到3.0
内核:2.4.18
硬件环境:赛扬31.1G,内存128M,硬盘40G,主板芯片组694T
显卡:ATIRAGEIIC(4M)
PPPOE服务器:RP-PPPOE3.4.1
RADIUS服务器:FREERADIUS0.8
数据库:MYSQL3.23.56
PPPOE服务器认证的建立分三种认证方式,第一种方式为用RP-PPPOE自带的基于文本认证方式,第二种方式为建立在RADIUS认证服务器上的文本认证方式,第三种方式是基于MYSQL的数据库认证方式

一、编译内核
要建立PPPOE服务器,除了内核要支持PPP以外还需要内核支持PPPOE,不过在2.4.18里需要打开内核的不成熟代码才可以选择,内核的配置如下:
codematurityleveloptions——>
[*]promptfordevelopmentand/orincompletecode/drivers
networkingoptions——>
[*]packetsocket
[*]packetsocket:mmappedio
networkdevicesupport——>
[*]ppp(point-to-pointprotocol)support
[*]pppmultilinksupport(experimental)
[*]pppfiltering
[*]pppsupportforasyncserialports
[*]pppsupportforsyncttyports
[*]pppdeflatecompression
[*]pppbsd-compresscompression
[*]pppoverEthernet(experimental)
characterdevices——>
[*]non-standardserialportsupport
[*]hdlclinedisciplinesupport
编辑/etc/modules.conf(redhat好象是conf.modules),如果没有就加入以下几行:
•aliaschar-major-108ppp_generic
•alias/dev/pppppp_generic
•aliastty-ldisc-3ppp_async
•aliastty-ldisc-13n_hdlc
•aliastty-ldisc-14ppp_synctty
•aliasppp-compress-21bsd_comp
•aliasppp-compress-24ppp_deflate
•aliasppp-compress-26ppp_deflate
完成以后就可以下一步,建立PPP拨号服务器了

二、建立PPP服务器
在建立拨号服务器之前,应确保你在内核中打开了IP转发功能:
echo“1”>/proc/sys/net/ipv4/ip_forward
编译PPP服务器很容易,就是按以下几步就可以了:
•使用configure
•使用make编译PPPD,这里有几个参数比较重要,要支持windows的客户端,应该在编译时加上选项USE_MS_DNS=1,如果你的系统shadow的话,你应该使用makeHAS—SHADOW=1表示支持shadow密码
•编译完成后,将生成pppd、pppdump、chat和pppstats这几个文件,使用makeinstall安装这些文件
•修改pppd的访问权限,允许由root启动服务进程
chmodu+s/usr/sbin/pppd

三、建立PPPOE服务器
cd/rp-pppoe-3.4/src
./configure
make
makeinstall
启动PPPOE进程:
pppoe-server–L10.0.0.1–R10.0.0.2–N64–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
netmask255.255.255.0
ms-dns10.0.0.1
修改/etc/ppp/pppoe-server-options,将所有的行都注释掉
添加用户到/etc/ppp/pap-secrets中,例如添加用户luo,密码为123456,允许从任何位置拨入:
#clientserversecretipaddresses
luo*“123456”*
设置windows的用户名:luo密码:123456,如果连接成功就可以进行下一步

四、建立RADIUS认证服务器
cd/freeradius-0.81
./configure
make
makeinstall
编辑/usr/local/etc/raddb/clients,输入你的NAS(网络认证服务器)的IP地址和serect,本例中NAS为本机,serect为linux,看上去如下:
localhostlinux
编辑/usr/local/etc/raddb/clients.conf,加入以下几行:
client127.0.0.1{
secret=linux
shortname=localhost
}
nastype=other
编辑/usr/local/etc/raddb/naslist,加入:
localhostlocal
编辑/usr/local/etc/raddb/users,加入用户:luo、密码:123456,显示如下:
luoAuth-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
进行帐号测试
Radtestluo123456localhost0linux
如果能看到应答,说明RADIUS设置成功了
要使PPPD进程能够使用RADIUS进行认证,需要加入RADIUS认证的插件
cpradius.so/usr/lib
编辑/etc/ppp/options,加入以下到文件:
plugin/usr/lib/radius.so
radius-serverslocalhost:1812/1813
radius-auth-keylinux
radius-ip-pool10.0.0.2:10.0.0.255
运行客户端进行登陆,如果能通过认证则成功了

五、建立MYSQL服务器
tarzxvfmysql-3.23.56.tar.gz
cdmysql-3.23.56
./configure
make
makeinstall
cdscript
./mysql_install_db
/usr/local/bin/safe_mysqld&
安装RADIUS数据库
cdfreeradius-0.81/src/modules/rlm_sql/drivers/rlm_sql_mysql
mysql–uroot–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–uroot–p密码radius
insertintoradgroupreply(groupname,attribute,op,value)values(‘user’,’Auth-Tyep’,’:=’,’local’);
insertintoradgroupreply(groupname,attribute,op,value)values(‘user’,’Service-Type’,’:=’,’Framed-User’);
insertintoradgroupreply(groupname,attribute,op,value)values
(‘user’,’Framed-IP-Netmask’,’:=’,’255.255.255.0’);
#设定拨入用户的掩码,本例只有PPPOE服务,所以可以与options中设定相同
加入用户帐号:
insertintoradcheck(username,attribute,op,value)values
(‘luo’,’User-Password’,’:=’,’123456’);
将用户帐号加入组帐号
insertintousergroup(username,groupname)values(‘luo’,’user’);
如果提示无法找到rlm_sql_mysql文件,则:
cp/usr/local/lib/usr/lib
测试:
radtestluo123456localhost0linux
见到应答就OK了!