Projekat

Općenito

Profil

FwBuilder » router-wan-rg-2_.fw.txt

router-wan-rg-2 - Ernad Husremović, 24.04.2008 13:44

 
#!/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
#


(2-2/5)