The Cisco IOS Firewall Feature Set
What the Cisco IOS Firewall Feature Set Can Do for You
Companies around the globe are closely reviewing the security of their networks. Implementing network-wide security can turn out to be a daunting task, depending upon the size and the business of the company. As a result, designing a secure network mandates proper planning and investment: The cost in ease of use and in resources to implement a network security policy must be weighed against the costs and possibility of network security breaches. Fortunately, the Cisco IOS Firewall Feature Set is designed for organizations that cannot use a traditional firewall due to financial constraints or implementation complexity.
The Cisco IOS Firewall Feature Set can be added to the existing IOS to provide the functionality of a firewall without expensive hardware upgrades. The Cisco IOS Firewall Feature Set has two components:
- Context-Based Access Control (CBAC)
- Intrusion Detection
Intrusion Detection is the optional module of the Cisco IOS Firewall Feature Set.
What Is CBAC?
The Context-Based Access Control (CBAC) feature inspects TCP and UDP packets at the application layer. CBAC monitors all the outgoing requests by creating temporary openings for outbound traffic at the firewall interface. The return traffic is allowed in only if it is the part of the original outgoing traffic. CBAC inspects all the outgoing packets and maintains state information for every session. CBAC then decides whether to deny or permit the incoming traffic, based on its state information.
In Figure 1, User A is telnetting to a server on the Internet. When the outbound traffic hits the Internet interface S0, the CBAC creates temporary opening to permit the traffic to the server. This information is maintained in the session state table. The return traffic is permitted because the session state table indicates that inbound packets are part of the original session that was initiated by User A.
Figure 1 The CBAC inspection process.
The other features of CBAC are as follows:
CBAC can inspect many application-layer protocols, including RealAudio, SMTP, TFTP, SQL*NET, FTP, VDOLive, H.323, and Java. Many administrators see Java applets as a threat to the network security, and CBAC can be used to block users from downloading malicious Java applets. CBAC provides the flexibility of downloading Java code from trusted sites, but it restricts untrusted sites. In this example, the ip inspect command sets up the rule PERMIT_JAVA to allow all users permitted by standard access list 10 to download Java applets:
ip inspect name PERMIT_JAVA http java-list 10 access-list 10 permit 22.214.171.124 0.0.0.255 access-list 10 any
CBAC provides strong protection against denial-of-service (DoS) attacks. It logs real-time alerts if it detects a DoS attack, and it uses the following commands to prevent DoS attacks:
ip inspect max-incomplete high 500This global command instructs IOS to start deleting the half-open sessions if the number of existing sessions is 500. The number of half-open sessions cannot exceed 500.
ip inspect max-incomplete low 400This global command instructs IOS to stop deleting the half-open sessions if the number of existing half-open sessions is 400.
ip inspect one-minute high 500This global command instructs IOS to start deleting the half-open sessions if the rate of half-open TCP sessions exceeds 500 sessions per minute.
ip inspect one-minute low 400This global command instructs IOS to stop deleting the half-open sessions if the rate of half-open TCP session falls to 400 sessions per minute.
ip inspect tcp synwait-time 30This global command defines the wait time before a half-open TCP session is dropped.
CBAC has capability to set an audit trail. These audit trails are very detail-oriented and can be configured on a per-application basis. Detailed reporting includes time stamps, source and destination addresses, duration, and total number of bytes transferred. Alerts can be configured to be sent to the console, buffer, or Syslog server. By default, audit trails are disabled. They can be enabled by using the ip inspect audit-trail command.