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.
geeinigt haben. In diesem Falle dürfen weder von Client oder Server keine ACK Pakete<br />
mehr gesendet werden. Ein Angreifer müßte dann sowohl an den Client als auch an den<br />
Server ein FIN oder RST senden, um die Verbindung zu unterbrechen.<br />
Der TCP/IP Stack mußte daher wieder um eine Kleinigkeit erweitert werden. Falls noch<br />
Datenpakete mit ACK zwischen Client <strong>und</strong> Server ausgetauscht werden, kann also ein<br />
RST oder FIN von einem der beiden Beteiligten nicht tatsächlich stammen. Solange, wie<br />
ACK Pakete auf einem der Hosts eintreffen, wird ein RST oder FIN nicht als<br />
Verbindungswunsch akzeptiert. Da der aber auch noch den Austausch von Paketen mit<br />
ACK zwischen Server <strong>und</strong> Client verhindern müßte, damit die gespooften RST oder FIN<br />
Pakete bei Client <strong>und</strong> Server akzeptiert würden, bleibt ihm nur noch eines - die Aufgabe.<br />
Solange nicht Server <strong>und</strong> Client beide ein FIN sich gegenseitig schicken, gilt die<br />
Verbindung als half close, also halb geschlossen. Wenn man mit netstat unter UNIX oder<br />
Microsoft Windows sich alle momentanen Verbindungen ansieht, kann man den Zustand<br />
der Verbindungen genau ansehen. Unter UNIX genügt ein PERL Skript, um bestimmte<br />
Verbindungen gezielt zu schließen. Im Falle, daß die Verbindung gerade geöffnet wurde,<br />
also gerade den SYN- SYN/ACK hinter sich hat, wird dieser Zustand als half open<br />
bezeichnet.<br />
In jedem Falle wird im TCP/IP Stack <strong>für</strong> jeden Zustand (half open/close) <strong>und</strong> jede einzelne<br />
Verbindung ein Timer gestartet, der auch stets Statistiken über die Qualität der<br />
Verbindungen mitführt. Ist die Verbindung z.B. sehr gut, weil Client <strong>und</strong> Server direkt<br />
nebeneinander stehen, so kann <strong>und</strong> muß der Timeout heruntergesetzt werden. Ein<br />
Angreifer könnte ansonsten den SYN-RCVD Buffer fluten, <strong>und</strong> der Server hätte keine<br />
Möglichkeit mehr, weitere Verbindungen anzunehmen (syn-flood). Andererseits würde ein<br />
zu kurzer Timeout den Verbindungsaufbau zu einem weit entfernten Client verhindern.<br />
Aber auch diese Verfahrensweise birgt Gefahren: Was wäre, wenn ein Client, der direkt<br />
neben dem Server steht, eine langsame Verbindung vortäuschen würde, damit der Server<br />
den Timeout höher setzt, um dann schnell einen SYN Angriff zu starten ? In dem Fall, daß<br />
der SYN-RCVD - Buffer gefüllt ist, sendet die <strong>Firewall</strong> aktiv einfach ein ACK Paket mit<br />
falscher Prüfsumme, damit es verworfen wird an alle Clients, um die bestehenden<br />
Verbindungen nicht terminieren zu lassen (timeout refresh) <strong>und</strong> ein SYN-ACK sowohl an<br />
die echten, als auch die vom Angreifer gespooften Adressen, die natürlich ins Leere<br />
laufen. Nach einiger Zeit beendet die <strong>Firewall</strong> dann alle Verbindungen, die nicht mit einem<br />
SYN-ACK quittiert wurden <strong>und</strong> kann so den SYN-RCVD Buffer leeren. Es bleiben nur<br />
noch diejenigen Verbindungen übrig, die zuvor bestanden haben <strong>und</strong> die ernsthaft neu<br />
initiiert wurden.<br />
Aber auch diese Technik birgt Gefahren: Ein Angreifer könnte so die <strong>Firewall</strong> mit<br />
schnellen, gespooften SYN Paketen ganz aus der Nähe dazu veranlassen, dem Host, der<br />
die gespoofte IP - Nummer besitzt, eine Flut von SYN-ACK Paketen zu schicken. Dies<br />
könnte durchaus zur Leitungsüberlastung bei einigen Providern führen, insbesondere bei<br />
denjenigen, deren Anbindung etwas langsamer ist. In diesem Falle wäre die <strong>Firewall</strong><br />
selber zwar gegen SYN flooding gesichert, würde aber zu einem DoS (denial-of-service)<br />
bei einem völlig Unbeteiligten führen, der zufällig die IP-Adresse des vom Angreifer<br />
benutzten, gespooften Pakets besitzt.<br />
Die SINUS <strong>Firewall</strong> kann zuverlässig diesen Mißbrauch verhindern, indem sie <strong>für</strong> jede<br />
Verbindung einen eigenen Counter setzt, der bei einer maximalen Anzahl von SYN-<br />
Paketen einer bestimmten (auch gespooften) IP - Nummer das Aussenden des SYN-ACK<br />
stoppt.<br />
Für den Schutz ihrer Standleitungsk<strong>und</strong>en, besonders denen mit ISDN-Anschluß sollte<br />
von allen größeren Providern evtl. dieses Problem genauer bedacht werden. Hier hilft der<br />
Einsatz einer schnellen <strong>Firewall</strong> mit SPF - Architektur, die diese DoS Angriffe verhindert,<br />
indem sie die Zustände aller Verbindungen der K<strong>und</strong>en im eigenen Netzwerk speichert,<br />
<strong>und</strong> gegen SYN-ACK Pakete verteidigt, denen kein SYN vorangegangen ist. Allerdings<br />
muß auch das Netzwerk gegen gegenseitige Angriffe von K<strong>und</strong>en untereinander gesichert<br />
werden. Hierzu wäre dann der Einsatz von <strong>Firewall</strong> - Routern notwendig. Diese Technik<br />
Erstellt von Doc Gonzo - http://kickme.to/plugins