#!/bin/sh # # This is automatically generated file. DO NOT MODIFY ! # # Firewall Builder fwb_ipt v2.1.14-1 # # Generated Thu Apr 24 13:37:59 2008 CEST by hernad # # files: * router-wan-rg-2.fw # # # # # # PATH="/sbin:/usr/sbin:/bin:/usr/bin:${PATH}" export PATH LSMOD="/sbin/lsmod" MODPROBE="/sbin/modprobe" IPTABLES="/usr/sbin/iptables" IPTABLES_RESTORE="/usr/sbin/iptables-restore" IP="/usr/sbin/ip" LOGGER="/usr/bin/logger" # # Prolog script # # # End of prolog script # log() { echo "$1" test -x "$LOGGER" && $LOGGER -p info "$1" } check_file() { test -r "$2" || { echo "Can not find file $2 referenced by AddressTable object $1" exit 1 } } va_num=1 add_addr() { addr=$1 nm=$2 dev=$3 type="" aadd="" L=`$IP -4 link ls $dev | head -n1` if test -n "$L"; then OIFS=$IFS IFS=" /:,<" set $L type=$4 IFS=$OIFS if test "$type" = "NO-CARRIER"; then type=$5 fi L=`$IP -4 addr ls $dev to $addr | grep inet | grep -v :` if test -n "$L"; then OIFS=$IFS IFS=" /" set $L aadd=$2 IFS=$OIFS fi fi if test -z "$aadd"; then if test "$type" = "POINTOPOINT"; then $IP -4 addr add $addr dev $dev scope global label $dev:FWB${va_num} va_num=`expr $va_num + 1` fi if test "$type" = "BROADCAST"; then $IP -4 addr add $addr/$nm dev $dev brd + scope global label $dev:FWB${va_num} va_num=`expr $va_num + 1` fi fi } getInterfaceVarName() { echo $1 | sed 's/\./_/' } getaddr() { dev=$1 name=$2 L=`$IP -4 addr show dev $dev | grep inet | grep -v :` test -z "$L" && { eval "$name=''" return } OIFS=$IFS IFS=" /" set $L eval "$name=$2" IFS=$OIFS } getinterfaces() { NAME=$1 $IP link show | grep ": $NAME" | while read L; do OIFS=$IFS IFS=" :" set $L IFS=$OIFS echo $2 done } # increment ip address incaddr() { n1=$4 n2=$3 n3=$2 n4=$1 vn1=`eval "echo \\$$n1"` R=`expr $vn1 \< 255` if test $R = "1"; then eval "$n1=`expr $vn1 + 1`" else eval "$n1=0" incaddr XX $n4 $n3 $n2 fi } if $IP link ls >/dev/null 2>&1; then echo; else echo "iproute not found" exit 1 fi MODULES_DIR="/lib/modules/`uname -r`/kernel/net/" MODULES=`find $MODULES_DIR -name '*conntrack*'|sed -e 's/^.*\///' -e 's/\([^\.]\)\..*/\1/'` MODULES="$MODULES `find $MODULES_DIR -name '*nat*'|sed -e 's/^.*\///' -e 's/\([^\.]\)\..*/\1/'`" for module in $MODULES; do if $LSMOD | grep ${module} >/dev/null; then continue; fi $MODPROBE ${module} || exit 1 done # Using 0 address table files # Configure interfaces $IP -4 neigh flush dev br-lan >/dev/null 2>&1 $IP -4 addr flush dev br-lan secondary label "br-lan:FWB*" >/dev/null 2>&1 getaddr ppp1 i_ppp1 getaddr ppp0 i_ppp0 # Add virtual addresses for NAT rules log 'Activating firewall script generated Thu Apr 24 13:37:59 2008 by hernad' $IPTABLES -P OUTPUT DROP $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP ip6tables -L -n > /dev/null 2>&1 && { ip6tables -P OUTPUT DROP ip6tables -P INPUT DROP ip6tables -P FORWARD DROP ip6tables -A INPUT -i lo -j ACCEPT ip6tables -A OUTPUT -o lo -j ACCEPT } cat /proc/net/ip_tables_names | while read table; do $IPTABLES -t $table -L -n | while read c chain rest; do if test "X$c" = "XChain" ; then $IPTABLES -t $table -F $chain fi done $IPTABLES -t $table -X done $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # # Rule 0 (NAT) # echo "Rule 0 (NAT)" # # test -n "$i_ppp0" && $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -m multiport -d $i_ppp0 --dports 25,80,443 -j DNAT --to-destination 192.168.55.12 # # Rule 1 (NAT) # echo "Rule 1 (NAT)" # # $IPTABLES -t nat -N Cid480E19E47826.0 $IPTABLES -t nat -A POSTROUTING -o ppp0 -s 192.168.55.0/24 -j Cid480E19E47826.0 $IPTABLES -t nat -A Cid480E19E47826.0 -d 195.222.62.0/24 -j MASQUERADE $IPTABLES -t nat -A Cid480E19E47826.0 -d 195.222.57.0/24 -j MASQUERADE # # Rule 2 (NAT) # echo "Rule 2 (NAT)" # # $IPTABLES -t nat -N Cid480E19F97826.0 $IPTABLES -t nat -A POSTROUTING -o ppp1 -s 192.168.55.0/24 -j Cid480E19F97826.0 $IPTABLES -t nat -A Cid480E19F97826.0 -d 208.0.0.0/4 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 200.0.0.0/5 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 196.0.0.0/6 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 195.224.0.0/11 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 195.222.0.0/15 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 224.0.0.0/4 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 240.0.0.0/5 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 248.0.0.0/6 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 252.0.0.0/7 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 254.0.0.0/8 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 255.0.0.0/9 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 255.128.0.0/10 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 255.192.0.0/11 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 255.224.0.0/12 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 255.240.0.0/13 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 255.248.0.0/14 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 255.252.0.0/15 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 255.254.0.0/16 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 255.255.0.0 -j MASQUERADE $IPTABLES -t nat -A Cid480E19F97826.0 -d 80.65.85.0/24 -j MASQUERADE # # Rule 3 (NAT) # echo "Rule 3 (NAT)" # # $IPTABLES -t nat -A POSTROUTING -o ppp0 -s 192.168.55.0/24 -j MASQUERADE # # Rule 0 (lo) # echo "Rule 0 (lo)" # # # $IPTABLES -A INPUT -i lo -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -o lo -m state --state NEW -j ACCEPT # # Rule 1 (global) # echo "Rule 1 (global)" # # # $IPTABLES -N RULE_1 $IPTABLES -A OUTPUT -p icmp -m icmp --icmp-type 0/0 -m state --state NEW -j RULE_1 $IPTABLES -A OUTPUT -p icmp -m icmp --icmp-type 8/0 -m state --state NEW -j RULE_1 $IPTABLES -A OUTPUT -p tcp -m tcp -m multiport --dports 22,25,443,80 -m state --state NEW -j RULE_1 $IPTABLES -A INPUT -p icmp -m icmp --icmp-type 0/0 -m state --state NEW -j RULE_1 $IPTABLES -A INPUT -p icmp -m icmp --icmp-type 8/0 -m state --state NEW -j RULE_1 $IPTABLES -A INPUT -p tcp -m tcp -m multiport --dports 22,25,443,80 -m state --state NEW -j RULE_1 $IPTABLES -A FORWARD -p icmp -m icmp --icmp-type 0/0 -m state --state NEW -j RULE_1 $IPTABLES -A FORWARD -p icmp -m icmp --icmp-type 8/0 -m state --state NEW -j RULE_1 $IPTABLES -A FORWARD -p tcp -m tcp -m multiport --dports 22,25,443,80 -m state --state NEW -j RULE_1 $IPTABLES -A RULE_1 -j LOG --log-level info --log-prefix "RULE 1 -- ACCEPT " $IPTABLES -A RULE_1 -j ACCEPT # # Rule 2 (global) # echo "Rule 2 (global)" # # # $IPTABLES -N RULE_2 $IPTABLES -A INPUT -s 192.168.55.0/24 -m state --state NEW -j RULE_2 $IPTABLES -A RULE_2 -j LOG --log-level info --log-prefix "RULE 2 -- ACCEPT " $IPTABLES -A RULE_2 -j ACCEPT # # Rule 3 (global) # echo "Rule 3 (global)" # # Firewall uses one of the machines # on internal network for DNS # $IPTABLES -A OUTPUT -p tcp -m tcp -d 192.168.55.0/24 --dport 53 -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -p udp -m udp -d 192.168.55.0/24 --dport 53 -m state --state NEW -j ACCEPT # # Rule 4 (global) # echo "Rule 4 (global)" # # # $IPTABLES -N Cid480E19897826.0 $IPTABLES -A INPUT -p tcp -m tcp -m multiport --dports 53,873 -m state --state NEW -j Cid480E19897826.0 $IPTABLES -A INPUT -p udp -m udp -m multiport --dports 53,123,1194 -m state --state NEW -j Cid480E19897826.0 $IPTABLES -A Cid480E19897826.0 -s 192.168.55.254 -j ACCEPT test -n "$i_ppp1" && $IPTABLES -A Cid480E19897826.0 -s $i_ppp1 -j ACCEPT test -n "$i_ppp0" && $IPTABLES -A Cid480E19897826.0 -s $i_ppp0 -j ACCEPT $IPTABLES -A OUTPUT -p tcp -m tcp -m multiport --dports 53,873 -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -p udp -m udp -m multiport --dports 53,123,1194 -m state --state NEW -j ACCEPT # # Rule 5 (global) # echo "Rule 5 (global)" # # # $IPTABLES -N RULE_5 $IPTABLES -A INPUT -s 192.168.55.0/24 -m state --state NEW -j RULE_5 $IPTABLES -A OUTPUT -s 192.168.55.0/24 -m state --state NEW -j RULE_5 $IPTABLES -A FORWARD -s 192.168.55.0/24 -m state --state NEW -j RULE_5 $IPTABLES -A RULE_5 -j LOG --log-level info --log-prefix "RULE 5 -- ACCEPT " $IPTABLES -A RULE_5 -j ACCEPT # # Rule 6 (global) # echo "Rule 6 (global)" # # # $IPTABLES -N RULE_6 $IPTABLES -A OUTPUT -j RULE_6 $IPTABLES -A INPUT -j RULE_6 $IPTABLES -A FORWARD -j RULE_6 $IPTABLES -A RULE_6 -j LOG --log-level info --log-prefix "POLICY-DENY " $IPTABLES -A RULE_6 -j DROP # # echo 1 > /proc/sys/net/ipv4/ip_forward # # Epilog script # # End of epilog script #