Upgrade Issues |
For upgrade instructions see the Install/Upgrade page.
It is important that you read all of the sections on this page where the
version number mentioned in the section title is later than what you are
currently running.
In the descriptions that follows, the term group refers
to a particular network or subnetwork (which may be 0.0.0.0/0 or it may
be a host address) accessed through a particular interface.
Examples:
eth0:0.0.0.0/0
eth2:192.168.1.0/24
eth3:192.0.2.123
- If you have a Z Z ACCEPT policy for a zone to allow traffic between two interfaces to the same zone, that policy can be removed and traffic between the interfaces will traverse fewer rules than previously.
- If you have a Z Z DROP or Z Z REJECT policy or you have Z->Z rules then your configuration should not require any change.
- If you are currently relying on a implicit policy (one that has "all" in either the SOURCE or DESTINATION column) to prevent traffic between two interfaces to a zone Z and you have no rules for Z->Z then you should add an explicit DROP or REJECT policy for Z to Z.
If you use the technique described in FAQ 2 to send local requests addressed to your firewall's external address back to a local server then you need to change your configuration to match the new version of FAQ #2.
- The subnetworks must be in different zones; or
- You must use the /etc/shorewall/hosts file to define the subnetworks as two groups in a single zone.
Example 2 -- One zone:/etc/shorewall/zones
z1 Zone1 The first Zone
z2 Zone2 The secont Zone
/etc/shorewall/policy
z1 z2 ACCEPT
z2 z1 ACCEPT
/etc/shorewall/interfaces
- eth1 192.168.1.255,192.168.2.255
/etc/shorewall/hosts
z1 eth1:192.168.1.0/24
z2 eth1:192.168.2.0/24
Note that in the second example, we don't need any policy since z->z traffic is accepted by default. The second technique is preferable if you want unlimited access between the two subnetworks.
/etc/shorewall/zones
z Zone The Zone
/etc/shorewall/interfaces
- eth1 192.168.1.255,192.168.2.255
/etc/shorewall/hosts
z eth1:192.168.1.0/24
z eth1:192.168.2.0/24
Here, zone z1 is nested in zone z2 and the firewall is not going to be involved in any traffic between these two zones. Beginning with Shorewall 1.4.1, you can prevent Shorewall from setting up any infrastructure to handle traffic between z1 and z2 by using the new NONE policy:/etc/shorewall/zones
z1 Zone1 The first Zone
z2 Zone2 The secont Zone
/etc/shorewall/interfaces
z2 eth1 192.168.1.255
/etc/shorewall/hosts
z1 eth1:192.168.1.3
Note that NONE policies are generally used in pairs unless there is asymetric routing where only the traffic on one direction flows through the firewall and you are using a NONE polciy in the other direction./etc/shorewall/policyz1 z2 NONE
z2 z1 NONE
- There is an explicit policy for the source zone to or from the destination zone. An explicit policy names both zones and does not use the 'all' reserved word.
- There are one or more rules for traffic for the source zone to or from the destination zone including rules that use the 'all' reserved word. Exception: if the source zone and destination zone are the same then the rule must be explicit - it must name the zone in both the SOURCE and DESTINATION columns.
[root@gateway test]# cat /etc/shorewall/masq
#INTERFACE SUBNET ADDRESS
eth0 eth2 206.124.146.176
eth0 192.168.10.0/24 206.124.146.176
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
[root@gateway test]# ip route show dev eth2
192.168.1.0/24 scope link
192.168.10.0/24 proto kernel scope link src 192.168.10.254
[root@gateway test]#
In this case, the second entry in /etc/shorewall/masq is no longer required.Example 2-- What if your current configuration is like this?
[root@gateway test]# cat /etc/shorewall/masq
#INTERFACE SUBNET ADDRESS
eth0 eth2 206.124.146.176
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
[root@gateway test]# ip route show dev eth2
192.168.1.0/24 scope link
192.168.10.0/24 proto kernel scope link src 192.168.10.254
[root@gateway test]#
In this case, you would want to change the entry in /etc/shorewall/masq to:
#INTERFACE SUBNET ADDRESSVersion 1.3.14 also introduced simplified ICMP echo-request (ping) handling. The option OLD_PING_HANDLING=Yes in /etc/shorewall/shorewall.conf is used to specify that the old (pre-1.3.14) ping handling is to be used (If the option is not set in your /etc/shorewall/shorewall.conf then OLD_PING_HANDLING=Yes is assumed). I don't plan on supporting the old handling indefinitely so I urge current users to migrate to using the new handling as soon as possible. See the 'Ping' handling documentation for details.
eth0 192.168.1.0/24 206.124.146.176
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
rpm -Uvh --force shorewall-1.3.10-1.noarch.rpm
If you have a pair of firewall systems configured for failover or if you have asymmetric routing, you will need to modify your firewall setup slightly under Shorewall versions >= 1.3.8. Beginning with version 1.3.8, you must set NEWNOTSYN=Yes in your /etc/shorewall/shorewall.conf file.
Users specifying ALLOWRELATED=No in /etc/shorewall.conf will need to include the following rules in their /etc/shorewall/icmpdef file (creating this file if necessary):
run_iptables -A icmpdef -p ICMP --icmp-type echo-reply -j ACCEPT
run_iptables -A icmpdef -p ICMP --icmp-type source-quench -j ACCEPT
run_iptables -A icmpdef -p ICMP --icmp-type destination-unreachable -j ACCEPT
run_iptables -A icmpdef -p ICMP --icmp-type time-exceeded -j ACCEPT
run_iptables -A icmpdef -p ICMP --icmp-type parameter-problem -j ACCEPT
Users having an /etc/shorewall/icmpdef file may remove the ". /etc/shorewall/icmp.def" command from that file since the icmp.def file is now empty.
To properly upgrade with Shorewall version 1.3.3 and later:
The .lrp that I release isn't set up for a two-interface firewall like Jacques's. You need to follow the instructions for setting up a two-interface firewall plus you also need to add the following two Bering-specific rules to /etc/shorewall/rules:
# Bering specific rules:
# allow loc to fw udp/53 for dnscache to work
# allow loc to fw tcp/80 for weblet to work
#
ACCEPT loc fw udp 53
ACCEPT loc fw tcp 80
If you have a pair of firewall systems configured for failover or if you have asymmetric routing, you will need to modify your firewall setup slightly under Shorewall versions 1.3.6 and 1.3.7
Create the file /etc/shorewall/newnotsyn and in it add
the following rule
run_iptables -A newnotsyn
-j RETURN # So that the connection tracking table can be
rebuilt
# from
non-SYN packets after takeover.
Create /etc/shorewall/common (if you don't already
have that file) and include the following:
run_iptables -A common
-p tcp --tcp-flags ACK,FIN,RST ACK -j ACCEPT #Accept Acks
to rebuild connection
#tracking table.
. /etc/shorewall/common.def
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
The functions and versions files together with the 'firewall' symbolic link have moved from /etc/shorewall to /var/lib/shorewall. If you have applications that access these files, those applications should be modified accordingly.
Last updated 4/7/2003 - Tom Eastep
Copyright
© 2001, 2002, 2003 Thomas M. Eastep.