05.02.2013 Aufrufe

Firewall Handbuch für LINUX 2.0 und 2.2 - zurück

Firewall Handbuch für LINUX 2.0 und 2.2 - zurück

Firewall Handbuch für LINUX 2.0 und 2.2 - zurück

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

notification level 10:<br />

let pingcount:sourcehost := pingcount:sourcehost + 1 timeout 2;<br />

if pingcount:sourcehost > 100 then<br />

block all from sourcehost notification_level 0 timeout 600<br />

endif;<br />

Das Aufstellen von Filterregeln<br />

In diesem Abschnitt werden alle oben nur definierten Filterregeln genauer abgehandelt. Es<br />

wird ausdrücklich das Buch von Bellovin <strong>und</strong> Cheswick als "Bibel" <strong>für</strong> das Erstellen von<br />

Filterregeln empfohlen. Im Kapitel firewallregeln sind aber auch die meisten dieser<br />

Filterregeln noch einmal genauestens aufgelistet. Meiner Meinung nach ist die "Bibel" von<br />

Bellovin <strong>und</strong> Cheswick inzwischen völlig veraltet, da sie sich ohnehin nur auf Probleme auf<br />

Circuit-Level bezieht.<br />

Die erste Frage die hier geklärt werden soll ist die Frage nach block oder reject von<br />

Paketen.<br />

In der Praxis ist diese Frage oft schwieriger zu beantworten, als es den Anschein hat.<br />

Wenn ein Paket geblockt wird, also der Sender keine Fehlermeldung erhält, dann könnte<br />

es sein, daß der Host meint, daß das Paket während der Übermittlung verloren gegangen<br />

ist. Ein normaler Algorithmus in einem Programm oder Protokoll besitzt einen Timeout<br />

Mechanismus, der nach einigen Versuchen abbricht. Wenn dieser eine ICMP Meldung<br />

<strong>zurück</strong>erhält, in welcher der Host darüber informiert wird, daß ein Paket nicht ausgeliefert<br />

werden kann (no route to host!), dann wird er sofort damit aufhören, welche zu senden.<br />

Man sollte aber niemals Pakete unbedacht mit einer Angabe einer Fehlermeldung (reject)<br />

ablehnen. Es könnte schließlich sein, daß die Anwendung, die die Pakete sendet, ICMP<br />

Fehlermeldungen nicht interpretieren kann. In diesem Fall würde eine Flut von<br />

Fehlermeldungen die freie Bandbreite der Leitungen unnötig belasten. Außerdem würde<br />

von der <strong>Firewall</strong> eine Unzahl von Fehlermeldungen gesendet werden. Die gängigen<br />

Implementierungen von TCP beachten sehr wohl ICMP Fehlermeldungen, aber in<br />

Abhängigkeit der Meldung (host unreachable), könnte der Sender meinen, daß der Host<br />

nur vorübergehend überlastet ist, <strong>und</strong> würde ständig die Pakete neu senden. Um also<br />

wirklich eine Verbindung <strong>zurück</strong>zuweisen, ist es notwendig, im TCP Paket noch ein Flag<br />

zu setzen, beispielsweise das RST Bit, welches das Ende einer TCP Verbindung<br />

einleitet.(reset)<br />

Viele Programme unterscheiden nicht zwischen den verschiedenen ICMP unreachable<br />

Mitteilungen. Somit kann es passieren, daß ein Host völlig unerreichbar wird, was sicher<br />

nicht so beabsichtigt ist. ICMP Fehlermeldungen sollten also niemals einfach mit einem<br />

reject beantwortet werden. Um dieses Problem zu umgehen, benutzt die SINUS <strong>Firewall</strong><br />

die Option reject with best, was bedeutet, daß die TCP Pakete mit einem RST Flag<br />

<strong>zurück</strong>gesandt werden. Eine ICMP port unreachable Nachricht wird <strong>für</strong> UDP <strong>und</strong> alle<br />

sonstigen Pakete erzeugt.<br />

Filtern von TCP Verbindungen<br />

Wenn man die Regeln <strong>für</strong> TCP Pakete aufsetzt, gibt die from Adresse den Initiator der<br />

Verbindung an. Antwortpakete aus dem Internet, z.B. sofern sie von innen initiiert worden<br />

sind, dürfen die <strong>Firewall</strong> passieren. Sie haben alle das ACK Bit gesetzt. Ist der notification<br />

level größer 0, dann wird nur zu Begin des Verbindungsaufbaues, also wenn das SYN Bit<br />

gesetzt ist, ein Logeintrag erzeugt. Alle weiteren Antwortpakete werden nicht mehr<br />

mitgeloggt.<br />

Das FTP Protokoll erfordert eine spezielle Behandlung, da hier ein zweiter Datenkanal<br />

geöffnet wird, welcher vom Server initiiert wird. Die erste Verbindung, die von innerhalb<br />

geöffnet wurde enthält den PORT Befehl, der vom Server zum Client intern übermittelt<br />

wird. Dieser Port ist derjenige, den der Server zwecks Datenaustasch mit dem Client zu<br />

benutzen gedenkt. Eine normaler, dynamischer Paketfilter würde diesen PORT Befehl<br />

Erstellt von Doc Gonzo - http://kickme.to/plugins

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!