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.

Paketes wird übergangen <strong>und</strong> das TCP Paket wird auf Verletzungen gegen die Regeln<br />

überprüft.<br />

Für den Fall, daß das TCP Paket zulässig ist, wird es mit den in der HASH Queue<br />

gespeicherten Pakete verglichen. Gehört es nicht zu anderen Paketen, so wird es<br />

verworfen. Es wird den Filter nicht passieren.<br />

Angenommen, daß TCP Paket gehört zu einer erlaubten Verbindung. Das Paket muß<br />

dann überprüft werden, ob dieses Paket eine FTP - Verbindung darstellt. Dies wird durch<br />

Durchsuchung des Inhaltes nach dem "PORT" Befehl festgestellt. In diesem Falle wird ein<br />

neuer HASH Eintrag erzeugt. An dieser Stelle ist es möglich, weitere Protokolle zu<br />

implementieren, z.B. RPC, welches <strong>für</strong> Windows NT PDC, RSYNC, RSH....notwendig ist.<br />

Der Rest des TCP Codes ist selbsterklärend. Das Statusfeld <strong>und</strong> der Timer- Mechanismus<br />

sind entsprechend dem Mechanismus zu Behandlung der Flags im TCP Header<br />

implementiert.<br />

Es ist möglich, zu einer bestehenden TCP Verbindung einen Timeout hinzuzufügen.<br />

Hiermit kann man Einträge in der HASH Queue löschen, die unterbrochen wurden, oder<br />

zu lange Wartezeiten zwischen den Paketen besitzen. Um dieses zu tun, muß bei der<br />

Herstellung einer Verbindung ein Timer initialisiert werden, der jedesmal, wenn ein Paket<br />

einer gültigen Verbindung passiert, von neuem beginnt, zu zählen (reset). Sicherlich<br />

würde dieser Mechanismus die Effektivität der <strong>Firewall</strong> beeinträchtigen <strong>und</strong> hängende<br />

Verbindungen möglicherweise unnötig beenden.<br />

Filterregeln<br />

Für höhere Effizienz der <strong>Firewall</strong> werden nur neue TCP Verbindungen <strong>und</strong> Nicht-TCP<br />

Pakete analysiert. Die lineare Liste des Regelwerkes in der <strong>Firewall</strong> wird der Reihe nach<br />

mit dem Inhalt des Datenpaketes verglichen. Sobald eine Regel zutrifft, wird das Paket <strong>für</strong><br />

weitere Untersuchungen markiert <strong>und</strong> gespeichert.<br />

Die erste Untersuchung (Inspektion) gilt dem Protokoll. Die Protokollfelder des<br />

Regelwerkes werden mit denen des Paketes verglichen.<br />

IGMP <strong>und</strong> ICMP Pakete werden einer gesonderten Untersuchung unterworfen, in der<br />

festgestellt wird, ob der Typ in den Regeln enthalten ist. Dieses muß in einem "switch"<br />

Statement (C,C++) erfolgen, weil eventuell weitere Typen in dem Paket in einer Bitmap<br />

enthalten sein könnten.<br />

RIP Pakete werden ebenfalls einer gesonderten Behandlung unterzogen. Für den Falls<br />

das das Paket ein UDP Paket ist, <strong>und</strong> auf Port 520 zugreift, dann wird die Funktion<br />

check_rip() aufgerufen, um zu ermitteln, ob alle angek<strong>und</strong>igten Ziele in dem Regelwerk<br />

aufgelistet sind.<br />

An dieser Stelle können beliebige Tests <strong>für</strong> Nicht TCP Protokolle eingefügt werden, z.B.<br />

weitere Routingprotokolle, wie OSPF...<br />

Nach dem Test auf TTL, IP Optionen werden Quell- <strong>und</strong> Zieladresse, Ports...durch die<br />

Funktion sf_addr_match() auf Verletzungen der Regeln untersucht. Hier sind erklärende<br />

Kommentare im Quellcode eingefügt. Am Ende aller Untersuchungen zeigt die Variable<br />

"rule" auf die zutreffenden Regeln, oder auf NULL, wenn keine der Regeln zutreffend ist.<br />

Wenn eine Regel auf ein TCP Paket zutrifft, dann wird ein Eintrag in der HASH Queue <strong>für</strong><br />

diese Verbindung vorgenommen. Wenn dann keine Log-Einträge mehr abzuarbeiten sind,<br />

kann der Filter seine Arbeit beenden.<br />

Log Einträge<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!