Scheinweltname
Lt. Commander
- Registriert
- Jan. 2008
- Beiträge
- 1.743
HowTo: Firewall auf Whitelist-Modus umstellen
Hinweis (Swn, 25.07.2013): Dieses HowTo wird schon seit längerer Zeit nicht mehr gepflegt.
Hinweis (Swn, 25.07.2013): Dieses HowTo wird schon seit längerer Zeit nicht mehr gepflegt.
Das HowTo beschreibt den Umgang mit der Firewall von Windows7 (die Einstellung der Vista-Firewall ist sehr ähnlich, vgl. Posts #7 und #8), lässt sich aber auf alle Software-Firewalls, die ausgehenden Datenverkehr filtern können, übertragen.
Wichtiger Hinweis: Ein Whitelisting mithilfe der Windows-Firewall ist nur dann sinnvoll möglich, wenn kein Programm installiert ist, das Netzwerkverkehr umleitet (z.B. Kaspersky Anti-Virus). Wer eine Security-Suite inkl. eigener Firewall oder eine separate FW installiert hat, müsste die untenstehenden Regeln ggf. in dieser FW eintragen.
Eine Whitelist-Firewall ist nur eine Ergänzung zu einem guten, aktuellen Anti-Virenprogramm!
Motivation: Warum Whitelist?
Die Standardeinstellungen von Windows wurden so gewählt, dass das Betriebssystem problemlos funktioniert und alle Funktionen, die ein normaler User womöglich nutzen möchte, standardmäßig zugänglich sind. Microsoft geht offensichtlich davon aus, dass Nutzer auf private Netzwerke zugreifen möchten, in denen sie sich mit den Rechnern der Familie, einem gemeinsamen Drucker oder einem NAS verbinden. Auch und gerade die Netzwerkeinstellungen und -dienste wurden so konfiguriert, dass der Nutzer ein Netzwerkgerät nur anzustöpseln braucht, und schon wird es erkannt und kann eingesetzt werden. Nun gibt es aber viele Menschen, die diese Features gar nicht benötigen. Außerdem gibt es Anwender, die gerne die Kontrolle über alle Netzwerkverbindungen der installierten Anwendungen haben möchten. Normalerweise setzen die Werkseinstellungen von Firewalls (auch in Security Suiten) auf Blacklists: Traffic jeder Art wird zugelassen, es sei denn, eine Regel blockiert ihn. Whitelist bedeutet hingegen, dass Datenverkehr jeder Art blockiert wird, außer er ist durch eine Regel zugelassen. Statt also zig Programme einzeln zu blockieren, kann man eine Firewall einfach auf Whitelist umschalten und gezielt nur diejenigen Programme erlauben, die auch wirklich eine Verbindung herstellen können sollen. Zielgruppe: An wen richtet sich dieses HowTo?
Whitelisting ist ohne Zweifel viel sicherer, aber auch deutlich unbequemer als das Blacklist-Verfahren. Es ist vor allem für User sinnvoll, die nur wenige Programme nutzen, die eine Internetverbindung unterhalten sollen. Oder solche, die ihren Rechner bis auf ausgewählte Anwendungen (z.B. Spiele) vollständig vom Netz abschotten, aber trotzdem noch die Updates für Windows und das Anti-Viren-Programm herunterladen möchten. Das HowTo richtet sich an alle Nutzer, die nur zum Surfen, Spielen und Updaten ihrer Software eine Netzwerkverbindung benötigen.Grundlegendes Prinzip
Standardmäßig ALLES blockieren und durch möglichst restriktive Regeln nur ausgewählten Prozessen Netzwerkverbindungen erlauben.Diese Regeln definieren "Ansprüche" an Verbindungsanfragen: Es wird nur dann eine Verbindung zugelassen, wenn alle Punkte einer Regel gleichzeitig erfüllt sind (z.B. korrekter Netzwerkport + korrektes Protokoll + korrekte Zieladresse). Ist das nicht der Fall, wird eine Verbindung blockiert.
Das Whitelisting einer Firewall bedeutet übrigens nicht, dass Programme aufhören würden, Verbindungsversuche zu unternehmen; diese werden aber automatisch blockiert, wenn sie den Regeln nicht entsprechen. Genausowenig bedeutet Whitelistung, dass Programmen z.B. Zieladressen vorgeschrieben würden. Regeln bestimmen nicht, mit wem und wie Programme Kontakt aufnehmen sollen, sondern wie und mit wem sie es dürfen!
Wie und welche Netzwerkdienste aus Sicherheitsgründen deaktiviert werden sollten, wird in Exkurs 2 in Post #2 beschrieben.
Der Nutzen
Trojaner und andere Malware, die unbemerkt von Servern Schadcode herunterzuladen versuchen, werden automatisch blockiert. Und da es mittlerweile überwiegend vertrauenswürdige Webseiten sind, auf denen von Hackern (unsichtbare) iFrames platziert werden, über die dann Malware heruntergeladen wird (aktuelle Fälle z.B. die offizielle(!) Lenovo-Treiber-Downloadseite oder Vodafone UK), bedeutet eine Whitelist-Firewall (inkl. Whitelist-Regeln für Browser) größere Sicherheit, weil die Adressen, zu denen die iFrames Kontakt herstellen, nicht aufgerufen werden können. Entsprechend kann auch kein Schadcode heruntergeladen werden. Darüber hinaus werden Umleitungen auf DNS-Basis unmöglich (z.B. bei der Manipulation der eingestellten DNS-Server oder der Datei hosts). Außerdem lässt sich der Traffic reduzieren, was angesichts der UMTS-Volumentarife sehr nützlich ist. Hinweis: Man sollte niemals die Verbindung von Windows zu Microsoft blockieren, da dann logischerweise kein Windows Update möglich ist.Warum eine Software-Firewall?
Router-Firewalls sind nützlich, weil sie nicht auf dem Rechner installiert sind und entsprechend nicht von Malware abgeschaltet werden können. Andererseits sind handelsübliche Privatnutzer-Router blind für die Programme, die den Traffic erzeugen. Wer den eigenen ausgehenden Netzwerktraffic nach eigenen Regeln für Programme mit jeweils individuellen Zielen filtern möchte, der kommt um eine Software-Firewall nicht herum. Die Behauptung, dass Software-Firewalls leicht zu umgehen wären, ist falsch. Eine Whitelisted-Firewall bietet sogar Schutz vor dem Szenario, dass ein Systemprozess von Malware infiziert wird: Die Zieladressen und Ports des infizierten Prozesses sind auch diejenigen in der Firewallregel. Das Nachladen oder Verschicken von Schadcode ist so unmöglich. Ganz zu schweigen davon, dass unbekannte Prozesse gar nicht erst Netzwerkkontakt bekommen. Es müsste schon der Firewalldienst abgeschaltet werden, was aber keine Malware kann, wenn nicht der User selbst, manuell und wissentlich(!) ihr Admin-Rechte verleiht (indem er den UAC/ Benutzerkontensteuerung-Dialog bei der Rechte-Anfrage bestätigt). Und derjenige User wäre selber schuld!Vorbereitungen
... um sie ggf. wiederherstellen zu können. (Systemsteuerung --> Windows Firewall --> Erweiterte Einstellungen --> Regeln --> (Windows Firewall mit erweiterter Sicherheit – Lokaler Computer) „Richtlinie exportieren“)]. Ich übernehme keine Gewähr, dass die Einstellungen, die mit meiner Rechner- und Netzwerkkonfiguration fehlerfrei funktionieren, dies auch bei anderen Hardware-, Software- und Netzwerkkonfigurationen tun. Aus eigenem Sicherheitsbedürfnis heraus sind alle angegeben IP-Adressen und Links mehrfach überprüft; ein Zahlendreher kann aber trotzdem nie ausgeschlossen werden.
Während eine Netzwerkverbindung besteht: Eingabeaufforderung --> ipconfig /all eingeben und den/ die (primären und ggf. sekundären) DNS-Server notieren. Nutzer von Routern werden dort womöglich die Adresse ihres eigenen Routers sehen (192.168.x.x). In diesem Fall reicht diese Adresse für die DNS-Regel für die Firewall (s.u). Usern mit Modem oder direktem Netzwerkkontakt werden die DNS-Server ihrer Provider angezeigt. Diesen Usern empfehle ich dringend, diese Adressen als einzige, feste Zieladressen in der DNS-Regel (s.u.) einzutragen (zum Schutz vor DNS-Umleitungen jeglicher Art).
Einfachste Möglichkeit, IP-Adressen herauszufinden, ist das Windows-Tool nslookup.
Man starte dazu die Eingabeaufforderung oder Powershell und gebe den Ausdruck nslookup gefolgt vom Hostnamen ein (z.B. google.de). Das hat den Vorteil, dass man gar nicht erst einen Browser starten muss. Statt eine "echte" Verbindung mit einem Server herzustellen, fragt man mithilfe dieses Befehls lediglich beim eigenen DNS-Server nach, welche IP-Adresse aufgerufen würde, wenn man z.B. mit einem Browser z.B. ww*w.google.de aufrufen würde. nslookup google.de liefert folgendes (die Adressen können sich zu verschiedenen Zeitpunkten durchaus unterscheiden; gerade bei Diensten, die viele IP-Bereiche nutzen können, wie z.B. Google oder das Windows Update)
Eine kompliziertere Variante:
(Vorteil dieses Vorgehens ist, dass man tatsächlich alle nötigen IP-Adressen, die zum Aufbau einer Webseite nötig sind, sehen kann. Wer z.B. nur die IP-Adresse für "computerbase.de" zulässt, dem werden alle Bilder vorenthalten bleiben, weil "pics.computerbase.de" eine eigene IP-Adresse hat).
Mit dem Server verbinden (z.B. eine Webseite auf- oder E-Mails abrufen)(vor dem Whitelisting!) und in die Eingabeaufforderung (oder Powershell) netstat -n eingeben und die entsprechende Remote-IP-Adresse (und ggf. den Remoteport, falls es sich nicht um die unten angegebenen handelt) notieren (per Rechtsklick kann man mit "markieren" einen anderen Cursor-Modus wählen, damit Text markieren und dann per Strg+C kopieren). Einfacher geht das mit TCPView [2] von Microsoft, das auch die Programme anzeigt, die die Verbindungen aufbauen. So findet sich die IP-Adresse leichter und man kann auch alle Verbindungen als Text-Datei speichern. Manche (besonders SSL-)Verbindungen werden vom Server sehr schnell wieder beendet, dann tauchen die IP-Adressen teilweise nur für wenige Sekunden in den Listen auf. In diesem Falle ist TCPView deutlich bequemer.
Zum Prüfen die IP-Adresse bei einer Whois-Datenbank [3] eingeben und vergleichen, ob das angegebene Unternehmen mit der aufgerufenen Seite übereinstimmt. Wenn nicht, wurde vermutlich die falsche IP-Adresse notiert. Genauso sollte man vorgehen, wenn man auch andere Programme per Whitelisting absichern will: Erst alle Verbindungen für ein Programm zulassen, dann die gewünschte Verbindung herstellen (zur entsprechenden Website, E-Mail-Account usf.), IP-Adressen notieren, CIDR berechnen, Regel erstellen. Dann die Firewall auf Whitelisting umschalten, sodass die gerade notierte Verbindung funktioniert aber alles andere automatisch blockiert wird.
Man starte dazu die Eingabeaufforderung oder Powershell und gebe den Ausdruck nslookup gefolgt vom Hostnamen ein (z.B. google.de). Das hat den Vorteil, dass man gar nicht erst einen Browser starten muss. Statt eine "echte" Verbindung mit einem Server herzustellen, fragt man mithilfe dieses Befehls lediglich beim eigenen DNS-Server nach, welche IP-Adresse aufgerufen würde, wenn man z.B. mit einem Browser z.B. ww*w.google.de aufrufen würde. nslookup google.de liefert folgendes (die Adressen können sich zu verschiedenen Zeitpunkten durchaus unterscheiden; gerade bei Diensten, die viele IP-Bereiche nutzen können, wie z.B. Google oder das Windows Update)
PS C:\Windows\System32\WindowsPowerShell\v1.0> nslookup google.de
Server: [mein DNS-Server]
Address: [Adresse meines DNS-Servers]
Nicht autorisierende Antwort:
Name: google.de
Addresses: 209.85.135.104
209.85.135.103
209.85.135.99
209.85.135.147
209.85.135.106
209.85.135.105
Server: [mein DNS-Server]
Address: [Adresse meines DNS-Servers]
Nicht autorisierende Antwort:
Name: google.de
Addresses: 209.85.135.104
209.85.135.103
209.85.135.99
209.85.135.147
209.85.135.106
209.85.135.105
(Vorteil dieses Vorgehens ist, dass man tatsächlich alle nötigen IP-Adressen, die zum Aufbau einer Webseite nötig sind, sehen kann. Wer z.B. nur die IP-Adresse für "computerbase.de" zulässt, dem werden alle Bilder vorenthalten bleiben, weil "pics.computerbase.de" eine eigene IP-Adresse hat).
Mit dem Server verbinden (z.B. eine Webseite auf- oder E-Mails abrufen)(vor dem Whitelisting!) und in die Eingabeaufforderung (oder Powershell) netstat -n eingeben und die entsprechende Remote-IP-Adresse (und ggf. den Remoteport, falls es sich nicht um die unten angegebenen handelt) notieren (per Rechtsklick kann man mit "markieren" einen anderen Cursor-Modus wählen, damit Text markieren und dann per Strg+C kopieren). Einfacher geht das mit TCPView [2] von Microsoft, das auch die Programme anzeigt, die die Verbindungen aufbauen. So findet sich die IP-Adresse leichter und man kann auch alle Verbindungen als Text-Datei speichern. Manche (besonders SSL-)Verbindungen werden vom Server sehr schnell wieder beendet, dann tauchen die IP-Adressen teilweise nur für wenige Sekunden in den Listen auf. In diesem Falle ist TCPView deutlich bequemer.
Zum Prüfen die IP-Adresse bei einer Whois-Datenbank [3] eingeben und vergleichen, ob das angegebene Unternehmen mit der aufgerufenen Seite übereinstimmt. Wenn nicht, wurde vermutlich die falsche IP-Adresse notiert. Genauso sollte man vorgehen, wenn man auch andere Programme per Whitelisting absichern will: Erst alle Verbindungen für ein Programm zulassen, dann die gewünschte Verbindung herstellen (zur entsprechenden Website, E-Mail-Account usf.), IP-Adressen notieren, CIDR berechnen, Regel erstellen. Dann die Firewall auf Whitelisting umschalten, sodass die gerade notierte Verbindung funktioniert aber alles andere automatisch blockiert wird.
-
Schritt 1A: In den Firewalleinstellungen ALLE Regeln für eingehenden Verkehr löschen
Schritt 1B: Alle Regeln für ausgehenden Verkehr löschen. [Systemsteuerung --> Windows-Firewall --> Erweiterte Einstellungen --> Regeln für ausgehende Verbindungen: Alles markieren und löschen. Das gleiche Prozedere für ausgehende Verbindungen] -
Schritt 2: In den Einstellungen der einzelnen Profile alles blockieren (für alle drei Netzwerkprofile! Domäne, Privat & Öffentlich), Protokollierung der Verbindungen einschalten (falls gewünscht; das Öffnen der Protokolldatei erfordert Admin-Rechte). [Systemsteuerung --> Windows-Firewall --> Erweiterte Einstellungen --> Windows-Firewalleigenschaften]
(Die Änderungen gelten jeweils nur für ein Profil. Diese Einstellungen für alle drei Profile vornehmen!)
- Firewallstatus: Ein (empfohlen)
- Eingehende Verbindungen: Alle Blockieren (Damit werden auch die eingetragenen Ausnahmen ignoriert!)
- Ausgehende Verbindungen: Blockieren (mit dieser Einstellung stellt man die Firewall von Blacklist-Modus auf Whitelist-Modus um!)
- Unter „Einstellungen. Anpassen“: Benachrichtigungen anzeigen: Ja, Unicastantwort zulassen: Nein (nur im Profil „Öffentlich“ muss sie auf „Ja (Standard)“ stehen, ansonsten kriegt man immer nur „Nicht identifiziertes Netzwerk“ zu sehen). Unter "Protokollierung" kann eingestellt werden, ob Windows eine Protokolldatei mit den Adressen der kontaktierten (und/ oder abgelehnten) Server führen soll. Nach meiner Erfahrung hat das keinen negativen Einfluss auf die Geschwindigkeit oder Bandbreite der Netzwerkverbindung).
-
Schritt 3: Regeln für ausgehenden Traffic erstellen [Systemsteuerung --> Windows-Firewall --> Erweiterte Einstellungen --> Ausgehende Regeln --> Neue Regel]
Erstellen von Firewallregeln
-
Diese Regel ist zwingend notwendig, damit Programme Webadressen erreichen können. Beispielhaft wird hier die gemeinte DNS-Regel erstellt. Alle anderen Regeln funktionieren nach dem gleichen Muster
Systemsteuerung --> Windows-Firewall --> Erweiterte Einstellungen --> Ausgehende Regeln --> Neue Regel.
DNS-Regel: --> Benutzerdefiniert --> alle Prozesse --> Protokolltyp UDP, Remoteport 53 --> Remote-Adressen (die notierten DNS-Server eintragen!, s.o.) --> Zulassen --> nur „Öffentlich“ wählen --> Namen (und ggf. Beschreibung) --> fertig
Diese Regel erlaubt allen installierten Programmen, Domainnamen (z.B. google.de) zu IP-Adressen aufzulösen. Man könnte diese Regel auch für jedes zugelassene Programm einzeln erstellen, würde damit aber die Anzahl der Regeln vervielfachen. -
Diese Regel erlaubt dem Internetbrowser, hinsichtlich der Adressen uneingeschränkt auf Webseiten zuzugreifen, beschränkt aber die zugelassenen Netzwerports auf das benötigte Minimum.
… Neue Regel --> Benutzerdefiniert --> „Dieser Programmpfad“ (die *.exe des Browsers suchen) --> Protokolltyp TCP, Remoteport 80, 443 --> (beliebige IP-Adressen) --> Verbindung zulassen --> Nur „Öffentlich“ aktivieren --> Namen und Beschreibung --> fertig
Hinweis zur Regelerstellung für Google Chrome: Post #181. -
Nutzer mit Programmen, die einen Web-Filter installiert haben, müssen zwingend folgende Regel erstellen: --> Benutzerdefiniert --> [*.exe-Datei des Programms und/ oder des Updaters zum Programm] --> Protokolltyp TCP (andere werden normalerweise nicht benötigt) --> Remote-Adressen: Beliebig (weil auch der Traffic von Browsern und E-Mail-Clients über das AV-Programm umgeleitet wird) --> Zulassen --> Öffentliches Profil --> Namen/ Beschreibung --> fertigHinweis: Avast! 5 Free nutzt einen etwas verkorksten Update-Mechanismus, der eine eigene Regel braucht. Hinweise dazu siehe Post #121
Unter Umständen umgehen Programme, die den Netzwerkverkehr über sich umleiten, die Filterung durch die WindowsFirewall. Das entsprechende Programm muss zugelassen werden (sonst gibt es kein Internet); alle Netzwerk-Regeln für dieses Programm betreffen aber dann ALLE Prozesse auf dem Rechner (siehe den linken Screenshot und die Regel zu Kaspersky)(übliche Verdächtige sind Anti-Viren-Programme und Security Suiten, aber auch "Traffic Shaping"-Programme)
- AV-Programme, die Netzwerkverkehr nicht umleiten: Norton AV, Microsoft Security Essentials, Eset NOD32 Anti-Virus, AVG Free
- Programme, die Netzwerkverkehr umleiten (und damit die Windows-Firewall umgehen): Kaspersky AV, Avast! Free Antivirus, diverse Cfos-Produkte (und andere Netzwerk-Tweaking-Programme).
-
- Für alle Programme: DNS, UDP-Remoteport 53, Remoteadressen: die notierten DNS-Server
- Für alle Programme: Kontakt zu Microsoft/ Windows Update, TCP-Remoteports 80 und 443, Remoteadressen: Die Adressen für das Windows Update (siehe Post #2)
- Browser brauchen nur die TCP-Remoteports 80 und 443.
- Anti-Virenprogramme müssen noch Updates machen können. Dazu reichen normalerweise TCP-Remoteports 80 und 443 für die Programm-*.exe bzw. den zum Programm gehörigen Updater (muss nicht im Standard-Programmordner liegen!); als Zieladressen entweder direkt die Update-Server eingeben, oder ohne Adresse (man sollte einem AV-Programm vertrauen können). Die Microsoft Security Essentials und der Defender brauchen keine eigene Regel, wenn die vorgeschlagene Kontakt-zu-Microsoft-Regel eingestellt wird.
Zuletzt bearbeitet:
(Bilder entfernt, da nicht mehr bei Bilder-Hoster vorhanden.)