0078819fec
git-svn-id: svn://svn.compuextreme.de/Viitor/V962/Viitor_iptables@5948 504e572c-2e33-0410-9681-be2bf7408885
466 lines
15 KiB
Bash
466 lines
15 KiB
Bash
#!/bin/bash
|
|
#Framework, welches ein komplettes Linux System aus den Sourcen erstellt
|
|
#dieses Framework wird im CVS Repository
|
|
#:pserver:cvs.rainmaker-mm.de/RMM/cvs zur Verfügung gestellt
|
|
#
|
|
#Lage dieser Datei im Archiv: $Source$
|
|
#
|
|
#(c) Rainmaker MultiMedia OHG
|
|
#This program is free software; you can redistribute it and/or
|
|
#modify ist under the terms of the GNU General Public License
|
|
#as published by the Free Software Foundation; either version
|
|
#2 of the License, or (at your option) any later version.
|
|
#
|
|
#This program is distributed in the hope that it will be useful,
|
|
#but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
#See the GNU General Public License for more details.
|
|
#
|
|
#You should have received a copy of the GNU General Public License
|
|
#along with this program; if not write to the Free Software Foundation,
|
|
#Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
#
|
|
#Beschreibung:
|
|
#Neues Firewall Script für MonsumLinux. Dieses Script arbeitet
|
|
#in Verbindung mit /etc/init.d/functions und /etc/init.d/.firewallfunc
|
|
#Durch einfache Konfiguration über die Datei /etc/sysconfig/firewall
|
|
#kann die Firewall eingestellt werden. Es wird dediziert angegeben
|
|
#welche Systeme durch die Firewall das Angeschlossene Internet mit
|
|
#Dynamischer IP Nutzen können. Zugriff auf den Router selber, sowie
|
|
#das Routing durch den Router für die Local angeschlossenen Netze
|
|
#kann getrennt gesteuert werden.
|
|
#Die Firewall arbeitet nach der Regel: Alles was nicht explizit erlaubt
|
|
#ist, ist verboten.
|
|
#
|
|
#Aufrufparameter:
|
|
#Es handelt sich um ein System V Init script. Entsprechend die Optionen
|
|
#start und stop
|
|
#
|
|
#Letzte Änderung von: $Author$
|
|
#Datum der letzten Änderung: $Date$
|
|
#Version der Datei: $Revision$
|
|
#
|
|
#$Log$
|
|
#Revision 1.20 2007/05/09 12:03:06 segler
|
|
#firewall.template has moved to etc/sysconfig/net
|
|
#
|
|
#Revision 1.19 2007/05/02 12:07:35 segler
|
|
#iptables resides in /usr/sbin, not /sbin
|
|
#
|
|
#Revision 1.18 2007/03/23 11:25:32 kueller
|
|
#Neue Funktionen und bugfixes eingepflegt. (Diese laufen auf skylla und sphinx stabil)
|
|
#
|
|
#Revision 1.17 2006/08/24 21:19:41 kueller
|
|
#Viele Funktionen ueberarbeitet. Erkennung der incomming devices optimiert.
|
|
#Wird nicht mehr ueber das DEVICES Array mit verschachtelten schleifen gemacht,
|
|
#sondern ueber ausgaben von netstat -rn mit zugehoerigen netzadressen ->
|
|
#das ist deutlich schneller.
|
|
#Ausserdem ausbau und verbesserung diverser Firewall einstellungen. Weiter
|
|
#entwicklung des port forwardings auf interne Server -> dem scheint jetzt
|
|
#auch mit MASQUERADE zu funktionieren.
|
|
#Weiterhin die entschluesselung von "Portnummer;tcp" aufgehoben. dafuer
|
|
#werden jetzt jeweils 2 Variablen (1x udp, 1x tcp) definiert, und deren
|
|
#inhalte mit -m multiport auf einen schlag uebergeben. Das spart einiges
|
|
#an Schleifen und beschleunigt das script emminent.
|
|
#
|
|
#Revision 1.16 2006/06/30 09:33:02 kueller
|
|
#Sonderbehandlung fuer localen zugriff auf syslog eingebaut
|
|
#
|
|
#Revision 1.15 2006/02/21 14:42:35 kueller
|
|
#Korrektur im Aufruf der LocalServices Function - sollte jetzt fuer alle richtig functionieren.
|
|
#Weiterhin beschleunigung beim startup wenn /etc/sysconfig/firewall nicht veraendert wurde.
|
|
#Nach dem Aufbau der Firewall tables wird ein iptables-save in /var/state/iptables.state gemacht.
|
|
#Diese kann, sofern /etc/sysconfig/firewall unveraendert ist, mit iptables-restore wieder
|
|
#geladen werden - was wesentlich schneller als das parsen der configfiles geht.
|
|
#
|
|
#Revision 1.14 2004/11/23 19:46:07 kueller
|
|
#Debuging und neue Funktionalität der Firewall. Mit der Zeit weiter gewachsen
|
|
#im CompuExtreme Netzwerk.
|
|
#
|
|
#Revision 1.9 2002/11/04 12:03:01 kueller
|
|
#Fehlende Funktionssammlung .firewallfunc hinzugefügt. Erweiterung der Firewall
|
|
#um MARK Funktionalitaet, sowie Freischaltung von Getunnelten Netzen (letzteres
|
|
#ist in der DEBUG Phase und funktioniert noch nicht komplett!)
|
|
#
|
|
#Revision 1.8 2002/10/14 12:36:45 kueller
|
|
#Firewall Script komplett neu erstellt. Es wird nun mit den Unterschiedlichen
|
|
#Chains (INPUT, FORWARD, OUTPUT) gearbeitet. Die Firewall lässt sich so
|
|
#wesentlich feiner abstimmen, und arbeitet sicherer.
|
|
#
|
|
#
|
|
|
|
CFGFILE=/etc/sysconfig/net/firewall
|
|
SYSFUNCTIONS=/etc/init.d/functions
|
|
FIREWALLFUNC=/etc/init.d/.firewallfunc
|
|
TMPSCRIPT=/var/tmp/firewall_reconfig$$
|
|
|
|
source $SYSFUNCTIONS
|
|
source $FIREWALLFUNC
|
|
IPTABLES="/usr/sbin/iptables"
|
|
IPCFG=/sbin/ip
|
|
IFCONFIG=/sbin/ifconfig
|
|
#DEBUG=echo
|
|
|
|
if [ -f "$CFGFILE" ]; then
|
|
source $CFGFILE
|
|
case $1 in
|
|
start)
|
|
if [ -f /var/state/iptables.state ]; then
|
|
echo -n "Disabling Kernel Console Output"
|
|
echo "0" >/proc/sys/kernel/printk
|
|
evaluate_retval
|
|
echo -n "Restoring Firewall Table"
|
|
cat /var/state/iptables.state|iptables-restore
|
|
evaluate_retval
|
|
else
|
|
echo "No saved configuration. please generate new config"
|
|
echo "Use $0 configure to generate new config"
|
|
fi
|
|
;;
|
|
configure)
|
|
if [ -f "$TMPSCRIPT" ]; then
|
|
rm $TMPSCRIPT
|
|
fi
|
|
touch $TMPSCRIPT
|
|
chmod 755 $TMPSCRIPT
|
|
echo -n "Firewall: loads network informations"
|
|
LoadDevArray
|
|
evaluate_retval
|
|
echo -n "Firewall: Setting default rule DROP "
|
|
DefaultRule
|
|
evaluate_retval
|
|
echo -n "Firewall: Opening loopback Communication"
|
|
AllowLoopBack
|
|
evaluate_retval
|
|
ACCEPTRULE=ACCEPT
|
|
REJECTRULE=REJECT
|
|
if [ "$ACCOUNTING" == "yes" ]; then
|
|
echo -n "Activate ACCOUNTING LOG"
|
|
echo "#ACCOUNTING Table erstellen" >>$TMPSCRIPT
|
|
CreateAccountingTable
|
|
ACCEPTRULE=account-log
|
|
evaluate_retval
|
|
fi
|
|
if [ "$LOG_REJECTED" == "yes" ]; then
|
|
echo -n "Activate REJECT LOG"
|
|
echo "#LOG_REJECT einrichten" >>$TMPSCRIPT
|
|
CreateLogTable
|
|
REJECTRULE=reject-log
|
|
evaluate_retval
|
|
fi
|
|
if [ "$ICMP" == "yes" ]; then
|
|
echo -n "Activate ICMP Rules"
|
|
echo "#ICM Rules" >>$TMPSCRIPT
|
|
CreateICMPTable
|
|
ActivateICMPRules
|
|
evaluate_retval
|
|
else
|
|
echo -n "Opening ICMP"
|
|
echo "#ICM Ohne einschraenkung zulassen" >>$TMPSCRIPT
|
|
for i in FORWARD \
|
|
INPUT \
|
|
OUTPUT; do
|
|
echo "$DEBUG $IPTABLES -A $i \
|
|
-p icmp \
|
|
-j ACCEPT" >>$TMPSCRIPT
|
|
done
|
|
evaluate_retval
|
|
fi
|
|
if [ "$INTERNROUTING" ]; then
|
|
echo -n "Activate Local Routing for $INTERNROUTING"
|
|
echo "#Firewalling fuer interne Ports deaktivieren" >>$TMPSCRIPT
|
|
AllowInternRouting ACCEPT $INTERNROUTING
|
|
evaluate_retval
|
|
fi
|
|
y=0
|
|
while [ "${LOCALSERVER[$y]}" ]; do
|
|
echo -n "Activating allow for localserver ${LOCALSERVER[$y]}"
|
|
LOCSERVER=`echo ${LOCALSERVER[$y]}|cut -d":" -f 2`
|
|
DMZCLIENT=`echo ${LOCALSERVER[$y]}|cut -d":" -f 1`
|
|
LOCPORT=`echo ${LOCALSERVER[$y]}|cut -d":" -f 3`
|
|
LOCPROT=`echo ${LOCALSERVER[$y]}|cut -d":" -f 4`
|
|
AllowLocalServer $LOCSERVER \
|
|
$DMZCLIENT \
|
|
$LOCPORT \
|
|
$LOCPROT
|
|
evaluate_retval
|
|
(( y++ ))
|
|
done
|
|
if [ "$ALLOWNET" ]; then
|
|
echo -n "Allowing routing for NET=$ALLOWNET over $TUNDEV"
|
|
echo "#Netz $ALLOWNET komplett freischalten" >>$TMPSCRIPT
|
|
AllowAllDefault $ALLOWNET $TUNDEV ACCEPT
|
|
evaluate_retval
|
|
fi
|
|
for i in $MASQNET; do
|
|
echo -n "Activate Masquerading for $i"
|
|
echo "#Masquerade einrichten" >>$TMPSCRIPT
|
|
ActivateMasq $OUTDEVICE $MASQNET
|
|
evaluate_retval
|
|
done
|
|
y=0
|
|
while [ ${DMZSERVER[$y]} ]; do
|
|
echo "Allow Access to ${DMZSERVER[$y]}"
|
|
echo "for UDP Ports: ${UDPDMZPORTS[$y]}"
|
|
echo -n "for TCP Ports: ${TCPDMZPORTS[$y]}"
|
|
echo "#DMZServer ${DMZSERVER[$y]} freigeben" >>$TMPSCRIPT
|
|
AllowDMZServiceAccess ${DMZSERVER[$y]} \
|
|
"${UDPDMZPORTS[$y]}" \
|
|
"${TCPDMZPORTS[$y]}"
|
|
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
|
|
LocalAllowWSAll $i
|
|
evaluate_retval
|
|
done
|
|
if [ "$LOCALDEVICES" ]; then
|
|
if [ "$LOCALUDP" ] || [ "$LOCALTCP" ]; then
|
|
echo "#Zugriff auf Firewall fuer locale Netze freigeben" >>$TMPSCRIPT
|
|
LocalAllowPortIN "$LOCALUDP" "$LOCALTCP" "$LOCALDEVICES"
|
|
evaluate_retval
|
|
fi
|
|
fi
|
|
wszahler=0
|
|
while [ "${ALLOWEDNETWORK[$wszahler]}" ]; do
|
|
echo "Allow Local Access for Network ${ALLOWEDNETWORK[$wszahler]}"
|
|
echo "#Eingeschr. Zugriff fuer Netz ${ALLOWEDNETWORK[$wszahler]} einrichten" >>$TMPSCRIPT
|
|
AllowNetPortIN "${NETUDPSERVICES[$wszahler]}" \
|
|
"${NETTCPSERVICES[$wszahler]}" \
|
|
${ALLOWEDNETWORK[$wszahler]}
|
|
(( wszahler = $wszahler + 1 ))
|
|
done
|
|
wszahler=0
|
|
while [ "${LOCALWS[$wszahler]}" ]; do
|
|
echo "Internet Access for ${LOCALWS[$wszahler]}"
|
|
echo "UDP: ${ROUTEUDP[$wszahler]}"
|
|
echo -n "TCP:${ROUTETCP[$wszahler]}"
|
|
echo "#Freischaltung fuer ${LOCALWS[$wszahler]}" >>$TMPSCRIPT
|
|
AllowWSPortOUT $OUTDEVICE \
|
|
${LOCALWS[$wszahler]} \
|
|
"${ROUTEUDP[$wszahler]}" \
|
|
"${ROUTETCP[$wszahler]}" \
|
|
$ACCEPTRULE
|
|
if [ "${ALLOWSWPORTS[$wszahler]}" = "yes" ]; then
|
|
echo "#ftp portswitch fuer ${LOCALWS[$wszahler]}" >>$TMPSCRIPT
|
|
AllowWSSwitchPort ${LOCALWS[$wszahler]} tcp $OUTDEV $ACCEPTRULE
|
|
AllowWSSwitchPort ${LOCALWS[$wszahler]} udp $OUTDEV $ACCEPTRULE
|
|
fi
|
|
if [ "${ALLOWNTP[$wszahler]}" = "yes" ]; then
|
|
echo "#ntp fuer ${LOCALWS[$wszahler]}" >>$TMPSCRIPT
|
|
AllowWSntpSync $OUTDEV ${LOCALWS[$wszahler]} $ACCEPTRULE
|
|
fi
|
|
if [ "${ALLOWNETBIOS[$wszahler]}" = "yes" ]; then
|
|
echo "#netbios fuer ${LOCALWS[$wszahler]}" >>$TMPSCRIPT
|
|
AllowNetBios $OUTDEV ${LOCALWS[$wszahler]} $ACCEPTRULE
|
|
fi
|
|
evaluate_retval
|
|
(( wszahler = $wszahler + 1 ))
|
|
done
|
|
netzahler=0
|
|
while [ "${ROUTEDBGNETWORK[$netzahler]}" ]; do
|
|
echo "Internet Access for ${ROUTEDBGNETWORK[$netzahler]}"
|
|
echo "UDPPORTS: ${BGNETUDP[$netzahler]}"
|
|
echo -n "RCPPORTS: ${BGNETTCP[$netzahler]}"
|
|
echo "#Internet Access for ${ROUTEDBGNETWORK[$netzahler]}" >>$TMPSCRIPT
|
|
AllowRouteNetOut ${ROUTEDBGNETWORK[$netzahler]} \
|
|
$OUTDEV \
|
|
"${BGNETUDP[$netzahler]}" \
|
|
"${BGNETTCP[$netzahler]}" \
|
|
$ACCEPTRULE
|
|
evaluate_retval
|
|
if [ ${ROUTEDBGNETSW[$netzahler]} == "yes" ]; then
|
|
echo "Allowing Port Switch for ${ROUTEDBGNETWORK[$netzahler]}"
|
|
echo "#Allowing Port Switch for ${ROUTEDBGNETWORK[$netzahler]}" >>$TMPSCRIPT
|
|
AllowRouteNetSwitch ${ROUTEDBGNETWORK[$netzahler]} $OUTDEV tcp $ACCEPTRULE
|
|
AllowRouteNetSwitch ${ROUTEDBGNETWORK[$netzahler]} $OUTDEV udp $ACCEPTRULE
|
|
fi
|
|
if [ ${ROUTEDBGNETNTP[$netzahler]} == "yes" ]; then
|
|
echo "Allowing NTP for ${ROUTEDBGNETWORK[$netzahler]}"
|
|
echo "#Allowing NTP for ${ROUTEDBGNETWORK[$netzahler]}" >>$TMPSCRIPT
|
|
AllowRouteNetNTP ${ROUTEDBGNETWORK[$netzahler]} $OUTDEV $ACCEPTRULE
|
|
fi
|
|
(( netzahler = $netzahler + 1 ))
|
|
done
|
|
if [ "$EXTUDPOPEN" ] || [ "$EXTTCPOPTEN"]; then
|
|
echo "Allow External Access"
|
|
echo "for UDP: $EXTUDPOPEN"
|
|
echo -n "for TCP: $EXTTCPOPEN"
|
|
echo "#Allow External Access" >>$TMPSCRIPT
|
|
ExternAllowPortIn "$EXTUDPOPEN" "$EXTTCPOPEN" $OUTDEVICE $ACCEPTRULE
|
|
evaluate_retval
|
|
fi
|
|
for i in $ALLOWDEVICESWPORT; do
|
|
echo -n "Allowing Portswitch on device $i"
|
|
echo "#Allowing Portswitch on device $i" >>$TMPSCRIPT
|
|
AllowLocalSwitchPort tcp $i $ACCEPTRULE
|
|
AllowLocalSwitchPort udp $i $ACCEPTRULE
|
|
evaluate_retval
|
|
done
|
|
if [ "$LOCALUSEUDP" ] || [ "$LOCALUSETCP" ]; then
|
|
echo "Allow Local Internet Access"
|
|
echo "for UDP: $LOCALUSEUDP"
|
|
echo -n "for TCP: $LOCALUSETCP"
|
|
echo "#Allow Local Internet Access" >>$TMPSCRIPT
|
|
ExternAllowPortOut "$LOCALUSEUDP" "$LOCALUSETCP" $OUTDEVICE $ACCEPTRULE
|
|
evaluate_retval
|
|
fi
|
|
if [ "$NTPSYNC" = "yes" ]; then
|
|
echo -n "Allow NTP Time Sync"
|
|
echo "#Allow NTP Time Sync" >>$TMPSCRIPT
|
|
LocalAllowntpSync $OUTDEV $ACCEPTRULE
|
|
evaluate_retval
|
|
fi
|
|
for i in $LOCSYSLOG; do
|
|
echo -n "Allowing remote syslog for $i"
|
|
echo "#Allowing remote syslog for $i" >>$TMPSCRIPT
|
|
ExternAllowSyslog $i $ACCEPTRULE
|
|
evaluate_retval
|
|
done
|
|
if [ "$USESYSLOG" ]; then
|
|
echo -n "Allowing use of $USESYSLOG for syslog"
|
|
echo "#Allowing use of $USESYSLOG for syslog" >>$TMPSCRIPT
|
|
LocalAllowSyslog $USESYSLOG $ACCEPTRULE
|
|
evaluate_retval
|
|
fi
|
|
if [ "$MARK" = "yes" ]; then
|
|
echo -n "Setting mark $MARKVALUE for Net $MARKNET"
|
|
echo "#Setting mark $MARKVALUE for Net $MARKNET" >>$TMPSCRIPT
|
|
InternMarkNet $MARKNET $MARKVALUE
|
|
evaluate_retval
|
|
fi
|
|
y=0
|
|
while [ "${FORWARDSRV[$y]}" ]; do
|
|
echo "Forwarding to ${FORWARDSRV[$y]}"
|
|
echo "UDP Ports: ${FORWDUDP[$y]}"
|
|
echo "TCP Ports: ${FORWDTCP[$y]}"
|
|
echo "#Forwarding to ${FORWARDSRV[$y]}" >>$TMPSCRIPT
|
|
ExtForwardPorts ${FORWARDSRV[$y]} \
|
|
"${FORWDUDP[$y]}" \
|
|
"${FORWDTCP[$y]}" \
|
|
$OUTDEVICE
|
|
evaluate_retval
|
|
(( y++ ))
|
|
done
|
|
y=0
|
|
while [ "${DSTSERVER[$y]}" ]; do
|
|
for x in ${FWDSERVICE[$y]}; do
|
|
SPORT=`echo $x|cut -d";" -f 1`
|
|
PROT=`echo $x|cut -d";" -f 2`
|
|
DPORT=`echo $x|cut -d";" -f 3`
|
|
ExtForwardPort ${DSTSERVER[$y]} \
|
|
$PROT \
|
|
$SPORT \
|
|
$DPORT \
|
|
$OUTDEVICE
|
|
done
|
|
(( y++ ))
|
|
done
|
|
if [ "$DHCPSERVER" ]; then
|
|
AllowDHCPRelay $DHCPSERVER
|
|
fi
|
|
echo -n "Closing all returned open ports"
|
|
echo "#Closing all returned open ports" >>$TMPSCRIPT
|
|
CloseLast $REJECTRULE
|
|
evaluate_retval
|
|
echo -n "Stopping Firewall"
|
|
$0 stop
|
|
evaluate_retval
|
|
echo -n "Applying new config to firewall"
|
|
$DEBUG $TMPSCRIPT
|
|
evaluate_retval
|
|
rm $TMPSCRIPT
|
|
echo -n "Saving Firewall rules table"
|
|
$DEBUG iptables-save >/var/state/iptables.state
|
|
evaluate_retval
|
|
;;
|
|
stop)
|
|
for i in filter nat mangle raw; do
|
|
$DEBUG $IPTABLES -t $i -F
|
|
$DEBUG $IPTABLES -t $i -X
|
|
done
|
|
|
|
for i in INPUT FORWARD OUTPUT; do
|
|
$DEBUG $IPTABLES -P $i ACCEPT
|
|
done
|
|
if [ "$ACCOUNTING" == "yes" ]; then
|
|
$DEBUG $IPTABLES -F account-log
|
|
$DEBUG $IPTABLES -X account-log
|
|
fi
|
|
if [ "$LOG_REJECTED" = "yes" ]; then
|
|
$DEBUG $IPTABLES -F reject-log
|
|
$DEBUG $IPTABLES -X reject-log
|
|
fi
|
|
if [ "$ICMP" == "yes" ]; then
|
|
$DEBUG $IPTABLES -F icmp-rules
|
|
$DEBUG $IPTABLES -X icmp-rules
|
|
fi
|
|
if [ "$MASQ" == "yes" ] || [ "$FORWARDSRV[0]" ]; then
|
|
$DEBUG $IPTABLES -t nat -F
|
|
fi
|
|
if [ "$MARK" = "yes" ]; then
|
|
$DEBUG $IPTABLES -t mangle -F
|
|
fi
|
|
;;
|
|
deny)
|
|
if [ ! "$2" ]; then
|
|
echo "Need a Workstation to lock"
|
|
exit 1
|
|
fi
|
|
wszahler=0
|
|
WSIP=`nslookup $2|tail -n 2|head -n 1|awk '{print $2}'`
|
|
while [ "${LOCALWS[$wszahler]}" ]; do
|
|
if [ "${LOCALWS[$wszahler]}" == "$WSIP" ]; then
|
|
for k in ${ROUTEPORTS[$wszahler]}; do
|
|
echo -n " $k"
|
|
FW_PORT=`echo $k|cut -f 1 -d ";"`
|
|
FW_PROT=`echo $k|cut -f 2 -d ";"`
|
|
ChangeWSOutRule ${LOCALWS[$wszahler]}\
|
|
$FW_PORT $FW_PROT DROP
|
|
done
|
|
evaluate_retval
|
|
fi
|
|
(( wszahler = $wszahler + 1 ))
|
|
done
|
|
;;
|
|
allow)
|
|
if [ ! "$2" ]; then
|
|
echo "Need a Workstation to lock"
|
|
exit 1
|
|
fi
|
|
wszahler=0
|
|
WSIP=`nslookup $2|tail -n 2|head -n 1|awk '{print $2}'`
|
|
while [ "${LOCALWS[$wszahler]}" ]; do
|
|
if [ "${LOCALWS[$wszahler]}" == "$WSIP" ]; then
|
|
for k in ${ROUTEPORTS[$wszahler]}; do
|
|
echo -n " $k"
|
|
FW_PORT=`echo $k|cut -f 1 -d ";"`
|
|
FW_PROT=`echo $k|cut -f 2 -d ";"`
|
|
ChangeWSOutRule ${LOCALWS[$wszahler]}\
|
|
$FW_PORT $FW_PROT ACCEPT
|
|
done
|
|
evaluate_retval
|
|
fi
|
|
(( wszahler = $wszahler + 1 ))
|
|
done
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop}"
|
|
;;
|
|
esac
|
|
fi
|