Einzelnen Beitrag anzeigen
Alt 10.05.2002, 14:26   #60
quaylar
Hero
 
Registriert seit: 28.09.2001
Beiträge: 940


Standard

Hmmm - ich versteh da ein paar Dinge nicht :

1)

Zitat:
case "$1" in
stop)
echo "Shutting down firewall..."
$IPTABLES -F
$IPTABLES -F -t mangle
$IPTABLES -F -t nat
$IPTABLES -X
$IPTABLES -X -t mangle
$IPTABLES -X -t nat

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
echo "...done"
;;
status)
echo $"Table: filter"
iptables --list
echo $"Table: nat"
iptables -t nat --list
echo $"Table: mangle"
iptables -t mangle --list
;;
restart|reload)
$0 stop
$0 start
;;
start)
echo "Starting Firewall..."
echo ""
Ich weiss dass das eine Fallunterscheidung ist die das erste Argument des Firewall-Scripts betrifft.
Abhängig von diesem werden die in den case Abfragen aufgelisteten Kommandos ausgeführt.
Jedoch - müsste doch das gesamte Script in jeder case Abfrage beendet werden oder nicht ?
Wenn er jetzt eingibt "firewall2 start" - gibt er mit echo die Meldungen aus und fängt dann an das Script nach unten hin abzuarbeiten.
Wenn er eingibt "firewall2 stop" - passiert doch genau dasselbe - er flusht die rules - gibt die Meldung aus - und arbeitet das Script weiter ab, ich versteh nicht wie das funktioniert.
Denn wenn er "firewall2 stop" eingibt - muss das Script nach Abarbeiten des "stop case" beendet werden.

2)Worauf beziehen sich diese Abfragen hier :

Zitat:
### Internal Interface:

## Get internal interface from command-line
## If no interface is specified then set $DEFAULT_INTIF as INTIF
if [ "x$3" != "x" ]; then
INTIF=$3
else
INTIF=$DEFAULT_INTIF
fi
echo Internal Interface: $INTIF
Etwa auf alle folgenden Kommandos ?? - Wie ist festgelegt welches Kommando damit gemeint ist ?

Ausserdem : wer sagt dass ich später den Interfacenamen als 3. Argument verwende - kann doch auch als 2. oder 4. nehmen....

Zitat:
gefragt wird, ob die zeichenkette "x$3" ungleich der zeichenkette "x" ist. das ist nur dann der fall, wenn die variable $3 leer ist. also mit anderen worten, existiert ein dritter kommandozeilenparameter, erhält die variable intif diesen wert. im anderen fall erhält intif ein defaultwert.
Hmm - wofür steht dieses "x" - ich weiss dass ichs schon mal in der man page zu bash gelesen hab - aber ich finds jetzt beim besten Willen nimmer - und in meinem "Linux in a Nutshell" stehs auch net drinn *gr*
Hmmm - wenn ich annehme dass "x" für "String" steht - müsste es dann nicht heissen wie folgt:

gefragt wird, ob die zeichenkette "x$3" ungleich der zeichenkette "x" ist. das ist nur dann der fall, wenn die variable $3 NICHT leer ist. ???

Denn der "x" String ist ja leer wie du sagtest - also kann "x$3" nur dann ungleich "x" sein wenn in $3 was drinnsteht.
Oder hab ich da jetzt was falsch verstanden ?

--qu
____________________________________
Those who desire to give up Freedom in order to gain Security, will not
have, nor do they deserve, either one. -- Benjamin Franklin
quaylar ist offline   Mit Zitat antworten