MAC认证简介定义MAC认证,全称MAC地址认证,是一种基于接口和终端MAC地址对用户的访问权限进行控制的认证方法。
优点- 用户终端不需要安装任何客户端软件。
- MAC认证过程中,不需要用户手动输入用户名和密码。
- 能够对不具备802.1X认证能力的终端进行认证,如打印机和传真机等哑终端。
认证系统如图2-13所示,MAC认证系统为典型的客户端/服务器结构,包括三个实体:终端、接入设备和认证服务器。
图2-13 MAC认证系统
- 终端:尝试接入网络的终端设备。
- 接入设备:是终端访问网络的网络控制点,是企业安全策略的实施者,负责按照客户网络制定的安全策略,实施相应的准入控制(允许、拒绝、隔离或限制)。
- 认证服务器:用于确认尝试接入网络的终端身份是否合法,还可以指定身份合法的终端所能拥有的网络访问权限。
用户名形式终端进行MAC认证时使用的用户名和密码需要在接入设备上预先配置,有以下几种形式。缺省情况下,终端进行MAC认证时使用的用户名和密码均为终端的MAC地址。
]
MAC认证时使用的用户名 | 密码 | 适用场景 |
终端的MAC地址 | 两种形式: | 客户端少量部署且MAC地址容易获取的场景,例如对少量接入网络的打印机进行认证。 |
指定的用户名 | 指定的密码 | 由于同一个接口下可以存在多个终端,此时所有终端均使用指定的用户名和密码进行MAC认证,服务器端仅需要配置一个账户即可满足所有终端的认证需求,适用于终端比较可信的网络环境。 |
DHCP选项,有三种形式:- circuit-id子选项
- remote-id子选项
- circuit-id子选项和remote-id子选项的组合
| 指定的密码 | 该场景下终端需通过DHCP方式获取IP地址,且需保证DHCP报文能够触发MAC认证。 |
MAC认证流程对于MAC认证用户密码的处理,有PAP和CHAP两种方式:- PAP:设备将MAC地址、共享密钥、随机值依次排列顺序后,经过MD5算法进行HASH处理后封装在属性名"User-Password"中。
- CHAP:设备将CHAP ID、MAC地址、随机值依次排列顺序后,经过MD5算法进行HASH处理后封装在属性名"CHAP-Password"和"CHAP-Challenge"中。
采用PAP和CHAP方式的MAC认证流程分别如图2-14和图2-15所示,两者实现方式相似,以下重点介绍PAP方式。
图2-14 MAC认证流程(PAP方式)
- 接入设备收到终端发送的arp/dhcp/dhcpv6/nd报文,触发MAC认证。
- 设备随机生成一个随机值,并对MAC认证用户的MAC地址、共享密钥、随机值依次排列后经过MD5算法进行HASH处理,然后将用户名、HASH处理结果以及随机值封装在RADIUS认证请求报文中发送给RADIUS服务器,请求RADIUS服务器对该终端进行MAC认证。
- RADIUS服务器使用收到的随机值对本地数据库中对应MAC认证用户进行MAC地址、共享密钥、随机值依次排列后经过MD5算法进行HASH处理,如果与设备发来的值相同,则向设备发送认证接受报文,表示终端MAC认证成功,允许该终端访问网络。
图2-15 MAC认证流程(CHAP方式)
MAC认证授权认证用于确认尝试接入网络的用户身份是否合法,而授权则用于指定身份合法的用户所能拥有的网络访问权限,即用户能够访问哪些资源。授权最基础也是最常使用的授权参数是VLAN、ACL和UCL组,此处以RADIUS授权进行说明,其他授权方式的授权方法以及更多可授权的参数请参见AAA授权方案。
VLAN为了将受限的网络资源与未认证用户隔离,通常将受限的网络资源和未认证的用户划分到不同的VLAN。用户认证成功后,认证服务器将指定VLAN授权给用户。此时,设备会将用户所属的VLAN修改为授权的VLAN,授权的VLAN并不改变接口的配置。但是,授权的VLAN优先级高于用户配置的VLAN,即用户认证成功后生效的VLAN是授权的VLAN,用户配置的VLAN在用户下线后生效。RADIUS服务器授权VLAN时,必须同时使用以下RADIUS标准属性:- Tunnel-Type:必须配置为“VLAN”或“13”
- Tunnel-Medium-Type:必须配置为“802”或“6”
- Tunnel-Private-Group-ID:可以是VLAN ID、VLAN描述、VLAN名称和VLAN pool
ACL用户认证成功后,认证服务器将指定ACL授权给用户,则设备会根据该ACL对用户报文进行控制。
- 如果用户报文匹配到该ACL中动作为permit的规则,则允许其通过。
- 如果用户报文匹配到该ACL中动作为deny的规则,则将其丢弃。
- 授权静态ACL:RADIUS服务器通过RADIUS标准属性Filter-Id将ACL ID授权给用户。为使授权的ACL生效,需要提前在设备上配置相应的ACL及规则。
- 授权动态ACL:RADIUS服务器通过华为RADIUS扩展属性HW-Data-Filter将ACL ID及其ACL规则授权给用户。ACL ID及其ACL规则需要在RADIUS服务器上配置,设备上不需要配置。
RADIUS服务器授权ACL有两种方法:
- 授权静态ACL:RADIUS服务器通过RADIUS标准属性Filter-Id将ACL ID授权给用户。为使授权的ACL生效,需要提前在设备上配置相应的ACL及规则。
- 授权动态ACL:RADIUS服务器通过华为RADIUS扩展属性HW-Data-Filter将ACL ID及其ACL规则授权给用户。ACL ID及其ACL规则需要在RADIUS服务器上配置,设备上不需要配置。
UCL用户控制列表UCL组(User Control List)是网络成员的集合。UCL组里面的成员,可以是PC、手机等网络终端设备。借助UCL组,管理员可以将具有相同网络访问策略的一类用户划分为同一个组,然后为其部署一组网络访问策略,满足该类别所有用户的网络访问需求。相对于为每个用户部署网络访问策略,基于UCL组的网络控制方案能够极大的减少管理员的工作量。RADIUS服务器授权UCL组有两种方式:- 授权UCL组名称:RADIUS服务器通过RADIUS标准属性Filter-Id将UCL组名称授权给指定用户。
- 授权UCL组ID:RADIUS服务器通过华为RADIUS扩展属性HW-UCL-Group将UCL组ID授权给指定用户。
无论是哪一种授权UCL组方式,都必须提前在设备上配置相应的UCL组及UCL组的网络访问策略。
free-rule用户认证成功之前,为满足用户基本的网络访问需求,需要用户认证成功前就能获取部分网络访问权限。可在free-rule模板中配置free-rule规则,满足用户的认证成功前的网络访问需求。
用户的free-rule可以通过普通的free-rule定义,也可以通过ACL定义。普通的free-rule由IP地址、MAC地址、接口、VLAN等参数确定;通过ACL定义的free-rule由ACL规则确定。两种方式定义的free-rule都能够指定用户无需认证就可以访问的目的IP地址。除此之外,ACL定义的free-rule还能够指定用户认证成功前就可以访问的目的域名。
基于域名定义用户的free-rule有时要比基于IP地址简单方便。例如,某些认证用户由于没有认证账号,必须首先在运营商提供的官方网站上注册申请会员账号;或者通过微博、微信等第三方账号进行登录。这就要求用户认证通过前,能够访问特定的网站。由于用户记忆网站的域名要比记忆其IP地址容易的多,所以,此时可以通过ACL定义的free-rule,指定用户认证成功前即可访问以上网站域名。
MAC认证重认证MAC认证成功用户若管理员在认证服务器上修改了某一用户的访问权限、授权属性等参数,此时如果用户已经在线,则需要及时对该用户进行重认证以确保用户的合法性。MAC认证成功用户重认证方式如表2-8所示。
表2-8 MAC认证成功用户重认证方式]
配置点 | 方式 | 配置命令 |
在接入设备侧配置 | 对MAC认证成功用户进行周期性重认证,从接入设备收到RADIUS认证接受报文开始计算,reauthenticate-period-value时间之后,接入设备会重新请求RADIUS服务器对该终端进行MAC认证。 | mac-authen reauthenticate mac-authen timer reauthenticate-period reauthenticate-period-value |
MAC认证用户DHCP续租报文触发重认证。当接入设备接收到MAC认证用户的DHCP续租报文后,对用户进行重认证。 | mac-authen reauthenticate dhcp-renew |
手动对指定MAC地址进行单次重认证。 | mac-authen reauthenticate mac-address mac-address |
在RADIUS服务器侧配置 | 对MAC认证成功的用户下发RADIUS标准属性Session-Timeout和Termination-Action。其中,Session-Timeout属性值为用户在线时长定时器,Termination-Action属性值为1表示对用户进行重认证。当用户在线时长达到Session-Timeout的属性值时,设备会对用户进行重认证。 | 无 |
异常认证状态下的用户从MAC认证逻辑流程章节可以看出,MAC认证时可能会存在RADIUS服务器Down或用户认证失败等异常状况。缺省情况下,异常认证状态下的用户将无任何网络访问权限。但一般情况下,会对其授予部分网络访问权限,如访问一些无关紧要的信息。当用户在线时间达到老化时间后,设备将删除用户表项,并收回授予用户的网络访问权限。为使这部分用户能够及时认证成功,获取正常的网络访问权限,设备可以对这些用户进行重认证。该部分用户的重认证方式如表2-9所示。
表2-9 异常认证状态下的用户重认证方式]
用户状态 | 配置命令 |
RADIUS服务器Down | authentication event authen-server-up action re-authen:配置当RADIUS服务器真正UP时对用户进行重认证。 |
认证失败 | authentication timer re-authen authen-fail re-authen-time:配置对认证失败用户进行周期性重认证。 |
预连接 | authentication timer re-authen pre-authen re-authen-time:配置对预连接用户进行周期性重认证。 |
MAC认证用户下线当用户已下线,而接入设备和RADIUS服务器未感知到该用户已下线时,会产生以下问题:- RADIUS服务器仍会对该用户进行计费,造成误计费。
- 存在非法用户仿冒合法用户IP地址和MAC地址接入网络的风险。
- 已下线用户数量过多的情况下,还会占用设备用户规格,可能会导致其他用户无法接入网络。
因此,接入设备要能够及时感知到用户已下线,删除该用户表项,并通知RADIUS服务器停止对该用户进行计费。
接入设备控制用户下线接入设备控制用户下线有两种方式:
- 在接入设备上执行命令cut access-user强制指定用户下线。
- 在接入设备上配置用户探测功能,用于探测用户是否在线。当用户在指定的时间内无响应,则认为用户下线,删除用户表项。
当管理员发现非法用户在线,或在测试中想让某一用户下线后重新上线,可以通过在设备上执行命令强制该用户下线。对于正常接入用户,会通过ARP探测对用户在线状态进行确认,如果探测到用户下线,则进行下线处理,删除用户表项。
图2-16 用户下线探测流程
假如握手周期为3T(通过命令authentication timer handshake-period handshake-period配置。T=handshake-period/3),则设备会在T、2T时刻进行用户探测,探测方式为ARP报文探测。以0~T时间段为例,T~2T与之类似,不再赘述。
- 如果在0~T时间段内,有用户流量经过设备,则在T时刻,设备认为用户在线,该时刻设备不会再发送探测报文,并重置探测定时器(即3T)周期。
- 如果在0~T时间段内,没有用户流量经过设备,则在T时刻,设备无法感知到用户是否在线,该时刻设备会发送探测报文。如果设备收到用户的回应报文,则认为用户在线,并重置探测定时器;如果未收到,则认为用户已下线。
- 如果在2T~3T时间段内,有用户流量经过设备,则在3T时刻,设备认为用户在线,该时刻设备重置探测定时器。
- 如果在2T~3T时间段内,没有用户流量经过设备,则在3T时刻,设备无法感知到用户是否在线,认为用户已下线。
如果在T、2T、3T时刻,设备均认为用户已下线,则设备会删除该用户的所有相关表项。为防止用户PC闲置时被异常下线,请不要将握手周期设置的过小,推荐使用默认值。
服务器控制用户下线服务器控制用户下线有以下方式:
- RADIUS服务器可通过DM报文(Disconnect Message)强制用户下线。DM(Disconnect Message)是指用户离线报文,即由RADIUS服务器端主动发起的强制用户下线的报文。
- RADIUS服务器通过授权RADIUS标准属性Session-Timeout和Termination-Action。其中,Session-Timeout为用户在线时长定时器,Termination-Action属性值为0表示将用户下线。当用户在线的时长达到定时器指定的数值时,设备会将用户下线。
MAC认证静默定时器如图2-17所示,在MAC认证过程中,若用户在短时间内频繁认证失败,一方面会占用过多的系统资源,另一方面存在攻击者通过多次尝试输入用户名和密码的方式暴力破解用户名和密码的风险。使能静默功能后,若某一用户在60秒内认证失败的次数达到指定值,则设备会将该用户静默一段时间,静默期间,设备会丢弃该用户的MAC认证请求。
图2-17 MAC认证静默流程
在以下场景中,MAC认证静默功能不生效:- 已执行authentication pre-authen-access enable命令使能预连接功能。
- 已执行authentication event action authorize命令配置异常认证状态下用户的网络访问权限。
- 包含MAC认证的混合认证场景。