linux(centos)上搭建pppoe服务器

简介:

搭建pppoe,成功了的话,就觉得TM超级简单,在centos更是5步左右就能搞定

 

1、安装pppoe,安装完成后,会有pppoe-server命令

1
yum  install  rp-pppoe

 

2、安装完成后,会在动在/etc/ppp目录下生成pppoe-server-options文件,文件内容如下,照着改就可以了

写道

1
2
3
4
5
6
7
8
# PPP options for the PPPoE server
# LIC: GPL
require-pap
require-chap
login
lcp- echo -interval 10
lcp- echo -failure 2
logfile  /var/log/pppoe .log

 

3、添加用户名密码,修改/etc/chap-secrets文件,添加下列一行

写道

1
pppoe *  "123456"  *

 很通俗,用户名:pppoe,密码是:123456

 

4、添加防火墙规则,做nat转换

写道

1
2
3
4
iptables -A POSTROUTING -t nat -s 10.10.10.0 /24  -j MASQUERADE
iptables -A FORWARD -p tcp --syn -s 10.10.10.0 /24  -j TCPMSS -- set -mss 1256
echo  1 >  /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1

第一条是添加nat,转换来自10.10.10.0/24网段的ip

第二天是修改mtu,根据自身需求改了

第三条打开转发

第四条是修改转发文件

 

5、启动pppoe

写道

1
pppoe-server -I eth0 -L 10.10.10.1 -R 10.10.10.100-200

这条命令的作用是:-I eth0  在eth0端口上检测pppoe discover包

-L 10.10.10.1    虚拟网关的意思,就是pppoe服务器端虚拟网关ip

-R 10.10.10.100-200  分配虚拟IP,分别是10.10.10.100到10.10.10.200

还有一些其他的参数你可以参考一下,直接man pppoe-server自己看了,每个参数都有默认值

 

成功完成上述步骤,就完成了搭建pppoe服务器端了,下面就是windows验证了

我的是windows xp系统,win7或者路由器应该都没问题

不过要改下验证方式,在“属性”--》“安全”--》“高级--设置”--》将“数据加密”改为“可选加密”,然后勾选上chap或者pap验证就可以了

输入用户名密码,不可意外就可以连接成功了

 

不过只是局域网的,意义并不大。

 

顺带贴一下pppoe建立的原理过程

写道

PPPoE 的验证过程

PPPoE 的验证过程包括 2 个阶段,Discovery 阶段和 PPP Session 阶段。

Discovery 阶段,包含 4 个步骤:

Step 1: PADI

PPPoE 客户端发送主动发现初始包(PPPoE Active Discovery Initiation,PADI),以太头中的目的地址是以太广播地址 FF:FF:FF:FF:FF:FF,PPPOE 头中的 CODE 为 0x09,SESSION_ID 值必须为 0,负载部分必须只包含一个 Service-Name 类型的 TAG 表示请求的服务类型,另外可以包含其他 TAG,整个 PPPOE 包不能超过 1484 字节;

Step 2: PADO

服务器端 PPPoE 进程在网络接口侦听到 PADI 包后,发送主动发现提议包(PPPoEActive Discovery Offer, PADO),用来回应客户机的 PADI 包,以太头中的目的地址是客户机的MAC 地址,PPPOE 头中的 CODE 为 0x07, SESSION_ID 值必须为 0,负载部分必须包含一个 AC-Name 类型的 TAG,用来指示本 AC 的名称,一个在 PADI 包中指定的Service- Name 的 TAG,另外可以包含其他 Service-Name 的 TAG。如果 AC 不对该客户机提供服务,AC 就不回应 PADO 包。

Step 3: PADR

PPPoE 客户端收到 PADO 包后,在 PADO 包中选择一个(可能有多个 PPPoE 服务器,通常选取最快的一个)发送主动发现请求包(PPPoEActive Discovery Request,PADR),以太头中的目的地址是所选取的 PADO 包的源以太头地址(即 PPPoE 服务器的 MAC 地址),PPPOE 头中的 CODE 为 0x19,SESSION_ID 值必须为 0,负载部分必须只包含一个 Service-Name 类型的 TAG 表示请求的服务类型,另外可以包含其他 TAG。

Step 4: PADS

MAC 地址匹配的 PPPoE 服务器收到 PADR 包后,发送主动发现会话确认包(PPPoE Active Discovery Session-confirmation, PADS),将产生一个 SEESSION_ID 值用来标志本次 PPP 会话,以 PADR 包方式发送给客户机。以太头中的目的地址是客户机的 MAC 地址,PPPOE 头中 的 CODE 为 0x65,SESSION_ID 值必须为所生成的那个SESSION_ID,负载部分必须只包含一个 Service-Name 类型的 TAG, 表示该服务类型被 PPPoE 服务器接受,另外可以包含其他 TAG。如果 PPPoE 服务器不接受 PADR 中的


Server-Name,PADS 中则包含一个 Service-Name -Error 类型的 TAG,这时 SESSION_ID 设置为 0。



PPP Session 阶段:

当客户端与服务器端远成发现阶段之后,即进入会话阶段,在 PPP 会话阶段,PPP 包被封装在 PPPOE 以太帧中,以太包目的地址都是单一的,以太协议为 0x8864,PPPOE 头的CODE必须为0,SESSION_ID必须一直为发现阶段协商出的SEESION_ID值,PPPOE的负载是整个 PPP 包,PPP 包前是两字节的 PPP 协议 ID 值。

在 Session 阶段,主机或服务器任何一方都可发 PADT(PPPoE Active Discovery Terminate)报文通知对方结束 Session。



PPPoE 的身份验证发生在会话(PPP Session)阶段。可以这样更解,rp-pppoe 包负责Discovery 及会话终止 PADT,ppp 包负责会话阶段的数据传输。




      本文转自灬落魄灬  51CTO博客,原文链接:http://blog.51cto.com/smoke520/1895400,如需转载请自行联系原作者




相关文章
|
8天前
|
安全 Linux 调度
在Linux中,如何实现,每星期天早8点服务器定时重启?
在Linux中,如何实现,每星期天早8点服务器定时重启?
|
8天前
|
网络协议 Linux Docker
在Linux中,如何指定dns服务器,来解析某个域名?
在Linux中,如何指定dns服务器,来解析某个域名?
|
3天前
|
Linux
Linux 服务器下载百度网盘文件
本教程指导如何使用 `bypy` 库从百度网盘下载文件。首先通过 `pip install bypy` 安装库,接着运行 `bypy info` 获取登录链接并完成授权,最后将文件置于指定目录并通过 `bypy downdir /Ziya-13b-v1` 命令下载至本地。
14 1
Linux 服务器下载百度网盘文件
|
3天前
|
Shell Linux Perl
linux服务器自动生成本地快照
【8月更文挑战第28天】本文介绍了在Linux服务器上通过两种常见方式创建本地快照的方法:Btrfs文件系统与LVM。Btrfs原生支持快照功能,操作简单快捷;LVM则提供了灵活的逻辑卷管理,可在不影响原始数据的情况下创建快照。文章详细列出了创建、查看、挂载及清理快照的具体步骤,并提供了一个自动化的Shell脚本示例,便于用户根据需求定期创建快照并清理过期快照。
12 3
|
4天前
|
Linux PHP
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
11 2
|
8天前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
8天前
|
负载均衡 网络协议 Linux
在Linux中,常用WEB服务器负载架构有哪些?
在Linux中,常用WEB服务器负载架构有哪些?
|
8天前
|
Ubuntu 网络协议 Linux
Linux下快速搭建七日杀官方私人服务器教程
本文提供了一份详尽的《七日杀》服务器搭建指南,专为Linux系统设计。教程分为九大部分,涵盖从前期准备到服务器维护的全过程。主要内容包括:选择具备公网IP的云服务器、安装Ubuntu 20 X64系统、下载SteamCMD等必备软件;详细指导如何配置服务器、设置防火墙及端口规则、启动与关闭服务器;此外还提供了服务器管理、环境配置(如设置swap分区)等实用技巧。适合有一定Linux基础的玩家参考实践。
|
2天前
|
缓存 Linux 调度
Linux服务器如何查看CPU占用率、内存占用、带宽占用
Linux服务器如何查看CPU占用率、内存占用、带宽占用
8 0
|
3天前
|
Linux 网络安全 网络架构
如何处理在学校Linux连接不上服务器
如何处理在学校Linux连接不上服务器
16 0
下一篇
云函数