The Rule Base
As mentioned before, the rule base is composed of multiple rules. Figure 3.2shows a sample rule base.
Figure 3.2 A sample rule base.
Each rule is independent of the others and is processed in sequence, meaning that the whole rule must match and that a lower numbered rule could potentially negate the effects of a higher numbered rule.
This last point could use some more explanation. Take for instance the following plain-English rules:
HostA can connect to any web server using HTTP.
No one can connect to WebServer1.
HostA is able to connect to WebServer1 via HTTP by virtue of rule 1, even though rule 2 says that no one can connect to WebServer1. Because rules are processed in order, stopping with the first match, rule 1 is matched and rule 2 is never considered.
Examining a Rule
Understanding the individual components of a rule is important to understanding the function of the whole rule. One of the things you’ll be expected to do on both the exam and in real life is to look at a rule base and determine what traffic is matched, and what actions will be performed.
These are the fields of a rule:
Number—The rule’s position in the rule base.
Source—A set of network objects representing the origin of the traffic.
Destination—A set of network objects representing the recipient of the traffic.
VPN—If desired, can specify that the traffic is to be encrypted.
Service—A set of service objects indicating which protocols are to be matched.
Action—A set of predefined items telling the gateway what to do with the packet if this rule is matched.
Track—A set of predefined items indicating whether any log entries or other notifications are to be made if this rule is matched.
Install On—Specifies which enforcement points will enforce this rule.
Time—Optionally specifies the time at which this rule will be enforced.
Comment—For administrative purposes, allows you to make a comment about who put in the rule, what it does, and any other pertinent information.
The Source, Destination, and Service fields use objects from the object tree. By double-clicking, or right-clicking and selecting Edit, you can see the specifics of the object. If multiple objects are within the same column, this forms an OR relationship. If no objects are placed in the column, it defaults to Any, meaning any value will match.
If the icon for the cell has an x through it, like the source address in Figure 3.3, the selection is negated. That is, a match will occur only if the cell’s value is not matched. With multiple objects in the column, none of the objects can match for the rule itself to be considered a match. For instance, the rule in the example will match any HTTP packets that don’t come from Network1 or Network2.
Figure 3.3 A rule with a negated source address.
When you’re reading a rule, it is important to understand that a rule represents the conversation, not the individual packets. Allowing traffic for a particular source to a given destination implicitly allows packets in the return direction after the connection has been established.
The action of the rule tells FireWall-1 what to do when a match is found. These are the possible actions:
Accept—Permit this packet for further processing.
Drop—Discard the packet with no notification to the sender.
Reject—Discard the packet, sending an ICMP unreachable message to the sender.
User Auth—Require user authentication to allow this connection.
Client Auth—Require client authentication to allow this connection.
Session Auth—Require session authentication to allow this connection.
The authentication rules are covered in Chapter 7.
In addition to deciding the action, the firewall must also decide whether any logging is needed. The Track column dictates what logging will happen, and may take one of the following options:
None—Does nothing.
Log—Sends a logging entry to the logging server.
Account—Logs more information about the flow, including number of packets and size.
Alert—Logs the event, but also sends a pop-up message to the SmartConsole.
SNMP Trap—Sends an SNMP trap to a management station.
Mail—Emails the details about the event.
User Defined—Runs a user-supplied script.
The Install On column allows you to select which firewalls are to enforce the rule. For instance, if you have a mail server in a DMZ in Winnipeg, there’s little point in having the same rule enforced in Calgary. Either network objects representing the enforcement points will be here (Check Points or Groups), or the phrase "Policy Targets," meaning all firewalls.
The Time column allows you to dictate when the rule is valid. Within the cell are time objects, available through Manage, Time, that specify a time or date range.
Finally, comments are necessary for administrative sanity. The comment field should contain a description of why the rule is there, or any other special notes (including "Don’t delete this or Oracle will break!").
Creating and Deleting Rules
To create a new rule, first determine where it is to be inserted. The Rules, Add Rule menu option then gives you four choices:
Bottom
Top
Below
Above
The first two options—Bottom and Top—place the new rule at the bottom or top of the policy, respectively. Below and Above place the new rule next to the currently highlighted rule, either above or below, depending on which you chose.
The rule that is created, called the default rule, is shown in Table 3.1.
Table 3.1 The Default Rule
Source |
Destination |
Service |
Action |
Track |
Install On |
Time |
Any |
Any |
Any |
Drop |
None |
Policy Targets |
Any |
As the default rule shows, it specifies that all packets are to be dropped on all firewalls. You must change the relevant fields to do what you want.
All cells can be configured by right-clicking within the cell. The Action and Track columns give you a menu with the available options; the rest of the fields require you to select Add and then select the objects you want from the menu. If it turns out you forgot to create an object, this menu also has the option to create a new object. You can also populate cells by dragging objects from the objects tree, or dragging objects from other cells.
One of the options available when you right-click one of the Source, Destination, or Service cells is Negate Cell. As discussed previously, this causes a red x to be displayed through the icon, and has the effect of matching anything except for the contents of the cell.
To remove a rule from service, you have two options. One is to highlight the rule and press the Delete key; the other is to select the Rules, Delete menu item. This removes the rule completely from the rule base. If you just want to disable it temporarily, right-clicking on the rule’s number will give you the Disable Rule(s) option (or select Rules, Disable Rule). The rule will have a red x through the rule’s number, and will not be enforced. To re-enable the rule, do the same thing again.
Hiding and Unhiding Rules
When working on a large rule base, you may be distracted by extra rules. SmartDashboard allows you to hide the rules from viewing, while still enforcing them. Contrast this with disabling or deleting a rule, which stops the rule from being processed.
You can hide a rule from view by highlighting it and selecting Rules, Hide, Hide. Rules can be unhidden through Rules, Hide, Unhide. Note that when a rule is hidden, the numbering remains unchanged, and a small white spacer appears, letting you know that there are hidden rules there.
Querying the Rule Base
Sometimes hiding rules isn’t enough to do what you want. Often, you want to ask questions like "What rules apply to HTTP traffic?" This is where queries come in.
Queries are handled through the Search menu, or by a right-click on the column heading in the rule base. For example, right-clicking on the Service heading and selecting Query Column brings up the dialog shown in Figure 3.4.
Figure 3.4 The Rule Base Query Clause dialog showing the available options.
The pull-down at the upper left called Column lets you select the column to search from. All the relevant objects then appear in the left side of the dialog. If you highlight the objects you are interested in, and click Add, they are moved to the right side of the screen. If there is more than one object on the right side, the radio buttons at the top become enabled, and can be used to determine whether all the objects need to appear in the rule.
There is also a check box at the bottom of the dialog that negates the selection.
From here, you can click Apply to hide all the rules except those that match your query, or save your query with the Save button.
The Search, Manage Rule Queries menu option brings up a dialog showing your saved queries. By highlighting a saved query and clicking And, you can further refine your query to handle multiple columns. The Or button shows rules that match either query.
Finally, Search, Clear Rules Query unhides all the rules and shows the entire rule base.