信锐NMC对接华为AC实现授权ACL下发

This is an article that was created 450 days ago, and the information may have evolved or changed.

一个单位的无线网络要求内部员工和访客使用无线网络前进行认证

内部员工账号认证通过后能同时访问内外网资源,访客账号认证通过后仅允许访问外网资源

由于华为无线控制器内置portal认证的糟糕使用体验(无法实现MAC优先的portal认证),拟增加外置portal服务器

华为和华三的软件方案报价令人xxx,一个字“贵”

信锐的方案虽然也捆绑了硬件,但是鉴于之前的接触,服务还不错,而且还提供测试设备进行对接和功能验证测试,荐之

对接

按照信锐社区的对接配置手册就可以完成基本对接

http://bbs.sundray.com.cn/forum.php?mod=viewthread&tid=8442

ScreenCaputure230724210655

但是,在web界面点点点不是我的风格,写好脚本一把梭才符合我的气质[🉑]

重点

ScreenCaputure230724210819

根据【信锐控制器对接华为AC6005系列_V3.8.0.3.pdf】文档第2页,可以看到两行红色字提示

但是,【SUNDRAY_NMC_3.10.0_20221203.pdf】NMC手册第170页也给出了“角色将会通过 RADIUS 报文中的 Class 字段,以字符串的形式返回给 RADIUS 客户端”,这就留下了可操作的空间

ScreenCaputure230724215525

华为控制器产品手册中的RADIUS属性说明

【无线接入控制器(AC和FIT AP) V200R022C00 产品文档】-【配置】-【配置指南(通过命令行)】-【用户接入与认证配置】-【AAA配置】-【AAA原理描述】-【RADIUS认证、授权和计费】-【RADIUS属性】

ScreenCaputure230724213107

ScreenCaputure230724213215

华为ACL编号授权说明

https://support.huawei.com/enterprise/zh/doc/EDOC1000113778/f42e57ed

RADIUS服务器上配置了ACL编号下发功能,则授权信息中含有下发的ACL编号,设备端根据下发的ACL编号匹配相应的ACL规则,对用户权限进行控制

  • ACL编号下发,使用的RADIUS属性为:(011)Filter-Id
  • AC上支持接受的ACL编号取值范围为3000~3031

抓包分析信锐NMC返回的radius属性

首先在信锐NMC上配置角色,名称同华为无线控制器的配置ACL编号一致,只需填写名称,其他选项都不用

ScreenCaputure230725115751

1
2
3
4
5
6
7
8
9
10
# 华为无线控制器访客授权ACL示例,如要放行访客可以访问部分内网资源,按需修改
# 10.10.10.10 为信锐设备互联IP(不给看真实的,胡编一个)
#
acl number 3020
rule 5 permit ip destination 10.10.10.10 0
rule 10 deny ip destination 10.0.0.0 0.255.255.255
rule 15 deny ip destination 172.16.0.0 0.15.255.255
rule 20 deny ip destination 192.168.0.0 0.0.255.255
rule 25 permit ip
#

在【WEB 认证策略】-【权限设定】-【使用规则】-添加【认证类型条件】满足条件后分配角色 3020 ,此步骤对应华为NCE中的【授权规则】和【授权结果】

ScreenCaputure230725115816

ScreenCaputure230725115835

如下图,radius认证过程中,在信锐NMC返回给华为无线控制器的 Access-Accept 报文中,观察到Class属性中的值为 3020,正是在信锐NMC上配置的角色名称

ScreenCaputure230726103600

华为无线控制器配置radius属性转换

华为无线控制器RADIUS属性转换功能,属性转换主要是为了兼容不同厂商RADIUS属性定义的差别。

在本次对接中,需要将信锐返回的radius Class属性转换成Filter-Id属性,这样就实现了华为系的授权ACL下发功能(已验证,好使)

在RADIUS服务器模板视图下添加如下命令

1
2
radius-server attribute translate
radius-attribute translate Class Filter-Id receive

查看授权ACL

先根据无线终端MAC地址或IP地址查找出user-id,再执行以下命令

1
2
3
4
5
[AC] display access-user user-id xxxxx 
……
……
Dynamic ACL ID(Effective) : 3020 ……
……

总结

  • 对无线终端进行访问限制有多种方式如用户组向下绑定acl-id、流量模板、ACL,但是就这个场景只能基于用户做限制
  • 通过使用华为无线控制器上的radius属性转换功能,完成Class对Filter-Id的转换,进而实现授权ACL下发
  • 信锐无线设备中的授权是基于角色(猜的,没有看到信锐文档中的说明)
  • 华为NCE中的授权规则和授权结果与信锐NMC中的规则和角色,基本一个意思,有些许区别,不重要
  • 这个方法也是摸索出来,查阅了华为和信锐的手册,并在vmware虚拟机安装各种radius软件进行抓包检验
  • 再吐槽一句,华为的NCE代理商开的价真尼玛高,仅安装NCE软件这一项服务就好几十个K
  • 经此一役,可能要改写信锐对接手册中这一句话了(注:portal 服务器中的权限设定无法对无线用户生效,但对接 Aruba 时该角色名与 aruba设备上的认证后角色名必须保持一致才能认证通过)
使用Selenium实现登陆网站并签到 对网络设备进行批量操作的几个脚本
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×