config_set $ZONE_LIST $1 1
$IPTABLES -N zone_$1
+ $IPTABLES -N zone_$1_MSSFIX
$IPTABLES -N zone_$1_ACCEPT
$IPTABLES -N zone_$1_DROP
$IPTABLES -N zone_$1_REJECT
[ -n "$dev" -a "$dev" == "$1" ] && return
logger "adding $1 to firewall zone $2"
$IPTABLES -A input -i $1 -j zone_$2
+ $IPTABLES -I zone_$2_MSSFIX 1 -o $1 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPTABLES -I zone_$2_ACCEPT 1 -o $1 -j ACCEPT
$IPTABLES -I zone_$2_DROP 1 -o $1 -j DROP
$IPTABLES -I zone_$2_REJECT 1 -o $1 -j reject
$IPTABLES -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -m state --state INVALID -j DROP
- $IPTABLES -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT
config_get syn_rate $1 syn_rate
config_get syn_burst $1 syn_burst
[ "$syn_flood" == "1" ] && load_synflood $syn_rate $syn_burst
+
+ echo "Adding custom chains"
+ fw_custom_chains
$IPTABLES -N input
$IPTABLES -N output
$IPTABLES -A reject -p tcp -j REJECT --reject-with tcp-reset
$IPTABLES -A reject -j REJECT --reject-with icmp-port-unreachable
- echo "Adding custom chains"
- fw_custom_chains
-
fw_set_chain_policy INPUT "$DEF_INPUT"
fw_set_chain_policy OUTPUT "$DEF_OUTPUT"
fw_set_chain_policy FORWARD "$DEF_FORWARD"
config_get proto $1 proto
config_get target $1 target
config_get ruleset $1 ruleset
-
+
+ ZONE=input
+ TARGET=$target
[ -z "$target" ] && target=DROP
- [ -n "$src" ] && ZONE=zone_$src || ZONE=input
- [ -n "$dest" ] && TARGET=zone_${dest}_$target || TARGET=$target
+ [ -n "$src" -a -z "$dest" ] && ZONE=zone_$src
+ [ -n "$src" -a -n "$dest" ] && ZONE=zone_${src}_forward
+ [ -n "$dest" ] && TARGET=zone_${dest}_$target
add_rule() {
$IPTABLES -I $ZONE 1 \
${proto:+-p $proto} \
config_get src $1 src
config_get dest $1 dest
+ config_get_bool mtu_fix $1 mtu_fix 0
[ -n "$src" ] && z_src=zone_${src}_forward || z_src=forward
[ -n "$dest" ] && z_dest=zone_${dest}_ACCEPT || z_dest=ACCEPT
$IPTABLES -I $z_src 1 -j $z_dest
+ [ "$mtu_fix" -gt 0 -a -n "$dest" ] && $IPTABLES -I $z_src 1 -j zone_${dest}_MSSFIX
}
fw_redirect() {