计算机网络工程王晓燕第七章认证技术与应用实验1AAA安全体系结构2Radius协议3Tacacs+协议4tacacs+和Radius比较5认证技术实验7.1AAA安全体系结构7.1.1背景随着网络技术的不断发展及Internet应用的不断普及,越来越多的用户通过电话线将个人微机与网络接入服务器NAS互联,实现拨号访问Internet。远程访问因其开放性,对用户的身份认帐和安全管理更加困难和复杂。PSTNDNSNAS路由器7.1远程拨号访问系统远程用户A远程用户B文件Server认证Server为了便于集中认证和管理拨入的用户,目前大多采用AAA(Authentication、Authorization和Accounting)安全体系。AAA是基于协同网络安全技术的访问控制概念,其目的是通过某种一致的办法来配置网络服务,控制用户对路由器或网络接入服务器的访问。目前AAA技术已经不限于对拨号用户的认证,它广泛应用于任何需要认证服务的网络中。7.1.2AAA安全体系结构组成1鉴别(Authentication)2授权(Authorization)3记帐(Accounting)1鉴别(Authentication)此过程主要完成用户身份识别,并为该用户指派特权级别,控制该用户对网络资源和服务的访问与使用。在允许访问前,用户必须首先通过鉴别。鉴别服务验证终端用户或一个设备的联机身份,这里设备包括主机、服务器、交换机、路由器和其他联网部件。此任务通过使用登录、口令对话框、挑战和响应、消息支持和安全协议完成的。2授权(Authorization)此过程决定用户或用户组可以访问的指定服务和网络资源,该过程也定义用户在资源上可以执行的操作。授权能够提供远程网络访问控制方法,包括一次性授权,支持用户组,支持IP,IPX,ARA和Telnet等。AAA授权使用多组属性和特权来描述每个用户被授权访问的资源,以及每个用户在哪些资源上可以采取合法动作。这些属性组和特权存储在数据库中-可以是本地数据库(位于NAS或路由器中),也可以是远程数据库(位于安全服务器中)。3记帐(Accounting)此过程主要是收集信息,以确定谁在使用哪些资源。记帐服务还会将收集到的访问信息发送到安全服务器,这些信息包括用户身份、开始和停止时间、执行的命令、数据包数目和字节数目等。在一个远程接入网络上,记帐也提供帐单服务。记帐服务对安全的贡献是审计追踪。7.1.3AAA安全服务器实现AAA安全的核心是AAA安全服务器,它存储实施AAA安全策略的访问控制信息,因此它通常被看成是一个数据库。1采用本地安全数据库的AAA2采用远程安全数据库的AAA1采用本地安全数据库的AAA如果只有少量用户通过一台或者2台NAS访问内部网络,可以考虑将用户名和口令安全信息存储在NAS上,这被称作在本地安全数据库上的本地认证。要使用本地数据库进行认证,必须先在每台NAS上的本地安全数据库中用AAA命令为想要登录网络的每个用户建立用户名及其口令。认证过程如下(1)远程用户与NAS建立起一个PPP连接。(2)NAS提示用户输入用户名和口令(3)NAS通过本地数据库对收到的用户名和口令进行认证(4)NAS根据其本地数据库中的认证值授权用户一定的网络服务和可访问的目的地(5)NAS记录用户的通信数据量并按本地数据库中指定的格式编制审计记录图7.2执行AAA的一个本地安全数据库1PPP2提示3认证4授权5产生审计信息NAS本地数据库上AAA的特点:(1)本地安全数据库上的本地认证适合于只有少量用户和NAS的小网络(2)用户名、口令和授权参数被存储在NAS上的本地数据库中。(3)根据本地安全数据库对远程用户进行认证和授权(4)本地安全数据库对授权和审计的支持有限。(5)用本地安全数据库对用户控制可节省安装和维护一个远程安全数据库的费用。2采用远程安全数据库的AAA当网络规模变大、远程用户数目和NAS数目增多时,比较方便的方法就是使用一个远程安全数据库来为网络中的各个NAS和路由器提供AAA服务。远程安全数据库能够使管理员集中管理远程用户,不必为增加和改变一个远程用户原型而去更新所有的NAS。远程安全数据库有助于在公司内建立和加强一致的远程访问策略。通过远程安全数据库进行认证的工作过程:(1)用户和NAS建立起一条PPP连接(2)NAS提示用户输入用户名和口令,用户对该提示进行回应(3)NAS将用户名和口令传递给安全服务器(4)远程安全数据库对用户进行认证并授权用户访问网络。该数据库会通过下载相应的命令,并激活NAS中的访问控制列表来配置NAS。(5)NAS按照远程安全数据库中所指定的格式来编制审计记录,并将这些记录发送给安全服务器。安全服务器也可以自己编制审计记录。图7.3执行AAA的一个远程安全数据库1PPP2提示3将用户名和口令传送到数据库NAS4授权5记账远程安全数据库远程安全数据库上AAA的特点:(1)用远程安全数据库认证最适用于拥有较多远程用户和NAS的中到大型网络,在这种场合下,安全数据库的成本相对来说就比较容易接受(2)用户名、口令和授权参数被集中存放在远程安全服务器上的用户数据库中(3)根据远程安全数据库对远程用户进行认证和授权(4)授权和审计在NAS和远程安全数据库上均被支持(5)远程安全数据库可以控制对NAS或通过NAS的访问。(6)远程安全数据库所赋予的集中控制能力可以节省在网络上管理每台NAS的成本。7.1.4AAA认证协议图7.4Tacacs+/Radius安全服务器的应用远程用户Tacacs+/Radius协议NASPSTN企业网Tacacs/Radius客户端安全服务器7.2Radius协议(RemoteAuthenticationDial–InUserServer)远程鉴别拨入用户服务是一个分布式的客户机/服务器协议,用于防止网络被非授权访问。Radius协议是将认证和授权结合在一起的,但是它对审计是单独处理的。Radius可以与其他AAA安全协议如Tacacs+、Kerberos和本地数据库一起使用。Radius是一个完全开放的协议,它以源码形式被发布,所以可以被人们修改来与任何现有的安全系统一起工作。Radius规定了用于开发商的特定属性,允许开发商支持他们自己的、不通用的扩展属性。7.2.1Radius协议工作过程1认证和授权过程Radius客户端和Radius安全服务器之间用访问请求、访问许可、访问拒绝、访问挑战数据包进行通信。图7.5Radius认证和授权过程Radius安全服务器访问请求用户名、口令访问接收/拒绝访问挑战(任选)用户服务应答消息34567NAS被配置为Radius客户端(1)用户向NAS发起一个PPP的认证请求(2)用户被提示输入用户名和口令(3)NAS通过网络向Radius安全服务器发送一个含有用户名和加密口令的访问请求数据包(4)Radius安全服务器核验发送请求的客户端,对用户进行认证,查证用户的授权参数,然后发出下列几种响应之一:•访问许可-用户通过认证•访问拒绝-用户认证失败,可能会被网络接入服务器提示再次输入用户名和口令,也可能直接被拒绝•访问挑战-Radius安全服务器可以发出一条挑战信息。NAS再从用户处收集更多的信息,然后发给Radius安全服务器(5)NAS根据认证参数进行动作,允许所选的服务(6)访问许可和访问拒绝相应数据包还会带有其他信息。Radius认证过程须在Radius授权过程之前完成。可被包含在访问许可和访问拒绝数据包中的一些其他数据如下:1)用户可以访问的服务,包括Telnet、rlogin和PPP2)SLIP或EXEC服务3)包括主机或客户端IP地址、访问控制列表和用户超时值的一些连接参数(7)Radius安全服务器可以向NAS周期性的发送访问挑战数据包,提示用户重新输入用户名和口令,让NAS发送起状态信息,或者执行有Radius服务器可开发上所决定的其他动作。但Radius客户端不可以发送访问挑战数据包。2记帐审计过程Radius协议将审计信息从Radius客户端通过UDP端口1813发送给Radius审计服务器。Radius客户端负责使用含有审计请求的数据包将用户审计信息发送给指定的Radius审计服务器。Radius审计服务器负责接受审计请求,并回送一个表示它已成功收到审计请求的响应,它用审计响应数据包来完成该任务。图7.5Radius记帐审计过程Radius安全服务器审计请求(开始)审计AV对审计响应审计响应审计AV对1234审计响应Radius的记帐审计过程如下:(1)初始认证过后,NAS向Radius安全服务器发送一个审计请求开始数据包(2)Radius安全服务器用一个审计响应数据包确认收到了该审计请求开始数据包(3)服务结束后,NAS向Radius安全服务器发送一个审计请求结束数据包,描述所提供服务的类型和任选的统计信息(4)Radius安全服务器用一个审计响应数据包确认收到了该审计请求结束包。7.2.2Radius协议的特点1UDP数据包,端口号18122认证与授权相结合,审计独立3PAP和CHAP认证4广域网安全5SLIP、PPP和ARAP帧协议、6回拨7可扩展8确保网络安全7.2.3Radius服务器在VPN中的应用VPN是虚拟专用网络的缩写,属于远程访问技术,简单地说就是利用公网链路架设私有网络。例如公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。怎么才能让外地员工访问到内网资源呢?VPN的解决方法是在内网中架设一台VPN服务器,VPN服务器有两块网卡,一块连接内网,一块连接公网。外地员工在当地连上互联网后,通过互联网找到VPN服务器,然后利用VPN服务器作为跳板进入企业内网。为了保证数据安全,VPN服务器和客户机之间的通讯数据都进行了加密处理。有了数据加密,我们可以认为数据是在一条专用的数据链路上进行安全传输,就好像我们专门架设了一个专用网络一样。但实际上VPN使用的是互联网上的公用链路,因此只能称为虚拟专用网。1Radius服务器安装首先我们在Denver上安装Radius服务器,Radius服务器并不一定要安装在域控制器上,我们在此完全是为了实验方便才把Radius和域控制器集于一身。在Denver上依次点击控制面板-添加或删除程序-添加/删除Windows组件,如下图所示,选择网络服务组件中的“Internet验证服务”,点击确定后我们就可以在Denver上安装Radius服务了。2Radius服务器添加客户端想利用Radius服务器对访问者进行身份验证,ISA首先得成为Radius的客户端,下面我们就在Radius服务器中把ISA服务器添加为客户端。在Denver上依次点击开始-程序-管理工具-Internet验证服务,如下图所示,右键“点击Radius客户端”,选择“新建Radius客户端”。为Radius客户端配置一个易于记忆的名字,并填写客户端的IP。在客户端-供应商类型中应选择“Microsoft”,注意设置Radius服务器和客户端的共享密码。Radius服务器和客户端依靠这个密码进行彼此的身份验证。这个密码并不在网络上传递,如果Radius服务器认为有必要,还会使用挑战/响应的机制向Radius客户端提出身份验证请求。具体就是Radius服务器生成一个随机字符串,然后用这个共享口令加密,然后把加密后的密文传给客户端,要求客户端对密文解密后再回传给服务器,如果客户端回送的内容和原始的随机字符串一样,那客户端的身份就得到了认可。Radius服务器已经把ISA服务器添加成了客户端。三配置使用Radius服务器Radius服务器已经把ISA服务器添加成了客户端,那我们接下来就需要在ISA服务器上配置使用Radius服务器进行身份验证。如下图所示,在ISA的管理工具中定位到“虚拟专用网络”,点击右侧面板中的“指定Radius配置”。如下图所示,我们勾选“使用Radius进行身份验证”以及“使用Radius记账”,然后点击“Radius服务器”