Home > Articles > Cisco > CCNP Security

IOS Zone-based Firewall Configuration Overview

📄 Contents

  1. IOS Zone-based Firewall Configuration
  2. Summary
  • Print
  • + Share This
As reviewed in the zone-based firewall fundamentals article, it is important that the basic concepts of zone-based firewalls be understood in order for a good configuration to be designed and implemented. In this article, Sean Wilkins reviews these concepts and offers some steps for proper configuration.
From the author of

A zone-based firewall configuration starts with a review of the different security zones which exist within the network architecture. These defined security zones are then configured on the zone-based firewall in order to enforce policies both between and within zones (if needed). Once these security zones are defined, the next step is to figure out the direction that traffic flows between these defined zones. Once these are calculated, policies can then be created and assigned based on the direction and security requirements.

The direction and policies for these flows between the different zones is configured using zone-pairs. Each of the zone-pairs is unidirectional and allows different policies to be assigned depending on the source and destination zone, the exception to this is return traffic which is allowed by default. By default, if no zone-pair is created between zones then no traffic is allowed.

In order to ensure a solid understanding of the zone-based firewall configuration, a common zone-based firewall implementation will be used and configured using the required commands through this article. This common configuration includes three configured zones, a private zone (inside), a public zone (outside), and a DMZ zone. The private zone contains all devices on the internal organizational network. The public zone would commonly be the Internet and the DMZ zone would commonly contain the public servers for the organization including the web and mail servers. An illustration of this configuration is shown in Figure 1.

Figure 1 Basic Zone Example

Once the zones configuration has been completed, the next step is to figure out the zone-pairs that will be required to enforce the traffic policies defined. When using this sample configuration, the common zone-pair configurations are shown in Figure 2 and detailed below:

Figure 2 Basic Zone Configuration Example

  • Between the private and public zones: Typically this would only require one zone-pair as return traffic is allowed by default and no traffic should be directly allowed into the inside of the organizational network.
  • Between the private and the DMZ zones: This would be a limited connection in order to allow connections back to secondary database or management servers. In this case, the number of zone-pairs configured would depend on what zone traffic would be initiated from. If traffic was only initiated from the DMZ zone to these secondary servers then only one zone-pair would be required as the return traffic would again be allowed by default. In this example the configuration will use this scenario.
  • Between the public and the DMZ zones: This would be the main connection between the outside world and the public organization servers. In this case it is common for a single zone-pair to be configured from the public into the DMZ zone.

When configuring the policy onto the zone-pairs, there are three main actions which can be used:

  • Pass: When configured to pass, traffic that is matched by the configuration is allowed without inspection.
  • Drop: When configured to drop, traffic that is matched by the configuration is dropped
  • Inspect: When configured to inspect, traffic is put through a stateful packet inspection. While inspected, traffic flows will be defined and recorded in order to keep track of expected return traffic.

IOS Zone-based Firewall Configuration

The first thing that must be configured when setting up a zone-based firewall configuration are the different firewall policies. These policies are then associated to their respective zone-pair in a later step. When configuring zone-based firewall policy, the Cisco Common Classification Policy Language (C3PL) is used that closely resembles the Modular QoS CLI (MQC) structure. When using C3PL, the following general steps are followed:

  1. Traffic match criteria are configured with a class-map statement.
  2. Actions are associated with these match criteria using the policy-map statement.
  3. Policy maps are attached to a zone-pair using the service-policy statement.

In order to create and configure a class map, the traffic matching criteria must be known. The main methods of matching traffic include:

  • Matching based on a previously configured ACL
  • Matching based on the traffic protocol

The following steps are followed in order to create a class-map and match criteria:

  1. Enter global configuration mode:
  2. router#configure terminal

  3. Configure the class-map:
  4. router(config)#class-map type inspect [match-any | match-all] class-map-name

  5. Configure a matching statement based on a previously configured ACL (optional):
  6. router(config-cmap)#match access-group {access-group | name access-group-name}

  7. Configure a matching statement based on the traffic protocol (optional):
  8. router(config-cmap)# match protocol protocol-name

The next part involves the configuration of a policy map. The policy map matches traffic based on a configured class map and then associates a specific action to the matched traffic.

The following steps are followed in order to create a policy-map, match traffic with a configured class-map, and assign a specific policy action.

  1. Enter global configuration mode:
  2. router#configure terminal

  3. Configure the policy-map:
  4. router(config)#policy-map type inspect policy-map-name

  5. Configure a matching class-map:
  6. router(config-pmap)#class type inspect class-name

  7. Configure the use of Cisco IOS stateful packet inspection (action) on matched traffic (optional):
  8. router(config-pmap-c)#inspect [parameter-map-name]

  9. Configure the pass action on matched traffic (optional):
  10. router(config-pmap-c)#pass

  11. Configure the drop action on matched traffic (optional):
  12. router(config-pmap-c)#drop

When setting up a zone-based firewall configuration, the zones must be configured next. The configuration of the zones is rather simple and is shown below:

  1. Enter global configuration mode:
  2. router#configure terminal

  3. Configure the zone:
  4. router(config)#zone security zone-name

  5. Configure a description for the zone (optional):
  6. router(config-sec-zone)#description line-of-description

Once all of the zones have been configured, the next step is to configure the required zone-pairs and their associated policies (policy-maps). The configuration of zone-pairs is shown below:

  1. Enter global configuration mode:
  2. router#configure terminal

  3. Configure the zone-pair:
  4. router(config)#zone-pair security zone-pair name [source source-zone-name | self] destination [self | destination-zone-name]

  5. Configure a description for the zone-pair (optional):
  6. router(config-sec-zone-pair)#description line-of-description

  7. Attach a firewall policy map to the zone-pair:
  8. router(config-sec-zone-pair)# service-policy type inspect policy-map-name

The last step is to assign the interfaces on the router into their respective zones; this configuration is shown below:

  1. Enter global configuration mode:
  2. router#configure terminal

  3. Enter interface configuration mode for the interface:
  4. router(config)#interface type number

  5. Assign a zone onto the interface:
  6. router(config-if)#zone-member security zone-name

In order to solidify a basic understanding of zone-based firewall configuration, the following commands would be used to configure the example shown in Figure 2 above (this configuration assumes HTTP as a matching protocol on each zone-pair):

  1. Configure the class-map (multiple can be configured):
  2. router(config)#class-map type inspect sample-class

    router(config-cmap)#match protocol http

  3. Configure the policy-map (multiple can be configured):
  4. router(config)#policy-map type inspect sample-policy

    router(config-pmap)# class type inspect sample-class

    router(config-pmap-c)#inspect

  5. Configure the zones:
  6. router(config)# zone security DMZ

    router(config)# zone security Public

    router(config)# zone security Private

  7. Configure the zone-pairs:
  8. router(config)# zone-pair security private-pubic-pair source Private destination Public

    router(config-sec-zone-pair)# service-policy type inspect sample-policy

    router(config)# zone-pair security private-DMZ-pair source Private destination DMZ

    router(config-sec-zone-pair)# service-policy type inspect sample-policy

    router(config)# zone-pair security Public-DMZ-pair source Public destination DMZ

    router(config-sec-zone-pair)# service-policy type inspect sample-policy

  9. Assign a zone onto the interface:
  10. router(config)#interface F0/0

    router(config-if)#zone-member security Private

    router(config)#interface F0/1

    router(config-if)#zone-member security Public

    router(config)#interface F0/2

    router(config-if)#zone-member security DMZ

  • + Share This
  • 🔖 Save To Your Account