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
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
schirmt IP - Nummern hinter der <strong>Firewall</strong> ab, <strong>und</strong> ersetzt diese durch ihre eigene. Mehr<br />
hierzu jedoch später. Warum sollte man Clients nicht erlauben, sich mit einer Portnummer<br />
< 1024 an dem Server anzumelden. Das hat zum Teil historische Gründe. Bei der<br />
Programmierung von BSD UNIX wurden definiert, daß alle Ports < 1024 privilegierte Ports<br />
sind, die ausschließlich den UNIX Dämonen vorbehalten sein sollen. Alle anderen Ports<br />
können entsprechend den Vorschlägen in den RFC´s genutzt werden. Diese findet man in<br />
jeder <strong>LINUX</strong> Distribution im Verzeichnis /usr/doc/rfc. Da TCP Verbindungen sich nach<br />
dem 3-Wege Handshake auf höhere Ports > 1024 verlagern, hat man dann also eine<br />
sauberere Trennung zwischen Anwenderprogrammen <strong>und</strong> UNIX Systemprogrammen bei<br />
der Nutzung der Ports. Ein Netscape Client, der sich von Port 3120 mit seiner IP -<br />
Nummer an Port 80 des Servers anmeldet <strong>und</strong> akzeptiert wird, wird vom Serverdämon auf<br />
einen höheren Port verlagert, beispielsweise 54123. Von nun an unterhalten sich<br />
Netscape <strong>und</strong> der WWW-Server zwischen Port 3120 <strong>und</strong> Port 54123 des Servers.<br />
Auf diese Weise kann man mit netstat -a einfach nach normalem Traffic (Verkehr)<br />
zwischen Anwendungsprogrammen <strong>und</strong> wichtigem Verkehr zwischen UNIX Servern <strong>und</strong><br />
Routern im Internet unterscheiden. Nebenher fallen dann Verbindungsversuche von<br />
Hackern oder Fehlkonfigurationen von Clients schneller auf. Viele der einfachen<br />
Angriffswerkzeuge, die man im Internet findet, benutzen als Quellcode privilegierte Ports.<br />
Wenn ein Angreifer mehr Ahnung hat, dann wird er die Quellcodes sicher anpassen, eine<br />
Sicherheitsgarantie ist die Aufteilung der Ports in privilegierte <strong>und</strong> unprivilegierte ohnehin<br />
nicht. Bei vielen UNIX Betriebsystemen <strong>und</strong> Microsoft - Programmen ist diese Regel<br />
ziemlich aufgeweicht worden. Firma Microsoft hat aber in Windows NT über die Registry<br />
eine Möglichkeit geschaffen, die Bereiche von verwendeten Ports einzelner Dienste<br />
einzuschränken oder zu verlagern. Damit ist es nun möglich, bestimmte Dienste (PDC) in<br />
bestimmte Portnummern zu verbannen <strong>und</strong> speziell zu überwachen. Da ein Angreifer die<br />
Portnummern nicht kennen kann, kann der Systemadministrator schnell feststellen, ob ein<br />
Angriff stattgef<strong>und</strong>en hat. Eine Ausnahme ist auch SSH, Secure SHell. SSH verlagert sich<br />
nicht auf unpriviligierte Ports, sondern verbleibt im Bereich zwischen 512 <strong>und</strong> 1024. SSH<br />
ist hervorragend geeignet, sichere point to point Verbindungen zwischen Hosts über das<br />
Internet aufbauen zu können. Es kann als Ersatz von VPN´s, z.B. PPTP eingesetzt<br />
werden. Insofern ist die Verwendung der privilegierten Ports kein Verstoß gegen die BSD -<br />
Konventionen.<br />
Windows NT im besonderen erlaubt durch gezielte Manipulationen in der Registry eine<br />
Begrenzung von Ports auf einen bestimmten Bereich. Dies ist immer dann sinnvoll, wenn<br />
sich Bereiche häufig benutzter Ports einiger Dienste überschneiden. Einem Client Zugriff<br />
auf einen Server hinter einer <strong>Firewall</strong> zu geben, kann wegen möglichen buffer overflows<br />
tödlich sein. Wenn also eine solche Konstruktion erwogen wird, dann ist immer eine zweite<br />
<strong>Firewall</strong> mit einzuplanen, die eine weiteres Hindernis <strong>für</strong> einen Angreifer ist.<br />
Betrachtet man nun den Zugriff aus dem Intranet auf Server im Internet:<br />
# Erlaube WWW<br />
ipfwadm -I -a accept -P tcp -k -W $EXTERNES_INTERFACE \<br />
-S $ANYWHERE 80 -D $INTRANET $UNPRIVPORTS<br />
Es wird hier ein besonderes Zeichen \ verwendet, auch META Zeichen oder Fluchtsymbol<br />
genannt. Es soll da<strong>für</strong> sorgen, daß das direkt darauffolgende ASCII Zeichen ignoriert wird.<br />
Welches ? Das ist bei Editoren meist nicht sichtbar - Es ist das RETURN oder NEWLINE<br />
Zeichen. Hiermit werden lange Zeilen umgebrochen, ohne daß die Shell bei der<br />
Abarbeitung der Regeln in Schwierigkeiten mit der Interpretation der Zeichen gerät.<br />
Es wird hier das Senden eines TCP Paketes aus dem Internet von Port 80 den Zugriff auf<br />
einen Client innerhalb unseres Netzwerkes zugelassen, der Ports oberhalb von 1024<br />
benutzt, z.B. Netscape.<br />
Das "-k" hat eine sehr wichtige Bedeutung. Es bedeutet, daß alle Pakete das ACK Bit<br />
gesetzt haben müssen, andern falls werden diese abgewiesen.<br />
Erstellt von Doc Gonzo - http://kickme.to/plugins