From 42b95182004e3cfe731fde33105fa72809be80a4 Mon Sep 17 00:00:00 2001 From: kueller Date: Thu, 19 Aug 2010 19:31:06 +0000 Subject: [PATCH] =?UTF-8?q?Direkte=20Freischaltungen=20von=20Diensten=20im?= =?UTF-8?q?=20gesch=C3=BCtzen=20Netz=20nach=20aussen=20ist=20jetzt=20auch?= =?UTF-8?q?=20m=C3=B6glich?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://svn.compuextreme.de/Viitor/V962/Viitor_iptables@5795 504e572c-2e33-0410-9681-be2bf7408885 --- etc/init.d/.firewallfunc | 29 +++++++++++++++++++++++++++++ etc/init.d/firewall | 12 ++++++++++++ etc/sysconfig/templates/firewall | 8 ++++++++ 3 files changed, 49 insertions(+) diff --git a/etc/init.d/.firewallfunc b/etc/init.d/.firewallfunc index 2214585..f27ddae 100755 --- a/etc/init.d/.firewallfunc +++ b/etc/init.d/.firewallfunc @@ -325,6 +325,35 @@ LocalAllowWSAll() { done } +AllowIntranetService() { + WSIP=$1 + WSPORT=$2 + WSPROT=$3 + + WSMASK=`getmask $WSIP` + WSNET=`getnetaddr $WSIP $WSMASK` + NETDEV=`netstat -rn| \ + grep $WSNET| \ + sed -e "/^0.0.0.0/d" | \ + awk '{print $8}'` + LOCIP=`ifconfig $NETDEV|grep inet|awk '{print $2}'|cut -d":" -f 2` + echo "AllowIntanetService $NETDEV , $LOCIP" + echo $DEBUG $IPTABLES -A OUTPUT \ + -p $WSPROT \ + -d $WSIP \ + -s $LOCIP \ + -o $NETDEV \ + --dport $WSPORT \ + -j ACCEPT >>$TMPSCRIPT + echo $DEBUG $IPTABLES -A INPUT \ + -p $WSPROT \ + -s $WSIP \ + -d $LOCIP \ + -i $NETDEV \ + --sport $WSPORT \ + -j ACCEPT >>$TMPSCRIPT +} + LocalAllowPortIN() { UDP=$1 TCP=$2 diff --git a/etc/init.d/firewall b/etc/init.d/firewall index 6e94880..873ae1c 100644 --- a/etc/init.d/firewall +++ b/etc/init.d/firewall @@ -210,6 +210,18 @@ if [ -f "$CFGFILE" ]; then evaluate_retval (( y++ )) done + y=0 + while [ ${INSERVER[$y]} ]; do + echo "Allow Access to Intranet Service ${INSERVER[$y]}" + IP=`echo ${INSERVER[$y]}|awk -F":" '{print $1}'` + PORT=`echo ${INSERVER[$y]}|awk -F":" '{print $2}'` + PROT=`echo ${INSERVER[$y]}|awk -F":" '{print $3}'` + AllowIntranetService ${IP} \ + ${PORT} \ + ${PROT} + evaluate_retval + (( y++ )) + done for i in $GLOBALSERVER; do echo -n "Allow Access to Server $i" echo "#Zugriff auf server $i freigeben" >>$TMPSCRIPT diff --git a/etc/sysconfig/templates/firewall b/etc/sysconfig/templates/firewall index 5fd8f16..ed7af80 100644 --- a/etc/sysconfig/templates/firewall +++ b/etc/sysconfig/templates/firewall @@ -153,6 +153,14 @@ ALLOWNTP[1]="no" #space zeichen voneinander getrennt werden. GLOBALSERVER="192.168.66.49 192.168.66.53" +#Liegen die genutzen Dienste hinter einem grouteten Netz, so muss die +#Freischaltung anders erfolgen. Hierzu die Variable unten +#definieren. Angegeben wird hier die Server IP, der Dienst Port, sowie das +#Protokoll. Hier wird NUR dem Firewall Rechner der Zugriff auf diese +#Dienste erlaubt. +INSERVER[0]="192.168.75.67:53:tcp" +INSERVER[1]="192.168.75.67:53:udp" + #Serverdienste Auf Router. Hiermit können Bestimmte Zugriffe auf den Router #aus dem gesammten Localen Netz (definiert über die angegebenen Devices) #erlaubt werden. Die Angabe der Freigeschalteten Dienste erfolgt auf