firewall analyzer
Home    Contact
Webcast Registration   Go
  Products Services News About Us Resources Blog  

Posts Tagged ‘firewall configuration migration’

Migrating Firewall Configurations, part 4

Tuesday, October 4th, 2011

In this series of posts, we have examined some of the challenges involved in migrating firewall configurations between different firewall platforms and discuss some strategies for approaching these issues.  The first post introduced the basic firewall configuration elements that have to be migrated and discussed some of the issues in converting routing table entries, and network and service objects.  The second post examined some of the issues involved in migrating ACL or filtering rules.  The third post discussed the challenges of migrating network address translation (NAT) rules.  In this post, we will examine the issue of validating the migrated policy in the target firewall.

Validation

Once the source firewall configuration has been migrated to the target, you will want to validate that the conversion has been done correctly.  There are two aspects to this process.  The first is to ensure that all elements in the source configuration have been accurately and completely transferred to the target.  This is typically done by a object-by-object and rule-by-rule comparison of the two configurations.  Each object definition and rule in the source is traced to the corresponding object definition and rule in the target.  In many cases, this is not actually a one-to-one correspondence because architectural differences between platforms may force one source object or rule to be decomposed into multiple objects or rules in the target.  This is particularly a challenge when tracing the conversion of NAT rules.

The second aspect of validation is to verify that the policies in the target firewall are functionally equivalent to those of in the source.  This means analyzing the traffic flows across each pair of ingress and egress interfaces in the source firewall and comparing it to the traffic flows across the corresponding interface pair in the target.  Calculating the traffic flows involves determining what traffic is allowed/denied for all possible sources, destinations, and services and must take into account the combined effects of the reachable networks for each interface, filtering from security rules, address translations, and routing table entries.  Performing this kind of analysis manually is feasible only for some small number of critical connections; performing a full traffic comparison analysis for the entire configuration is only possible using automated tools.

Athena FirePAC provides a Firewall Migration module that can perform automated traffic flow comparison between configurations from different firewall vendors.  This can be used to validate migrated configurations and to find all packets that are being dropped or added in the new target configuration. The comparison report also provides a list of all added and deleted traffic flows along with the rules that allow and deny the traffic on both the sides.  Not only is it very useful for validating policy equivalence between migrated configurations, but it will also identify the specific rules responsible for deviations in the target firewall.

FirePAC now also provides a fully automated process for migrating Cisco configurations to Check Point firewalls.  This capability addresses many of the limitations in the Confwiz migration tool provided by Check Point.  Specifically:

  1. Identifies global rules in the Cisco firewall configuration (generated from CSM) and ignores them when generating rules on the Check Point side.
  2. Uses the routing rules to perform network reachability and generates the interface reachable network objects correctly and fixes zone spanning objects when generating acl rules.
  3. Generates flat basic objects instead of group objects with one member for basic objects defined in CSM and converted as an object group in the Cisco configuration.
  4. Fixes the limitations in ConfWiz ACL generation like protocol object groups, tcp-udp service object groups, acl rules with source ports, non classic subnet masks such as 255.255.255.192,  port operators like ne, neq etc.,
  5. Reuses all predefined and user defined service objects on the Check Point management server when generating objects.
  6. Flexibility to specify the customer desired object naming conventions for naming the generated network and service object groups and renaming existing objects. ConfWiz uses fixed naming conventions with a mandatory prefix that the users need to fix manually later on.
  7. Aggregates the expanded ACEs back to the aggregated form as specified in CSM when converting configuration of a Cisco firewall that is managed by CSM.
  8. Generates the NAT rules accurately and in the correct order as evaluated by Cisco firewall irrespective of the order of NAT statements in the configuration. Generates all possible Twice NAT rules from Static Source and Static Destination NAT, Dynamic NAT and Static Destination NAT, Policy NAT and Static Destination NAT, NAT 0 and Static destination NAT etc., Identity NAT statements will not be generated only if other NAT rules that follow them do not overlap with them.
  9. Optimizes the generated NAT rules by removing redundant NAT rules and NAT rules whose effective rule portion is covered by any of the ACL rules and hence would never be triggered. This optimization removes a significant number of Twice NAT rules and irrelevant nat rules formed from bidirectional static nat statements.
  10. Uses Excel format to display the generated rules and objects and uses this excel document to deploy the rules and objects to the Check Point management server using CPMI interface. Users can very easily review this Excel and modify this excel to make desired changes before pushing the configuration to the Check Point management server.
  11. Performs an offline gap analysis on the original and the converted configurations using nat, acl and routing rules on adds rules to fix the gaps.
  12. Generates a validation report to identify all traffic flows (IP packets) that were added or dropped along with the responsible acl, nat and route rules in both the source and target configurations.
  13. When the converted configuration is ready for deployment to production, it compares the objects on the production and the staging management server and flags all conflicts in an excel document with the conflicts merged. These conflicts are then pushed to the production server if desired or the users can manually resolve them using the excel report. This feature addresses major work flow issues with merging the changes that keep happening in production systems while the engineers work on the migration.

If you are engaged in or planning a Cisco to Check Point migration project and would like to evaluate this new capability in FirePAC, please contact sales@athenasecurity.net.

Migrating Firewall Configurations, part 3

Monday, October 3rd, 2011

In this series of posts, we examine some of the challenges involved in migrating firewall configurations between different firewall platforms and discuss some strategies for approaching these issues.  The first post introduced the basic firewall configuration elements that have to be migrated and discussed some of the issues in converting routing table entries, and network and service objects.  The second post, we examined some of the issues involved in migrating ACL or filtering rules.  In this post, we will discuss the challenges of migrating network address translation (NAT) rules.

Converting Network Address Translation Rules

The basic semantics of an address translation rule involve specifying the original source, destination, and service and the corresponding translated source, translated destination, and translated service.  When an IP packet is found that matches the original elements, the firewall modifies the packet with the translated values.  In Static NAT, you specify a fixed one-to-one mapping on source, destination, and/or service.  In Dynamic NAT, you specify a mapping between multiple (typically) private or internal addresses and one or more public or external IP addresses drawn from an address pool.  A specify form of this is dynamic port address translation, where internal IP addresses are mapped to a single external IP address and a dynamically assigned port value.  Sometimes an Identity NAT (where the addresses are _not_ translated) is used to exclude certain connections from translation when their sources and/or destinations fall within the address ranges specified in more general NAT rules.

All firewall platforms support the above features; how they are implemented differ significantly from platform to platform. In most of the firewall platforms, the address translation rules are implemented separately from filtering rules. The Juniper Netscreen platform combines filtering and address translation rules, which poses it’s own set of challenges.

In Cisco firewalls until ASA 8.3, it was not possible to specify both source and destination translation in a single NAT rule. You had to specify different NAT statements, some of them bidirectional (Static NAT statements performing Source NAT from real IP to virtual IPin one direction and Destination NAT from virtual IP to real IP in the other direction) and have the device combine them into a Twice NAT rule. Moreover, the address translation syntax is quite complex with 6 to 7 variants for specifying NAT rules. Also because of the Twice NAT rule limitation, multiple NAT statements have to be combined to specify a single translation. You might combine Dynamic NAT with Static Source NAT, Static Source NAT with Static Destination NAT, NAT Exemption/Identity NAT with Static Destination NAT, etc., etc. Determining all of the possible combinations becomes very difficult as the number of NAT rules increases. In addition, it is possible that not all of the possible combinations created from the bidirectional rules are relevant and in actual use. It is necessary to examine the security rules to determine which combinations of NAT rules are actually used instead of converting all possible combinations.

With Check Point, it is possible to specify address translation on network objects on a global basis from which NAT rules are generated automatically. Rules are generated in both directions for Static NAT; doing Source NAT in one direction and Destination NAT in another direction. Check Point also combines these bidirectional rules to perform twice NAT, although these twice NAT combinations are not shown in the management console. However, Automatic NAT cannot be used to specify a Twice NAT rule to perform desired source and destination translation in a single rule. To override the Automatic NAT, Manual NAT can be used to specify Twice NAT or other rules and placed in front of Automatic NAT rules. When converting address translation to a Check Point target, it is far simpler to use Manual NAT.

In Juniper Netscreen firewalls, the address translations are specified as part of the security rules.  Address translation is specified for all rules that allow the traffic. This has the advantage of seeing the NAT information with rules that allow the traffic but if different address translation is required for different addresses, filtering rules have to be split to accommodate the different NAT specification. This also presents a significant problem when converting to the Juniper Netscreen platform from other platforms where the rules are kept separate. You have to find the overlaps between the filtering and address translation rules and then generate a combined rule. This might result in more rules on the target Netscreen firewall than are present in the source firewall in order to properly cover all of the combinations.

In the next blog post, we will examine the issue of validating the migrated policy in the target firewall.

Migrating Firewall Configurations, part 1

Thursday, September 29th, 2011

Migrating a firewall configuration is the process of converting the configuration from one vendor’s platform to another vendor’s platform in such a way that the original firewall policies are preserved on the target firewall.  In this series of posts, we will examine the some of the challenges involved in such migrations involving Cisco, Juniper, and Check Point firewalls and discuss some strategies for approaching these issues.

All firewall vendors provide essentially the same basic firewall capabilities that are required to control the traffic entering and exiting their corporate network. The following elements make up the bulk of a firewall configuration:

  • Interfaces through which the traffic which enter and exit the firewall and optionally security zones to group interfaces with common network availability and security posture.
  • Routing rules to route packets through specific interface(s) based on destination and source addresses.
  • Network and service objects and groups to define address and service elements and use them in the filtering and address translation rules for better maintenance of the firewall rule base,
  • Filtering rules to control traffic entering the device based on Source, Destination and Service of an IP packet.
  • Address translation rules to translate virtual ip addresses to real ip addresses and vice-versa,

To get a working baseline configuration for the target firewall platform, all of the above essential configuration elements have to be translated from the original firewall configuration to the target firewall platform.  This simple-sounding task is made very difficult by the myriad of architectural differences and incompatibilities between different vendors’ products.  Some firewall platforms group all security rules into a single flat rule base and evaluate those rules for all packets entering the firewall, regardless of entering interface.  Others provide capabilities to group rules into one or more rule sets and apply them either by specific ingress and egress interfaces or security zones. Similarly, even though the semantics of the address translation rules are the same, the syntax used for creating these rules is quite different in across the various platforms.  These differences pose significant challenges when converting these rules, whether manually or automatically.  Many vendors provide tools for performing these conversions, but all of them have major shortcomings because of these architectural differences.

Network Interfaces and Routing Rules

In this discussion of migration, we will assume that a drop-in replacement of one firewall for another is being done.  This means that there are no changes being made to the structure of the network itself.  This assumption implies that there is a one-to-one mapping of network interfaces from the original firewall to the target and that the target will be connected to the same networks as the original.  This also implies that the routing table will carry over directly from the original to the target.  The routing table is used to identify the networks that are reachable from each network interface.  It is sometimes useful to create network object groups that identify these reachable networks for each interface in the target.  For example, when migrating from a Cisco device to a Check Point firewall, it is necessary to replace “Any” used in filtering rules with network objects that specify the reachable networks for the interface that the filtering rule was applied to.

The syntax and semantics of the routing rules are similar across different firewall platforms, so converting routing tables is essentially a syntax conversion.  The most common type of routes on firewalls are static routes and converting these is very straight-forward.  If dynamic routing is used, it will be necessary to verify that the routes are learned properly on the target firewall.  If the network should change during the migration process, then it will be necessary to update the network object groups created to specify the reachable networks to match any changes in routes.

For appliance firewalls such as Cisco or Juniper devices, the routing rules are part of the firewall configuration.  For Check Point firewalls, the routing rules have to be configured using the native operating system syntax provided for configuring the routing instead of via the management server.

Converting Networks and Service Objects

Network and service objects and object groups provide an abstraction for better management of the firewall rule base. Using objects, you can reuse address and service values in multiple rules.  When making changes, you need modify the values only once in the object definition and it will apply to all rules that refer to the object. By using object groups, you can group network and service objects that serve a common purpose and reuse them in multiple rules and rule bases. When a management server is used, global object definitions can be shared across multiple firewall configurations.

Converting object definitions from one firewall platform to another is fairly easy.  This is largely a matter of converting the source syntax to the target syntax.  The challenge is in reusing existing object groups and detecting conflicts when the target firewalls are managed using a management server that shares global objects between multiple firewalls.

In such environments, it is not sufficient to simply convert the object definitions.  Objects with same content but different names and objects with the same name but different content might already exist in the target management server.  In addition to identifying potential conflicts with existing objects, we might also want to reuse  existing objects where the content is the same.  This requires that we identify the congruent object definitions in the target management server and replace the corresponding object references from the source configuration with references to objects in the management server.

This becomes a significant process issue when migrated configurations are developed in a staging environment and then have to be pushed to production systems.  It is typically not realistic to freeze the production systems for the duration of the entire migration process.  Even if a snapshots are taken at the start of the migration process, the production system is likely to change while the migrations are being worked on.  When the migration is complete, there may still be conflicts between the migrated and production object definitions that must be identified and resolved.

In the next blog post, we will examine some of the issues involved in migrating ACL or filtering rules.



Copyright © 2006-2009 Athena Security, Inc. All Rights Reserved. AthenaVerifyTM and Athena FirePACTM are trademarks of Athena Security, Inc.
Privacy Statement

Inside the Firewall is proudly powered by WordPress
Entries (RSS) and Comments (RSS).