Linux下安装PPPOE SERVER


网关研发部:童小琴、王鑫宇


  • 安装准备



  1. 下载pppoe软件包rp-pppoe-3.8.tar.gz(或rp-pppoe-3.10.tar.gz)。
  2. 在虚拟机上安装好linux操作系统并且gcc可以正常使用(若不能使用可在软件管理中进行搜索安装)。
  3. 画好整体拓扑结构图如下:




上图说明:使用LINUX作PPPOE服务器与使用routeros作PPPOE服务器在网络拓扑上是没有区别的,我们本次是使用eth1网卡连接外网(为其设置IP地址、子网掩码、网关:192.168.8.2/255.255.0.0  192.168.8.1),eth0网卡连接内网。



    • 安装步骤

虚拟机上已经安装好Linux操作系统.(以SUSE11.3为例)


  首先要查看原有系统是否已经安装了rp-pppoe。

  新建终端输入以下命令:

# rpm –q rp-pppoe

  如果已经安装了该软件,将返回:

ro-pppoe-3.5-2

如果返回的是

package repppoe is not installed

则该软件没有安装,就需要重新安装了。


可以有以下两种安装方法(安装pppoeLinux3.8为例)

1.(1)解压:#tar xzvf rp-pppoe-3.8.tar.gz


 (2)进入解压后的文件夹:cd rp-pppoe-3.8


 (3)#./go或#./go-gui。./go需要配置、编译、安装和设置DSL连接,而./go-gui是图形用户界面配置。


2.(1)编译:

       a.解压:#tar xzvf rp-pppoe-3.8.tar.gz


       b. 进入解压后的文件夹:#cd rp-pppoe-3.8


       c.编译:#make


       d.安装:#make install(可选)


  (2)配置:

       a.进入etc/ppp

# cd  /etc/ppp


       b.编辑 pap-secrets:用vi打开pap-secrets,添加用户名和密码,注意其中server和ip不能为空,用*代替。


格式如下:


      # client        server  secret         IP addresses

 "tenda"        *       "123"      *


      c.编辑pppoe.conf:这个文件包含了DSL连接的配置信息。

        ETH=eth1

        user=wxy

        DNS1=

        DNS2=

         按需要进行设置

   d.编辑pppoe-server-options:

    在/etc/ppp/pppoe-server-options文件中,不出现下列内容:

     local

     login

     auth

如果有出现,就用#注释掉。


     (3)开启服务

  命令行:

   #pppoe-server –I eth1 –L 192.168.8.2 –R 192.168.8.3

  具体含义:eth1为提供PPPoE服务的网卡(NAT型和Bridge都可以),-R为本地地址192.168.8.2,-L为远程拨号分配的地址从192.168.8.3开始(默认数量:64)。


      要是嫌麻烦的话可以把开启服务的那条命令做成一个脚本,具体如下:

命令:#vi run.sh

内容:

#!/bin/sh

Pppoe-server I eth1 L 192.168.8.2 R 192.168.8.3

保存退出后

增加x权限:#chmod +x run.sh

运行:#./run.sh


 打开IP转发功能(可选):

  #echo “1”>/proc/sys/net/ipv4/ip_forward



三.测试

1. 用的客户端为windonsXP下系统自带拨号工具,当PPPoE Server服务开启后,在客户端进行拨号,观察拨号进程,拨号成功后,在Windows下用ipconfig查看是否获得指定IP,即192.168.8.3开始的地址段。

在服务器端可用命令:#ps ef查看pppoe server进程。

2.通过控制路由器进行拨号。路由器以R80为例:

(1)在服务器中设置用户名为:wxy;密码:123。

(2)进路由器WEB界面进行设置,在快速设置或WAN口设置中,选择ADSL(虚拟拨号),填写相应信息。重启路由器后,路由器获得IP,下面电脑可以对服务器进行访问。

3.在Linux系统下进行拨号。以Fedora Linux为例,进入网络服务设置,先择DSL,输入服务器提供的账号和密码即可,多余项可以不填写。

  1. 抓包分析并及两种验证方式

(1)PPPoe在拨号后,电脑会向网络中发出一个广播包,服务器收到进行应答,并验证。通过验证后,电脑即可与服务器进行通信。

(2) PAP

PPP提供了两种可选的身份认证方法:口令验证协议PAP(Password Authentication Protocol,PAP)和挑战握手认证协议(Challenge Handshake Authentication Protocol,CHAP)。如果双方协商达成一致,也可以不使用任何身份认证方法.

PAP是一个简单的、实用的身份验证协议。

PAP认证进程只在双方的通信链路建立初期进行。如果认证成功,在通过程中不再进行认证。如果认证失败,则直接释放链路。

PAP的弱点是用户的用户名和密码是明文发送的,有可能被协议分析软件捕获而导致安全问题。但是,因为认证只在链路建立初期进行,节省了宝贵的链路带宽。


(3) CHAP

CHAP全称为:Challenge Handshake Authentication Protocol(挑战握手认证协议),主要就是针对PPP的,除了在拨号开始时使用外,还可以在连接建立后的任何时刻使用。

CHAP协议基本过程是认证者先发送一个随机挑战信息给对方,接收方根据此挑战信息和共享的密钥信息,使用单向HASH函数计算出响应值,然后发送给认证者,认证者也进行相同的计算,验证自己的计算结果和接收到的结果是否一致,一致则认证通过,否则认证失败。这种认证方法的优点即在于密钥信息不需要在通信信道中发送,而且每次认证所交换的信息都不一样,可以很有效地避免监听攻击。

CHAP缺点:密钥必须是明文信息进行保存,而且不能防止中间人攻击。

使用CHAP的安全性除了本地密钥的安全性外,网络上的安全性在于挑战信息的长度、随机性和单向HASH算法的可靠性。


至此,PPPoE服务器已经配置成功,能够完成基本要求,进行拨号了。


  • 不足之处

 1. 对一些配置文件的选项配置还不能深入的理解。

2.对整个拨号的过程理解的还不深入和全面。