Chinaunix首页 | 论坛 | 博客
  • 博客访问: 56609
  • 博文数量: 39
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-05 15:14
个人简介

要想成功,立刻行动!

文章存档

2015年(2)

2014年(1)

2012年(4)

2011年(2)

2010年(8)

2009年(5)

2008年(17)

我的朋友

分类: LINUX

2008-12-13 22:02:33

最近和同事们聊起来,说是局域网中总是难免有一些用户喜欢用ARP地址欺骗来捣鬼,你不让他上网吧,他又能找出各种各样的理由来争取他上网的"权利",而且这种人又往往隐藏在一个网段中,总不能因为他一个人搞的别人都上不去网,所以真要是遇到这么一位难缠的主,那就要在他所处的局域网中改变一下上网方式,不能一开机就直接连接到网关上去,而是让这个局域网中的用户上网这前先执行一次PPPOE拨号过程,使其获得的IP地址与网关地址一致,从而从根本上杜绝 ARP地址欺骗的发生。

LINUX下配PPPOE服务器的感受

此前,我们已经系统介绍了利用routeros软件来搭建PPPOE服务器,总体上感觉功能很强大,也比较容易实现(我和同事们交流了一下,一般来说具有计算机网络基础的人,看一遍成功的配置操作,自己就可以独立配置PPPOE服务器了),但是有一个不可回避的现实是:PPPOE服务器是商业软件,价格不菲,下一个试用版练练手还可以,但如果要正式应用到实际网络上作真正的服务器就不靠谱了,那么我们就将注意力转移到LINUX系统上,LINUX系统肯定是可以做PPPOE服务器,实际上祥子花了一下午的时间也在LINUX下把 PPPOE服务器配置成功了,但是还是有几点感受要说一下:

一、LINUX众多的版本造成了配置命令的不统一,而PPPOE软件又没有提供一份权威的官方配置教程,造成网上流传的PPPOE教程各执一词,初学者很难根据一份教程就掌握PPPOE配置的要领。

二、LINUX毕竟是一个通用的操作系统,而不为专为PPPOE服务器设计的,所以在配置PPPOE服务器的时侯,有时会因为一点LINUX自身的小细节设置不当而影响了PPPOE服务器本身的设置(比如祥子这次就为LINUX的两块网卡一重启就与网络断开连接痛头不已,好在通过研究配置文件解决了)。

三、LINUX系统自身集成网络服务应该是一个趋势,即一台LINUX服务器装好,各种网络服务也相应的装好了,到时侯就要启用即可,这样可以简化操作,提升使用者的兴趣,从而提高LINUX在服务器操作系统的占用率。

感受说了这么多,还是介绍一下本次在LINUX系统下配置PPPOE服务器的过程,我本次选用的是红旗LINUX6.0桌面版,在虚拟机中安装,虚拟了两块网卡,采用的是PPPOE+IPTABLES(NAT)的上网解决方案,分三部分来介绍整个配置过程。

网络拓扑如图1所示

从图1看出,使用LINUXPPPOE服务器与使用routerosPPPOE服务器在网络拓扑上是没有区别的,我们本次是使用Eth1网卡连接外网(为其设置IP地址、子网掩码、网关:10.70.10.15/255.255.0.0 10.70.0.1),Eth0网卡连接内网(为了安全起见,不设置IP地址等信息)。

LINUX自身的网络设置

虽然也可以在图形界面中是为网卡设置IP地址,但是真正实现网卡IP地址等信息的准确可靠,还是要在相应的文件中作设置,我们本次要设置两块网卡,编辑好的文件内容如下:

[root@localhost network-scripts]# pwd

/etc/sysconfig/network-scripts

[root@localhost network-scripts]# more ifcfg-eth0

TYPE="Ethernet"

BOOTPROTO="static"

IPADDR="0.0.0.0"

DEVICE="lan"

HWADDR="00:0C:29:33:69:86"

ONBOOT="yes"

NETMASK="0.0.0.0"

[root@localhost network-scripts]# more ifcfg-eth1

TYPE="Ethernet"

BOOTPROTO="static"

IPADDR="10.70.10.11"

DEVICE="wan"

HWADDR="00:0C:29:33:69:90"

ONBOOT="yes"

NETMASK="255.255.0.0"

GATEWAY="10.70.0.1"

我们重点看一下ifcfg-eth1的配置文件,其中ONBOOT="yes"是必须的,可以保证系统启动网卡自动连接到网络上,网关的信息是我们手工添加进出去,保证有网关可以正常的访问外部网络,ifcfg-eth0文件中只要保证ONBOOT="yes"就可以了,当然象在 routeros中一样,我们将外网口的名字定义为wan,将内网口的名字定义为lan

PPPOE服务的设置

(一)检查本机有没有安装PPPOE服务

[root@localhost network-scripts]# rpm -q rp-pppoe

rp-pppoe-3.5-35

以上信息说明安装了

(二)配置必要的参数

为了使LINUX中的配置过程比较好理解,我们以routeros下的配置过程作为参考。

1、了解pppoe-server-options

这个文件有点类似于ROUTERS下的profile文件,在这个文件中定义了使用哪种验证方式:require-chap,为用户分配的DNS服务器地址是多少:

ms-dns 219.146.0.130

ms-dns 222.175.169.91

完整的pppoe-server-options文件如下所示

[root@localhost ppp]# more pppoe-server-options

# PPP options for the PPPoE server

# LIC: GPL

require-chap

login

lcp-echo-interval 10

lcp-echo-failure 2

ms-dns 219.146.0.130

ms-dns 222.175.169.91

2、添加用户名和密码

在相同的目录下有一个chap-secrets文件,在这里面可以添加用户名和密码

[root@localhost ppp]# more chap-secrets

# Secrets for authentication using CHAP

# client server secret IP addresses

abc * abc *

3、允许本地验证

也就是修改options文件,将而来默认的lock改为local即可。

[root@localhost ppp]# more options

#lock

local

4、开启PPPOE服务

[root@localhost ppp]# more pppstart

pppoe-server -I lan -L 192.168.0.1 -R 192.168.0.5 -N 10

像以前一样,我将这条命令做成了一个脚本,这样操作测试其中的参数比较方便,我简单介绍一下这条命令中的各个参数的意思。

I:指定响应PPPOE请求的端口,本例中是在lan口上。

LPPPOE服务器的IP地址,这是客户端所填的PPPOE服务器的地址。

R:这是分配给客户端的地址池起始地址,本例中从192.168.0.5开始

N:地址池的IP地址递增几个,本例中添增10,也就是从192.168.0.5开始,到192.168.0.14结束。

做完以上的设置,我们再梳理一下routeros下建立PPPOE服务的步骤

1、添加一个地址池

2、添加一个profile文件

3、添加拨号用户

4、启动pppoe服务

对照一下,可以看出我们在LINUX中将以上步骤都完成了,也就是说PPPOE服务准备好了,客户端PPPOE拨号,顺利的话就可以拨号成功了。

当然现在客户端还不能上网,因为PPPOE服务器还没有启用NAT,我们用IPTABLES软件来实现,写一个这样的脚本即可:

echo "1" >> /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o wan -j SNAT --to 10.70.10.23

第一行的作用是启用IP转发,第二行是启动IPTABLES进行NAT转换,下面是对各个参数的解释

-t nat表示进行NAT转化

-s 192.168.0.0/24表示源地址为192.168.0.0/24这个网段

-j SNAT --to 10.70.10.23表示将源地址都转化成10.70.10.23这个外网地址

同样的,我们可以对照routeros系统里NAT的设置来理解这条命令。启动NAT以后,这台PPPOE服务器就功能完整了,客户端不仅可以拨通服务器,拨通后还可以上网。

以上就是利用LINUX服务器来架设PPPOE服务器的过程,功能一点不差,而且还是免费的,大家有兴趣可以试一下。

阅读(703) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~