找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 16332|回复: 20

[linux] 在Linux下建立PPPOE服务器的步骤

  [复制链接]
发表于 2011-2-12 23:47:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 clean 于 2011-2-12 23:59 编辑

在Linux下建立PPPOE服务器的步骤
  建立环境:
  操作系统:DEBIAN 2.2 升级到3.0
  内 核:2.4.18
  硬件环境:赛扬3 1.1G ,内存 128M , 硬盘 40G ,主板芯片组 694T
  显 卡:ATI RAGE IIC(4M)
  PPPOE服务器:RP-PPPOE 3.4.1
  radius服务器:FREERADIUS 0.8
  数 据 库: MYSQL 3.23.56
  PPPOE服务器认证的建立分三种认证方式,第一种方式为用RP-PPPOE自带的基于文本认证方式,第二种方式为建立在RADIUS认证服务器上的文本认证方式,第三种方式是基于MYSQL的数据库认证方式
  
  一、编译内核
  要建立PPPOE服务器,除了内核要支持PPP以外还需要内核支持PPPOE,不过在2.4.18里需要打开内核的不成熟代码才可以选择,内核的配置如下:
  code maturity level options——>
  
prompt for development and/or incomplete code/drivers
  networking options——>
  
packet socket
  
packet socket:mmapped io
  network device support——>
  
ppp (point-to-point protocol) support
  
ppp multilink support (experimental)  
  
ppp filtering
  
ppp support for async serial ports
  
ppp support for sync tty ports
  
ppp deflate compression
  
ppp bsd-compress compression
  
ppp over Ethernet (experimental)
  character devices——>
  
non-standard serial port support
  
hdlc line discipline support
  编辑/etc/modules.conf(redhat好象是conf.modules),如果没有就加入以下几行:
  • alias char-major-108 ppp_generic
  • alias /dev/ppp ppp_generic
  • alias tty-ldisc-3 ppp_async
  • alias tty-ldisc-13 n_hdlc
  • alias tty-ldisc-14 ppp_synctty
  • alias ppp-compress-21 bsd_comp
  • alias ppp-compress-24 ppp_deflate
  • alias ppp-compress-26 ppp_deflate
  完成以后就可以下一步,建立PPP拨号服务器了
  
  二、建立PPP服务器
  在建立拨号服务器之前,应确保你在内核中打开了IP转发功能:
  echo “1”>/proc/sys/net/ipv4/ip_forward
  编译PPP服务器很容易,就是按以下几步就可以了:  
  •使用configure
  •使用make编译PPPD,这里有几个参数比较重要,要支持windows的客户端,应该在编译时加上选项USE_MS_DNS=1,如果你的系统shadow的话,你应该使用make HAS—SHADOW=1表示支持shadow密码
  •编译完成后,将生成pppd、pppdump、chat和pppstats这几个文件,使用make install安装这些文件
  •修改pppd的访问权限,允许由root启动服务进程
  chmod u+s /usr/sbin/pppd
  
  三、建立PPPOE服务器
  cd /rp-pppoe-3.4/src
  ./configure
  make
  make install
  启动PPPOE进程:
  pppoe-server –L 10.0.0.1 –R 10.0.0.2 –N 64 –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
  netmask 255.255.255.0
  ms-dns 10.0.0.1
  修改/etc/ppp/pppoe-server-options,将所有的行都注释掉
  添加用户到/etc/ppp/pap-secrets中,例如添加用户luo,密码为123456,允许从任何位置拨入:
  #client server secret ip addresses
  luo * “123456” *
  设置windows的用户名:luo 密码: 123456,如果连接成功就可以进行下一步
  
  四、建立RADIUS认证服务器
  cd /freeradius-0.81
  ./configure
  make
  make install
  编辑/usr/local/etc/raddb/clients,输入你的NAS(网络认证服务器)的IP地址和serect,本例中NAS为本机,serect为linux,看上去如下:
  localhost linux
  编辑/usr/local/etc/raddb/clients.conf,加入以下几行:
  client 127.0.0.1{
  secret = linux
  shortname = localhost
  }
  nastype = other
  编辑/usr/local/etc/raddb/naslist,加入:
  localhost local
  编辑/usr/local/etc/raddb/users,加入用户:luo、密码:123456,显示如下:
  luo Auth-Type:=local, User-Password==“123456”
  Service-Type:= Framed-User, 网管网bitsCN_com
  Framed-Protocol = PPP
  Framed-IP-Address := 10.0.0.2
  Framed-IP-Netmask := 255.255.255.0
  启动RADIUS服务、测试帐号
  启动调试模式
  RADIUS –X
  进行帐号测试
  Radtest luo 123456 localhost 0 linux
  如果能看到应答,说明RADIUS设置成功了
  要使PPPD进程能够使用RADIUS进行认证,需要加入RADIUS认证的插件
  cp radius.so /usr/lib
  编辑/etc/ppp/options,加入以下到文件:
  plugin /usr/lib/radius.so
  radius-servers localhost:1812/1813
  radius-auth-key linux
  radius-ip-pool 10.0.0.2:10.0.0.255
  运行客户端进行登陆,如果能通过认证则成功了
  
  五、建立MYSQL服务器
  tar zxvf mysql-3.23.56.tar.gz
  cd mysql-3.23.56
  ./configure
  make
  make install
  cd script
  ./mysql_install_db
  /usr/local/bin/safe_mysqld&
  安装RADIUS数据库
  cd freeradius-0.81/src/modules/rlm_sql/drivers/rlm_sql_mysql
  mysql –u root –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 –u root –p 密码 radius
  insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Auth-Tyep’,’:=’,’local’);
  insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Service-Type’,’:=’,’Framed-User’);
  insert into radgroupreply (groupname,attribute,op,value) values
  (‘user’,’Framed-IP-Netmask’,’:=’,’255.255.255.0’);
  #设定拨入用户的掩码,本例只有PPPOE服务,所以可以与options中设定相同
  加入用户帐号:
  insert into radcheck (username,attribute,op,value) values
  (‘luo’,’User-Password’,’:=’,’123456’);
  将用户帐号加入组帐号
  insert into usergroup(username,groupname) values(‘luo’,’user’);
  如果提示无法找到rlm_sql_mysql文件,则:
  cp /usr/local/lib /usr/lib
  测试:
  radtest luo 123456 localhost 0 linux
  见到应答就OK了!
转至 http://m0n0.org 我在CentOS5.5下测试失败,内核版本为“kernel-2.6.18-194.el5.i686”,mysql 5.5.8。估计是在编译kernel时设置不正确。
routeros
发表于 2011-2-16 00:48:17 | 显示全部楼层
这东西步骤真多~~~
routeros
回复

使用道具 举报

发表于 2011-2-18 13:48:02 | 显示全部楼层
看不懂 还是海蜘蛛省事
routeros
回复

使用道具 举报

发表于 2011-2-18 13:48:14 | 显示全部楼层
看不懂 还是海蜘蛛省事
routeros
回复

使用道具 举报

发表于 2011-2-24 15:07:36 | 显示全部楼层
我对linux也很有兴趣    希望一起了解哦   还请多多指导呢
routeros
回复

使用道具 举报

 楼主| 发表于 2011-2-25 21:24:27 | 显示全部楼层
Linux hg 2.6.18-194.11.4.el5xen #1 SMP Tue Sep 21 06:28:04 EDT 2010 i686 i686 i386 GNU/Linux
routeros
回复

使用道具 举报

发表于 2011-3-3 15:38:45 | 显示全部楼层
省事与折腾是两个级别,不是同一回事。
routeros
回复

使用道具 举报

发表于 2011-3-3 19:16:49 | 显示全部楼层
好老的linux内核,好老的mysql,好老的freeradius..
只能作为参考。
routeros
回复

使用道具 举报

发表于 2011-3-4 00:35:37 | 显示全部楼层
我在FB中做过,但当时FB中的mysql不好用,然后还是回到ros。
routeros
回复

使用道具 举报

发表于 2011-5-7 20:54:13 | 显示全部楼层
这个DIY玩玩还是不错的。不过我觉得还是用成熟的产品ros更好点。
routeros
回复

使用道具 举报

发表于 2011-7-3 19:15:49 | 显示全部楼层
看到这都头晕~~需要静下心来,一边看一遍试。
routeros
回复

使用道具 举报

发表于 2011-8-14 21:31:06 | 显示全部楼层
还请多多指导呢
routeros
回复

使用道具 举报

发表于 2011-8-17 13:21:48 | 显示全部楼层
不错,谢谢分享
routeros
回复

使用道具 举报

发表于 2011-10-3 19:13:08 | 显示全部楼层
哇...好复杂吖.
routeros
回复

使用道具 举报

发表于 2011-10-4 17:15:06 | 显示全部楼层
对于windows的兼容性不知道如何。看着还是比较繁琐的
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-4-27 15:14 , Processed in 0.064719 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表