Shorewall 3.1.6 Note to users upgrading from Shorewall 2.x or 3.0 Most problems associated with upgrades come from two causes: - The user didn't read and follow the migration considerations in these release notes. - The user mis-handled the /etc/shorewall/shorewall.conf file during upgrade. Shorewall is designed to allow the default behavior of the product to evolve over time. To make this possible, the design assumes that you will not replace your current shorewall.conf file during upgrades. If you feel absolutely compelled to have the latest comments and options in your shorewall.conf then you must proceed carefully. While you are at it, if you have a file named /etc/shorewall/rfc1918 then please check that file. If it has addresses listed that are NOT in one of these three ranges, then please rename the file to /etc/shorewall/rfc1918.old. 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255 Please see the "Migration Considerations" below for additional upgrade information. Problems Corrected in 3.1.6 1) Syntax errors reported in response to "shorewall help " have been eliminated. 2) The 'allow', 'drop' and 'reject' commands no longer produce iptables errors when executed while Shorewall is not started. 3) Shorewall now correctly handles devices in /etc/shorewall/tcdevices that are actually bridge ports. Other changes in 3.1.6 1) In macro files, you can now use the reserved words SOURCE and DEST in the columns of the same names. When Shorewall expands the macro, it will substitute the SOURCE from the macro invocation for SOURCE and the DEST from the invocation for DEST. This allows you to write macros that act in both directions (from source to destination and from destination to source). Example: macro.FOO: PARAM SOURCE DEST udp 500 PARAM DEST SOURCE udp 500 /etc/shorewall/rules: FOO/ACCEPT fw net Resulting rules: ACCEPT fw net udp 500 ACCEPT net fw udp 500 This new feature has been used to implement the SMBBI macro. SMBBI is the same as the SMB macro with the exception that it passes SMB traffic in both directions whereas SMB only passes that traffic in one direction. 2) "shorewall check -e" is now supported and uses the /etc/shorewall/capabilities file to determine the capabilities of the target system. 3) When "shorewall check" or "shorewall compile" is run by a user other than root, Shorewall now automatically uses the /etc/shorewall/capabilities file to determine the capabilities of the target system. 4) Shorewall now includes a 'shorecap' program. The RPM installs the program in the documentation directory. The install.sh script does not install the program. The shorecap program can be used to create an /etc/shorewall/capabilities file on a remote system. The file can then be copied to the local system where it can be used when compiling firewall programs targeted for the remote system. For instructions about running shorecap, see the comments at the top of the program file (it's a simple shell script). Migration Considerations: 1) A number of macros have been split into two. The macros affected are: IMAP LDAP NNTP POP3 SMTP Each of these macros now handles only traffic on the native (plaintext) port. There is a corresponding macro with S added to the end of the name for the SSL version of the same protocol. Thus each macro results in the insertion of only one port per invocation. The Web macro has not been split, but two new macros, HTTP and HTTPS have been created. The Web macro is deprecated in favour of these new macros, and may be removed from future Shorewall releases. These changes have been made to ensure no unexpected ports are opened due to the use of macros. 2) In previous Shorewall releases, DNAT and REDIRECT rules supported a special syntax for exclusion of a subnet from the effect of the rule. Example: Z2 is a subzone of Z1: DNAT Z1!Z2 loc:192.168.1.4 ... That syntax has never worked correctly when Z2 is a dynamic zone. Furthermore, now that Shorewall supports exclusion lists, the capability is redundant since the above rule can now be written in the form: DNAT Z1:! loc:192.168.1.4 ... Beginning with Shorewall 3.2.0, the special exclusion syntax will no longer be supported. New Features: 1) A new 'shorewall compile' command has been added. shorewall compile [ -e ] [ -d ] [ ]