Viren, Spyware, Datenschutz 11.214 Themen, 94.192 Beiträge

Firewall-Rules erstellen ......... @Tyrfing

Artie / 15 Antworten / Flachansicht Nickles

Hallo,


ich habe jetzt mal @Tyrfing geschrieben, weil dieser sich anscheinend recht gut auskennt, zumindest gemäß Posting weiter unten in Bezug auf Sygate und mtask.exe.


Ich habe schon so einige Seiten im Netz betrachtet, aber so richtig ideal.


Ich bin jetzt von ZA auf eine andere Firewall umgestiegen, die man natürlich nicht nur so einfach installieren kann, sondern auch konfigurieren muß. Aber ZA ist seit Version 5 die Katastrophe, und so einiges habe ich schon über Ports gelernt, also warum nicht.


Auch wenn ich jetzt gemäß mehrerer Online Port-Scan-Tests diverser Firewallanbieter Stealth und momentan sicher erscheine, traue ich dem Braten noch nicht so ganz.


Am Anfang habe ich nämlich zu viele Ports geblockt, weil ich dachte nur lokal 80 u. 110 sowie remote 25 und remote 53 (für das einwählen) sollten für einige Anwendungen erlaubt sein. Nun aber habe ich gemerkt, das auf vielen Internetseiten remote 443 benötigt wird und auch viele lokale Ports zwischen 1070 und 1970 recht oft angesprochen werden, ohne die kein Surfen möglich ist, oder das AntiVirustool nicht updaten kann oder das Mailprogramm nicht raus kommt (also nicht nur 110). 


Was muß ich bei diesen lokalen Ports wirklich beachten? Gibt es da irgendwo eine gute Seite, die das auch für relative Anfänger wie mich erklärt? Habe zwar schon gute Ansätze gefunden und in den letzten Tagen auch dazugelernt, aber ich suche noch etwas "Optimales". Wer verrät mir da so seine bevorzugten Seiten mit guten Anleitungen, oder kann hier ein paar Tips geben.


Außerdem, wieviele Ports gibt es eigentlich. Der höchste, den ich bisher hatte war local port 61452. Bis wohin muß ich die Regel zum Blocken erstellen. 62000? oder noch mehr?


Danke für alle Tips im voraus


mfg


Artie


 


 


 


 

bei Antwort benachrichtigen
xafford Artie „Ach so, dann habe ich also alles vertauscht. Ich dachte ich müßte Port 80...“
Optionen

Ich versuche mal das der Reihenfolge abzuarbeiten:

Das heißt ich benötige die Remote Ports 80, 53UDP, 25, 443 eingehend u. bei 110 ausgehend, oder?
Das hast Du jetzt leider etwas mißverständlich formuliert. Die von Dir genannten Ports sind aber alles Serverports, d.h. Du mußt auf deinem Rechner eine Regel erstellen, so daß dein Rechner entfernte Rechner an deren entsprechendem Port kontaktieren dürfen (das gilt für alle Serverports). En Webserver lauscht auf 80 u. 443, ein Popserver lauscht auf 110, ein SMTP-Server auf 25, ein FTP-Server auf 20/21 (je nach aktiv/passiv), ein DNS-Server lauscht auf 53 (TCP und UDP). Eventuell schmeißt Du lokal freigeben mit lokalem Port noch etwas durcheinander, dazu am Ende noch mehr.

Wenn du sagst, das es nach Reihenfolge geht, heißt das, je höher...
Inwiefern die Reihenfolge wirksam ist, hängt etwas von der Software ab, in der Regel werden Filterregeln aber eine nach der anderen abgearbeitet. Mal ein konkretes Beispiel, wie Du es ja schon genannt hast:

1. Regel: Erlaube Anwendung XY die Verbindung an einen entfernten Rechner auf Port 80

2. Regel: Verbiete alle ausgehenden Verbindungen.

Der Reihenfolge nach würde zwar Anwendung XY zuerst die Kommunikation nach außen erlaubt, wird die nächste Regel erreicht, so wird allerdings allen Anwendungen die Kommunikation nach außen erlaubt. Ergebnis wäre: keine Verbindung (es mag Filter geben, die das anders handhaben).

In Kerio (manual leider in englisch und nicht konkret genug) habe ich jetzt für die Regeln die Möglichkeit mehere Unterordner zu gestalten. Wonach richtet sich dann die Reihenfolge.
Kerio (welche ich recht brauchbar finde) arbeitet Regeln streng hierarchisch ab. Eine nachfolgende Regel kann also eine vorherige aufheben.

Also eingehend werden von den genannten Remote Ports die lokalen Ports oberhalb 1024 verwendet.... bis zu welchem Port denn.
Nicht nur eingehend, auch ausgehend. Dein Rechner startet die Kommunikation von sich aus schon von einem Port jenseits der 1024, da die Ports unterhalb 1024 für bekannte Protokolle frei gehalten sind. Wenn die Verbindung ausgehandelt und etabliert ist, dann läuft die Kommunikation an beiden Enden über hohe Ports.

Literaturtipps hab ich aus dem Stehgreif leider keine zur Hand, vielleicht solltest Du die Frage nach Literatur noch einmal als getrennten Thread auf dem Netzwerkbrett starten.

Jetzt noch etwas Theorie zu Verbindungen. Eine Verbindung wird durch einen Socket beschrieben. Ein Socket wiederrum ist die Kombination aus IPs und Ports, welche eine Verbindung kennzeichnen und in einem TCP/IP Paket im Header (sozusagen der Anschrift und des Absenders bei Briefen sehr ähnlich mit einigen Zusatzinfos) vermerkt sind.
Ein Socket kann also grob umschrieben so aussehen:

QuellIP: 192.168.1.1 Quellport: 1025 (beliebig) -> ZielIP: 192.168.1.2 Zielport: 80 (zwingend)

Dies wäre eine Verbindung des Rechners mit der IP 192.168.1.1 an einen Webserver mit der IP 192.168.1.2. Um so eine Verbindung zu erlauben mußt Du also den Zielport 80 ausgehend freigeben, da Du den Quellport nicht wissen kannst. Diesen wählt nämlich dein Betriebssystem aufgrund der schon benutzten Ports. Windows z.B. rechnet Ports meist stupide hoch ab 1025. Hättest Du also noch keine offene Verbindung, dann wäre der Quellport 1025. Die nächste Verbindung startet dann von 1026, dann 1027 usw (allerdings keine Regel ohne Ausnahme). Der einzige Fixpunkt um alle HTTP-Verbindungen zuzulassen wäre also Port 80 als Ziel frei zu geben. Du könntest natürlich auch deinem Browser einfach alle Verbindungen erlauben, das wäre aber unsauber und mit der groben Kelle. Du könntest auch gezielt nur den Server mit der IP 192.168.1.2 freigeben, das wäre aber anstrengend, da Du jeden Server freigeben müsstest.

Das Stealthtests unseriös sind wollte ich gar nicht sagen, nur ist "Stealth" eben nichts, was in den RFC (Request for Comment, eine Art lockere Normung) zu finden wäre und ob es einen Mehrgewinn an Sicherheit bringt kann man zu Recht bezweifeln. Es wird zwar immer argumentiert, daß ein Rechner, welcher Stealth wäre im Internet unsichtbar sei, aber er ist dann eben zu unsichtbar. Man könnte es mit einem schwarzen Loch vergleichen, das kann man auch dadurch nachweisen, daß da einfach garnichts rauskommt. Rein technisch müsste nämlich eine Fehlermeldung des letzten Routers vor dem Ziel kommen, wenn wirklich kein Rechner vorhanden ist. Kommt ncihts zurück, dann weiß man, daß der Router das Paket zustellen konnte (ergo ist da etwas), das Ziel sich aber einfach tot stellt. Der saubere Weg (und den den viele Admins propagieren aufgrund der Regelkonformität) wäre, daß das Ziel einfach sagt: Nö, ich nehme von Dir nix an, anstatt einfach gar nichts zu sagen. Rein sicherheitstechnisch ist es nämlich gleich, ob der Rechner einfach die Annahme höflich verweigert, oder schlichtweg stumm bleibt, der Angreifer bekommt so oder so weder eine Verbindung, noch ein Indiz über offene Ports, wenn der Filter einfach höflich verweigert. Ein closed Port ist ein closed Port, der Angreifer kann nciht wissen ob der Port closed ist, weil sich kein Dienst dahinter versteckt, oder weil er blockiert wird. Er hat also nicht mehr Erfahrung über das System gewonnen, als wenn das System stealth wäre.
Wenn man ganz genau argumentiert, dann muß man auch noch sagen, daß dieser Stealthmodus den Traffic erhöht (wenn auch marginal), da das Anfragende System aufgrund der fehlenden Antwort die Anfrage über eine gewisse Zeit mehrfach stellen kann abhängig von den Einstellungen. Bei einem höflichen Annahme verweigert würde es einfach aufhören (so das System sauber programmiert ist).

Langer Rede, schwacher Sinn: Stealth ist nicht unseriös, nur in meinen Augen unsinnig und leider ist es sozusagen ein running Merketinggag und kein Hersteller von Software in diesem Bereich kann es sich dank des sagenumwobenen Stealth-Mode mehr erlauben auf diesen zu verzichten.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
......... @Tyrfing Artie