beQuiet schrieb:
Wow, Monsterpost
Haste dafür 3 Tage gebraucht ?
Was mich jetzt interessieren würde. Was macht ein Router anders, als ein Rechner mit PFw drauf? Beide Male gibt es Hard- und Software. Klar hat ein Router noch NAT etc aber ist das der einzige Grund, warum er sicherer ist ?
Okay, ganz einfach.
Von deinen Provider bekommst du eine IP Addresse zugewiesen. Diese IP Addresse ist eine öffentliche IP Addresse. Das heißt über diese IP kannst du einen einzigen Rechner über das Internet ansprechen.
In deinem Lokalen LAN, haben jedoch deine Rechner Private IP Addressen. Zum Beispiel 192.168.0.0/24 ist ein Privater Netzbereich. Diese IP Adressen kannst du frei vergeben, und solche Pakete sollten eigentlich nicht weiter geroutet werden.
Wenn dein Windows Rechner also sagen wir mal die IP Addresse 192.168.1.10 hat, dann kann dein Freund im Internet deinen Rechner nicht erreichen indem er "192.168.1.10" angibt.
Ich denke diese Grundlage sollte klar sein. Jeder kann Private IP Adressen so benutzen wie er möchte, und diese sind nur lokal verfügbar. 192.168.1.10 kann hunderte mal auf der Welt vergeben sein. Bei öffentlichen IP Addressen ist das aber anders. Diese darf weltweit nur einmal vorhanden sein. Sonst könnte man das Ziel im Internet ja nicht bestimmen, wenn es mehrere gleiche Ziele gibt.
Jetzt ein beispiel wenn dein Rechner direkt ohne NAT Router am Internet hängen würde:
Wenn du eine Verbindung aufbaust zu einem Dienst.Dann musst du die "Ziel IP+Ziel Port" angeben. genauso aber auch deine "Quell IP + Quell Port". Denn der Dienst muss ja auch Wissen von wo die Anfrage gekommen ist, damit er seine Daten zu dir schicken kann.
Kleines Beispiel: Du gibst im Browser
www.heise.de ein. Dann schickst du ein Paket das als ziel IP "193.99.44.85 + Port80" hat. Damit möchtest du den Web Server erreichen. Jedoch musst du ja auch eine Quelle angeben. Woher sollte den auch der Web Server Wissen wohin er seine Daten schicken soll, wenn du deine IP nicht angibst?
Daher schickst du als Quelle deine IP Adresse. Das wäre zum Beispiel "212.202.3.58 + HoherPort" (zufällig ausgesucht). Der Hohe Port wird zufällig gewählt und ist zwischen 1024-65535.
Auf diesen Port wartest du jetzt auf deine Antwort vom WebServer
www.heise.de. Diese wird natürlich auch ankommen.
Dieser Verbindungsaufbau wäre jetzt ohne NAT Router. Das hat aber letztendlich auch zur Folge das jeder deinen Windows Rechner auch erreichen kann. Sagen wir du würdest einen WebServer auf deinen Windows Rechner betreiben. Dann wäre diese über "212.202.3.58 + Port 80" für jeden austehenden im kompletten Internet erreichbar.
Das gleiche Gilt für die Ports 135, 137-139, und Port 445. Das sind die normalen Windows Ports die bei einer Standard Installation offen sind.
Wenn du jetzt eine Sicherheitslücke in einem Dienst hast, der über diese Ports erreichbar ist, dann kann jemand diese Sicherheitslücke ausnutzen. Bestes Beispiel ist LSASS und der Wurm SASSER der dies ausgenutzt hat.
Jetzt das gleiche Szenario hinter einem Router.
Wenn du ein Router hast, dann ist es so dass dein Router die öffentliche IP Addresse besitzt. Dein Router hat also "212.202.3.58", während dein Windows Rechner "192.168.1.10" hat. Wenn du jetzt von Windows Rechner eine Verbindung zu
www.heise.de aufbaust dann wird als Quell IP jedoch jetzt "192.168.1.10" eingetragen. Wenn du kein NAT hättest, dann würdest du nicht Surfen können. Weil der Web Server nicht weiß wohin er das Paket schicken soll. Den er müsste das Paket zu "192.168.1.10" schicken. Allerdings ist das ein Privater Address Bereich, und diese kann hunderte mal auf der Welt vergeben sein.
Daher existiert NAT damit du in deinem LAN trotzdem browsen kannst. NAT macht nichts anderes als IP Adressen in einem Paket zu verändern. Es existiert SNAT (Source NAT) und DNAT (Destination NAT). Source NAT ändert die Quell IP Adresse eine Paketes. Und Destination NAT ändert die Ziel IP eines Paketes.
Damit du jetzt trotzdem Browsen kannst, wird das Paket was du verschickt hast durch den NAT Router verändert. Den dort wird die Quell IP "192.168.1.10" durch seine eigene IP Adresse ausgetauscht. Dies wäre "212.202.3.58". Auch wird der Port verändert, und der Router benutzt einen neuen Port. Diese veränderung wird in einer Tabelle im Router festgehalten. (Das Verfahren auf den normalen Routern wird auch eher Masquerading genannt, eine Form des SNAT)
Wenn jetzt das Paket am Webserver
www.heise.de ankommt, dann weiß diesmal der WebServer wohin er das Paket schicken soll. Nämlich zu "212.202.3.58 + Quell Port".
Wenn dieses paket an deinem Router ankommt schaut der Router in seiner Tabelle nach. Er weiß anhand seiner Tabelle, und an welchen Port es gerichtet ist, wohin er das paket im LAN weiter leiten soll. und schickt es daraufhin zu "192.168.1.10".
Damit ist es folglichermaßen so, dass nur die Pakete auch zu dir kommen, die du letztendlich selber angefordert hast. Wenn jetzt Beispielsweise ein Wurm zum Port "137" eine Verbindung aufbaut, dann wird das Paket zum router geschickt. Er selber findet aber keinen Tabellen Eintrag also wird das Paket verworfen.
Selbst wenn du also eine Sicherheitslücke hast, kann der Wurm diese nicht ausnutzen. Da dein Windows Rechner hinter dem Router gar nicht erreichbar ist.
Genau deswegen ist beispielsweise auch ein WebServer im lokalen netz nicht sofort im Internet erreichbar. Wenn du ihn startest ist Port 80 auf deinen lokalen Rechner zwar offen. Aber die Verbindung läuft ja über deinen Router. Das heißt wenn jemand deine öffentliche IP Adresse angibt, und als Ziel Port 80 angibt. Würde er versuchen eine Verbindung zu deinem Router aufzubauen, und nicht zu deinem Windows Rechner.
Dieser sollte aber Grundsätzlich diese Abfrage abweisen.
Möchtest du einen Dienst trotz lokalen Netz erreichbar haben, musst du Port Forwarding einrichten (Eine Form des DNAT). Denn dort passiert nichts anderes als das der Router die Ziel IP eines Paketes verändert, wenn die Verbindung über einen Speziellen Port läuft.
Zum Beispiel leitet er alle Pakete dann nach "192.168.1.10" weiter wenn die Verbindung über Port 80 läuft. Damit könnten leute aus dem internet dann deinen WebServer erreichen, machst du kein Port Forwarding geht das natürlich nicht.
Und so schaut es dann eben auch im Alltag aus. Hängt dein Windows Rechner direkt am Internet sind die genannten Ports offen. Und Würmer können Sicherheitslücken in deinem Windows Rechner ausnutzen. Eine Pfw kann in diesem Fall helfen. Da diese meistens diese Standard Ports sofort Blocken. Allerdings kommt dann dort das Sicherheitsrisiko dazu was die Firewall selber hat, zum Beispiel Sicherheitslücken in der Firewall. Besser ist es dann in diesem Fall einfach die Services zu Stoppen. Läuft kein Service kann dieser auch nicht angegriffen werden, die Pakete werden dann verworfen. Aber wenn du halt die Service stoppst brauchst halt keine Pfw mehr.
Der einzige Sinn dahinter ist was Pfw noch versprechen, dass du die Programme bestimmen kannst welche einen Zugriff auf das Inernet haben. Und genau dies lässt sich leicht umgehen. Schau dir die Links an zu dem CCC Video was ich gepostet habe. Dort wird das auch Praktisch gezeigt wie man sowas umgeht.
Genauso kann man auch keine Windows Programme von einem Internet aufbau letztendlich schützen. Den die Pfw baut auf Informationen auf die Windows selber liefert. Der IE und Media Player sind jedoch fest im System verdrahtet. Microsoft kann also letztendlich ihr System so verändern das sie den Verbindungsaufbau ihrer Programme gar nicht der Pfw sichtbar machen. So das doch wieder eine Hintertür entsteht.
Zu der Problematik mit den programmen kann ich letztendlich nur sagen. Entweder ihr benutzt Closed Source Software, und hofft das der Hersteller bloß nichts macht, was ihr nicht wollt. Oder ihr nehmt Open Source Software. Die einzige Möglichkeit zu Wissen das dort nur das passiert was ihr auch wollt.
Auch kann man das System auch leicht umgehen. Bestes Beispiel der RealPlayer. Wenn der RealPlayer beispielsweise keine Verbindung zum Internet aufbauen kann, dann legt der RealPlayer im Temp Verzeichnis "html" Dateien ab. Diese werden mit dem Standard Browser aufgerufen, der Rechte haben sollte eine Internet Verbindung aufzubauen. Über diese html Dateien macht der RealPlayer dann letztendlich eine HTTP verbindung und holt sich seine Daten die er möchte.
Eine Pfw kannst du also wirklich in die Tonne hauen. Sie macht letztendlich nichts. Alles kannst du durch kostenlose Möglichkeiten erreichen. Entweder Service ausschalten, wenn du direkt im internet hängst, oder noch besser du kaufst einen Router anstatt einer Pfw. Den dann ist dein Rechner wirklich "unsichtbar" im Internet. Da er nicht direkt erreichbar ist.
Noch ein Beispiel was ich nennen möchte ist die Norton Personal Firewall. Diese hat ein IDS System. Das scannt sozusagen jedes Paket nochmal nach Inhalten. Erstens ist das Scannen eine extreme große Prozessor Last. Dein Rechner wird dadurch extrem langsam. Auch ist das IDS System schlecht eingestellt. Beispielsweise wenn du ein Paket empfängst das von UDP Port 666 kommt, macht die Norton Firewall nichts anderes als sofort diese IP Adresse zu sperren.
Ein Angreifer kann also letztendlich ein Rechner vom Internet "abschneiden" indem er Norton Personal Firewalls benutzer einfach ein UDP Paket schickt an Port 666. jedoch nimmt er dann als Quell IP die IP des DNS Servers. Der ja namen wie "www.heise.de" nach IP Addressen auflöst, damit man eine Verbindung aufbauen kann. Wird dieser DNS Server geblockt kann man nciht mehr Browsen.
Solch ein Paket zu erstellen ist mit Tools auch recht einfach. beispielsweise hping.
"hping3 212.202.3.58 --udp -p 666 -a 193.99.144.85"
Dieser Befehl würde dann schon reichen das unser Windows Rechner der direkt am Internet hängt und Norton installiert hat, nicht mehr zu
www.heise.de surfen könnte.
Mit einem NAT Router davor ist das ganze volkommen egal. Da dieses Paket dann zum Router geht, und nicht zum Windows Rechner. Und dort sollte kein Tabellen Eintrag für den port vorhanden sein. Sprich das Paket kommt erst gar nicht an deinem Rechner an.
Aber wie gesagt, in diesem Fall kannst du dann eine Pfw dann auch so vergessen. Da es letztendlich nur die Pakete überprüft, die du sowieso angefordert hast, und letztendlich auch haben möchtest.
Mehr zu der Problematik empfehle ich halt das obere Video vom 21CCC3. Genau dort wurde die Sache auseinander genommen.
Ich hoffe das ist jetzt verständlicher.
EDIT:
Achso kleine ergänzung. Eigentlich gibt es keine Hardware Firewall. Es gibt nur Software Firewall. Da dahinter immer irgendeine Software steckt, die die Pakete auswertet. Eine Hardware Firewall gibt es in dem Sinne nicht. Allerdings bezeichnet man meistens mit Hardware Firewall ein einzelnes Geräte das nur als Firewall fungieren soll, und ansonsten nichts macht. Ändert aber nichts daran das es letztendlich auch nur eine Maschine ist, irgendein OS darauf läuft mit einer Software.
Mit Software Firewall ist ja meistens "Personal Firewall" gemeint, was ja so komplett Falsch ist. Eine Personal Firewall hat in dem Sinne nichts mit einer Firewall zu tun.
Und NAT selber ist eine Firewall technik. Genauso kann Router und Firewall selber etwas schlecht auseinander halten. Okay kann man schon aber nicht im Sprachlichen gebrauch. Den kleinen 40€ Router den du kaufst kannst du eher als Firewall ansehen anstatt einen Router.
Mit einer Firewall ist immer ein Gerät(eher Konzept) gemeint das einem LAN beispielsweise Firmen Netzwerk die verbindung zum Internet ermöglicht, und diese verbindungen Regelt. Jede Verbindung muss über diese "Firewall" (in diesem Fall passt eher Paketfilter) laufen.
Ein Router ist in dem Sinne etwas ganz anderes. Dieser steht im netzwerk und routet einfach nur pakete zu anderen Routern. Dabei versucht der Router immer den kürzesten Weg zu finden.
All sowas macht ein handelsüblicher Router den du dir Privat kaufst ja nicht. Er routet alle Pakete einfach nur zu dem Router der zu deinem ISP gehört.
Deswegen ist hier eigentlich Paketfilter das richtigere Ausdruck. Den ein vernünftiger Paketfilter solte eben auch Pakete Routen können. Aber eben nur von einer Quelle zu einem Ziel. Er sucht nicht den kürzesten Weg oder sonst etwas. Und NAT ist teil eines Paketfilter.