#!/bin/sh ################################################################################## # GLOBAL VARIABLES ################################################################################## IFCONFIG=/sbin/ifconfig AWK=/bin/awk INTIF="eth0" INTIF2="eth1" EXTIF="eth2" echo " External Interface: $EXTIF" echo " Internal Interface 1: $INTIF" echo " Internal Interface 2: $INTIF2" echo " ---" EXTIP="`$IFCONFIG $EXTIF | $AWK \ /$EXTIF/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'`" echo " External IP: $EXTIP" echo " ---" iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP ################################################################################## # FORWARD RULES ################################################################################## iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT # eth0 -> eth2 iptables -A FORWARD -i $INTIF2 -o $EXTIF -j ACCEPT # eth1 -> eth2 iptables -A FORWARD -i $INTIF -o $INTIF -j ACCEPT # eth0 -> eth0 iptables -A FORWARD -i $INTIF2 -o $INTIF2 -j ACCEPT # eth1 -> eth1 iptables -A FORWARD -i $INTIF -o $INTIF2 -j ACCEPT # eth0 -> eth1 iptables -A FORWARD -i $INTIF2 -o $INTIF -j ACCEPT # eth1 -> eth0 iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT # eth3 -> eth0 iptables -A FORWARD -i $EXTIF -o $INTIF2 -m state --state ESTABLISHED,RELATED -j ACCEPT # eth3 -> eth1 ################################################################################## # INPUT RULES ################################################################################## iptables -A INPUT -s 127.0.0.1 -j ACCEPT # lo iptables -A INPUT -i $INTIF -j ACCEPT # eth0 iptables -A INPUT -i $INTIF2 -j ACCEPT # eth1 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # eth3 + any other interface not specified just in case # ECHO ICMP PING ALLOW iptables -A INPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED --icmp-type echo-request -m limit --limit 1/s -j ACCEPT ################################################################################## # vsFTP Server on the Firewall ################################################################################## iptables -A INPUT -i $EXTIF -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT # ACTIVE iptables -A INPUT -i $EXTIF -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT # PASSIVE iptables -A INPUT -i $EXTIF -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT ################################################################################## # OUTPUT RULES ################################################################################## iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT # lo iptables -A OUTPUT -s 192.168.1.253 -j ACCEPT # eth0 iptables -A OUTPUT -s 192.168.6.250 -j ACCEPT # eth1 iptables -A OUTPUT -s $EXTIP -j ACCEPT # eth2 ################################################################################## # POSTROUTING ################################################################################## iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o $EXTIF -j SNAT --to-source $EXTIP iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o $EXTIF -j SNAT --to-source $EXTIP iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -o $EXTIF -j SNAT --to-source $EXTIP iptables -t nat -A POSTROUTING -s 192.168.3.0/255.255.255.0 -o $EXTIF -j SNAT --to-source $EXTIP iptables -t nat -A POSTROUTING -s 192.168.4.0/255.255.255.0 -o $EXTIF -j SNAT --to-source $EXTIP iptables -t nat -A POSTROUTING -s 192.168.5.0/255.255.255.0 -o $EXTIF -j SNAT --to-source $EXTIP iptables -t nat -A POSTROUTING -s 192.168.6.0/255.255.255.0 -o $EXTIF -j SNAT --to-source $EXTIP iptables -t nat -A POSTROUTING -s 192.168.10.0/255.255.255.0 -o $EXTIF -j SNAT --to-source $EXTIP iptables -t nat -A POSTROUTING -s 192.168.11.0/255.255.255.0 -o $EXTIF -j SNAT --to-source $EXTIP iptables -t nat -A POSTROUTING -s 192.168.56.0/255.255.255.0 -o $EXTIF -j SNAT --to-source $EXTIP iptables -t nat -A POSTROUTING -s 192.168.57.0/255.255.255.0 -o $EXTIF -j SNAT --to-source $EXTIP