Re: [OT] Reihenfolge der iptables rules
On Thu, Jun 01, 2006 at 05:10:19PM +0200, Chris C. wrote:
> Am Donnerstag 01 Juni 2006 15:44 schrieb Juergen Christoffel:
> > Es gibt kein "dazwischenquetschen" aber es gibt ein Einfuegen an einer
> > bestimmten Position mittels "-I <int>" anstatt "-A".
> >
> Ja, ich hatte die Doku auf netfilter.org zwar gelesen, aber das mit dem -I
> irgendwie falsch interpretiert.
Ausser -I und -A kannst Du uebrigens auch mittels -R Regeln ersetzen. Ich
erlaube zum Beispiel meiner Workstation zuhause, die bei DSL-Flatrate alle
24 Stunden eine neue IP-Adresse kriegt, bestimmte Zugriffe auf einem
externen Host. Auf diesem Host laeuft ein Script, dass die Regeln aendert,
wenn sich die Adresse aendert:
------------------------------------------------------------------------
#! /bin/bash
CHAIN=dsl_in
MYHOST=$(host gipsnich.dyndns.org | awk '{print $NF}')
# list: iptables -v -n --line-numbers -L dsl_in
### some sanity checks first
# check if chain exists
if iptables -n -L $CHAIN > /dev/null ; then
: ok
else
echo $0: chain $CHAIN missing, exiting
exit 1
fi
# check if ip address looks ok
if expr "$MYHOST" : '.*[0-9][0-9].[0-9][0-9]' > /dev/null; then
: ok
else
echo $0: bogus ip address "$MYHOST", exiting
exit 1
fi
iptables -R dsl_in 1 -p TCP -s $MYHOST --dport 80 -j ACCEPT
iptables -R dsl_in 2 -p TCP -s $MYHOST --dport 443 -j ACCEPT
iptables -R dsl_in 3 -p TCP -s $MYHOST --dport 25 -j ACCEPT
iptables -R dsl_in 4 -p TCP -s $MYHOST --dport 53 -j ACCEPT
------------------------------------------------------------------------
Hier ist eine eigene Chain dsl_in eingetragen, die fuer eingehende
Verbindungen aus dem Adressbereich meines Providers angesprungen wird und
nur die "private" Adresse filtert. Alle anderen fallen "unten" aus der
Chain wieder raus in die normale Verarbeitung.
Dank der separaten Chain bin ich immer sicher, dass die hart kodierten
Positionen 1..4 in der Chain auch stimmen. Denn bei den uebergeordneten
Chains koennte sich das durch -I weiter vorne schon mal aendern, was dann
komplexeres Parsen erzwingen wuerde
--jc
--
Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin
Reply to: