| 1 | fwsnort-1.0 (04/19/2007): |
|---|
| 2 | - Major update to include support for the NFQUEUE and QUEUE targets with |
|---|
| 3 | new command line options --NFQUEUE and --QUEUE. This changes the |
|---|
| 4 | default LOG target to the NFQUEUE or QUEUE targets instead, and at the |
|---|
| 5 | same time builds a parallel Snort rule set in the |
|---|
| 6 | /etc/fwsnort/snort_rules_queue directory. Every Snort rule in this |
|---|
| 7 | directory has at least one "content" keyword, which fwsnort uses in the |
|---|
| 8 | resulting iptables policy. This policy only sends those packets to |
|---|
| 9 | snort_inline via the NFQUEUE or QUEUE target that match a content field |
|---|
| 10 | within some Snort rule. The end result is that snort_inline should run |
|---|
| 11 | faster because the vast majority of packets (which are not malicious) |
|---|
| 12 | are processed via the Linux kernel without ever having to be sent to |
|---|
| 13 | userspace for analysis. There is a tradeoff here in terms of attack |
|---|
| 14 | detection; snort_inline does not receive all packets associated with a |
|---|
| 15 | stream, so it cannot detect attacks quite as effectively (snort_inline |
|---|
| 16 | does not have an opportunity to look at reassembled buffers). However, |
|---|
| 17 | this trade off may be acceptable for large sites where performance is |
|---|
| 18 | more important. |
|---|
| 19 | - Bug fix to remove any existing jump rules from the built-in INPUT, |
|---|
| 20 | OUTPUT, and FORWARD chains before creating a new jump rules. This |
|---|
| 21 | allows the fwsnort.sh script to be executed multiple times without |
|---|
| 22 | creating a new jump rule into the fwsnort chains for each execution. |
|---|
| 23 | - Added the -X command line argument to allow fwsnort to delete all of |
|---|
| 24 | the fwsnort chains; this emulates the iptables command line argument |
|---|
| 25 | of the same name. |
|---|
| 26 | - Minor output enhancements and bugfixes to give more insight into the |
|---|
| 27 | translation process. For example, if fwsnort is run in --snort-sid |
|---|
| 28 | mode but is unable to translate the specified signatures, the user is |
|---|
| 29 | notified. Also, any existing /etc/fwsnort/fwsnort.sh script is not |
|---|
| 30 | archived and erased until fwsnort is actually going to write a new one. |
|---|
| 31 | - Added sid values to iptables comment match string. |
|---|
| 32 | - Bugfix for iptables string match --from and --to values to skip past |
|---|
| 33 | packet headers. This is an approximation until a new --payload option |
|---|
| 34 | can be added to the string match extension. |
|---|
| 35 | - Added a single iptables rule testing API internally within fwsnort; |
|---|
| 36 | this adds a measure of consistency and removes some duplicate code. |
|---|
| 37 | - Added fwsnort mailing list at SourceForge. |
|---|
| 38 | |
|---|
| 39 | fwsnort-0.9.0 (03/22/2007): |
|---|
| 40 | - Added support for multiple content matches since this is supported by |
|---|
| 41 | iptables. This made a 10% increase in the fwsnort translation rate - |
|---|
| 42 | about 60% of all Snort-2.3.3 rules can be translated now. |
|---|
| 43 | - Added emulation for distance and within from previous content match |
|---|
| 44 | based on --from and --to (string match extension) and the length of |
|---|
| 45 | the previous pattern. |
|---|
| 46 | - Added the ability to include the Snort "msg", "classtype", "reference", |
|---|
| 47 | "priority", and "rev" fields in each iptables rule with the comment |
|---|
| 48 | match. This can be disabled with a new command line argument |
|---|
| 49 | --no-ipt-comments. The fwsnort version is also included within this |
|---|
| 50 | string. |
|---|
| 51 | - Added the ability to include the iptables rule number for each rule in |
|---|
| 52 | the fwsnort chains. This is useful to easily know which iptables rule |
|---|
| 53 | is being triggered by network traffic (so it can be disabled if |
|---|
| 54 | necessary). This can be disabled with --no-ipt-rule-nums. |
|---|
| 55 | - Added the --include-regex and --exclude-regex command line arguments. |
|---|
| 56 | These arguments allow rules to be included/excluded based on a regular |
|---|
| 57 | expression supplied on the command line. |
|---|
| 58 | - Updated to include the original Snort rule as a comment within the |
|---|
| 59 | fwsnort.sh script without having to use --verbose. |
|---|
| 60 | - Bugfix to force install of IPTables::Parse since it had been updated in |
|---|
| 61 | the fwsnort-0.8.2 release. |
|---|
| 62 | - Changed the IGNORE_ADDR variable to WHITELIST since this name better |
|---|
| 63 | describes the actual function of this var. Updated to allow multiple |
|---|
| 64 | WHITELIST lines. |
|---|
| 65 | - Added the BLACKLIST variable to allow a true blacklist to be |
|---|
| 66 | instantiated with either the DROP or REJECT targets. The syntax for the |
|---|
| 67 | BLACKLIST variable is "BLACKLIST <ip or network> <target>", where |
|---|
| 68 | "target" is either "DROP" or "REJECT". |
|---|
| 69 | - Added -F and -L command line arguments to flush and list iptables rules. |
|---|
| 70 | This is similar to the iptables command line args of the same names. |
|---|
| 71 | - Bugfix to ensure that traffic directed into the INPUT or coming from the |
|---|
| 72 | OUTPUT chains is treated as going toward or originating from the |
|---|
| 73 | HOME_NET. After all the HOME_NET variable may contain an internal |
|---|
| 74 | network but omit the IP assigned to an external interface on the |
|---|
| 75 | firewall. |
|---|
| 76 | - Added "--log-ip-options" and "--log-tcp-options" to fwsnort LOG rules by |
|---|
| 77 | default (in the generated fwsnort.sh script). This can be disabled with |
|---|
| 78 | --no-log-ip-opts and --no-log-tcp-opts arguments on the fwsnort command |
|---|
| 79 | line. |
|---|
| 80 | - Added the ability to include --log-tcp-sequence to LOG rules in |
|---|
| 81 | fwsnort.sh with a new argument --ipt-log-tcp-seq on the fwsnort command |
|---|
| 82 | line. |
|---|
| 83 | - Updated to handle negative string matches with "--string ! <string>". |
|---|
| 84 | - Updated to output all unsupported options of the /var/log/fwsnort.log |
|---|
| 85 | file to assist in the development of addition keyword emulation. |
|---|
| 86 | |
|---|
| 87 | fwsnort-0.8.2 (02/17/2007): |
|---|
| 88 | - Updated to newer IPTables::Parse module that uses the array of hash |
|---|
| 89 | references method of returning iptables policy data. |
|---|
| 90 | - Added --Dump-ipt and --Dump-snort rules to allow iptables policy and |
|---|
| 91 | Snort rules to be dumped to STDOUT. |
|---|
| 92 | - Added bleeding-all.rules file from http://www.bleedingsnort.com/ |
|---|
| 93 | - Added patches/bm_goodshift_fix.patch patch file that fixes an |
|---|
| 94 | initialization bug in the Boyer-Moore text search implementation in the |
|---|
| 95 | kernel (linux-2.6.x/lib/ts_bm.c) which caused slightly repetitive |
|---|
| 96 | patterns to only match at specific offsets with the string match |
|---|
| 97 | extension. |
|---|
| 98 | - Bugfix to ensure that a depth cannot be less that an offset (these |
|---|
| 99 | translate to the --to and --from command line arguments to iptables). |
|---|
| 100 | - Bugfix to escape '$' chars in iptables search strings. |
|---|
| 101 | - Added cd_rpmbuilder to make it easy to automatically build RPM files of |
|---|
| 102 | fwsnort. |
|---|
| 103 | - Added support for the iptables OUTPUT chain. |
|---|
| 104 | - Added the ChangeLog.svn file so that all of the changed files and |
|---|
| 105 | corresponding svn commit messages can be viewed (this file is built from |
|---|
| 106 | release to release). |
|---|
| 107 | |
|---|
| 108 | fwsnort-0.8.1 (11/11/2005): |
|---|
| 109 | - Updated to use the string match extension "--algo bm" argument if |
|---|
| 110 | fwsnort is being run on a 2.6.14 (or greater) kernel. |
|---|
| 111 | - Updated to handle the Snort "offset" and "depth" keywords via the |
|---|
| 112 | --from and --to options to the string match extension in the 2.6.14 |
|---|
| 113 | kernel. |
|---|
| 114 | - Created RPM package of fwsnort. |
|---|
| 115 | - Minor man page updates. |
|---|
| 116 | |
|---|
| 117 | fwsnort-0.8.0 (07/11/2005): |
|---|
| 118 | - Completely re-structured fwsnort w.r.t. how it creates Netfilter |
|---|
| 119 | chains. There are no longer any per-interface chains (this |
|---|
| 120 | greatly simplifies the Netfilter chains). |
|---|
| 121 | - Added three new chains "FWSNORT_INPUT_ESTAB", "FWSNORT_OUTPUT_ESTAB" |
|---|
| 122 | and "FWSNORT_FORWARD_ESTAB" to which tcp connections in the |
|---|
| 123 | ESTABLISHED state are jumped. This allows fwsnort to use the |
|---|
| 124 | Netfilter tcp connection tracking mechanism to ignore Stick and Snot |
|---|
| 125 | style attacks (similar to the flow:established Snort rule option). |
|---|
| 126 | - Added true variable resolution (i.e. HTTP_SERVERS -> HOME_NET -> any) |
|---|
| 127 | for the Snort rule header. This directly emulates the behavior of |
|---|
| 128 | the Snort IDS. |
|---|
| 129 | - Added IP protocol support in the translation of the Snort rule |
|---|
| 130 | header. The Snort rule translation rate is now at about 53% for |
|---|
| 131 | Snort-2.3. |
|---|
| 132 | - Bugfix for ipopts Snort option (several arguments are not supported |
|---|
| 133 | by the ipv4options extension). |
|---|
| 134 | - Better tests for Netfiler TTL, TOS, and ipv4options matches. |
|---|
| 135 | - Replaced IGNORE_IP and IGNORE_NET keywords with single IGNORE_ADDR |
|---|
| 136 | keywork in fwsnort.conf. |
|---|
| 137 | - Updated to correctly handle ICMP type and code rules (itype and |
|---|
| 138 | icode Snort options) via the "--icmp-types type/code" convention. |
|---|
| 139 | - Added support for emulating the dsize Snort option through the use |
|---|
| 140 | of the Netfilter length match. |
|---|
| 141 | - Changed --type argument to --include-types and added list support |
|---|
| 142 | so it accepts things like "chat,ddos". Also added --exclude-types |
|---|
| 143 | command line argument. |
|---|
| 144 | - Added support for multiple sid's (as a comma separated list) in |
|---|
| 145 | --snort-sids argument. Also added --exclude-sids argument to remove |
|---|
| 146 | a list of sids from translation. |
|---|
| 147 | - Added support for the replace Snort option (originally from the |
|---|
| 148 | Snort_inline project). The requires the replace string patch. |
|---|
| 149 | - Added support for restricting jump rules to a list of interfaces |
|---|
| 150 | via the --restrict-intf argument. |
|---|
| 151 | - Added kernel patch to extend the maximum packet length that the |
|---|
| 152 | string match extension will attempt to search from 1024 bytes to |
|---|
| 153 | 2048 bytes (requires a kernel re-compile of course). |
|---|
| 154 | - Added DRP and REJ strings to logging prefix if --ipt-drop or |
|---|
| 155 | --ipt-reject is specified. |
|---|
| 156 | - Added snortspoof.pl, which is a simple perl script that emulates |
|---|
| 157 | the Stick and Snot tools. |
|---|
| 158 | |
|---|
| 159 | fwsnort-0.7.0 (06/05/2005): |
|---|
| 160 | - Added support for the Snort pass action by using the ACCEPT target. |
|---|
| 161 | - Added support for the Snort log action by using the ULOG target |
|---|
| 162 | (which can then log the packet via the pcap writer). |
|---|
| 163 | - Added support for all fwsnort alerts to be logged via the ULOG |
|---|
| 164 | target instead of the LOG target. |
|---|
| 165 | - Added support for the "resp" keyword to allow it to drive the |
|---|
| 166 | Netfilter argument to the REJECT target. |
|---|
| 167 | - Added "pcre" to the unsupported list... this knocks the fwsnort |
|---|
| 168 | translation rate down to about 50% for Snort-2.3 rules (pcre is |
|---|
| 169 | heavily utilized). |
|---|
| 170 | - Added "priority" and "rev" to comment lines. |
|---|
| 171 | |
|---|
| 172 | fwsnort-0.6.5 (03/20/2005): |
|---|
| 173 | - Updated to not attempt to download Snort rules from snort.org |
|---|
| 174 | because the rules are no longer available for automatic downloads |
|---|
| 175 | - Changed the install.pl script and the --update-rules mode for |
|---|
| 176 | fwsnort to download the latest signature set from |
|---|
| 177 | http://www.bleedingsnort.com/. |
|---|
| 178 | (Snort.org is now offering pay-service around their rule sets). |
|---|
| 179 | - Added signature test for the "flowbits" keyword. |
|---|
| 180 | |
|---|
| 181 | fwsnort-0.6.4 (12/18/2004): |
|---|
| 182 | - Updated to Snort-2.3 rules. FWSnort can convert a total of 1710 |
|---|
| 183 | out of 2559 total Snort-2.3 rules. |
|---|
| 184 | - Updated to new Snort rules download link for --update-rules mode: |
|---|
| 185 | http://www.snort.org/dl/rules/snortrules-snapshot-CURRENT.tar.gz |
|---|
| 186 | - Updated to standard [+], [-], and [*] prefixes for info, warning |
|---|
| 187 | and die logging messages. |
|---|
| 188 | - Added --replace-string patches. |
|---|
| 189 | |
|---|
| 190 | fwsnort-0.6.3 (04/04/2004): |
|---|
| 191 | - Added ignore functionality for both IPs and networks |
|---|
| 192 | - Split --ipt-block into --ipt-drop and --ipt-reject to add DROP |
|---|
| 193 | or REJECT rules respectively. |
|---|
| 194 | - Added --add-deleted option to allow rules in the "deleted.rules" |
|---|
| 195 | file to be added. |
|---|
| 196 | |
|---|
| 197 | fwsnort-0.6.2 (03/19/2004): |
|---|
| 198 | - Added --internal-net and --dmz-net options so that internal and |
|---|
| 199 | dmz networks can be manually specified without having to parse |
|---|
| 200 | the output of ifconfig. This is most useful for running fwsnort |
|---|
| 201 | on a linux system that is acting as a bridge where no ip addresses |
|---|
| 202 | are assigned to the interfaces. |
|---|
| 203 | - Bugfix for missing icmp-port-unreachable rejects for UDP packets. |
|---|
| 204 | |
|---|
| 205 | fwsnort-0.6.1 (02/01/2004): |
|---|
| 206 | - Bugfix for not adding dmz interface rules to INPUT chain. |
|---|
| 207 | - Bugfix for not getting the DMZ interface network. |
|---|
| 208 | |
|---|
| 209 | fwsnort-0.6 (01/04/2004): |
|---|
| 210 | - Speed increase and disk access decrease by writing iptables |
|---|
| 211 | commands to the iptables script only after all lines have been |
|---|
| 212 | generated. |
|---|
| 213 | - Bugfix for DMZ interface. |
|---|
| 214 | - Bugfix for multiple ip_proto fields. |
|---|
| 215 | - Removed the ip protocol as an allowed protocol for translation. |
|---|
| 216 | - Bugfix for negated port numbers. |
|---|
| 217 | - Removed "<-" rule direction since not even snort supports this. |
|---|
| 218 | - Fixed snort rule updates from snort.org. |
|---|
| 219 | |
|---|
| 220 | fwsnort-0.5 (12/21/2003): |
|---|
| 221 | - Added "-j REJECT --reject-with tcp-reset" for tcp sessions |
|---|
| 222 | if the --ipt-block option is specified. |
|---|
| 223 | - Added ability to download latest snort rules from snort.org. |
|---|
| 224 | - Added --no-ipt-jumps. |
|---|
| 225 | - Added better checking for iptables build characteristics such |
|---|
| 226 | as the LOG target and wether or not the ipv4options extension |
|---|
| 227 | is compiled in. |
|---|
| 228 | - Added config preservation code from psad in install.pl. |
|---|