PermitANY

Cisco ASA Object Groups & Service Objects

Cisco ASABeginner

Define reusable network objects, service objects, and object-groups on a Cisco ASA to simplify ACL management and reduce configuration complexity.

↓ example.txt

What is it?

Object-groups let you define named collections of IP addresses or services, then reference them in ACL rules. Instead of writing 10 ACL entries for 10 servers, you define one object-group with 10 members and reference it in a single ACL entry. When you add a server, you update the object-group — the ACL rule automatically covers it. This makes ASA configs dramatically easier to manage, especially in environments with many servers or services.

✓ When to use

  • ·Whenever you have more than 2-3 servers with the same firewall rules — use an object-group instead of duplicating ACL entries
  • ·For standardizing service definitions (HTTPS = tcp/443, DNS = udp/53) across multiple ACLs
  • ·Before writing any significant ACL — define your objects first, then write clean ACL rules that reference them
  • ·When you need to grant multiple source IPs access to a destination — group the sources

✗ When NOT to use

  • ·For one-off single-host rules — a direct 'object network HOST ip' is simpler
  • ·When the group changes frequently — object-groups require updating the group, not the ACL, which can be confusing if not documented

How it compares

vs ACL without objectsWithout objects: 'access-list OUTSIDE_IN permit tcp any host 10.10.10.1 eq 443' + 'permit tcp any host 10.10.10.2 eq 443' + ... for each server. With objects: define DMZ_SERVERS group, write one ACL line. Fewer entries = easier to audit.
vs Cisco IOS named ACLsIOS uses named ACLs but doesn't have object-groups with the same flexibility. ASA object-groups are more powerful and closer to how Palo Alto and Fortinet organize firewall rules.

Prerequisites

  • Network objects must be defined before being referenced in object-groups or ACLs
  • Object names must be unique — ASA will overwrite an existing object if you reuse a name
  • Objects and object-groups are global — they apply across all contexts in single-context mode

Config Generator

Verification commands

show object-group

List all defined object-groups and their members

Expected: Shows each object-group with its type and member list

show object network

List all network objects

Expected: Shows each named network object with its host/subnet value

show access-list | include object-group

Verify ACL rules that reference object-groups

Expected: Shows expanded hit counts per object within the group

Debug commands

show object-group id <name>

Show a specific object-group and which ACLs reference it

Common mistakes & fixes

Object not found error when referencing in ACL

Cause: Object name typo, or object was deleted after ACL was created

Fix: Verify the object exists with 'show object network <name>'. Check for typos — object names are case-sensitive.

ACL not matching traffic even though object-group includes the IP

Cause: Object-group updated but ASA hasn't rebuilt the ACL expansion, or using wrong object type (network vs service)

Fix: Verify 'show access-list' hit counts. Remove and re-add the ACE referencing the object-group to force a refresh.

Related configs