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

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

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


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