Prerequisites for ACL Support for Filtering IP Options
Before you configure the ACL Support for Filtering IP Options feature, you must understand the concepts of the IP access lists.
The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
The ACL Support for Filtering IP Options feature describes how to use an IP access list to filter IP packets that contain IP options to prevent devices from becoming saturated with spurious packets.
This module also describes the ACL TCP Flags Filtering feature and how to use an IP access list to filter IP packets that contain TCP flags. The ACL TCP Flags Filtering feature allows you to select any combination of flags on which to filter. The ability to match on a flag set and on a flag not set gives you a greater degree of control for filtering on TCP flags, thus enhancing security.
Before you configure the ACL Support for Filtering IP Options feature, you must understand the concepts of the IP access lists.
Information About ACL Support for Filtering IP Options
IP uses four key mechanisms in providing its service: Type of Service, Time to Live, Options, and Header Checksum.
The Options, commonly referred to as IP Options, provide for control functions that are required in some situations but unnecessary for the most common communications. IP Options include provisions for time stamps, security, and special routing.
IP Options may or may not appear in datagrams. They must be implemented by all IP modules (host and gateways). What is optional is their transmission in any particular datagram, not their implementation. In some environments the security option may be required in all datagrams.
The option field is variable in length. There may be zero or more options. IP Options can have one of two formats:
Format 1: A single octet of option-type.
Format 2: An option-type octet, an option-length octet, and the actual option-data octets.
The option-length octet counts the option-type octet, the option-length octet, and the option-data octets.
The option-type octet is viewed as having three fields: a 1-bit copied flag, a 2-bit option class, and a 5-bit option number. These fields form an 8-bit value for the option type field. IP Options are commonly referred to by their 8-bit value.
For a complete list and description of IP Options, refer to RFC 791, Internet Protocol at the following URL: http://www.faqs.org/rfcs/rfc791.html
Filtering of packets that contain IP Options from the network relieves downstream devices and hosts of the load from options packets.
This feature also minimizes load to the Route Processor (RP) for packets with IP Options that require RP processing on distributed systems. Previously, the packets were always routed to or processed by the RP CPU. Filtering the packets prevents them from impacting the RP.
The ACL TCP Flags Filtering feature provides a flexible mechanism for filtering on TCP flags. Previously, an incoming packet was matched as long as any TCP flag in the packet matched a flag specified in the access control entry (ACE). This behavior allows for a security loophole, because packets with all flags set could get past the access control list (ACL). The ACL TCP Flags Filtering feature allows you to select any combination of flags on which to filter. The ability to match on a flag set and on a flag not set gives you a greater degree of control for filtering on TCP flags, thus enhancing security.
Because TCP packets can be sent as false synchronization packets that can be accepted by a listening port, it is recommended that administrators of firewall devices set up some filtering rules to drop false TCP packets.
The ACEs that make up an access list can be configured to detect and drop unauthorized TCP packets by allowing only the packets that have a very specific group of TCP flags set or not set. The ACL TCP Flags Filtering feature provides a greater degree of packet-filtering control in the following ways:
You can select any desired combination of TCP flags on which to filter TCP packets.
You can configure ACEs to allow matching on a flag that is set, as well as on a flag that is not set.
The table below lists the TCP flags, which are further described in RFC 793, Transmission Control Protocol.
TCP Flag |
Purpose |
---|---|
ACK |
Acknowledge flag—Indicates that the acknowledgment field of a segment specifies the next sequence number the sender of this segment is expecting to receive. |
FIN |
Finish flag—Used to clear connections. |
PSH |
Push flag—Indicates the data in the call should be immediately pushed through to the receiving user. |
RST |
Reset flag—Indicates that the receiver should delete the connection without further interaction. |
SYN |
Synchronize flag—Used to establish connections. |
URG |
Urgent flag—Indicates that the urgent field is meaningful and must be added to the segment sequence number. |
How to Configure ACL Support for Filtering IP Options
Complete these steps to configure an access list to filter packets that contain IP options and to verify that the access list has been configured correctly.
Note |
|
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enables privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
ip access-list extended access-list-name Example:
|
Specifies the IP access list by name and enters named access list configuration mode. |
Step 4 |
[sequence-number ] deny protocol source source-wildcard destination destination-wildcard [option option-value ] [precedence precedence ] [tos tos ] [log ] [time-range time-range-name ] [fragments ] Example:
|
(Optional) Specifies a deny statement in named IP access list mode.
|
Step 5 |
[sequence-number ] permit protocol source source-wildcard destination destination-wildcard [option option-value ] [precedence precedence ] [tos tos ] [log ] [time-range time-range-name ] [fragments ] Example:
|
Specifies a permit statement in named IP access list mode.
|
Step 6 |
Repeat Step 4 or Step 5 as necessary. |
Allows you to revise the access list. |
Step 7 |
end Example:
|
(Optional) Exits named access list configuration mode and returns to privileged EXEC mode. |
Step 8 |
show ip access-lists access-list-name Example:
|
(Optional) Displays the contents of the IP access list. |
This task configures an access list to filter packets that contain TCP flags and verifies that the access list has been configured correctly.
Note |
|
Caution |
If a device having ACEs with the new syntax format is reloaded with a previous version of the Cisco software that does not support the ACL TCP Flags Filtering feature, the ACEs will not be applied, leading to possible security loopholes. |
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enables privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
ip access-list extended access-list-name Example:
|
Specifies the IP access list by name and enters named access list configuration mode. |
Step 4 |
[sequence-number ] permit tcp source source-wildcard [operator [port ]] destination destination-wildcard [operator [port ]] [established | {match-any | match-all } {+ | - } flag-name ] [precedence precedence ] [tos tos ] [log ] [time-range time-range-name ] [fragments ] Example:
|
Specifies a permit statement in named IP access list mode.
|
Step 5 |
[sequence-number ] deny tcp source source-wildcard [operator [port ]] destination destination-wildcard [operator [port ]] [established | {match-any | match-all } {+ | - } flag-name ] [precedence precedence ] [tos tos ] [log ] [time-range time-range-name ] [fragments ] Example:
|
(Optional) Specifies a deny statement in named IP access list mode.
|
Step 6 |
Repeat Step 4 or Step 5 as necessary, adding statements by sequence number where you planned. Use the no sequence-number command to delete an entry. |
Allows you to revise the access list. |
Step 7 |
end Example:
|
(Optional) Exits the configuration mode and returns to privileged EXEC mode. |
Step 8 |
show ip access-lists access-list-name Example:
|
(Optional) Displays the contents of the IP access list.
|
Configuration Examples for ACL Support for Filtering IP Options
The following example shows an extended access list named mylist2 that contains access list entries (ACEs) that are configured to permit TCP packets only if they contain the IP Options that are specified in the ACEs:
ip access-list extended mylist2
10 permit ip any any option eool
20 permit ip any any option record-route
30 permit ip any any option zsu
40 permit ip any any option mtup
The show access-list command has been entered to show how many packets were matched and therefore permitted:
Device# show ip access-list mylist2
Extended IP access list test
10 permit ip any any option eool (1 match)
20 permit ip any any option record-route (1 match)
30 permit ip any any option zsu (1 match)
40 permit ip any any option mtup (1 match)
The following access list allows TCP packets only if the TCP flags ACK and SYN are set and the FIN flag is not set:
ip access-list extended aaa
permit tcp any any match-all +ack +syn -fin
end
The show access-list command has been entered to display the ACL:
Device# show access-list aaa
Extended IP access list aaa
10 permit tcp any any match-all +ack +syn -fin
Related Topic |
Document Title |
---|---|
Cisco security commands |
RFC |
Title |
---|---|
RFC 791 |
Internet Protocol |
RFC 793 |
Transmission Control Protocol |
RFC 1393 |
Traceroute Using an IP Option |
Description |
Link |
---|---|
The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password. |
The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Feature Name |
Releases |
Feature Configuration Information |
---|---|---|
ACL Support for Filtering IP Options |
Cisco IOS 15.2(2)E |
This feature allows you to filter packets having IP Options, in order to prevent routers from becoming saturated with spurious packets. |
ACL TCP Flags Filtering |
Cisco IOS 15.2(2)E |
This feature provides a flexible mechanism for filtering on TCP flags. The ACL TCP Flags Filtering feature allows you to select any combination of flags on which to filter. The ability to match on a flag set and on a flag not set gives you a greater degree of control for filtering on TCP flags, thus enhancing security. |