最新消息:点击查看大S的省钱秘笈

Radius认证服务器的配置与应用(802.1x)

网络相关 Slyar 1096浏览 0评论

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

Radius认证服务器的配置与应用(802.1x)

作者:北京师范大学珠海分校 - 信息技术学院 - 姜南

环境:Windows 2003 Radius服务器+Cisco 2950交换机+Windows XP/2003客户端

IEEE 802.1x协议

IEEE 802.1x是一个基于端口的网络访问控制协议,该协议的认证体系结构中采用了“可控端口”和“不可控端口”的逻辑功能,从而实现认证与业务的分离,保证了网络传输的效率。IEEE 802系列局域网(LAN)标准占据着目前局域网应用的主要份额,但是传统的IEEE 802体系定义的局域网不提供接入认证,只要用户能接入集线器、交换机等控制设备,用户就可以访问局域网中其他设备上的资源,这是一个安全隐患,同时也不便于实现对局域网接入用户的管理。IEEE 802.1x是一种基于端口的网络接入控制技术,在局域网设备的物理接入级对接入设备(主要是计算机)进行认证和控制。连接在交换机端口上的用户设备如果能通过认证,就可以访问局域网内的资源,也可以接入外部网络(如Internet);如果不能通过认证,则无法访问局域网内部的资源,同样也无法接入Internet,相当于物理上断开了连接。

IEEE 802. 1x协议采用现有的可扩展认证协议(Extensible Authentication Protocol,EAP),它是IETF提出的PPP协议的扩展,最早是为解决基于IEEE 802.11标准的无线局域网的认证而开发的。虽然IEEE802.1x定义了基于端口的网络接入控制协议,但是在实际应用中该协议仅适用于接入设备与接入端口间的点到点的连接方式,其中端口可以是物理端口,也可以是逻辑端口。典型的应用方式有两种:一种是以太网交换机的一个物理端口仅连接一个计算机;另一种是基于无线局域网(WLAN)的接入方式。其中,前者是基于物理端口的,而后者是基于逻辑端口的。目前,几乎所有的以太网交换机都支持IEEE 802.1x协议。

RADIUS服务器

RADIUS(Remote Authentication Dial In User Service,远程用户拨号认证服务)服务器提供了三种基本的功能:认证(Authentication)、授权(Authorization)和审计(Accounting),即提供了3A功能。其中审计也称为“记账”或“计费”。

RADIUS协议采用了客户机/服务器(C/S)工作模式。网络接入服务器(Network Access Server,NAS)是RADIUS的客户端,它负责将用户的验证信息传递给指定的RADIUS服务器,然后处理返回的响应。RADIUS服务器负责接收用户的连接请求,并验证用户身份,然后返回所有必须要配置的信息给客户端用户,也可以作为其他RADIUS服务器或其他类认证服务器的代理客户端。服务器和客户端之间传输的所有数据通过使用共享密钥来验证,客户端和RADIUS服务器之间的用户密码经过加密发送,提供了密码使用的安全性。

基于IEEE 802.1x认证系统的组成

一个完整的基于IEEE 802.1x的认证系统由认证客户端、认证者和认证服务器3部分(角色)组成。

认证客户端。认证客户端是最终用户所扮演的角色,一般是个人计算机。它请求对网络服务的访问,并对认证者的请求报文进行应答。认证客户端必须运行符合IEEE 802.1x 客户端标准的软件,目前最典型的就是Windows XP操作系统自带的IEEE802.1x客户端支持。另外,一些网络设备制造商也开发了自己的IEEE 802.1x客户端软件。

认证者认证者一般为交换机等接入设备。该设备的职责是根据认证客户端当前的认证状态控制其与网络的连接状态。扮演认证者角色的设备有两种类型的端口:受控端口(controlled Port)和非受控端口(uncontrolled Port)。其中,连接在受控端口的用户只有通过认证才能访问网络资源;而连接在非受控端口的用户无须经过认证便可以直接访问网络资源。把用户连接在受控端口上,便可以实现对用户的控制;非受控端口主要是用来连接认证服务器,以便保证服务器与交换机的正常通讯。

认证服务器认证服务器通常为RADIUS服务器。认证服务器在认证过程中与认证者配合,为用户提供认证服务。认证服务器保存了用户名及密码,以及相应的授权信息,一台认证服务器可以对多台认证者提供认证服务,这样就可以实现对用户的集中管理。认证服务器还负责管理从认证者发来的审计数据。微软公司的Windows Server 2003操作系统自带有RADIUS服务器组件。

实验拓扑图

安装RADIUS服务器

如果这台计算机是一台Windows Server 2003的独立服务器(未升级成为域控制器,也未加入域),则可以利用SAM来管理用户账户信息;如果是一台Windows Server 2003域控制器,则利用活动目录数据库来管理用户账户信息。虽然活动目录数据库管理用户账户信息要比利用SAM来安全、稳定,但RADIUS服务器提供的认证功能相同。为便于实验,下面以一台运行Windows Server 2003的独立服务器为例进行介绍,该计算机的IP地址为172.16.2.254。

在"控制面板"中双击"添加或删除程序",在弹出的对话框中选择"添加/删除Windows组件"

在弹出的"Windows组件向导"中选择"网络服务"组件,单击"详细信息"

勾选"Internet验证服务"子组件,确定,然后单击"下一步"进行安装

在"控制面板"下的"管理工具"中打开"Internet验证服务"窗口

创建用户账户

RADIUS服务器安装好之后,需要为所有通过认证才能够访问网络的用户在RADIUS服务器中创建账户。这样,当用户的计算机连接到启用了端口认证功能的交换机上的端口上时,启用了IEEE 802.1x认证功能的客户端计算机需要用户输入正确的账户和密码后,才能够访问网络中的资源。

在"控制面板"下的"管理工具"中打开"计算机管理",选择"本地用户和组"

为了方便管理,我们创建一个用户组"802.1x"专门用于管理需要经过IEEE 802.1x认证的用户账户。鼠标右键单击"组",选择"新建组",输入组名后创建组。

在添加用户之前,必须要提前做的是,打开"控制面板"-"管理工具"下的"本地安全策略",依次选择"账户策略"-"密码策略",启用"用可还原的加密来储存密码"策略项。

否则以后认证的时候将会出现以下错误提示。

接下来我们添加用户账户"0801010047",设置密码"123"。鼠标右键单击"用户",选择"新用户",输入用户名和密码,创建用户。

将用户"0801010047"加入到"802.1x"用户组中。鼠标右键单击用户"0801010047",选择"属性"。在弹出的对话框中选择"隶属于",然后将其加入"802.1x"用户组中。

设置远程访问策略

在RADIUS服务器的”Internet验证服务”窗口中,需要为Cisco2950交换机以及通过该交换机进行认证的用户设置远程访问策略。具体方法如下:

新建远程访问策略,鼠标右键单击"远程访问策略",选择"新建远程访问策略"

选择配置方式,这里我们使用向导模式

选择访问方法,以太网

选择授权方式,将之前添加的"802.1x"用户组加入许可列表

选择身份验证方法,"MD5-质询"

确认设置信息

只保留新建的访问策略,删掉其他的

创建RADIUS客户端

需要说明的是,这里要创建的RADIUS客户端,是指类似于图3中的交换机设备,在实际应用中也可以是VPN服务器、无线AP等,而不是用户端的计算机。RADIUS服务器只会接受由RADIUS客户端设备发过来的请求,为此需要在RADIUS服务器上来指定RADIUS客户端。以图3的网络拓扑为例,具体步骤如下:

新建RADIUS客户端。鼠标右键单击"RADIUS客户端",选择"新建RADIUS客户端"

设置RADIUS客户端的名称和IP地址。客户端IP地址即交换机的管理IP地址,我们这里是172.17.2.250,等会说明如何配置。

设置共享密钥和认证方式。认证方式选择"RADIUS Standard",密钥请记好,等会配置交换机的时候这个密钥要相同。

显示已创建的RADIUS客户端

在交换机上启用认证机制

现在对支持IEEE 802.1x认证协议的交换机进行配置,使它能够接授用户端的认证请求,并将请求转发给RADIUS服务器进行认证,最后将认证结果返回给用户端。在拓扑图中:

RADIUS认证服务器的IP地址为172.17.2.254/24
交换机的管理IP地址为172.16.2.250/24
需要认证的计算机接在交换机的FastEthernet0/5端口上

因此我们实验时只对FastEthernet0/5端口进行认证,其他端口可不进行设置。具体操作如下:

使用Console口登陆交换机,设置交换机的管理IP地址

Cisco2950>enable
Cisco2950#configure terminal
Cisco2950(config)#interface vlan 1 (配置二层交换机管理接口IP地址)
Cisco2950(config-if)#ip address 172.17.2.250 255.255.255.0
Cisco2950(config-if)#no shutdown
Cisco2950(config-if)#end
Cisco2950#wr

在交换机上启用AAA认证

Cisco2950#configure terminal
Cisco2950(config)#aaa new-model (启用AAA认证)
Cisco2950(config)#aaa authentication dot1x default group radius (启用dot1x认证)
Cisco2950(config)#dot1x system-auth-control (启用全局dot1x认证)

指定RADIUS服务器的IP地址和交换机与RADIUS服务器之间的共享密钥

Cisco2950(config)#radius-server host 172.17.2.254 key slyar.com (设置验证服务器IP及密钥)
Cisco2950(config)#radius-server retransmit 3 (设置与RADIUS服务器尝试连接次数为3次)

配置交换机的认证端口,可以使用interface range命令批量配置端口,这里我们只对FastEthernet0/5启用IEEE 802.1x认证

Cisco2950(config)#interface fastEthernet 0/5
Cisco2950(config-if)#switchport mode access (设置端口模式为access)
Cisco2950(config-if)#dot1x port-control auto (设置802.1x认证模式为自动)
Cisco2950(config-if)#dot1x timeout quiet-period 10 (设置认证失败重试时间为10秒)
Cisco2950(config-if)#dot1x timeout reauth-period 30 (设置认证失败重连时间为30秒)
Cisco2950(config-if)#dot1x reauthentication (启用802.1x认证)
Cisco2950(config-if)#spanning-tree portfast (开启端口portfast特性)
Cisco2950(config-if)#end
Cisco2950#wr

测试802.1x认证接入

1、将要进行认证接入的计算机接入交换机的FastEthernet0/5端口,设置IP地址为172.17.2.5(随便设置,只要不跟认证服务器IP及交换机管理IP冲突即可)

2、在"本地连接"的"验证"标签栏中启用IEEE 802.1x验证,EAP类型设置为"MD5-质询",其余选项可不选。

3、如果之前配置没有问题,过一会即可看到托盘菜单弹出要求点击进行验证

4、点击之后会弹出类似锐捷客户端一样的登陆框,要求输入用户名和密码。这里我们输入之前配置的用户名"0801010047",密码"123",确定。

5、验证成功后可以ping一下172.17.2.254进行验证,同时可以观察到交换机FastEthernet0/5端口指示灯已经由黄色变为绿色。

为保证计算机支持802.1x验证,请确认Wireless Configuration服务正常开启。

6、可以通过"控制面板"-"管理工具"中的"事件查看器"-"系统"子选项观察802.1x的验证日志。

转载请注明:Slyar Home » Radius认证服务器的配置与应用(802.1x)

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (16)

  1. 感谢楼主的分享,但是在学习你的实验的同时,发现我老是验证失败,我是按照楼主的一步步来的 就是验证的那关老是过不了。如果楼主有时间加下我2355956104,帮我纠正 下。
    宴根兵-丰润达1年前 (2015-09-15)回复
  2. 能把识别服务加到RADIUS上吗?通过识别进行认证
    su2年前 (2015-02-14)回复
  3. Radius 能否结合mysql做认证(最近公司在开发系统向做认证),楼主求讨论 QQ:315495632谢谢
    陈华2年前 (2014-12-10)回复
    • 当然可以,FreeRADIUS,非常成熟的框架
      Slyar2年前 (2014-12-11)回复
  4. 有没有方法, 可以设定电脑的MAC来通过验证Radius
    Paul2年前 (2014-10-16)回复
    • username=Calling-Station0Identifier,就可以了
      pennieli2年前 (2014-11-14)回复
  5. LZ,请问一下我用AP搭建域用户认证,采用你的方式弄了可就是认证不了,怎么办?求讨论QQ253102354
    雷倩2年前 (2014-08-12)回复
  6. wifi登录的时候总是提示 Windows 找不到证书来让您登录到网络,我使用的是cisco wifi 路由器,radius profile 为1 wifi 安全模式为 WPA2-企业级,用户名密码均无错误。请帮忙解答下,谢谢了。
    tmdab1233年前 (2013-08-24)回复
  7. 写的很具体,很好
    心疼你的心疼3年前 (2013-07-03)回复
  8. 感谢楼主,受教了。
    IT后生4年前 (2013-04-22)回复
  9. 楼主说的很详细,很受用,感谢楼主的提供
    枫枫起舞4年前 (2012-12-15)回复
  10. 可是我搭建的时间总是连接不上 ,是不是需要就是需要cisco的交换机 ,一般的路由器不能使用么 ?我现在用的是ASUS的无线WIFI,上面有radius 的认证,是不是这些是不能用的,我一直想搭建个这样的环境给手机使用 ,希望您有时间的话,可以帮忙解决下,我的联系方式QQ 287619892 或者邮箱hejunwang01@126.com,非常感谢
    何军旺4年前 (2012-10-25)回复
    • 路由器上的Radius功能要打开,认证方式选择WPA2-企业。
      Mrstone4年前 (2013-01-17)回复
  11. 感谢楼主的分享,但是在学习你的实验的同时,发现我老是验证失败,我是按照楼主的一步步来的 就是验证的那关老是过不了。如果楼主有时间加下我QQ369551417,帮我纠正 下。
    dd4年前 (2012-07-07)回复
  12. 非常感谢,学习啦
    tSt5年前 (2012-03-22)回复