MAC认证是一种基于接口和终端MAC地址对用户的访问权限进行控制的认证方法。
特点
免安装:用户终端不需要安装任何客户端软件。
免输入:认证过程中,不需要手动输入用户名和口令。
哑终端友好:能够对不具备802.1x认证能力的终端进行认证,比如打印机和传真机等哑终端。
C/S架构:终端、接入设备、认证服务器
用户名形式
进行mac认证时使用的用户名和密码需要在接入设备上预先配置。
缺省情况下,终端进行mac认证时使用的用户名和密码均为终端的mac地址。
MAC认证时使用的用户名 | 密码 | 适用场景 |
终端的MAC地址 | 两种形式:
| 客户端少量部署且MAC地址容易获取的场景,例如对少量接入网络的打印机进行认证。 |
指定的用户名 | 指定的密码 | 由于同一个接口下可以存在多个终端,此时所有终端均使用指定的用户名和密码进行MAC认证,服务器端仅需要配置一个账户即可满足所有终端的认证需求,适用于终端比较可信的网络环境。 |
DHCP选项,有三种形式:
| 指定的密码 | 该场景下终端需通过DHCP方式获取IP地址,且需保证DHCP报文能够触发MAC认证。 |
认证流程
对于MAC认证用户密码的处理,有PAP和CHAP两种方式:
PAP:设备将MAC地址、共享密钥、随机值依次排列后,经过HASH处理后封装在属性“user-password”中。
CHAP:设备将CHAP ID、MAC地址、随机值依次排列后,经过HASH处理后封装在属性“CHAP-Password”和“CHAP-Challenge”中。
pap方式
1、接入设备收到终端发送的arp/dhcp/dhcpv6/nd报文,触发MAC认证。
2、设备随机生成一个随机值,并对MAC认证用户的MAC地址、共享密钥、随机值依次排列后经过MD5算法进行HASH处理,然后将用户名、HASH处理结果以及随机值封装在RADIUS认证请求报文中发送给RADIUS服务器,请求RADIUS服务器对该终端进行MAC认证。
3、RADIUS服务器使用收到的随机值对本地数据库中对应mac认证用户进行mac地址、共享密钥、随机值依次排列后经过md5算法进行HASH处理,如果与设备发来的值相同,则向设备发送认证接受报文,表示终端mac认证成功,允许该终端访问网络。
chap方式
认证授权
认证用于确认尝试接入网络的用户身份是否合法,而授权则用于指定身份合法的用户所能拥有的网络访问权限,即用户能够访问哪些资源。授权最基础也是最常使用的授权参数是VLAN、ACL和UCL组。
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描述
ACL
用户认证成功后,认证服务器将指定ACL授权给用户,则设备会根据该ACL对用户报文进行控制。
- 如果用户报文匹配到该ACL中动作为permit的规则,则允许其通过。
- 如果用户报文匹配到该ACL中动作为deny的规则,则将其丢弃。
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,指定用户认证成功前即可访问以上网站域名。
实验案例
实验拓扑
配置思路
1、底层网络互通配置
2、交换机mac认证配置
3、ac配置
3.1、添加mac认证设备
3.2、配置认证规则
3.3、配置授权结果
3.4、配置授权规则
3.5、验证结果
具体配置
1、防火墙基础配置
#接口配置
sys fw1
int g0/0/0
ip add 192.168.0.10 24
int g0/0/1
ip add 10.1.1.10 24
int g0/0/3
ip add 192.168.1.10 24
int g0/0/2
ip add 202.100.1.10 24
#配置安全区域
fire zone trust
add int g0/0/1
fire zone dmz
add int g0/0/3
fire zone untrust
add int g0/0/2
quit
ip route-static 0.0.0.0 0 202.100.1.254
ip route-static 10.1.2.0 24 10.1.1.254
user-interface con 0
id 0
2、路由器配置
sys ISP
undo int vlanif1
acl 2000
rule permit
int g0/0/0
undo portswitch
nat outbound 2000
ip add dhcp-alloc
int g0/0/1
undo portswitch
ip add 202.100.1.254 24
quit
ip route-static 10.1.0.0 16 202.100.1.10
user-interface con 0
id 0
3、接入交换机配置MAC认证
3.1、创建并配置radius服务器模板
#配置radius
radius-server template RADIUS-POLICY
radius-server shared-key cipher [email protected]
radius-server authentication 192.168.1.100 1812
radius-server accounting 192.168.1.100 1813
quit
radius-server auththorization 192.168.1.100 shared-key cipher [email protected]
3.2、创建并配置AAA认证、计费方案
aaa
authentication-scheme AUTH
authentication-mode radius
accounting-scheme ACCOUNT
accounting-mode radius
accounting realtime 3
3.3、配置认证域,并在其上绑定aaa认证、计费方案、radius服务器模板
aaa
domain default
authentication-scheme AUTH
accounting-scheme ACCOUNT
radius-server RADIUS-POLICY
3.4、在认证模板下绑定MAC模板并在接入接口下调用认证模板
#配置MAC认证
#统一模式
#第一步:配置接入模板
mac-access-profile name MAC-ACC-PROFILE
#第二步:配置认证模板
authentication-profile name AUTH-RPOFILE
mac-access-profile MAC-ACC-PROFILE #调用MAC模板
#第三步:接口下应用认证模板
interface GigabitEthernet0/0/9
authentication-profile AUTH-RPOFILE #调用认证模
4、ac配置
4.1、增加接入设备
资源---设备--设备管理---所有设备----添加
新增设备组--接入设备,并将刚刚增加的设备接入设备移动到接入设备组
4.2、添加终端设备
资源--终端---终端列表--增加设备组
在设备组内增加设备,注意提前获知设备mac地址00-50-56-9E-CE-30
4.3、配置认证规则
创建认证规则
选择mac旁路认证业务
关联接入设备组
关联终端设备组
注意和dot1x的区别是不需要关联认证协议。
4.4、配置动态acl
4.5、配置授权结果
新增授权结果
关联动态acl
4.6、配置授权规则
新增授权规则
关联接入设备组
关联终端设备组
关联授权结果
5、验证结果
0、在终端pc上访问公网
1、在sw上检查在线用户
[sw1]dis access-user
UserID Username IP address MAC Status
19 0050569ece30 10.1.2.1 0050-569e-ce30 Success
Total: 1, printed: 1
2、检查在线用户详细信息
[sw1]dis access-user user-id 19
Basic:
User ID : 19
User name : 0050569ece30
Domain-name : default
User MAC : 0050-569e-ce30
User IP address : 10.1.2.1
User vpn-instance : -
User IPv6 address : -
User access Interface : GigabitEthernet0/0/9
User vlan event : Success
QinQVlan/UserVlan : 0/11
User vlan source : user request
User access time : 2021/02/10 09:53:31
User accounting session ID : sw100009000000011ac****0000013
Option82 information : -
User access type : MAC
Terminal Device Type : Data Terminal
Service Scheme Priority : 0
AAA:
User authentication type : MAC authentication
Current authentication method : RADIUS
Current authorization method : -
Current accounting method : RADIUS
3、ac检查日志