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
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