MAC认证技术基础
1 简介
MAC地址认证是一种基于端口和MAC地址对用户的网络访问权限进行控制的认证方法,它不需要用户安装任何客户端软件。设备在启动了MAC地址认证的端口上首次检测到用户的MAC地址以后,即启动对该用户的认证操作。认证过程中,不需要用户手动输入用户名或者密码。若该用户认证成功,则允许其通过端口访问网络资源,否则该用户的MAC地址就被添加为静默MAC。在静默时间内(可通过静默定时器配置),来自此MAC地址的用户报文到达时,设备直接做丢弃处理,以防止非法MAC短时间内的重复认证。
2 用户名格式和认证方式
目前设备支持两种方式的MAC地址认证,通过RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)服务器进行远程认证,以及在接入设备上进行本地认证。
在介绍认证方式之前,首先需要定义用于验证用户身份的用户名格式和内容。根据设备处理方式的不同,可以将MAC地址认证使用的用户名格式分为两种类型:
MAC地址用户名格式:使用用户的MAC地址作为认证时的用户名和密码,用户名和密码相同;
固定用户名格式:不论用户的MAC地址为何值,所有用户均使用设备上指定的一个固定用户名和密码替代用户的MAC地址作为身份信息进行认证。由于同一个端口下可以有多个用户进行认证,因此这种情况下端口上的所有MAC地址认证用户均使用同一个固定用户名进行认证,服务器端仅需要配置一个用户帐户即可满足所有认证用户的认证需求,适用于接入客户端比较可信的网络环境。
图1 不同用户名格式下的MAC地址认证示意图
两种验证用户身份的用户名格式确定后,回过头来看目前设备支持的两种MAC地址认证方式:
当选用RADIUS服务器认证方式进行MAC地址认证时,设备作为RADIUS客户端,与RADIUS服务器配合完成MAC地址认证操作。下面就两种验证用户身份的用户名格式简要说明一下该认证方式:
首先,若采用MAC地址用户名格式,则设备将检测到的用户MAC地址作为用户名和密码发送给RADIUS服务器进行验证;其次,若采用固定用户名格式,则设备将一个已经在本地指定的MAC地址认证用户使用的固定用户名和对应的密码作为待认证用户的用户名和密码,发送给RADIUS服务器进行验证。总之,无论设备采用何种用户名格式与RADIUS服务器完成对该用户的认证,所有认证通过的用户均可以访问网络。
当选用本地认证方式进行MAC地址认证时,直接在设备上完成对用户的认证。这时需要事先在设备上配置本地用户名和密码。
采用MAC地址用户名格式时,需要配置的本地用户名为各接入用户的MAC地址;而采用固定用户名时,需要配置的本地用户名为自定义的,所有用户对应的用户名和密码与自定义的一致。最后和RADIUS服务器认证方式一样,用户名和密码匹配成功后,用户便可以访问网络资源。
3 认证触发与下线
由于这部分内容涉及到MAC地址认证定时器,所以首先简要介绍一下三个定时器的功能:
第一个就是下线检测定时器(offline-detect),它的主要功能是用来设置用户空闲超时的时间间隔。如果在两个时间间隔之内,某在线用户没有流量通过设备,设备将切断该用户的连接,同时通知RADIUS服务器,停止对该用户的计费。
第二个是静默定时器(quiet),用来设置用户认证失败以后,设备停止对其提供认证服务的时间间隔。在静默期间,设备不对来自该用户的报文进行认证处理,直接丢弃。静默期后,如果设备再次收到该用户的报文,则依然可以对其进行认证处理。
第三个是服务器超时定时器(server-timeout),用来设置设备同RADIUS服务器的连接超时时间。在用户的认证过程中,如果达到服务器超时定时器设置的超时时间,而设备一直没有收到RADIUS服务器的应答,则设备将在相应的端口上禁止此用户访问网络。
介绍完以上定时器的功能后,下面我们来看MAC地址认证的触发方式和下线方式:
MAC地址认证触发,目前只有一种触发方式:new-mac事件触发,就是有了新的MAC到使能了MAC认证的端口,并被该端口学习到,即可触发MAC地址认证。
而MAC地址认证下线,则有多种方式实现,一种是用户主动要求下线,即用户主动终止访问流量后通过设备上配置的下线检测定时器,检测到在线用户没有流量通过,下线检测定时器超时后由设备切断该用户的连接;另外一种是用户被动下线,即通过设备切断在线用户的连接,使用户失去访问网络资源的权限;还有一种比较特殊,严格来说不属于用户下线,而是属于认证失败。如果用户未通过MAC地址认证,则该用户的MAC地址就被添加为静默MAC。在静默时间内,来自此MAC地址的数据报文到达设备时,设备直接做丢弃处理。静默MAC的功能主要是防止非法MAC短时间内的重复认证。
4 扩展属性
1.2 下发VLAN
为了将受限访问的网络资源与未认证用户隔离,通常将受限的网络资源和用户划分到不同的VLAN。MAC地址认证支持认证服务器(远程或本地)授权下发VLAN功能,即当用户通过MAC地址认证后,认证服务器将指定的受限网络资源所在的VLAN作为授权VLAN下发到用户认证的端口。该端口被加入到授权VLAN中后,用户便可以访问这些受限的网络资源。
设备根据用户接入的端口链路类型,按不同情况为端口下发VLAN:
若用户接入的端口为Access类型,则端口离开当前配置VLAN并加入下发的授权VLAN中;若用户接入的端口为Trunk类型,则设备允许下发的授权VLAN通过该端口,并且修改该端口的缺省VLAN为下发的授权VLAN;若用户接入的端口为Hybrid类型,则设备允许授权下发的VLAN以untag的方式通过该端口,并且修改该端口的缺省VLAN为下发的授权VLAN。这里需要注意的是,若该端口上使能了MAC VLAN功能,则设备将根据认证服务器下发的授权VLAN动态地创建基于用户MAC的VLAN,而端口的缺省VLAN并不改变。
1.3 下发ACL
从认证服务器(远程或本地)下发的ACL被称为授权ACL,它为用户访问网络的权限提供了良好的过滤功能。MAC地址认证支持认证服务器下发授权ACL功能,即当用户通过MAC地址认证后,如果认证服务器上配置了授权ACL,则设备会根据服务器下发的授权ACL对用户所在用户的数据流进行控制。为使下发的授权ACL生效,需要提前在设备上配置相应的ACL规则。而且在用户访问网络的过程中,可以通过改变服务器的授权ACL设置来改变用户的访问权限。
1.4 Guest VLAN
MAC地址认证的Guest VLAN功能允许用户在认证失败的情况下,访问某一特定VLAN中的资源,比如获取客户端软件、升级客户端或执行其他一些用户升级程序。这个VLAN被称之为Guest VLAN。
如果接入用户的端口上配置了Guest VLAN,则该端口上认证失败的用户会被加入Guest VLAN,即该用户被授权访问Guest VLAN里的资源。此时若在设备上设置了静默定时器,则在静默期间内,即使用户发起认证请求设备也不会对该用户的报文进行认证处理,只有等到静默期过后,才可对此用户的报文进行认证处理。若Guest VLAN中的用户再次发起认证未成功,则该用户将仍然处于Guest VLAN内;若认证成功,则会根据认证服务器是否下发授权VLAN决定是否将用户加入到下发的授权VLAN中,在认证服务器未下发授权VLAN的情况下,用户回到加入Guest VLAN之前端口所在的VLAN。
总的来说,MAC地址认证是一种比较简单的认证方式,和802.1x相比,无需安装专门的客户端,方便用户使用;同时MAC地址认证也支持部分常用扩展特性,如下发vlan以及访问控制列表等,可以有效的满足客户简单的网络安全部署要求。