fwsnort-0.9.0 (03/22/2007):
    - Added support for multiple content matches since this is supported by
      iptables.  This made a 10% increase in the fwsnort translation rate -
      about 60% of all Snort-2.3.3 rules can be translated now.
    - Added emulation for distance and within from previous content match
      based on --from and --to (string match extension) and the length of
      the previous pattern.
    - Added the ability to include the Snort "msg", "classtype", "reference",
      "priority", and "rev" fields in each iptables rule with the comment
      match.  This can be disabled with a new command line argument
      --no-ipt-comments.  The fwsnort version is also included within this
      string.
    - Added the ability to include the iptables rule number for each rule in
      the fwsnort chains.  This is useful to easily know which iptables rule
      is being triggered by network traffic (so it can be disabled if
      necessary).  This can be disabled with --no-ipt-rule-nums.
    - Added the --include-regex and --exclude-regex command line arguments.
      These arguments allow rules to be included/excluded based on a regular
      expression supplied on the command line.
    - Updated to include the original Snort rule as a comment within the
      fwsnort.sh script without having to use --verbose.
    - Bugfix to force install of IPTables::Parse since it had been updated in
      the fwsnort-0.8.2 release.
    - Changed the IGNORE_ADDR variable to WHITELIST since this name better
      describes the actual function of this var.  Updated to allow multiple
      WHITELIST lines.
    - Added the BLACKLIST variable to allow a true blacklist to be
      instantiated with either the DROP or REJECT targets.  The syntax for the
      BLACKLIST variable is "BLACKLIST  <ip or network>  <target>", where
      "target" is either "DROP" or "REJECT".
    - Added -F and -L command line arguments to flush and list iptables rules.
      This is similar to the iptables command line args of the same names.
    - Bugfix to ensure that traffic directed into the INPUT or coming from the
      OUTPUT chains is treated as going toward or originating from the
      HOME_NET.  After all the HOME_NET variable may contain an internal
      network but omit the IP assigned to an external interface on the
      firewall.
    - Added "--log-ip-options" and "--log-tcp-options" to fwsnort LOG rules by
      default (in the generated fwsnort.sh script).  This can be disabled with
      --no-log-ip-opts and --no-log-tcp-opts arguments on the fwsnort command
      line.
    - Added the ability to include --log-tcp-sequence to LOG rules in
      fwsnort.sh with a new argument --ipt-log-tcp-seq on the fwsnort command
      line.
    - Updated to handle negative string matches with "--string ! <string>".
    - Updated to output all unsupported options of the /var/log/fwsnort.log
      file to assist in the development of addition keyword emulation.

fwsnort-0.8.2 (02/17/2007):
    - Updated to newer IPTables::Parse module that uses the array of hash
      references method of returning iptables policy data.
    - Added --Dump-ipt and --Dump-snort rules to allow iptables policy and
      Snort rules to be dumped to STDOUT.
    - Added bleeding-all.rules file from http://www.bleedingsnort.com/
    - Added patches/bm_goodshift_fix.patch patch file that fixes an
      initialization bug in the Boyer-Moore text search implementation in the
      kernel (linux-2.6.x/lib/ts_bm.c) which caused slightly repetitive
      patterns to only match at specific offsets with the string match
      extension.
    - Bugfix to ensure that a depth cannot be less that an offset (these
      translate to the --to and --from command line arguments to iptables).
    - Bugfix to escape '$' chars in iptables search strings.
    - Added cd_rpmbuilder to make it easy to automatically build RPM files of
      fwsnort.
    - Added support for the iptables OUTPUT chain.
    - Added the ChangeLog.svn file so that all of the changed files and
      corresponding svn commit messages can be viewed (this file is built from
      release to release).

fwsnort-0.8.1 (11/11/2005):
    - Updated to use the string match extension "--algo bm" argument if
      fwsnort is being run on a 2.6.14 (or greater) kernel.
    - Updated to handle the Snort "offset" and "depth" keywords via the
      --from and --to options to the string match extension in the 2.6.14
      kernel.
    - Created RPM package of fwsnort.
    - Minor man page updates.

fwsnort-0.8.0 (07/11/2005):
    - Completely re-structured fwsnort w.r.t. how it creates Netfilter
      chains.  There are no longer any per-interface chains (this
      greatly simplifies the Netfilter chains).
    - Added three new chains "FWSNORT_INPUT_ESTAB", "FWSNORT_OUTPUT_ESTAB"
      and "FWSNORT_FORWARD_ESTAB" to which tcp connections in the
      ESTABLISHED state are jumped.  This allows fwsnort to use the
      Netfilter tcp connection tracking mechanism to ignore Stick and Snot
      style attacks (similar to the flow:established Snort rule option).
    - Added true variable resolution (i.e. HTTP_SERVERS -> HOME_NET -> any)
      for the Snort rule header.  This directly emulates the behavior of
      the Snort IDS.
    - Added IP protocol support in the translation of the Snort rule
      header.  The Snort rule translation rate is now at about 53% for
      Snort-2.3.
    - Bugfix for ipopts Snort option (several arguments are not supported
      by the ipv4options extension).
    - Better tests for Netfiler TTL, TOS, and ipv4options matches.
    - Replaced IGNORE_IP and IGNORE_NET keywords with single IGNORE_ADDR
      keywork in fwsnort.conf.
    - Updated to correctly handle ICMP type and code rules (itype and
      icode Snort options) via the "--icmp-types type/code" convention.
    - Added support for emulating the dsize Snort option through the use
      of the Netfilter length match.
    - Changed --type argument to --include-types and added list support
      so it accepts things like "chat,ddos".  Also added --exclude-types
      command line argument.
    - Added support for multiple sid's (as a comma separated list) in
      --snort-sids argument.  Also added --exclude-sids argument to remove
      a list of sids from translation.
    - Added support for the replace Snort option (originally from the
      Snort_inline project).  The requires the replace string patch.
    - Added support for restricting jump rules to a list of interfaces
      via the --restrict-intf argument.
    - Added kernel patch to extend the maximum packet length that the
      string match extension will attempt to search from 1024 bytes to
      2048 bytes (requires a kernel re-compile of course).
    - Added DRP and REJ strings to logging prefix if --ipt-drop or
      --ipt-reject is specified.
    - Added snortspoof.pl, which is a simple perl script that emulates
      the Stick and Snot tools.

fwsnort-0.7.0 (06/05/2005):
    - Added support for the Snort pass action by using the ACCEPT target.
    - Added support for the Snort log action by using the ULOG target
      (which can then log the packet via the pcap writer).
    - Added support for all fwsnort alerts to be logged via the ULOG
      target instead of the LOG target.
    - Added support for the "resp" keyword to allow it to drive the
      Netfilter argument to the REJECT target.
    - Added "pcre" to the unsupported list... this knocks the fwsnort
      translation rate down to about 50% for Snort-2.3 rules (pcre is
      heavily utilized).
    - Added "priority" and "rev" to comment lines.

fwsnort-0.6.5 (03/20/2005):
    - Updated to not attempt to download Snort rules from snort.org
      because the rules are no longer available for automatic downloads
    - Changed the install.pl script and the --update-rules mode for
      fwsnort to download the latest signature set from
      http://www.bleedingsnort.com/.
      (Snort.org is now offering pay-service around their rule sets).
    - Added signature test for the "flowbits" keyword.

fwsnort-0.6.4 (12/18/2004):
    - Updated to Snort-2.3 rules.  FWSnort can convert a total of 1710
      out of 2559 total Snort-2.3 rules.
    - Updated to new Snort rules download link for --update-rules mode:
      http://www.snort.org/dl/rules/snortrules-snapshot-CURRENT.tar.gz
    - Updated to standard [+], [-], and [*] prefixes for info, warning
      and die logging messages.
    - Added --replace-string patches.

fwsnort-0.6.3 (04/04/2004):
    - Added ignore functionality for both IPs and networks
    - Split --ipt-block into --ipt-drop and --ipt-reject to add DROP
      or REJECT rules respectively.
    - Added --add-deleted option to allow rules in the "deleted.rules"
      file to be added.

fwsnort-0.6.2 (03/19/2004):
    - Added --internal-net and --dmz-net options so that internal and
      dmz networks can be manually specified without having to parse
      the output of ifconfig.  This is most useful for running fwsnort
      on a linux system that is acting as a bridge where no ip addresses
      are assigned to the interfaces.
    - Bugfix for missing icmp-port-unreachable rejects for UDP packets.

fwsnort-0.6.1 (02/01/2004):
    - Bugfix for not adding dmz interface rules to INPUT chain.
    - Bugfix for not getting the DMZ interface network.

fwsnort-0.6 (01/04/2004):
    - Speed increase and disk access decrease by writing iptables
      commands to the iptables script only after all lines have been
      generated.
    - Bugfix for DMZ interface.
    - Bugfix for multiple ip_proto fields.
    - Removed the ip protocol as an allowed protocol for translation.
    - Bugfix for negated port numbers.
    - Removed "<-" rule direction since not even snort supports this.
    - Fixed snort rule updates from snort.org.

fwsnort-0.5 (12/21/2003):
    - Added "-j REJECT --reject-with tcp-reset" for tcp sessions
      if the --ipt-block option is specified.
    - Added ability to download latest snort rules from snort.org.
    - Added --no-ipt-jumps.
    - Added better checking for iptables build characteristics such
      as the LOG target and wether or not the ipv4options extension
      is compiled in.
    - Added config preservation code from psad in install.pl.
