[linux-l] Ip-tables
Martin Peikert
list at nolog.org
Do Okt 23 10:35:05 CEST 2003
Webmaster at Miera.de wrote:
> Wenn ich das Script so starte, kann ich kein Ping auf einen Server machen.
Das ist wirklich merkwürdig, da Deine Policy immer noch auf ACCEPT
steht, oder habe ich da etwas übersehen?
> Nachher möchte ich standartmäßig nur den ssh port offen
> haben und den rest bei bedarf zuschalten können.
>
> Vielleicht könnt ihr mir ja sagen was ich falsch mache...
Du loggst zu wenig ;)
> Hier mein sctipt:
---8<---
> #################################################################
> # Alle Regeln aufheben ##########################################
> #################################################################
>
> iptables -F
> iptables -F -t nat
> iptables -F -t filter
>
> #################################################################
> # IP Forwarding aktivieren ######################################
> #################################################################
>
> echo 1> /proc/sys/net/ipv4/ip_forward
Und genau ab hier sollte die Kiste offen sein und alles weiterleiten...
Du solltest *VORHER* die Policy auf DROP setzen:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
Desweiteren wäre zum Debuggen ein wenig Logging angebracht, als letzte
Regel in jeder Kette ein -j LOG mit Präfix wäre nicht schlecht:
iptables -A INPUT -j LOG --log-prefix " INPUT END "
iptables -A OUTPUT -j LOG --log-prefix " OUTPUT END "
iptables -A FORWARD -j LOG --log-prefix " FORWARD END "
Sollte ein Paket hier aufschlagen das durchkommen soll, weisst Du, dass
Dir die passende Regel fehlt. Dann siehst Du auch etwas. Interessant zum
Debuggen ist natürlich auch
iptables -I INPUT 1 -j LOG --log-prefix " Entering INPUT "
iptables -I OUTPUT 1 -j LOG --log-prefix " Entering OUTPUT "
iptables -I FORWARD 1 -j LOG --log-prefix " Entering FORWARD "
So manches Paket hat es bei mir nie in die FORWARD-Chain geschafft, wenn
ich mal wieder das Forwarding-im-Kernel-einschalten vergessen hatte...
Das Logging kannst Du auch auf den nat-table ausweiten - und zum
Hardcore-Loggen auch noch vor jede Regel schreiben. Wenn eine Regel den
Target LOG hat, so wird damit die Behandlung des Pakets, so es passt,
nicht beendet. Bei allen anderen Targets gilt: First match hits - und
beendet die Behandlung des Pakets.
Insgesamt gilt: Am Anfang loggen bis zum Umfallen - die Regeln kann man
später, wenn man weiss, was passiert, auch wieder entfernen :)
HTH
GTi
Mehr Informationen über die Mailingliste linux-l