通过引用ACL(Access Control List,访问控制列表),可以对访问设备的登录用户进行控制:
· 当未引用ACL、或者引用的ACL不存在、或者引用的ACL为空时,允许所有登录用户访问设备;
· 当引用的ACL非空时,则只有ACL中permit的用户才能访问设备,其它用户不允许访问设备,以免非法用户使用Telnet/SSH访问设备。
关于ACL的详细描述和介绍请参见“ACL和QoS配置指导”中的“ACL”。
用户登录后,可以通过AAA功能来对用户使用的命令行进行授权和计费。
7.1 配置对Telnet/SSH用户的控制
确定了对Telnet/SSH的控制策略,包括对哪些源IP、目的IP、源MAC等参数进行控制,控制的动作是允许访问还是拒绝访问,即配置好ACL。
操作
命令
说明
进入系统视图
system-view
-
使用ACL限制哪些Telnet客户端可以访问设备
telnet server aclacl-number
请根据需要选择
缺省情况下,没有使用ACL限制Telnet客户端
telnet server ipv6 acl[ ipv6 ] acl-number
(可选)开启Telnet客户端匹配ACL deny规则后打印日志信息功能
telnet server acl-deny-log enable
缺省情况下,Telnet客户端匹配ACL deny规则后打印日志信息功能处于关闭状态
表7-2 配置对SSH用户的控制
操作
命令
说明
进入系统视图
system-view
-
使用ACL限制哪些SSH客户端可以访问设备
ssh server aclacl-number
请根据需要选择
缺省情况下,没有使用ACL限制SSH客户端
ssh server acl和ssh server ipv6 acl命令的详细介绍请参见“安全命令参考”中的“SSH”
ssh server ipv6 acl[ ipv6 ] acl-number
(可选)开启SSH客户端匹配ACL deny规则后打印日志信息功能
ssh server acl-deny-log enable
缺省情况下,SSH客户端匹配ACL deny规则后打印日志信息功能处于关闭状态
ssh server acl-deny-log enable命令的详细介绍请参见“安全命令参考”中的“SSH”
7.1.3 配置举例
1. 组网需求
通过源IP对Telnet进行控制,仅允许源IP地址为10.110.100.52的Telnet用户访问设备。
2. 组网图
图7-1 使用ACL对Telnet用户进行控制
3. 配置步骤
# 定义ACL。
system-view
[AC] acl basic 2000 match-order config
[AC-acl-ipv4-basic-2000] rule 1 permit source 10.110.100.52 0
[AC-acl-ipv4-basic-2000] quit
# 开启Telnet服务并引用ACL,允许源IP地址为10.110.100.52的Telnet用户访问设备。
[AC] telnet server enable
[AC] telnet server acl 2000
# 在Host A(源IP地址为10.110.100.52的Telnet用户)上可以通过Telnet方式登录到设备。
telnet 10.110.110.66
Trying 10.110.110.66 ...
Press CTRL+K to abort
Connected to 10.110.110.66 ...
******************************************************************************
* Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.*
* Without the owner's prior written consent,
*
* no decompiling or reverse-engineering shall be allowed.
*
******************************************************************************
# 在Host B上(源IP地址不为10.110.100.52的Telnet用户)不可以通过Telnet方式登录到设备。
telnet 10.110.110.66
Trying 10.110.110.66 ...
Press CTRL+K to abort
Connected to 10.110.110.66 ...
Failed to connect to the remote host!
通过引用ACL可以对访问设备的Web用户进行控制。只有ACL中permit的用户才能使用Web访问设备,其它用户不允许访问设备,以免非法用户使用Web访问设备。关于ACL的定义请参见“ACL和QoS配置指导”中的“ACL”。
确定了对Web用户的控制策略,包括对哪些源IP进行控制,控制的动作是允许访问还是拒绝访问,即配置好ACL。
在通过源IP对Web用户进行控制时需要注意,Web登录时用户输入的用户名和密码属于敏感信息,Web登录请求是采用HTTPS的方式发送到Web服务器的。所以,如果ip https acl命令中的ACL规则拒绝客户端通过HTTPS服务访问Web页面,那么该客户端也无法通过HTTP服务访问Web页面。
表7-3 通过源IP对Web用户进行控制
操作
命令
说明
进入系统视图
system-view
-
引用访问控制列表对Web用户进行控制
ip http acl [ advanced | mac
] { acl-number|name acl-name }
HTTP和HTTPS是两种独立的登录方式,请根据需要二者任选其一
ip https acl [ advanced | mac
] { acl-number|name acl-name }
网络管理员可以通过命令行强制在线Web用户下线。
表7-4 强制在线Web用户下线
操作
命令
说明
强制在线Web用户下线
free web-users{ all | user-iduser-id | user-nameuser-name }
该命令在用户视图下执行
1. 组网需求
通过源IP对Web用户进行控制,仅允许来自10.110.100.52的Web用户访问设备。
2. 组网图
图7-2 对AC的HTTP用户进行ACL控制
3. 配置步骤
# 定义基本访问控制列表。
system-view
[AC] acl basic 2030 match-order config
[AC-acl-ipv4-basic-2030] rule 1 permit source 10.110.100.52 0
[AC-acl-ipv4-basic-2030] quit
# 开启HTTP服务并引用访问控制列表,仅允许来自10.110.100.52的Web用户访问设备。
[AC] ip http enable
[AC] ip http acl 2030
4. 验证配置
在Host B上打开浏览器,输入http://10.110.110.66,按下回车,打开Web用户登录界面,输入用户名和密码后,按下按钮,进入设备配置管理Web界面。在Host A上打开浏览器,输入http://10.110.110.66,按下回车,打开Web用户登录界面,输入用户名和密码后,按下按钮,无法进入设备配置管理Web界面。
确定了对NMS的控制策略,包括对哪些源IP进行控制,控制的动作是允许访问还是拒绝访问,即配置好ACL。
表7-5 SNMPv1/SNMPv2c版本配置对NMS的控制
操作
命令
说明
进入系统视图
system-view
-
在配置SNMP团体名的命令中引用ACL
VACM方式:
snmp-agent community { read
| write } [ simple | cipher ] community-name [
mib-view view-name
] [ acl { ipv4-acl-number |nameipv4-acl-name}
| acl ipv6{ipv6-acl-number |nameipv6-acl-name} ] *
根据网管用户运行的SNMP版本及配置习惯,可以在团体名、组名或者用户名配置时引用访问控制列表,详细介绍请参见“网络管理和监控配置指导”中的“SNMP”
配置SNMP团体名或用户名时二者选其一
RBAC方式:
snmp-agent community [ simple
| cipher ] community-name
user-role role-name
[ acl { ipv4-acl-number |nameipv4-acl-name} | acl ipv6{ipv6-acl-number| nameipv6-acl-name }] *
在配置SNMPv1/SNMPv2c用户名的命令中引用ACL
snmp-agent group { v1
| v2c } group-name
[ read-view view-name
] [ write-view view-name
] [ notify-view view-name
] [ acl { ipv4-acl-number |nameipv4-acl-name}
| acl ipv6{ipv6-acl-number| nameipv6-acl-name } ] *
snmp-agent usm-user { v1
| v2c } user-name group-name [ acl { ipv4-acl-number |nameipv4-acl-name} | acl ipv6{ipv6-acl-number| nameipv6-acl-name }] *
表7-6 SNMPv3版本配置对NMS的控制
操作
命令
说明
进入系统视图
system-view
-
在配置SNMPv3组名的命令中引用ACL
snmp-agent group v3 group-name [ authentication
| privacy ] [ read-view
view-name ] [ write-view
view-name ] [ notify-view
view-name ] [ acl {
ipv4-acl-number |nameipv4-acl-name} | acl ipv6{ipv6-acl-number| nameipv6-acl-name } ] *
根据网管用户运行的SNMP版本及配置习惯,可以在组名或者用户名配置时引用访问控制列表,详细介绍请参见“网络管理和监控配置指导”中的“SNMP”
在配置SNMPv3用户名的命令中引用ACL
VACM方式:
snmp-agent usm-user v3
user-name group-name
[ remote { ipv4-address|
ipv6 ipv6-address}
] [ { cipher| simple
} authentication-mode { md5
| sha } auth-password
[ privacy-mode { aes128
| 3des | des56 } priv-password ] ] [ acl {
ipv4-acl-number |nameipv4-acl-name} | acl ipv6{ipv6-acl-number| nameipv6-acl-name }] *
RBAC方式:
snmp-agent usm-user v3
user-name user-rolerole-name [ remote { ipv4-address| ipv6 ipv6-address} ] [ { cipher|
simple } authentication-mode
{ md5 | sha } auth-password [ privacy-mode
{ aes128 | 3des | des56} priv-password ]
] [ acl { ipv4-acl-number |nameipv4-acl-name}
| acl ipv6{ipv6-acl-number| nameipv6-acl-name }] *
1. 组网需求
通过源IP对NMS进行控制,仅允许来自10.110.100.52和10.110.100.46的NMS访问设备。
2. 组网图
3. 配置步骤
# 定义基本ACL。
system-view
[AC] acl basic 2000 match-order config
[AC-acl-ipv4-basic-2000] rule 1 permit source 10.110.100.52 0
[AC-acl-ipv4-basic-2000] rule 2 permit source 10.110.100.46 0
[AC-acl-ipv4-basic-2000] quit
# 开启SNMP Agent功能,创建SNMP用户usera并引用ACL,仅允许源IP地址为10.110.100.52或10.110.100.46的NMS访问设备。
[AC] snmp-agent
[AC] snmp-agent community read aaa acl 2000
[AC] snmp-agent group v2c groupa acl 2000
[AC] snmp-agent usm-user v2c usera groupa acl 2000
4. 验证配置
在源IP地址为10.110.100.52或10.110.100.46的NMS上,无法访问设备;在源IP地址不为10.110.100.52或10.110.100.46的NMS上,可以访问设备。
缺省情况下,用户登录设备后可以使用的命令行由用户拥有的用户角色决定。当用户线采用AAA认证方式并配置命令行授权功能后,用户可使用的命令行将受到用户角色和AAA授权的双重限制。用户每执行一条命令都会进行授权检查,只有授权成功的命令才被允许执行。
要使配置的命令行授权功能生效,还需要在ISP域视图下配置命令行授权方法。命令行授权方法可以和login用户的授权方法相同,也可以不同。相关详细介绍请参见“安全配置指导”中的“AAA”。
表7-7 配置命令行授权功能
操作
命令
说明
进入系统视图
system-view
-
进入用户线视图
line { first-number1
[ last-number1 ] | { console| vty } first-number2[ last-number2] }
二者选其一
· 用户线视图下的配置优先于用户线类视图下的配置
· 用户线视图下的配置只对该用户线生效
· 用户线类视图下的配置修改不会立即生效,当用户下次登录后所修改的配置值才会生效
· 用户线视图下的属性配置为缺省值时,将采用用户线类视图下配置的值。如果用户线类视图下的属性配置也为缺省值时,则直接采用该属性的缺省值
进入用户线类视图
line class{ console
| vty }
设置登录用户的认证方式为通过AAA认证
authentication-mode scheme
缺省情况下,用户通过虚拟Console口登录,认证方式为none(即不需要进行认证);用户通过VTY用户线登录,认证方式为password
用户线视图下,对authentication-mode和protocol inbound进行关联绑定,当两条命令中的任意一条配置了非缺省值,那么另外一条取缺省值
使能命令行授权功能
command authorization
缺省情况下,没有使能命令行授权功能,即用户登录后执行命令行不需要授权
如果用户类视图下使能了命令行授权功能,则该类型用户线视图都使能命令行授权功能,并且在该类型用户线视图下将无法禁用命令行授权功能
1. 组网需求
为了保证AC的安全,需要对登录用户执行命令的权限进行限制:用户Host A登录AC后,输入的命令必须先获得HWTACACS服务器的授权,才能执行。否则,不能执行该命令。如果HWTACACS服务器故障导致授权失败,则采用本地授权。
2. 组网图
图7-4 命令行授权配置组网图
3. 配置步骤
# 在AC上配置IP地址,以保证AC和Host A、AC和HWTACACS server之间互相路由可达。(配置步骤略)
# 开启设备的Telnet服务器功能,以便用户访问。
system-view
[AC] telnet server enable
# 配置用户登录设备时,需要输入用户名和密码进行AAA认证,可以使用的命令由认证结果决定。
[AC] line vty 0 4
[AC-line-vty0-4] authentication-mode scheme
# 使能命令行授权功能,限制用户只能使用授权成功的命令。
[AC-line-vty0-4] command authorization
[AC-line-vty0-4] quit
# 配置HWTACACS方案:授权服务器的IP地址、TCP端口号分别为192.168.2.20和49(该端口号必须和HWTACACS服务器上的设置一致),报文的加密密码是expert,登录时不需要输入域名,使用缺省域。
[AC] hwtacacs scheme tac
[AC-hwtacacs-tac] primary authentication 192.168.2.20 49
[AC-hwtacacs-tac] primary authorization 192.168.2.20 49
[AC-hwtacacs-tac] key authentication simple expert
[AC-hwtacacs-tac] key authorization simple expert
[AC-hwtacacs-tac] user-name-format without-domain
[AC-hwtacacs-tac] quit
# 配置缺省域的命令行授权AAA方案,使用tac local方案。
[AC] domain system
[AC-isp-system] authentication login hwtacacs-scheme tac local
[AC-isp-system] authorization command hwtacacs-scheme tac local
[AC-isp-system] quit
# 配置本地认证所需参数:创建本地用户monitor,密码为明文的123,可使用的服务类型为telnet,用户角色为level-1。
[AC] local-user monitor
[AC-luser-manage-monitor] password simple 123
[AC-luser-manage-monitor] service-type telnet
[AC-luser-manage-monitor] authorization-attribute user-role level-1
4. 验证配置
# 在Host A上通过Telnet方式登录到AC(IP地址为10.110.100.77),登录成功后,执行ip http enable命令,由于授权失败,提示拒绝访问。
telnet 10.110.100.77
Trying 10.110.100.77 ...
Press CTRL+K to abort
Connected to 10.110.100.77 ...
******************************************************************************
* Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.*
* Without the owner's prior written consent,
*
* no decompiling or reverse-engineering shall be allowed.
*
******************************************************************************
login: monitor
Password:
system-view
System View: return to User View with Ctrl+Z.
[AC] ip http enable
Permission denied.
[AC]
# 在Host A上通过Telnet方式登录到AC(IP地址为10.110.100.77),登录成功后,执行interface命令,由于授权成功,命令行执行成功。
[AC] interface gigabitEthernet 1/0/1
[AC-GigabitEthernet1/0/1]
当用户线采用AAA认证方式并配置命令行计费功能后,系统会将用户执行过的命令记录到HWTACACS服务器上,以便集中监视用户对设备的操作。命令行计费功能生效后,如果没有配命令行授权功能,则用户执行的每一条合法命令都会发送到HWTACACS服务器上做记录;如果配置了命令行授权功能,则用户执行的并且授权成功的命令都会发送到HWTACACS服务器上做记录。
要使配置的命令行计费功能生效,还需要在ISP域视图下配置命令行计费方法。命令行计费方法、命令行授权方法、login用户的授权方法可以相同,也可以不同。相关详细介绍请参见“安全配置指导”中的“AAA”。
表7-8 配置命令行计费功能
操作
命令
说明
进入系统视图
system-view
-
进入用户线视图
line { first-number1 [ last-number1 ] | { console
| vty } first-number2[
last-number2] }
二者选其一
· 用户线视图下的配置优先于用户线类视图下的配置
· 用户线视图下的配置只对该用户线生效
· 用户线类视图下的配置修改不会立即生效,当用户下次登录后所修改的配置值才会生效
· 用户线视图下的属性配置为缺省值时,将采用用户线类视图下配置的值。如果用户线类视图下的属性配置也为缺省值时,则直接采用该属性的缺省值
进入用户线类视图
line class{ console | vty
}
设置登录用户的认证方式为通过AAA认证
authentication-mode scheme
缺省情况下,用户通过虚拟Console口登录,认证方式为none(即不需要进行认证);用户通过VTY用户线登录,认证方式为password
用户线视图下,对authentication-mode和protocol inbound进行关联绑定,当两条命令中的任意一条配置了非缺省值,那么另外一条取缺省值
使能命令行计费功能
command accounting
缺省情况下,没有使能命令行计费功能,即计费服务器不会记录用户执行的命令行
如果用户类视图下使能了命令行计费功能,则该类型用户线视图都使能命令行计费功能,并且在该类型用户线视图下将无法禁用命令行计费功能
1. 组网需求
为便于集中控制、监控用户对设备的操作,需要将登录用户执行的命令发送到HWTACACS服务器进行记录。
2. 组网图
图7-5 命令行计费配置组网图
3. 配置步骤
# 开启AC的Telnet服务器功能,以便用户访问。
system-view
[AC] telnet server enable
# 配置使用虚拟Console口登录设备的用户执行的命令需要发送到HWTACACS服务器进行记录。
[AC] line console 0
[AC-line-console0] command accounting
[AC-line-console0] quit
# 配置使用Telnet或者SSH登录的用户执行的命令需要发送到HWTACACS服务器进行记录。
[AC] line vty 0 4
[AC-line-vty0-4] command accounting
[AC-line-vty0-4] quit
# 配置HWTACACS方案:计费服务器的IP地址、TCP端口号分别为192.168.2.20和49,报文的加密密码是expert,登录时不需要输入域名,使用缺省域。
[AC] hwtacacs scheme tac
[AC-hwtacacs-tac] primary accounting 192.168.2.20 49
[AC-hwtacacs-tac] key accounting simple expert
[AC-hwtacacs-tac] user-name-format without-domain
[AC-hwtacacs-tac] quit
# 配置缺省域的命令行计费AAA方案,使用HWTACACS方案。
[AC] domain system
[AC-isp-system] accounting command hwtacacs-scheme tac
[AC-isp-system] quit
4. 验证配置
分别在Host A、Host B、Host C上使用Telnet方式或者SSH方式登录到设备上,进行VLAN以及接口下的相关配置,设备向计费服务器发送了计费报文,计费服务器收到报文后,根据用户对计费服务器的配置,对计费报文进行相应处理。