#
# Sample script to enable/disable ports on a linux router for local game clients
#
# WARNING: Customize this sample carefully! You might damage your firewall by accident!
#
# 2005/12 framp 
#

SUDO=/usr/bin/sudo

# customize the following parms according your environment

IF="eth0"		# external interface
LF="eth0"		# internal interface
IP="192.168.0.2"	# internal IP

#set -o xtrace		# to enable tracing

# run as root - needs sudo definitions

if test -x $SUDO ; then
   if test $UID -ne 0; then
	exec $SUDO $0 $*
   fi
fi

me=`basename $0`

if [[ $1 == "" ]]; then
	echo "$me: Missing -I (insert) or -D (delete)"
	exit 1;
fi

if [[ $1 == "-I" ]]; then
	cmd="-I"
	action="Enabling games..."
else
	cmd="-D"
	action="Disabling games..."
fi
 
logger "$me: $action"

AWK=`which awk`
SED=`which sed`
IFCONFIG="/sbin/ifconfig"
EXTIP="`$IFCONFIG $IF 2>/dev/null|$AWK '/inet addr:/ {print $2}'|$SED 's/addr://'`"

if [[ $EXTIP == "" ]]; then
	echo "$me: Error retrieving external IP address from interface $IF"
	exit 1
fi

# enable masquerading
/usr/sbin/iptables -t nat $cmd POSTROUTING -o $IF -s $IP -j MASQUERADE

#gilde server
echo "Gilde Server"
/usr/sbin/iptables -t nat $cmd PREROUTING -p tcp -d $EXTIP --dport 7531 -j DNAT --to $IP
/usr/sbin/iptables -t nat $cmd PREROUTING -p udp -d $EXTIP --dport 7531 -j DNAT --to $IP
/usr/sbin/iptables $cmd FORWARD -p tcp -o $IF -i $LF -s $IP --sport 7531 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p tcp -i $IF -o $LF -d $IP --dport 7531 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p udp -o $IF -i $LF -s $IP --sport 7531 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p udp -i $IF -o $LF -d $IP --dport 7531 -j ACCEPT

# age of empires server
echo "Age of empires server"
/usr/sbin/iptables -t nat $cmd PREROUTING -p udp -d $EXTIP --dport 2300:2400 -j DNAT --to $IP
/usr/sbin/iptables -t nat $cmd PREROUTING -p tcp -d $EXTIP --dport 2300:2400 -j DNAT --to $IP
/usr/sbin/iptables -t nat $cmd PREROUTING -p udp -d $EXTIP --dport 47624 -j DNAT --to $IP
/usr/sbin/iptables -t nat $cmd PREROUTING -p tcp -d $EXTIP --dport 47624 -j DNAT --to $IP
/usr/sbin/iptables $cmd FORWARD -p tcp -i $IF -o $LF -d $IP --dport 2300:2400 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p udp -i $IF -o $LF -d $IP --dport 2300:2400 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p tcp -i $LF -o $IF -s $IP --sport 2300:2400 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p udp -i $LF -o $IF -s $IP --sport 2300:2400 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p udp -i $IF -o $LF -d $IP --dport 47624 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p tcp -i $IF -o $LF -d $IP --dport 47624 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p udp -i $LF -o $IF -s $IP --sport 47624 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p tcp -i $LF -o $IF -s $IP --sport 47624 -j ACCEPT

# habohotel
echo "Hobotel"
/usr/sbin/iptables $cmd FORWARD -p tcp -i $LF -o $IF -s $IP --dport 37005 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p tcp -i $IF -o $LF -d $IP --sport 37005 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p tcp -i $LF -o $IF -s $IP --dport 37300:37500 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p tcp -i $IF -o $LF -d $IP --sport 37300:37500 -j ACCEPT

#
# irc
#
echo "IRC"
/usr/sbin/iptables $cmd FORWARD -p tcp -o $IF -i $LF -d 0/0 -s $IP --dport 6667:6668 -j ACCEPT

#
# icq
#
echo "ICQ"
/usr/sbin/iptables $cmd FORWARD -p tcp -o $IF -i $LF -d 0/0 -s $IP --dport 5190 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p tcp -i $IF -o $LF -s 0/0 -d $IP --sport 5190 -j ACCEPT

# mediaplaetr
echo "Mediaplayer"
/usr/sbin/iptables $cmd FORWARD -p tcp -o $IF -i $LF -d 0/0 -s $IP --dport 1755 -j ACCEPT
/usr/sbin/iptables $cmd FORWARD -p tcp -i $IF -o $LF -s 0/0 -d $IP --sport 1755 -j ACCEPT

echo "$me: Done"

