Shorewall Errata

IMPORTANT

  1. If you use a Windows system to download a corrected script, be sure to run the script through dos2unix after you have moved it to your Linux system.

  2. If you are installing Shorewall for the first time and plan to use the .tgz and install.sh script, you can untar the archive, replace the 'firewall' script in the untarred directory with the one you downloaded below, and then run install.sh.

  3. When the instructions say to install a corrected firewall script in /etc/shorewall/firewall or /var/lib/shorewall/firewall, use the 'cp' (or 'scp') utility to overwrite the existing file. DO NOT REMOVE OR RENAME THE OLD /etc/shorewall/firewall or /var/lib/shorewall/firewall before you do that. /etc/shorewall/firewall and /var/lib/shorewall/firewall are symbolic links that point to the 'shorewall' file used by your system initialization scripts to start Shorewall during boot. It is that file that must be overwritten with the corrected script.

        

bullet Problems in Version 1.1
bullet Problems in Version 1.2
bullet Problems in Version 1.3
bullet Problem with iptables version 1.2.3
bullet Problems with kernel 2.4.18 and RedHat iptables
bulletProblems installing/upgrading RPM on SuSE SMP

Problems in Version 1.3

Versions >= 1.3.5

Some forms of pre-1.3.0 rules file syntax are no longer supported.

Example 1:

	ACCEPT    net    loc:192.168.1.12:22    tcp    11111    -    all

Must be replaced with:

	DNAT	net	loc:192.168.1.12:22	tcp	11111

Example 2:

	ACCEPT	loc	fw::3128	tcp	80	-	all

Must be replaced with:

	REDIRECT	loc	3128	tcp	80

Version 1.3.5-1.3.5b

The new 'proxyarp' interface option doesn't work :-( This is fixed in this corrected firewall script which must be installed in /var/lib/shorewall/ as described above.

Versions 1.3.4-1.3.5a

Prior to version 1.3.4, host file entries such as the following were allowed:

	adm	eth0:1.2.4.5,eth0:5.6.7.8

That capability was lost in version 1.3.4 so that it is only possible to  include a single host specification on each line. This problem is corrected by this modified 1.3.5a firewall script. Install the script in /var/lib/pub/shorewall/firewall as instructed above.

This problem is corrected in version 1.3.5b.

Version 1.3.5

REDIRECT rules are broken in this version. Install this corrected firewall script in /var/lib/pub/shorewall/firewall as instructed above. This problem is corrected in version 1.3.5a.

Version 1.3.n, n < 4

The "shorewall start" and "shorewall restart" commands to not verify that the zones named in the /etc/shorewall/policy file have been previously defined in the /etc/shorewall/zones file. The "shorewall check" command does perform this verification so it's a good idea to run that command after you have made configuration changes.

Version 1.3.n, n < 3

If you have upgraded from Shorewall 1.2 and after "Activating rules..." you see the message: "iptables: No chains/target/match by that name" then you probably have an entry in /etc/shorewall/hosts that specifies an interface that you didn't include in /etc/shorewall/interfaces. To correct this problem, you must add an entry to /etc/shorewall/interfaces. Shorewall 1.3.3 and later versions produce a clearer error message in this case.

Version 1.3.2

Until approximately 2130 GMT on 17 June 2002, the download sites contained an incorrect version of the .lrp file. That file can be identified by its size (56284 bytes). The correct version has a size of 38126 bytes.

bulletThe code to detect a duplicate interface entry in /etc/shorewall/interfaces contained a typo that prevented it from working correctly.
bullet"NAT_BEFORE_RULES=No" was broken; it behaved just like "NAT_BEFORE_RULES=Yes".

Both problems are corrected in this script which should be installed in /var/lib/shorewall as described above.

bullet

The IANA have just announced the allocation of subnet 221.0.0.0/8. This updated rfc1918 file reflects that allocation.

Version 1.3.1

bulletTCP SYN packets may be double counted when LIMIT:BURST is included in a CONTINUE or ACCEPT policy (i.e., each packet is sent through the limit chain twice).
bulletAn unnecessary jump to the policy chain is sometimes generated for a CONTINUE policy.
bulletWhen an option is given for more than one interface in /etc/shorewall/interfaces then depending on the option, Shorewall may ignore all but the first appearence of the option. For example:

net    eth0    dhcp
loc    eth1    dhcp

Shorewall will ignore the 'dhcp' on eth1.
bulletUpdate 17 June 2002 - The bug described in the prior bullet affects the following options: dhcp, dropunclean, logunclean, norfc1918, routefilter, multi, filterping and noping. An additional bug has been found that affects only the 'routestopped' option.

Users who downloaded the corrected script prior to 1850 GMT today should download and install the corrected script again to ensure that this second problem is corrected.

These problems are corrected in this firewall script which should be installed in /etc/shorewall/firewall as described above.

Version 1.3.0

bulletFolks who downloaded 1.3.0 from the links on the download page before 23:40 GMT, 29 May 2002 may have downloaded 1.2.13 rather than 1.3.0. The "shorewall version" command will tell you which version that you have installed.
bulletThe documentation NAT.htm file uses non-existent wallpaper and bullet graphic files. The corrected version is here.

Problem with iptables version 1.2.3

There are a couple of serious bugs in iptables 1.2.3 that prevent it from working with Shorewall. Regrettably, RedHat released this buggy iptables in RedHat 7.2. 

I have built a corrected 1.2.3 rpm which you can download here  and I have also built an iptables-1.2.4 rpm which you can download here. If you are currently running RedHat 7.1, you can install either of these RPMs before you upgrade to RedHat 7.2.

Update 11/9/2001: RedHat has released an iptables-1.2.4 RPM of their own which you can download from http://www.redhat.com/support/errata/RHSA-2001-144.html. I have installed this RPM on my firewall and it works fine.

If you would like to patch iptables 1.2.3 yourself, the patches are available for download. This patch which corrects a problem with parsing of the --log-level specification while this patch corrects a problem in handling the  TOS target.

To install one of the above patches:

bulletcd iptables-1.2.3/extensions
bulletpatch -p0 < the-patch-file

Problems with kernel 2.4.18 and RedHat iptables

Users who use RedHat iptables RPMs and who upgrade to kernel 2.4.18 may experience the following:

# shorewall start
Processing /etc/shorewall/shorewall.conf ...
Processing /etc/shorewall/params ...
Starting Shorewall...
Loading Modules...
Initializing...
Determining Zones...
Zones: net
Validating interfaces file...
Validating hosts file...
Determining Hosts in Zones...
Net Zone: eth0:0.0.0.0/0
iptables: libiptc/libip4tc.c:380: do_check: Assertion
`h->info.valid_hooks == (1 << 0 | 1 << 3)' failed.
Aborted (core dumped)
iptables: libiptc/libip4tc.c:380: do_check: Assertion
`h->info.valid_hooks == (1 << 0 | 1 << 3)' failed.
Aborted (core dumped)

The RedHat iptables RPM is compiled with debugging enabled but the user-space debugging code was not updated to reflect recent changes in the Netfilter 'mangle' table. You can correct the problem by installing this iptables RPM. If you are already running a 1.2.5 version of iptables, you will need to specify the --oldpackage option to rpm (e.g., "iptables -Uvh --oldpackage iptables-1.2.5-1.i386.rpm").

Problems installing/upgrading RPM on SuSE SMP

If you find that rpm complains about a conflict with kernel <= 2.2 yet you have a 2.4 kernel installed, simply use the "--nodeps" option to rpm.

Installing: rpm -ivh <shorewall rpm>

Upgrading: rpm -Uvh <shorewall rpm>

Last updated 8/4/2002 - Tom Eastep

Copyright © 2001, 2002 Thomas M. Eastep.