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.
gelöscht, weitergeleitet oder eine ICMP Nachricht ausgesendet werden muß. Die<br />
Filterfunktion benachrichtigt den Kernel schnellstmöglich darüber, ob ein Paket erlaubt<br />
oder verboten ist. Die Filterfunktion führt nicht alle Tests in jedem Fall durch. Einige<br />
können vom Kernel übernommen werden (IP_defrag...).<br />
Address Spoofing<br />
Das erste Paket eines Hosts wird auf address spoofing hin überprüft. Für den Fall, daß<br />
es nicht vom Loopback Interface stammt, aber dort als Quelladresse oder Zieladresse die<br />
Loopbak Adresse eingetragen ist, wird das Paket verworfen. Wenn das Paket von der<br />
<strong>Firewall</strong> selber stammt, also eine IP-Adresse der Netzwerkinterfaces besitzt, oder Quell<strong>und</strong><br />
Zieladresse eine lokale IP - Nummer besitzen, ist nur noch der anti spoof test<br />
erforderlich. Dann kann das Paket passieren, <strong>und</strong> der Filter gibt den Wert<br />
SF_RC_ACCEPT <strong>zurück</strong>.<br />
Nun muß in der HASH-Queue überprüft werden, ob das Interface internal oder external ist.<br />
Findet sich kein Wert in der HASH Queue, so wird die Funktion sf_inside() aufgerufen. Sie<br />
überprüft, ob die Interface-Adresse mit der internalnet Adresse übereinstimmt. Das<br />
Ergebnis wird in die HASH Queue geschrieben, es wird später ausgewertet.<br />
Wenn ein Paket empfangen wird, wird die Quelladresse <strong>für</strong> eine Überprüfung des<br />
Quellcodes herangezogen, andernfalls wird die Zieladresse benutzt. Wenn die Adressen<br />
nicht der Adresse eines Hosts <strong>und</strong> nicht der des Loopback Interfaces entsprechen,<br />
müssen die Paketadressen <strong>und</strong> Interface Adressen entweder internal oder external sein.<br />
Wenn adress spoofing entdeckt wird, werden die internen <strong>Firewall</strong>regeln<br />
RULE_SPOOF_RECV oder RULE_SPOOF_XMIT aktiv. Die enthaltenen Informationen<br />
werden an den <strong>Firewall</strong>-Dämon übergeben. Die weiteren Paketinformationen werden dann<br />
verworfen.<br />
Für den Fall, daß ein Paket weitergeleitet wird, kann die weitere Überprüfung nach der<br />
Überprüfung auf spoofing entfallen.<br />
Fragmentierung<br />
TCP<br />
Wenn ein Fragment Offset in dem IP-Header gesetzt ist, wird die Paket-ID als HASH-Wert<br />
mit evtl. Einträgen in vorangegangenen Paketen verglichen <strong>und</strong> dem Filter mitgeteilt, ob<br />
ein Paket passieren darf, oder nicht. Die Einträge in der HASH Queue sind dem Timeout -<br />
Mechanismus unterworfen, der diese löscht, wenn längere Zeit keine Pakete mehr<br />
erfolgreich die <strong>Firewall</strong> durchlaufen haben. Der Timeout-Zähler beginnt von Neuem, wenn<br />
der Vergleich positiv war. Das Fragment muß auch hier nicht weiter überprüft werden, es<br />
wird automatisch intern weitergeleitet. Mit dem Eintreffen eines fragmentierten Paketes<br />
<strong>und</strong> dem Aufruf der Funktion SF_CHKFRAG wird ein neuer Eintrag in die HASH Queue<br />
vorgenommen, <strong>und</strong> der Timer <strong>zurück</strong>gesetzt.<br />
Zugelassene TCP Verbindungen werden in HASH Queues gespeichert. Der HASH<br />
Schlüssel berechnet sich aus der Summe von Quelladresse, Zieladresse, <strong>und</strong> den<br />
zugehörigen Portnummern, modulo der im Quellcode angegebenen Primzahl (499 in<br />
sf_filter.c). Die Adressen sind zuvor in 32 Bit Integerwerte konvertiert worden. Die HASH<br />
Tabelle enthält den Status einer TCP Verbindung. Der Filter kann so schnell bestimmen,<br />
ob eine Verbindung besteht, ein Host die Verbindung abbrechen möchte, die Verbindung<br />
beendet ist.....<br />
Ein eintreffendes Paket, welches einen Verbindungswunsch anzeigt, hat das SYN Flag<br />
gesetzt, nicht aber das ACK Flag. In diesem Falle ist die TCP Verbindung noch nicht in<br />
der HASH Queue gespeichert, mit Ausnahme von FTP Verbindungen. Der Rest des TCP<br />
Erstellt von Doc Gonzo - http://kickme.to/plugins