object-group
要定义可用于优化配置的对象组,请在全局配置模式下使用 object-group 命令。使用此命 no 令的形式从配置中删除对象组。
object-group{ protocol | network | icmp-type | security | user | network-service} grp_name
object-group servicegrp_name [ tcp | udp | tcp-udp]
Syntax Description
grp_name |
标识对象组(1 到 64 个字符),可以是字母、数字以及“_”、“-”、“。” 的任意组合。个字符。 |
||
icmp-type |
(不推荐,请使用 service 。)定义一组 ICMP 类型,例如 echo 和 echo-reply。输入 object-groupicmp-type 命令后,使用 icmp-object 和 group-object 命令添加 ICMP 对象。 |
||
network |
定义一组主机或子网 IP 地址。输入 object-groupnetwork 命令后,使用 network-object 和 group-object 命令添加网络对象。您可以创建一个混合有 IPv4 和 IPv6 地址的组。
|
||
network-service |
使用可选服务规范定义一组子网或域名。输入此命令后,使用 network-service-member 命令添加网络服务对象,或使用 domain 和 subnet 命令直接添加成员。 |
||
protocol |
(不推荐,请使用 service 。)定义一组协议,例如 TCP 和 UDP。输入 object-groupprotocol 命令后,使用 protocol-object 和 group-object 命令添加协议对象。 |
||
security |
定义与思科 TrustSec 配合使用的安全组对象。输入 object-groupprotocol 命令后,使用 security-group 和 group-object 命令添加安全组对象。 |
||
service [tcp|udp|tcp-udp |
根据协议、ICMP 类型和 TCP/UDP/SCTP 端口定义服务。 要定义混合服务组或 SCTP 端口,请不要为对象组指定协议类型。输入命令 object-groupservice 后,使用 service-object 和 命令将服务对象添加到服务组中。 group-object 这是首选方法,即使对象旨在仅包含 TCP 或 UDP(或两者)端口列表。 不建议在 object-group service 命令中直接使用 tcp 、 udp 和 tcp-udp 关键字。相反,请将这些关键字放在命令之外,并在 service-object 命令上配置 TCP 和 UDP 端口。如果您包含其中一个关键字,请使用 port-object 和 group-object 命令添加端口组。 |
||
user |
定义可用于控制身份防火墙访问的用户和用户组。输入 object-groupprotocol 命令后,使用 user 、 user-group 和 group-object 命令添加用户和用户组对象。 |
Command Default
无默认行为或值。
Command Modes
下表展示可输入命令的模式:
命令模式 |
防火墙模式 |
安全情景 |
|||
---|---|---|---|---|---|
路由 |
透明 |
一个 |
多个 |
||
情景 |
系统 |
||||
全局配置 |
|
|
|
|
— |
Command History
版本 |
修改 |
---|---|
7.0(1) |
添加了此命令。 |
8.4(2) |
添加了对 user 关键字的支持以支持身份防火墙。 |
9.0(1) |
您现在可以创建支持 IPv4 和 IPv6 地址混合的网络对象组。 添加了对 security 关键字的支持以支持思科 TrustSec。 |
9.14 |
该关 icmp-type 键字已被弃用。请使用 service 关键字,并在对象中指定 serviceicmp 。 |
9.17(1) |
添加了 network-service 关键字。 |
Usage Guidelines
可以对主机或服务等对象进行分组,然后可以在 ACL (access-list ) 和 NAT (nat ) 等功能中使用对象组。此示例显示如何在 ACL 中使用网络对象组:
ciscoasa(config)# access-list access_list_name extended permit tcp any object-group NWgroup1
您可以按层次结构对命令进行分组;;对象组可以是其他对象组的成员。
Examples
以下示例显示如何使用 object-groupnetwork 命令创建网络对象组:
ciscoasa(config)# object-group network sjc_eng_ftp_servers
ciscoasa(config-network-object-group)# network-object host sjc.eng.ftp.servcers
ciscoasa(config-network-object-group)# network-object host 172.23.56.194
ciscoasa(config-network-object-group)# network-object 192.1.1.0 255.255.255.224
ciscoasa(config-network-object-group)# exit
以下示例显示如何使用 object-groupnetwork 命令创建包含现有对象组的网络对象组:
ciscoasa(config)# object-group network sjc_ftp_servers
ciscoasa(config-network-object-group)# network-object host sjc.ftp.servers
ciscoasa(config-network-object-group)# network-object host 172.23.56.195
ciscoasa(config-network-object-group)# network-object 193.1.1.0 255.255.255.224
ciscoasa(config-network-object-group)# group-object sjc_eng_ftp_servers
ciscoasa(config-network-object-group)# exit
以下示例显示如何使用 group-object 模式创建一个包含先前定义的对象的新对象组,以及如何在一个 ACL 中使用这些对象:
ciscoasa(config)# object-group network host_grp_1
ciscoasa(config-network-object-group)# network-object host 192.168.1.1
ciscoasa(config-network-object-group)# network-object host 192.168.1.2
ciscoasa(config-network-object-group)# exit
ciscoasa(config)# object-group network host_grp_2
ciscoasa(config-network-object-group)# network-object host 172.23.56.1
ciscoasa(config-network-object-group)# network-object host 172.23.56.2
ciscoasa(config-network-object-group)# exit
ciscoasa(config)# object-group network all_hosts
ciscoasa(config-network-object-group)# group-object host_grp_1
ciscoasa(config-network-object-group)# group-object host_grp_2
ciscoasa(config-network-object-group)# exit
ciscoasa(config)# access-list grp_1 permit tcp object-group host_grp_1 any eq ftp
ciscoasa(config)#access-list grp_2 permit tcp object-group host_grp_2 any eq smtp
ciscoasa(config)#access-list all permit tcp object-group all_hosts any eq www
如果没有 group-object 命令,则需要定义 all_hosts 组,以包含 host_grp_1 和 host_grp_2 中已定义的所有 IP 地址。使用 group-object 命令,可以消除主机的重复定义。
以下示例显示如何将 TCP 和 UDP 服务添加到服务对象组:
ciscoasa(config)# object-group service CommonApps
ciscoasa(config-service-object-group)# service-object tcp destination eq ftp
ciscoasa(config-service-object-group)# service-object tcp-udp destination eq www
ciscoasa(config-service-object-group)# service-object tcp destination eq h323
ciscoasa(config-service-object-group)# service-object tcp destination eq https
ciscoasa(config-service-object-group)# service-object udp destination eq ntp
以下示例显示如何将多个服务对象添加到服务对象组:
ciscoasa(config)# object-group service SSH
ciscoasa(config-service-object)# service tcp destination eq ssh
ciscoasa(config)# object-group service EIGRP
ciscoasa(config-service-object)# service eigrp
ciscoasa(config)# object-group service HTTPS
ciscoasa(config-service-object)# service tcp source range 0 1024 destination eq https
ciscoasa(config)# object-group service Group1
ciscoasa(config-service-object-group)# group-object SSH
ciscoasa(config-service-object-group)# group-object EIGRP
ciscoasa(config-service-object-group)# group-object HTTPS
以下示例显示如何在服务对象组中添加协议、端口和 ICMP 混合规格:
ciscoasa(config)# object-group service mixed
ciscoasa(config-service-object-group)# service-object tcp destination eq ftp
ciscoasa(config-service-object-group)# service-object tcp-udp destination eq www
ciscoasa(config-service-object-group)# service-object ipsec
ciscoasa(config-service-object-group)# service-object tcp destination eq domain
ciscoasa(config-service-object-group)# service-object icmp echo
以下示例显示如何使用 service-object 子命令,该命令对于对 TCP 和 UDP 服务进行分组非常有用:
ciscoasa(config)# object-group network remote
ciscoasa(config-network-object-group)# network-object host kqk.suu.dri.ixx
ciscoasa(config-network-object-group)# network-object host kqk.suu.pyl.gnl
ciscoasa(config)# object-group network locals
ciscoasa(config-network-object-group)# network-object host 209.165.200.225
ciscoasa(config-network-object-group)# network-object host 209.165.200.230
ciscoasa(config-network-object-group)# network-object host 209.165.200.235
ciscoasa(config-network-object-group)# network-object host 209.165.200.240
ciscoasa(config)# object-group service usr_svc
ciscoasa(config-service-object-group)# service-object tcp destination eq www
ciscoasa(config-service-object-group)# service-object tcp destination eq https
ciscoasa(config-service-object-group)# service-object tcp destination eq pop3
ciscoasa(config-service-object-group)# service-object udp destination eq ntp
ciscoasa(config-service-object-group)# service-object udp destination eq domain
ciscoasa(config)# access-list acl extended permit object-group usr_svc object-group locals object-group remote
以下示例显示如何使用 object-groupuser 命令创建用户组对象:
ciscoasa(config)# object-group user sampleuser1-group
ciscoasa(config-object-group user)# description group members of sampleuser1-group
ciscoasa(config-object-group user)# user-group EXAMPLE\\group.sampleusers-all
ciscoasa(config-object-group user)# user EXAMPLE\user2
ciscoasa(config-object-group user)# exit
ciscoasa(config)# object-group user sampleuser2-group
ciscoasa(config-object-group user)# description group members of sampleuser2-group
ciscoasa(config-object-group user)# group-object sampleuser1-group
ciscoasa(config-object-group user)# user-group EXAMPLE\\group.sampleusers-marketing
ciscoasa(config-object-group user)# user EXAMPLE\user3
(不建议使用,请改用服务对象。)以下示例显示如何使用 object-group icmp-type 模式创建 ICMP 对象组:
ciscoasa(config)# object-group icmp-type icmp-allowed
ciscoasa(config-icmp-object-group)# icmp-object echo
ciscoasa(config-icmp-object-group)# icmp-object time-exceeded
ciscoasa(config-icmp-object-group)# exit
(不建议使用,请改用服务对象。)以下示例显示如何使用 object-groupprotocol 模式创建协议对象组:
ciscoasa(config)# object-group protocol proto_grp_1
ciscoasa(config-protocol-object-group)# protocol-object udp
ciscoasa(config-protocol-object-group)# protocol-object ipsec
ciscoasa(config-protocol-object-group)# exit
ciscoasa(config)# object-group protocol proto_grp_2
ciscoasa(config-protocol-object-group)# protocol-object tcp
ciscoasa(config-protocol-object-group)# group-object proto_grp_1
ciscoasa(config-protocol-object-group)# exit
(不建议使用,无需使用 tcp 关键字,而是使用 service-object 命令定义端口。)以下示例显示如何使用 object-groupservice 模式创建 TCP 端口对象组:
ciscoasa(config)# object-group service eng_service tcp
ciscoasa(config-service-object-group)# group-object eng_www_service
ciscoasa(config-service-object-group)# port-object eq ftp
ciscoasa(config-service-object-group)# port-object range 2000 2005
ciscoasa(config-service-object-group)# exit
以下示例显示如何使用对象组简化访问列表配置。此分组支持在 1 行中配置访问列表,而不是在不使用分组的情况下需要 24 行。
ciscoasa(config)# object-group network remote
ciscoasa(config-network-object-group)# network-object host 10.1.1.15
ciscoasa(config-network-object-group)# network-object host 10.1.1.16
ciscoasa(config)# object-group network locals
ciscoasa(config-network-object-group)# network-object host 209.165.200.225
ciscoasa(config-network-object-group)# network-object host 209.165.200.230
ciscoasa(config-network-object-group)# network-object host 209.165.200.235
ciscoasa(config-network-object-group)# network-object host 209.165.200.240
ciscoasa(config)# object-group service eng_svc tcp
ciscoasa(config-service-object-group)# port-object eq www
ciscoasa(config-service-object-group)# port-object eq smtp
ciscoasa(config-service-object-group)# port-object range 25000 25100
ciscoasa(config)# access-list acl extended permit tcp object-group remote object-group locals object-group eng_svc
![]() 注 |
showrunning-configaccess-list 命令显示配置的对象组名称的访问列表。 showaccess-list 命令显示此信息以及使用组扩展为单个条目(不含其对象分组)的访问列表条目。 |
以下示例使用先前定义的网络服务对象配置一组 SaaS 应用程序。
object-group network-service SaaS_Applications
description This group includes relevant 'Software as a Service' applications
network-service-member "outlook 365"
network-service-member webex
network-service-member box