热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

文章标题:在Linux下建立PPPOE服务器的步骤。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  在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,
  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  编辑/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了!
推荐阅读
  • 如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
    腾讯云服务器系统版本怎么看?想要知道自己的腾讯云服务器系统版本是哪个,可以登录云服务器后台管理系统查看,或者使用命令行查询,如果不会操作& ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 主流操作系统简介
    主流操作系统简介子墨居士操作系统理论定义为管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分࿰ ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 阿里云服务器iis设置方法与上千种Linux桌面版本相比,Linux服务器只有可怜的十几种。但想要选对适合你的企业需要的仍然不是件容易的事情,选Linux服务器首先要 ... [详细]
  • 如何监控 Linux 服务器状态?,分享
    Linux服务器我们天天打交道,特别是Linux工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。本文介绍的几个命令,不仅仅适用于 ... [详细]
  • 下载地址http:www.kbengine.org这货不错安装在Linux上安装(CentosDebianUbuntuetc.)服务端,请在终端输入:pythonkbenginek ... [详细]
  • 新新于2005-09-1415:02:23发表:利用chbg程序动态制作屏保XScreenSaver是一个开放的框架,就像一个服务器,任何一个可以在根窗 ... [详细]
  • i3 处理器_旧机型安装 Linux_64位操作系统
    1.确认CPU是否支持64位首先确认CPU为64位cpu,intelcpu应支持EM64T指令集,amdcpu应支持x86-64指令集; ... [详细]
  • Ubuntu简介Ubuntu(乌班图)是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在” ... [详细]
author-avatar
手机用户2502892647
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有