[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: