searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

TeleNOS交换机系统AAA功能

2024-12-06 09:31:05
2
0

1    引言
1.1    编写目的
AAA功能主要是对用户提供身份认证(Authentication)、授权(Authorization)和审计(Accounting)的服务。它通常用于网络安全领域,确保只有授权用户可以访问特定的资源或功能。
1.2    文档约定
包含综合描述、系统详细设计、系统流图,输入输出项等。
1.3    定义和缩略语
Authentication认证,验证用户的身份信息,以确保用户是合法且可信的。
Authorization授权,在用户通过认证之后,为其分配相应的访问权限。
Accounting审计,对用户在网络中的操作进行记录。流量进行复制并监控。
1.4    适用范围
天翼云自研交换机TeleNOS主线分支
2    综合描述
2.1    系统目标
在TeleNOS交换机上能够配置AAA功能,实现对登录用户进行认证、授权和审计,在交换机命令行界面中能够成功配置。
2.2    系统概述
基于TeleNOS实现AAA功能,用户能够通过SONiC-CLI配置认证、授权和审计功能通过本地或远端服务器。
1、    认证
    对要登录TeleNOS的用户进行认证,如果配置为远端则对远端用户通过远端服务器进行认证,返回认证结果到客户端。
2、    授权
    对SONiC-CLI命令进行授权,当配置远端授权时,通过SONiC-CLI输入一个命令时系统会通过mgmt-framework连接到远端服务器并对输入的命令进行校验授权并返回授权结果。当通过授权时再执行命令,并对授权结果在远端服务器进行记录。
3、    审计
    对SONiC-CLI命令进行记录,当配置远端记录时,通过SONiC-CLI输入一个命令时会自动记录到远端服务器的日志中,包括bash命令,具体实现方式和授权功能一致。
2.3    系统结构
SONiC-mgmt管理框架组件进行功能配置、Hostcfgd进程订阅configdb数据库并修改配置文件,本地或远端服务器进行AAA校验。
2.4    运行环境
天翼云自研交换机TeleNOS主线分支
2.5    程序结构说明
如下图所示,分别展示了AAA功能的配置流程和用户执行流程。AAA功能采用SONiC-CLI命令行进行配置,均由用户从终端界面进行设置,然后由mgmt-framework框架下发REST请求,将相关配置写入ConfigDB中。认证功能在写入数据库后会由Hostcfgd进行订阅消费,并将数据库与认证相关的更新写入相关的配置文件中,从而使能认证功能。授权和审计功能下发完数据库即结束配置流程完成使能,在命令下发时由mgmt-framework进行订阅。
用户登录首先进行认证,如果开启远端认证则连接远端服务器,并返回认证结果,根据认证结果决定是否允许登录,如果认证成功,则用户可以进行执行命令操作,如果开启授权功能则判断该命令用户是否有权限执行,如授权失败则不被执行,同时可开启审计功能进行命令记录。
 


 
2.6    源程序及编译链接组装说明
编译docker-sonic-mgmt-framework组件,以支持授权和审计功能,认证功能大体采用原生SONiC组件。
3    系统详细设计
如下图所示,展示了AAA功能模块在TeleNOS中的结构流程,认证模块在本地实现,在用户登录时即进行认证校验。授权和审计模块在mgmt管理框架中实现,用户在认证成功之后通过该模块可与远端服务器进行交换,进行授权校验和命令记录,且用户通过SONiC-CLI命令行能对AAA整体的功能以及对不同的远端服务器进行配置。
命令:
show aaa
显示AAA配置
 
3.1    认证功能
认证的登录方式有SSH和串口两种方式,认证分为本地和远端。具体实现按照原生SONiC社区流程进行,通过命令行下发数据库,hostcfgd进程订阅并修改配置文件,nss_tacplus负责连接tacacs+服务器并创建tacacs+用户到本地,pam-tacplus.so负责认证和授权。修改原来PAM登录失败锁定的faillock模块到common-auth-sonic配置文件中。
 
命令:
aaa authentication login default {[group {tacacs+ | radius}] [local]}*
配置登录AAA认证方式,其中group和local至少选择一项,设置为local表示认证方式走本地认证,group表示认证所用的服务器协议类型,group设置为tacacs+或radius表示进行远端服务器认证,可同时配置group和local,表示进行远端和本地认证,远端认证失败时走本地认证。
aaa authentication failthrough <enable/disable>
配置AAA认证故障转移功能,如果开启该功能,则第一个认证方法失败设备会继续尝试下一个认证方法(对应common-auth-sonic配置文件中的各个PAM模块),而不会立即停止认证过程。
3.2    授权功能
如图所示,授权功能集成并调用Python库在mgmt中连接远端服务器进行授权。当用户进入mgmt-framework并下发SONiC-CLI时,由Klish先获取用户执行的命令,然后调用Python脚本,检查ConfigDB 判断是否开启远端授权,如开启则调用Python获取ConfigDB中服务器信息,并连接远端服务器发送CLI命令到远端服务器进行授权。
 
 
上图是授权功能的命令执行流程,当用户完成认证并通过SONiC-CLI发送命令按如上所示进行授权校验,如果获取到远端服务器的授权则执行后续的REST-SERVER流程,由于原生mgmt-framework的后端实现中存在对本地用户的授权流程(admin用户可执行GET和SET操作,非admin用户只可执行GET操作)因此通过远端授权的用户不走该本地授权流程,直接执行后续的REST下发流程。
命令:
aaa authorization login default {group {tacacs+ | radius} local}
配置AAA授权功能,其中在group和local中选择一项,表示命令采用远端服务器或本地授权。
3.3    审计功能
 
如上图所示,展示了审计功能的执行流程,对于一般的Bash命令仍经过原有的Bash下的AAA流程进行审计,利用PAM的auditd插件进行。对于SONiC-CLI命令实现方式与授权方式类似,利用Python脚本进行检查configDB是否配置审计功能,如果开启该功能则将命令发送到远端服务器中。
命令:
aaa accounting default {disable | {group {tacacs+ | radius} | local}*}
配置AAA审计功能,disable表示不开启审计功能,如果开启该功能则采用远端服务器或本地审计,可以设置为同时进行本地和远端审计。
3.4    TACACS+
TACACS+(Terminal Access Controller Access Control System Plus)是一种在原有TACACS协议基础上增强的安全协议,主要用于为网络提供AAA服务。该协议通过TCP协议进行通信,对传输数据进行加密,确保用户凭据的安全性。
1、显示命令
show tacacs-server
显示tacacs+服务配置,包括全局配置和主机配置
show tacacs-server global
显示tacacs+服务全局配置
show tacacs-server host
显示tacacs+服务主机配置
2、配置命令
tacacs-server auth-type {pap | chap | mschap | login}
配置tacacs服务全局认证类型(默认pap)
tacacs-server key secret-key <secret-key>
配置tacacs服务全局共享密钥(最大65字符)
tacacs-server source-interface
{Ethernet | Loopback | Management | PortChannel | Vlan} <port >
配置tacacs服务全局源端口以选择源IP,用于发送TACACS+数据包
tacacs-server timeout <time>
配置tacacs服务全局等待服务器响应的超时时间(1-60s,默认5s)
tacacs-server host <hostname/hostIP>
[key <secret-key>] [port <server-port>] [priority <server-priority>]
[timeout <time>] [type <pap/chap/mschap/login>] [vrf <mgmt>]
配置tacacs服务器,并配置可选项:
key:指定tacacs服务器秘钥,最大65字符。
port:指定tacacs服务器端口,1-65535,默认为49。
priority:指定tacacs服务器优先级,1-64,默认为1。
timeout:指定tacacs服务器超时时间,1-60,默认为1。
type:指定tacacs服务器认证类型,可选项如上,默认为pap。
vrf:指定vrf,可选项为mgmt,默认为default。
3.5    Radius
RADIUS(Remote Authentication Dial-In User Service)是一种分布式、客户端/服务器结构的网络协议,为网络提供AAA服务。该协议利用UDP协议进行高效传输,确保只有合法用户才能访问网络资源,并记录用户行为以支持计费
1、显示命令
show radius-server
显示radius服务配置,包括全局配置和主机配置。
2、配置命令
radius-server auth-type {pap | chap | mschap}
配置radius服务全局认证类型(默认pap)。
radius-server key <secret-key>
配置radius服务全局共享密钥(最大65字符)。
radius-server nas-ip <ipv4/ipv6>
配置radius服务全局源IP,用于发送RADIUS数据包,默认mgmt端口IP。
radius-server timeout <time>
配置radius服务全局等待服务器响应的超时时间(1-60s,默认5s)。
radius-server statistics <enable/disable>
配置radius服务全局统计信息收集。
radius-server retransmit <number>
配置radius服务全局重传次数,0-10,默认3次。
radius-server host <hostname/hostIP>
[key <secret-key>] [auth-port <server-port>] [priority <server-priority>]
[timeout <time>] [auth-type <pap/chap/mschap/login>] [vrf <mgmt>]
[retransmit <number>] source-interface
{Ethernet | Loopback | Management | PortChannel | Vlan} <port >
配置tacacs服务器,并配置可选项:
key:指定radius服务器秘钥,最大65字符,默认为主机配置。
auth-port:指定radius服务器端口,1-65535,默认为1812。
auth-type:指定radius服务器认证类型,可选项如上,默认为全局配置。
priority:指定radius服务器优先级,1-64。
timeout:指定radius服务器超时时间,1-60,默认为全局配置。
retransmit:指定radius服务器重传次数,0-10,默认为全局配置。
vrf:指定vrf,可选项为mgmt。
source-interface:
配置tacacs服务全局源端口以选择源IP,用于发送RADIUS数据包

0条评论
作者已关闭评论
z****n
6文章数
0粉丝数
z****n
6 文章 | 0 粉丝
原创

TeleNOS交换机系统AAA功能

2024-12-06 09:31:05
2
0

1    引言
1.1    编写目的
AAA功能主要是对用户提供身份认证(Authentication)、授权(Authorization)和审计(Accounting)的服务。它通常用于网络安全领域,确保只有授权用户可以访问特定的资源或功能。
1.2    文档约定
包含综合描述、系统详细设计、系统流图,输入输出项等。
1.3    定义和缩略语
Authentication认证,验证用户的身份信息,以确保用户是合法且可信的。
Authorization授权,在用户通过认证之后,为其分配相应的访问权限。
Accounting审计,对用户在网络中的操作进行记录。流量进行复制并监控。
1.4    适用范围
天翼云自研交换机TeleNOS主线分支
2    综合描述
2.1    系统目标
在TeleNOS交换机上能够配置AAA功能,实现对登录用户进行认证、授权和审计,在交换机命令行界面中能够成功配置。
2.2    系统概述
基于TeleNOS实现AAA功能,用户能够通过SONiC-CLI配置认证、授权和审计功能通过本地或远端服务器。
1、    认证
    对要登录TeleNOS的用户进行认证,如果配置为远端则对远端用户通过远端服务器进行认证,返回认证结果到客户端。
2、    授权
    对SONiC-CLI命令进行授权,当配置远端授权时,通过SONiC-CLI输入一个命令时系统会通过mgmt-framework连接到远端服务器并对输入的命令进行校验授权并返回授权结果。当通过授权时再执行命令,并对授权结果在远端服务器进行记录。
3、    审计
    对SONiC-CLI命令进行记录,当配置远端记录时,通过SONiC-CLI输入一个命令时会自动记录到远端服务器的日志中,包括bash命令,具体实现方式和授权功能一致。
2.3    系统结构
SONiC-mgmt管理框架组件进行功能配置、Hostcfgd进程订阅configdb数据库并修改配置文件,本地或远端服务器进行AAA校验。
2.4    运行环境
天翼云自研交换机TeleNOS主线分支
2.5    程序结构说明
如下图所示,分别展示了AAA功能的配置流程和用户执行流程。AAA功能采用SONiC-CLI命令行进行配置,均由用户从终端界面进行设置,然后由mgmt-framework框架下发REST请求,将相关配置写入ConfigDB中。认证功能在写入数据库后会由Hostcfgd进行订阅消费,并将数据库与认证相关的更新写入相关的配置文件中,从而使能认证功能。授权和审计功能下发完数据库即结束配置流程完成使能,在命令下发时由mgmt-framework进行订阅。
用户登录首先进行认证,如果开启远端认证则连接远端服务器,并返回认证结果,根据认证结果决定是否允许登录,如果认证成功,则用户可以进行执行命令操作,如果开启授权功能则判断该命令用户是否有权限执行,如授权失败则不被执行,同时可开启审计功能进行命令记录。
 


 
2.6    源程序及编译链接组装说明
编译docker-sonic-mgmt-framework组件,以支持授权和审计功能,认证功能大体采用原生SONiC组件。
3    系统详细设计
如下图所示,展示了AAA功能模块在TeleNOS中的结构流程,认证模块在本地实现,在用户登录时即进行认证校验。授权和审计模块在mgmt管理框架中实现,用户在认证成功之后通过该模块可与远端服务器进行交换,进行授权校验和命令记录,且用户通过SONiC-CLI命令行能对AAA整体的功能以及对不同的远端服务器进行配置。
命令:
show aaa
显示AAA配置
 
3.1    认证功能
认证的登录方式有SSH和串口两种方式,认证分为本地和远端。具体实现按照原生SONiC社区流程进行,通过命令行下发数据库,hostcfgd进程订阅并修改配置文件,nss_tacplus负责连接tacacs+服务器并创建tacacs+用户到本地,pam-tacplus.so负责认证和授权。修改原来PAM登录失败锁定的faillock模块到common-auth-sonic配置文件中。
 
命令:
aaa authentication login default {[group {tacacs+ | radius}] [local]}*
配置登录AAA认证方式,其中group和local至少选择一项,设置为local表示认证方式走本地认证,group表示认证所用的服务器协议类型,group设置为tacacs+或radius表示进行远端服务器认证,可同时配置group和local,表示进行远端和本地认证,远端认证失败时走本地认证。
aaa authentication failthrough <enable/disable>
配置AAA认证故障转移功能,如果开启该功能,则第一个认证方法失败设备会继续尝试下一个认证方法(对应common-auth-sonic配置文件中的各个PAM模块),而不会立即停止认证过程。
3.2    授权功能
如图所示,授权功能集成并调用Python库在mgmt中连接远端服务器进行授权。当用户进入mgmt-framework并下发SONiC-CLI时,由Klish先获取用户执行的命令,然后调用Python脚本,检查ConfigDB 判断是否开启远端授权,如开启则调用Python获取ConfigDB中服务器信息,并连接远端服务器发送CLI命令到远端服务器进行授权。
 
 
上图是授权功能的命令执行流程,当用户完成认证并通过SONiC-CLI发送命令按如上所示进行授权校验,如果获取到远端服务器的授权则执行后续的REST-SERVER流程,由于原生mgmt-framework的后端实现中存在对本地用户的授权流程(admin用户可执行GET和SET操作,非admin用户只可执行GET操作)因此通过远端授权的用户不走该本地授权流程,直接执行后续的REST下发流程。
命令:
aaa authorization login default {group {tacacs+ | radius} local}
配置AAA授权功能,其中在group和local中选择一项,表示命令采用远端服务器或本地授权。
3.3    审计功能
 
如上图所示,展示了审计功能的执行流程,对于一般的Bash命令仍经过原有的Bash下的AAA流程进行审计,利用PAM的auditd插件进行。对于SONiC-CLI命令实现方式与授权方式类似,利用Python脚本进行检查configDB是否配置审计功能,如果开启该功能则将命令发送到远端服务器中。
命令:
aaa accounting default {disable | {group {tacacs+ | radius} | local}*}
配置AAA审计功能,disable表示不开启审计功能,如果开启该功能则采用远端服务器或本地审计,可以设置为同时进行本地和远端审计。
3.4    TACACS+
TACACS+(Terminal Access Controller Access Control System Plus)是一种在原有TACACS协议基础上增强的安全协议,主要用于为网络提供AAA服务。该协议通过TCP协议进行通信,对传输数据进行加密,确保用户凭据的安全性。
1、显示命令
show tacacs-server
显示tacacs+服务配置,包括全局配置和主机配置
show tacacs-server global
显示tacacs+服务全局配置
show tacacs-server host
显示tacacs+服务主机配置
2、配置命令
tacacs-server auth-type {pap | chap | mschap | login}
配置tacacs服务全局认证类型(默认pap)
tacacs-server key secret-key <secret-key>
配置tacacs服务全局共享密钥(最大65字符)
tacacs-server source-interface
{Ethernet | Loopback | Management | PortChannel | Vlan} <port >
配置tacacs服务全局源端口以选择源IP,用于发送TACACS+数据包
tacacs-server timeout <time>
配置tacacs服务全局等待服务器响应的超时时间(1-60s,默认5s)
tacacs-server host <hostname/hostIP>
[key <secret-key>] [port <server-port>] [priority <server-priority>]
[timeout <time>] [type <pap/chap/mschap/login>] [vrf <mgmt>]
配置tacacs服务器,并配置可选项:
key:指定tacacs服务器秘钥,最大65字符。
port:指定tacacs服务器端口,1-65535,默认为49。
priority:指定tacacs服务器优先级,1-64,默认为1。
timeout:指定tacacs服务器超时时间,1-60,默认为1。
type:指定tacacs服务器认证类型,可选项如上,默认为pap。
vrf:指定vrf,可选项为mgmt,默认为default。
3.5    Radius
RADIUS(Remote Authentication Dial-In User Service)是一种分布式、客户端/服务器结构的网络协议,为网络提供AAA服务。该协议利用UDP协议进行高效传输,确保只有合法用户才能访问网络资源,并记录用户行为以支持计费
1、显示命令
show radius-server
显示radius服务配置,包括全局配置和主机配置。
2、配置命令
radius-server auth-type {pap | chap | mschap}
配置radius服务全局认证类型(默认pap)。
radius-server key <secret-key>
配置radius服务全局共享密钥(最大65字符)。
radius-server nas-ip <ipv4/ipv6>
配置radius服务全局源IP,用于发送RADIUS数据包,默认mgmt端口IP。
radius-server timeout <time>
配置radius服务全局等待服务器响应的超时时间(1-60s,默认5s)。
radius-server statistics <enable/disable>
配置radius服务全局统计信息收集。
radius-server retransmit <number>
配置radius服务全局重传次数,0-10,默认3次。
radius-server host <hostname/hostIP>
[key <secret-key>] [auth-port <server-port>] [priority <server-priority>]
[timeout <time>] [auth-type <pap/chap/mschap/login>] [vrf <mgmt>]
[retransmit <number>] source-interface
{Ethernet | Loopback | Management | PortChannel | Vlan} <port >
配置tacacs服务器,并配置可选项:
key:指定radius服务器秘钥,最大65字符,默认为主机配置。
auth-port:指定radius服务器端口,1-65535,默认为1812。
auth-type:指定radius服务器认证类型,可选项如上,默认为全局配置。
priority:指定radius服务器优先级,1-64。
timeout:指定radius服务器超时时间,1-60,默认为全局配置。
retransmit:指定radius服务器重传次数,0-10,默认为全局配置。
vrf:指定vrf,可选项为mgmt。
source-interface:
配置tacacs服务全局源端口以选择源IP,用于发送RADIUS数据包

文章来自个人专栏
AAA
1 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0