华为防火墙认证技术
Posted 坏坏-5
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为防火墙认证技术相关的知识,希望对你有一定的参考价值。
目录
AAA
- Authentication,认证
- 用户需要访问互联网时,需要先进行认证
- Authorization,授权
- 认证通过后,对于不同的用户给予不同的访问权限
- Accounting,计费
- 用户的访问期间,根据所做的操作和时长,进行计费
- 认证方式
- 本地认证:在认证方本地存储用户名和密码
- 优点:速度快,为运营降低成本
- 缺点:用户信息分散独立保存在每台设备上,在进行大面积部署时,每台设备都需要配置相应的用户信息
- 服务器认证:需要第三方认证服务器存储用户名和密码
- Radius/LDAP/AD/AC
- 本地认证:在认证方本地存储用户名和密码
Radius协议
- 通过建立一个唯一的用户数据库,存储用户名、密码来对用户进行验证
- USG作为网络接入服务器(NAS,Network Access Server)系统,负责把用户认证和计费信息传递给Radius服务器
- Radius服务器负责接收用户的连接请求,完成认证后,将结果返回给NAS
- Radius的传输层协议使用的时UDP协议,具有良好的实时性,同时支持重传和备用服务器机制,具有较好的可靠性
- Radius报文结构
- Code:消息类型
- Identifier:顺序递增,请求报文和响应报文的该字段必须匹配
- Length:指定Radius报文的长度
- Authenticator:验证Radius服务器的响应报文,同时用于用户密码的加密
- Attribute:Radius的属性字段,可以包含多个属性,采用三元组的结构(TLV:Type、Length、Value)表示
- 类型(Type):表示Radius的属性编号
- 长度(Length):表示该Radius属性的长度
- 属性值(Value):表示该Radius属性的信息
- Radius认证报文
- Radius计费报文
- 认证、授权、计费流程
- 用户接入网络后,发起连接请求,向Radius Client发送用户名和密码
- Radius Client向Radius Server发送包含用户名和密码信息的认证请求报文
- Radius Server对用户身份的合法性进行检验
- 检验通过,向Radius Client返回认证接受报文,其中包含了用户的授权信息
- 检验不通过,向Radius Client返回认证拒绝报文,拒绝用户接入网络
- Radius Client通知用户是否认证成功。如果认证通过,Radius Client允许用户接入,并会向Radius Server发送计费开始请求
- Radius Server返回计费开始响应报文,并开始计费
- 用户可以访问网络资源
- 在开启实时计费功能后,Radius Client会定时向Radius Server发送实时计费请求报文,避免用户异常下线导致不合理计费
- Radius Server返回实时计费响应报文,并实时计费
- 用户发起下线请求,请求停止访问网络资源
- Radius Client向Radius Server提交计费结束请求报文
- Radius Server返回计费结束响应报文,并停止计费
- Radius Client通知用户访问结束,用户结束访问网络资源
HWTACACS协议
- 华为私有协议,可以对需要登录到设备上进行操作的终端用户进行认证、授权、计费
- 主要可以对用户可以使用的命令进行授权
- 授权和计费使用不同的报文完成,Radius认证和授权使用相同的报文,计费使用一种报文
- HWTACACS协议是从Cisco的TACACS+拓展得到的,实现机制和TACACS+是相同的,所以可以直接对接TACACS+协议
- 报文结构
- 报文类型
- 认证开始报文:认证开始时,客户端向服务器发送认证开始报文,该报文中包括认证类型、用户名和一些认证数据
- 认证持续报文:客户端接收到服务器回应的认证回应报文后,如果确认认证过程没有结束,则使用认证持续报文响应
- 认证回应报文:服务器接收到客户端发送的认证开始报文或认证持续报文后,向客户端发送的唯一一种认证报文,用于向客户端反馈当前认证的状态
- 基本消息交互流程
- 用户请求登录设备,客户端收到请求后,向服务器发送认证开始报文
- 服务器返回认证回应报文,请求用户名。客户端再向用户询问用户名(用户名输入前的字段是可以更改的)
- 用户输入用户名。客户端收到用户名后,向服务器发送认证持续报文,其中包括用户名
- 服务器返回认证回应报文,请求密码。客户端再向用户询问密码(密码输入前的字段也是可以更改的)
- 用户输入密码。客户端收到密码后,向服务器发送认证持续报文,其中包括密码信息
- 服务器返回认证回应报文,指示用户通过认证
- 客户端向服务器发送授权请求报文。服务器返回授权回应报文,指示用户通过授权
- 客户端收到授权回应报文,向用户输出设备的配置界面。同时向服务器发送计费开始请求报文
- 服务器返回计费开始回应报文,指示已收到计费开始请求报文
- 用户断开连接,客户端向服务器发送计费结束请求报文
- 服务器返回计费结束回应报文,指示已收到计费结束请求报文
- HWTACACS协议与Radius协议对比
| HWTACACS | RADIUS |
端口使用 | 使用TCP协议,端口号是49 | 使用UDP协议。认证和授权端口号是1812和1813,或者1645和1646 |
加密情况 | 除了标准的HWTACACS报文头,对报文主体全部进行加密 | 只是对认证报文中的密码字段进行加密 |
认证和授权 | 认证与授权分离 | 认证与授权一起处理 |
应用 | 适于进行安全控制 | 适于进行计费 |
配置命令授权 | 支持对配置命令进行授权 | 不支持对配置命令进行授权 |
- 华为的AC可以部署为HWTACACS/Radius服务器
- 如果与防火墙对接,则需要放行相关的端口
LDAP协议
- 轻量级目录访问协议,只能做认证,不能做授权和计费
- AD即使用了LDAP协议实现,支持TCP/IP。可以把LDAP/AD理解为一个数据库,LDAP相当于是运行数据库的服务器,AD相当于是运行LDAP的服务器+LDAP应用
- dc:相当于表明是那个树,相当于mysql中哪一个数据库(DB)
- ou:相当于到达数据所经过的分支
- cn/uid:相当于MySql中表的主键id
- dn(区分名):用于标识一条记录,描述一条数据的详细路径
- cn/uid:一条记录的名字/ID
- ou:一条记录所属的组织
- dc:一条记录所属的区域
- LDAP目录数的最顶部就是根,也是所谓的基准DN。如果需要进行认证的用户都属于同一个ou,则可以直接将基准DN设置为该cn的父ou
- 因为需要存储大量的数据,并且数据不是经常更改,需要快速的查询,所以使用树形结构存储数据,查询效率更高
- DN是由基准DN(Base DN)+相对DN(RDN)组成
- 例如一条DN条目为:dn=“cn=Bad Boy,ou=com,ou=badboy,dc=www”
- 在域组件(dc)www下,有一个通用名称(cn)为Bad Boy的用户
- 隶属于组织单位(ou)badboy下的子隶属单位com
- LDAP认证流程
- 用户输入用户名/密码,发起登录请求,防火墙和LDAP服务器建立TCP连接
- 防火墙以管理员的DN向LDAP服务器发送绑定请求报文,用于获得查询权限
- 即在LDAP上需要为防火墙配置账号,并授予查询的权限
- 绑定成功后,LDAP服务器向防火墙发送绑定回应报文
- 防火墙使用用户输入的用户名向LDAP服务器发送用户DN的查询请求报文
- LDAP服务器根据用户DN进行查找,查询成功后,则返回查询回应报文
- 防火墙使用查询到的用户DN和用户输入的密码向LDAP服务器发送用户DN绑定请求报文,LDAP服务器查询用户密码是否正确
- 绑定成功后,LDAP服务器发送绑定回应报文
- 授权成功后,防火墙通知用户登录成功
部署AAA的架构
- 第一种架构,认证、授权、计费都是在本地进行,如果需要部署多台防火墙时,所有的用户需要在每台防火墙上都配置一遍
- 第二种架构实验时常使用的架构,认证、授权、计费由Radius/HWTACACS服务器完成
- 第三种结构适用于对公司内网提供认证、授权,因为对内网提供服务,所以不需要计费
- 第四种架构具备超大能力部署,部署多台Radius服务器时,只需要将Radius服务与LDAP/AD进行对接,直接管理整个域内的用户
以上内容均属原创,如有不详或错误,敬请指出。
本文作者: 坏坏
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请联系作者注明出处并附带本文链接!
以上是关于华为防火墙认证技术的主要内容,如果未能解决你的问题,请参考以下文章