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

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 61 ::
收藏到网摘: 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了!