Policy compiler for ipfilter

Summary of Features

Policy compiler for OpenBSD pf

Technical Summary

Basic features:
  • compiler supports groups of objects and services in the GUI
  • compiler supports actions “Accept”, “Deny”, “Reject”, “Accounting”
  • compiler can generate code that responds with different ICMP messages or sends TCP RST for the Reject action
  • compiler can process rules that are associated with interfaces and match packets going in specified direction, as well as with rules that are not associated with any interface.
  • compiler can process rules with negation even if multiple objects or groups are negated
  • compiler supports logging
  • generated configuration files are well structured and commented: each group of commands has a comment that tells what rule in the GUI it implements. It also includes a custom comment added for that rule in the GUI
Advanced features:
  • compiler uses grouping of addresses and protocols using “{” and “}” in the generated pf configuration file.
  • compiler can detect many common errors in the objects and policy and NAT rules
  • compiler can detect rule “shadowing”
  • generated script does sanity checks to make sure that firewall object it has been generated for reflects configuration of the real firewall machine it is being executed on.
  • by default, each rule uses “keep state” and matches only “new” packets. This can be turned off on a per-rule basis to get rules that ignore state.
Special and additional types of objects:
  • compiler supports “Address range” object
  • compiler supports “custom” service object. This type of the object provides a way of inserting of arbitrary code to the generated iptables command.
Logging:
  • options for logging can be set both globally and for individual rules
  • compiler supports custom log prefix. Prefix can be defined globally, as well as individually for each rule.
  • default value for the custom logging prefix is used as a marker so that statistics entries can easily be matched with rules in the GUI
Special types of rules:
  • compiler supports special case when empty group is used in the policy rule (this is useful when one needs to control access to/from a group of hosts which may change and sometimes becomes empty - compiler may automatically disable the rule if the group becomes empty).
Interfaces:
  • compiler supports interfaces with dynamic address, as well as unnumbered interfaces (the latter can never have IP address but may have rules associated with them)
  • compiler can configure actual interfaces of the firewall using addresses of the firewall object as it is configured in the GUI
NAT:
  • compiler emulates “double translation” NAT rule which translates both source and destination addresses of the packet. This greatly simplifies configuration for situation called “destination NAT back onto the same subnet”
  • generated script can automatically add virtual (“alias”) address to the interface of the firewall for NAT rules that do not use existing address that belong to it. This is needs to be done so that firewall will answer ARP queries for that address.
  • compiler supports NAT rules that define no translation (“no nat” rules)
  • compiler supports redirection NAT rules
 

Copyright © 2000-2008 NetCitadel, LLC. All rights reserved.
  Free CSS Templates.