在Linux上构建基于802.1x的“端点准入”校园网

时间:2022-10-13 12:32:13

在Linux上构建基于802.1x的“端点准入”校园网

摘要:对校园网中存在安全隐患的网络边界实施“端点准入”认证机制的方法进行了研究,详细分析了基于802.1x的认证机制的工作原理及其体系结构,提供了在linux上实现此种认证机制的方法。

关键词:802.1x;端点准入;Linux;RADIUS

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)03-10684-03

1 引言

“端点准入”是指对接入网络的用户按照“先认证,再接入”的原则进行认证和控制,通过认证,才能访问网络资源,不能通过认证,则无法访问网络资源――相当于连接被物理断开。

校园网中的公共多媒体教室,学生宿舍、招待所等具有移动办公需求以及人员流动频繁的场所,如果不能对用户身份进行有效认证,就算采取了VLAN、ACL等技术手段,也将面对如此安全隐患:只要用户终端最终能连接到交换机端口,它就具备了系统管理员赋予这个端口的权限,就能访问到相应的网络资源,而任何一台接进网络的终端的安全状态(主要是指终端的防病毒能力、补丁级别和系统安全设置),都将直接影响到整个网络的安全,在一个“接入失控”的网络中,最终的结果可能是重要数据泄密、丢失;蠕虫、ARP病毒等泛滥而导致全网瘫痪,因此,我们需要一种能部署在网络边界上,对接入用户进行认证和授权的方法,来提高网络的安全性与主动防御能力,而基于802.1x的“端点准入”机制能较好的解决这个问题。

2 802.1X简述

2.1 802.1X协议及其体系结构

802.1X协议起源于802.11协议,后者是标准的无线局域网协议,最初802.1X的主要目的是为了解决无线局域网用户的接入认证问题,现在已成规模应用在需要对端口加以管理,实现用户级接入控制的网络中,802.1X首先是一个认证协议,是一种对用户进行认证的方法和策略,是基于端口的认证策略,这里的端口可以是一个物理端口,也可以是一个逻辑端口,802.1X的认证的最终目的就是确定一个端口是否可用,对于一个端口如果认证成功那么就“打开”这个端口,允许所有的报文通过,如果认证不成功就使这个端口保持“关闭”,此时只允许802.1X的认证报文EAPOL(Extensible Authentication Protocol over LAN)通过,使用802.1x的系统为典型的C/S(Client/Server)体系结构,包括三个实体,如图1所示分别为:Supplicant System(接入系统)、Authenticator System(认证系统)以及Authentication Server System(认证服务器系统)。

(1)Supplicant System客户端(接入系统):Client,指接入到校园网的设备(如用户PC),需要安装 802.1X的客户端(Supplicant)软件,如交换机厂家公司提供的802.1X 客户端或Windows XP 自带的 802.1X 客户端等。

图1

(2)Authenticator System(认证系统):指switch(边缘交换机或无线接入设备),是根据客户的认证状态控制物理接入的设备,switch在客户端和认证服务器间充当角色,switch要求客户端提供认证信息,接收到后再发送到认证服务器,返回等同,switch根据认证结果控制端口是否可用。

(3)Authentication Server System(认证服务器系统):对客户进行实际认证,通知switch是否允许客户端访问网络。

2.2 802.1X的认证过程

2.2.1 认证前后交换机端口的状态

802.1X的认证中,端口的状态决定了客户端是否能接入网络,在启用802.1X认证时端口初始状态一般为非授权(unauthorized),在该状态下除802.1X报文和广播报文外不允许任何业务输入输出通讯,当客户通过认证后,端口状态切换到授权状态(authorized),允许客户端通过端口进行正常通讯。

2.2.2 802.1X基本的认证过程

认证通过前通道的状态为unauthorized,此时只能通过802.1X认证报文,认证通过时通道的状态切换为authorized,此时从认证服务器可以传递来用户的信息,比如VLAN,QOS,用户的访问控制列表等等,认证通过后用户的流量就将接受上述参数的监管,此时该通道可以通过任何报文,注意只有认证通过后才有DHCP等过程。

3 构建基于802.1X的“端点准入”校园网

3.1 Authenticator System(认证系统)的部署:

认证系统可以部署在接入层和汇聚层,但从减少网络流量,降低配置复杂度的角度出发,最好能部署在接入层(如图2),这样能实现真正的点到点认证,目前CISCO、huawei-3com等主流厂家设备均支持802.1X,本文所涉及到的交换机设备以及相关配置命令将以huawei-3com设备为例(以下将简称交换机)。

图2

3.2 Authentication Server System(认证服务器系统)的搭建

802.1X提供了一个用户身份认证的实现方案,但仅依靠802.1X不足以实现该方案,还需要对AAA(Authentication,Authorization and Accounting(认证、授权和计费)方法进行配置,AAA是一种管理框架,它可以用多种协议来实现,最常用来实现AAA的是RADIUS协议。

RADIUS是Remote Authentication Dial-In User Service(远程认证拨号用户服务)的简称,它是一种分布式的、客户机/服务器结构的信息交互协议,能保护网络不受未授权访问的干扰,常被应用在既要求较高安全性、又要求维持远程用户访问的各种网络环境中,本文为方便说明问题,将认证服务器系统简单视为RADIUS服务器。

3.2.1 Authentication Server(RADIUS 服务器)平台的比较与选择

(1)用交换机做本地 RADIUS 服务器

huawei-3com的Quidway 系列交换机提供了本机的简单 RADIUS 服务器端功能(包括认证和授权),不需要额外添置设备,就能实现本地认证,但其缺点也显而易见:在交换机上要做本地用户(local-user)配置,不能实现用户的集中管理与备份,不利于大规模部署。

(2)采用商业软件搭建RADIUS服务器

CISCO的Cisco Secure ACS 3.3,huawei-3com的CAMS软件功能强大,使用、管理方便,预算充足的情况下应该是首选。

(3)用FreeRadius搭建RADIUS服务器

在Linux平台上用FreeRadius实现,若配合MYSQL,用PHP或ASP等做后续开发,更能扩展管理功能,本文将在此方案上展开讨论。

3.3 Supplicant System客户端(接入系统)软件

如果接入层设备是huawei-3com交换机,为达到最佳控制效果,建议安装厂家提供的H3C802.1X客户端软件(图3),该软件针对huawei-3com设备做了功能扩展,能有效防止用户通过方式绕过“端点准入”认证机制,否则用前述其它客户端亦可。

图3

3.4 “端点准入”认证机制各系统的主要配置

3.4.1 Authenticator System(认证系统)的配置

在接入层交换机上启用802.1X:

# 开启指定端口E0/1的802.1X特性。

[Quidway] dot1x interface E0/1

# 创建RADIUS组radius1并进入其视图。

[Quidway] radius scheme radius1

# 设置主认证RADIUS服务器的IP地址为;10.11.1.1

[Quidway-radius-radius1] primary authentication 10.11.1.1

# 设置交换机与认证 RADIUS 服务器交互报文时的密钥。

[Quidway-radius-radius1] key authentication 0731

# 指示系统从用户名中去除用户域名后再将之传给RADIUS服务器。

[Quidway-radius-radius1] user-name-format without-domain

[Quidway-radius-radius1] quit

# 根据实际情况创建用户域

[Quidway] domain

# 指定 radius1 为该域用户的RADIUS方案。

[] radius-scheme radius1

# 开启全局802.1X特性。

[Quidway] dot1x

3.4.2 Authentication Server System(认证服务器系统)的安装与配置

(1)安装linux服务器

版本:RedHat 9.0,其IP地址为在交换机上配置的主认证RADIUS服务器的IP地址:10.11.1.1。

(2)安装FreeRadius

版本:从下载的freeradius-1.1.3.tar.bz2。

# tar zxvf freeradius-1.1.3.tar.bz2

# cd freeradius-1.1.3

# ./configure --localstatedir=/var --sysconfdir=/etc

# make

# make install

freeradius 被安装在/usr/local/etc/raddb下,用radiusd-X启动到debug模式,当出现启动完成等待“request”的提示后,表示RADIUS服务已经被正确安装。

(3)配置clients.conf

# vi/usr/local/etc/raddb/clients.conf,打开 clients.conf 添加接入层交换机,比如添加一台型号为3026、IP地址是10.232.223.2的交换机:

client 10.232.223.2 {

secret = 0731;密钥,与交换机中的配置保持一致

shortname = 3026;给交换机一个名字,这里用型号命名

nastype=other}

如此配置后,RADIUS服务器才会对10.232.223.2这台交换机发出的认证报回应,否则会忽略它发出的认证报文。

# vi /usr/local/etc/raddb/users,加入要认证的用户账号test并设密码为“123456”:

test Auth-Type := chap, User-Password == "123456"

CHAP是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。

注:在clients.conf,users里,系统对每项配置的意义做了详细说明,在编辑时可作为参考。

(5)刷新RADIUS服务

# ps Caux |grep radiusd;查询RADIUS进程号

# kill -9 xxxxx;根据进程号,杀掉RADIUS进程

# radiusd -X;重启

图4为“端点准入”认证系统各部分协同工作的示意图:

图4 “端点准入”认证系统各部分协同工作

3.4.3 系统调试时的几个关键点

(1)保证交换机与RADIUS 服务器之间线路(物理层/链路层)通畅。

(2)确保RADIUS 服务器和交换机的报文加密密钥相同。

(3)用命令“domain default enable ”将交换机默认的认证域指到新建的域上。

(4)如果不需要对用户计费的话,用命令“accounting optional”打开计费可选开关,否则交换机只会发本地认证报文而不会往RADIUS服务器发认证报文,这个故障很隐蔽和困扰人,不进行抓包分析的话很难定位。

(5)clients.conf或users更改后,刷新RADIUS服务后更改内容才起作用。

(6)由于交换机支持一台主RADIUS服务器、一台备份RADIUS服务器协同工作的模式,故实际应用中,推荐部署两台服务器互为备份。

4 结束语

linux平台上基于802.1X的“端点准入”认证机制,能充分发挥设备能力,使校园网络边界“可控”和“在控”,在人们对网络安全日益关注的今天,此技术必将得到广泛的应用。

参考文献:

[1]Matthew S. Gast. 802.11无线网络权威指南(第二版,影印版). 东南大学出版社,2006.

[2]. FAQ From FreeRADIUS Wiki.

[3].cn. Quidway S8505路由交换机操作手册.

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:Access数据库加密系统的安全性及其保护措施 下一篇:“找回”丢失的品牌机驱动光盘