linux上搭建pppoe-server

 


 
 
 
一。安裝 PPPoE Server Software
1) sudo apt-get install ppp
2)rp-pppoe(非apt套件)
wget -c  http://easylinux.info/uploads/rp-pppoe-3.6.tar.gz
sudo tar zxvf rp-pppoe-3.6.tar.gz -C /opt/
sudo chown -R root:root /opt/rp-pppoe-3.6/

3) 安裝軟體開發函示庫:
sudo apt-get install libc6-dev
4) 產生需要的pppoe server程式
sudo /opt/rp-pppoe-3.6/go
 
二。配置:
sudo gedit /etc/ppp/options
就是打开 /etc/ppp/options中下面的几个功能(去掉前面的#就可以了)
ms-dns 172.16.100.2    
ms-dns 172.16.100.4   (这两个是设置 主DNS 和 附DNS 的)
-pap     (这个是禁用pap认证方式的)
+chap    (这个是启用chap认证方式的)
具体的不详述,根据文件的描述加上自己的sense配就是。
 
三。添加用户:
sudo gedit /etc/ppp/chap-secrets
就是编辑用户名和密码的如下。
##############################
# Secrets for authentication using CHAP
# client server secret   IP addresses
name  *         "passwd"       *    
##############################
 
四。启用forward:
echo "1">/proc/sys/net/ipv4/ip_forward
注意: 这条命令一定要用root身份执行,sudo都没用,否则会提示权限不够。
     如果不启用forward, client即使拿到IP, traffic也不能出去,只能到server而已。

或者这样改
修改/etc/sysctl.conf文件:net.ipv4.ip_forward = 1 启用转发功能
执行如下命令,让配置即时生效
[root@localhost root]# sysctl -p


 
Ubuntu是默认无法直接使用root的, 如果root没有设置过密码,只要用
sudo passwd root
给root设置密码,就可以以root身份登陆了。
 
五。启动PPPoE Server:
sudo pppoe-server -I eth0 -L 192.168.5.1 -R 192.168.5.5 -N 10
意思就是,获得pppoe地址信息如下
-I eth0 指定pppoe服务器在那个网卡接口监听连接请求
-L 192.168.5.1 指定pppoe服务器的ip地址。(注意:此IP地址不是网卡的IP地址,而是PPPOE服务器的虚拟IP)(此地址可以任意)
-R 192.168.5.5 pppoe服务器分配给客户端的IP地址,从192.168.5.5开始,递增
-N 10 指定最多可以连接pppoe服务器的客户端数量(默认是64 最大是65534)
-C: 用于指定您的PPPoE服务器主机名(此参数可以不要)
-S: 该选项用于标记特定的服务器,以帮助客户端系统对pppoe服务器进行自我标定。-S选项经常用来保证一些特定客户始终连接到特定服务器,特别是当你的网络上有多个pppoe服务器时。 PPPoE协议的客户端软件可被配置为只登陆有"特殊服务名称"的pppoe服务器。如果客户端指定的服务器名称与-S选项服务名称中宣称的名字相符,就会连接到该服务器。
-T: 超时时间(设置为60秒)
六。关闭PPPOE服务器
killall pppoe-server
 
七。备注
1、如果使用pap验证方式,windowsxp以上系统自带的pppoe拨号,无法拨通。可能原因是pap使用明文密码验证,而windows保存的密码是加密的,而且是不可恢复的加密,所以windows无法提供密码明文。
2、/etc/ppp/pppoe-server-options和/etc/ppp/options,配置无论写在哪个文件中,都能够起到作用
 
八。测试
在xp上破号,用户名name, 密码passwd. 拿到192.168.5.6的IP , Oh, yeah!
 
九、但是xp连上pppoe以后不能上网,原来缺少了关键的一步,记得设置filter 和 postrouting
使用iptables规则
iptables -A INPUT -i eth0 -s 192.168.5.0/24 -j DROP
iptables -t nat -A POSTROUTING -s  192.168.5.0/24   -j SNAT --to-source 172.16.108.84

OK,经过测试 重新建立pppoe 连接。可以上网了
特此说明:
1. 执行ifconfig时可以看到eth0的ipv4地址的,我的那个地址就是172.16.108.84
另外注意了吧,我设置的pppoe的地址池是192.168.5.5 ~ 192.168.5.14 
2. 所以 iptables 时-s 的参数时 192.168.5.0/24 
注意了以上两点,就可以获得 pppoe的地址,并且可以上网了。
 

十 开机自动启用PPPoE Server
以上是整个配置过程,归纳所有步骤以及关键点
1. 把他们一并写入/etc/rc.local,实现开机后自启动PPPoE Server在原有文件中追加以下命令:
pppoe-server -I eth0 -L 192.168.5.1 -R 192.168.5.5 -N 10
iptables -A INPUT -i eth0 -s 192.168.5.0/24 -j DROP
iptables -t nat -A POSTROUTING -s  192.168.5.0/24   -j SNAT --to-source 172.16.108.84
(172.16.108.84为PPPOE服务器的物理网卡的ip地址)
2. 打开ip转发功能
echo "1">/proc/sys/net/ipv4/ip_forward
 

修改/etc/sysctl.conf  
重新启动系统,然后使用ps -A就可以看到pppoe-server已经起来了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是详细的搭建PPPoE-Server的过程以及配置文件解释: 1. 首先,确保你的Ubuntu系统已经安装了pppoepppoe-server软件包。如果没有安装,可以通过以下命令安装: ``` sudo apt-get update sudo apt-get install pppoe pppoe-server ``` 2. 创建一个pppoe服务器的配置文件,可以在/etc/ppp/pppoe-server-options文件中进行编辑。以下是一个示例配置文件: ``` require-chap require-mschap require-pap refuse-pap refuse-chap refuse-mschap mtu 1492 mru 1492 asyncmap 0 auth crtscts lock hide-password novj novjccomp nologfd plugin /usr/lib/pppd/2.4.7/radius.so plugin /etc/ppp/radiusplugin.conf ``` 解释: - require-chap, require-mschap, require-pap表示只允许使用CHAP、MSCHAP和PAP认证。 - refuse-chap, refuse-mschap, refuse-pap表示禁止使用CHAP、MSCHAP和PAP认证。 - mtu和mru表示最大传输单元和最大重组单元的大小。 - asyncmap 0表示禁用异步映射。 - auth表示启用认证。 - crtscts表示启用硬件流控制。 - lock表示在使用PPP设备时锁定设备。 - hide-password表示在日志中隐藏密码。 - novj和novjcomp表示禁用VJ压缩。 - nologfd表示禁用日志文件。 - plugin /usr/lib/pppd/2.4.7/radius.so表示启用radius插件。 - plugin /etc/ppp/radiusplugin.conf表示radius插件的配置文件路径。 3. 编辑/etc/ppp/chap-secrets文件,添加用户和密码信息: ``` # Secrets for authentication using CHAP # client server secret IP addresses user1 * password1 192.168.1.100 user2 * password2 192.168.1.101 ``` 解释: - user1和user2表示用户名。 - password1和password2表示密码。 - *表示允许任何主机连接到服务器。 - 192.168.1.100和192.168.1.101表示允许连接的客户端IP地址。 4. 编辑/etc/ppp/pap-secrets文件,添加用户和密码信息: ``` # Secrets for authentication using PAP # client server secret IP addresses user1 * password1 192.168.1.100 user2 * password2 192.168.1.101 ``` 解释: - user1和user2表示用户名。 - password1和password2表示密码。 - *表示允许任何主机连接到服务器。 - 192.168.1.100和192.168.1.101表示允许连接的客户端IP地址。 5. 编辑/etc/ppp/ip-up.d/0dns-up文件,添加DNS服务器信息: ``` #!/bin/sh # Update resolv.conf with DNS information from pppoe [ -x /sbin/resolvconf ] || exit 0 case "$5" in pppoe) /sbin/resolvconf -a "${IFACE}.ppp" ;; *) ;; esac exit 0 ``` 解释: - /sbin/resolvconf -a "${IFACE}.ppp"表示添加DNS服务器信息到pppoe接口。 6. 编辑/etc/ppp/pap-secrets文件,添加用户和密码信息: ``` # Secrets for authentication using PAP # client server secret IP addresses user1 * password1 192.168.1.100 user2 * password2 192.168.1.101 ``` 解释: - user1和user2表示用户名。 - password1和password2表示密码。 - *表示允许任何主机连接到服务器。 - 192.168.1.100和192.168.1.101表示允许连接的客户端IP地址。 7. 启动pppoe服务器: ``` sudo pppoe-server -I eth0 -C /etc/ppp/pppoe-server-options -L 192.168.1.1 -R 192.168.1.100-192.168.1.200 ``` 解释: - -I eth0表示pppoe服务器使用的网络接口。 - -C /etc/ppp/pppoe-server-options表示pppoe服务器配置文件路径。 - -L 192.168.1.1表示pppoe服务器IP地址。 - -R 192.168.1.100-192.168.1.200表示pppoe服务器分配的IP地址范围。 8. 如果需要使用Radius认证,可以编辑/etc/ppp/radiusplugin.conf文件,添加Radius服务器信息: ``` # radiusplugin.conf # # This file contains the configuration for the radius plugin # # The format of the file is: # keyword argument1 argument2 ... # # The keyword is the name of the radius attribute to be set. # The arguments are the values of the attribute. # # For a complete list of radius attributes, see the dictionary file # (usually /usr/share/freeradius/dictionary). server = 192.168.1.1 login = user password = password nas-ip-address = 192.168.1.1 nas-port-type = Virtual nas-port = 0 service-type = Framed-User framed-protocol = PPP ``` 解释: - server = 192.168.1.1表示Radius服务器IP地址。 - login = user表示Radius服务器用户名。 - password = password表示Radius服务器密码。 - nas-ip-address = 192.168.1.1表示NAS IP地址。 - nas-port-type = Virtual表示NAS端口类型。 - nas-port = 0表示NAS端口号。 - service-type = Framed-User表示服务类型。 - framed-protocol = PPP表示使用的协议。 至此,PPPoE-Server的安装与配置就完成了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值