Springe zum Hauptinhalt

Sicherer Betrieb von Windows-Systemen?

Sicherer Betrieb von Windows-Systemen?

Windows Personal Firewall

windows-eigene firewall (es gibt Alternativen)

Grundlagen (Skizze)

  • "Windows-Firewall" ab Windows XP SP2 (vorher "Internetverbindungsfirewall" - ICF),
    sowie Windows Server 2003, Windows Vista und Windows Server 2008
  • PC hat eine oder mehrere Netzverbindungen
  • Kommunikation - Empfangen bzw. Senden von Nachrichten - erfolgt in Paketen
  • übliche Protokolle: TCP und UDP
  • Pakete enthalten sog. Portnummern zugeordnet (z.B. 80 = http; 20,21 = ftp; 22 = ssh; 23 = telnet), siehe
    C:\WINDOWS\system32\drivers\etc/services - Zuordnung: Dienstname, Port, Protokoll
    oder http://www.iana.org/assignments/port-numbers - Liste der IANA (Internet Assigned Numbers Authority)
  • jedes Paket hat einen Absender sowie ein Ziel (in Windows-Firewall als "Bereich" bezeichnet - IP-Adresse, Subnetz, "alle")
Spezifik Windows XP/2003
  • nur für eingehende Netzverbindungen (Ausnahmen siehe icmp)

Konfigurationsmöglichkeiten (Alternativen)

  • Grafische/Interaktive Konfiguration (Windows like)
    • Start -> Systemsteuerung -> Windows-Firewall (XP)
      bzw. Start -> Systemsteuerung -> Sicherheit -> Windows-Firewall -> Einstellungen ändern (Vista)
    • Gruppenrichtlinien -> gpedit.msc (nicht in Home-editions enthalten)
      -> Computerkonfiguration -> Administrative Vorlagen -> Netzwerk -> Netzwerkverbindungen -> Windows firewall
      siehe auch Verwalten von Windows XP Service Pack 2-Features mithilfe von Gruppenrichtlinien
    • Start -> Systemsteuerung -> Sicherheitscenter bzw. ... -> Sicherheit ...
  • Konfiguration mit Kommando (in allen Windows-Editions verfügbar)
    netsh firewall ... (Kommandozeilen)
    netsh -> firewall (Umgebung)
  • Einstellungen in der registry vornehmen
    • regedit
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List
      ...
  • unattended-Installation ( section [WindowsFirewall])
  • Konfiguration der Windows Firewall von Microsoft Windows XP Service Pack 2 über eine INF-Datei

Grafische Konfiguration

Start -> Systemsteuerung -> Sicherheit... -> Windows-Firewall
oder alternativ im Eingaben-Fenster firewall.cpl starten
  • ==> Allgemein - Aktiv / Inaktiv
    • mit aktuellen Service Packs standardmäßig aktiviert - dies soll immer so sein
  • ==> Ausnahmen
    • gültig für alle Netzverbindungen
    • über eine Netzverbindung kommende Daten, die akzeptiert werden sollen
      Remote Desktop / Remote Unterstützung - Eintrag automatisch, wenn dieses feature aktiviert wird (Systemsteuerung -> System -> Remote)
      für AFS:
      • Name: AFS CacheManager Callback
      • Port: 7001
      • TCP oder UDP : UDP und TCP (zwei Ausnahmen, mit Paketinstallation realisiert)
    • Ausnahmen für Programme, Systemdienste, Ports
    • Empfehlungen
      • Ausnahmen nur, wenn unbedingt benötigt (z.B. UPnP-Framework nicht benötigt - Kommunikation zwischen PCs, Suchanforderungen)
      • Ausnahme entfernen, wenn nicht mehr benötigt
      • keine Ausnahme für unbekannte Programme
    • Achtung bei "Benachrichtigen, wenn Programm durch Windows-Firewall geblockt wird": Bei Erlauben kann dies zu einer Änderung der bisherigen generellen Einstellung führen ==> Kontrolle
  • ==> Erweitert
    • ==> Sicherheitsprotokollierung
      • Empfehlung
      • "Verworfene Pakete protokollieren" und/oder "Erfolgreiche Verbindungen protokollieren"
      • je nach Bedarf und Datenmenge nach C:\WINDOWS\pfirewall.log (siehe "Größenlimit" und verfügbaren Platz)
      • "Verworfene ..." - sinnvoll, wenn ein Dienst nicht funktioniert
      • "Erfolgreiche ..." - Kontrolle / Überwachung
    • ==> ICMP
      • Internet Control Message Protocol (ICMP)
      • für Austausch von Fehler- und Informationsmeldungen in Netzwerken
      • spezieller Paket-/Nachrichtentyp für Diagnose-Informationen
      • "Echo Reply" / "Eingehende Echo-Anforderungen" => ping (Paket zurücksenden) - "Sichtbarkeit" des PCs
    • ==> Netzwerkverbindungseinstellungen
      • Konfiguration je ausgewählter Netzverbindung
      • incl. ICMP
      • hier die Möglichkeit, eine bestimmte Netzverbindung ohne Firewall zu betreiben
    • ==> Standardeinstellungen
      • Standardeinstellungen aktivieren
      • Modifikationen gehen verloren
siehe auch http://www.microsoft.com/technet/community/columns/cableguy/cg0204.mspx - Manually Configuring Windows Firewall in Windows XP Service Pack 2

Konfiguration/Informationen mittels Kommando

  • geeignet für Auswertung, Kontrolle, automatische Konfiguration (Wiederholung)
  • in einem File zusammenfassen (.bat, .cmd)
  • netsh firewall /?
In diesem Kontext:
?              - Zeigt eine Liste der Befehle an.
add            - Fügt die Firewallkonfiguration hinzu.
delete         - Löscht die Firewallkonfiguration.
dump           - Zeigt ein Konfigurationsskript an.
help           - Zeigt eine Liste der Befehle an.
reset          - Setzt die Firewallkonfiguration auf den Standardwert zurück.
set            - Legt die Firewallkonfiguration fest.
show           - Zeigt die Firewallkonfiguration an.

netsh firewall show

  • Anzeigen der aktuellen firewall-Konfiguration
  • Anzeigefunktionen - auch ohne Adminrechte nutzbar
  • Kommando-Optionen zur Steuerung des Informationsinhalts (Umfang, spezielle Bereiche)
C:\>netsh firewall show /?

Folgende Befehle sind verfügbar:

Befehle in diesem Kontext:
show allowedprogram - Zeigt vom Firewall zugelassene Programmkonfiguration an.
show config    - Zeigt die Firewallkonfiguration an.
show currentprofile - Zeigt das aktuelle Firewallprofil an.
show icmpsetting - Zeigt die Firewall-ICMP-Konfiguration an.
show logging   - Zeigt die Firewallprotokollierungskonfiguration an.
show multicastbroadcastresponse - Zeigt die Multicast-/Broadcastantwort-
                                  konfiguration des Firewalls an.
show notifications - Zeigt die Firewallbenachrichtigungskonfiguration an.
show opmode    - Zeigt die Firewallbetriebskonfiguration an.
show portopening - Zeigt die Firewallportkonfiguration an.
show service   - Zeigt die Firewalldienstkonfiguration an.
show state     - Zeigt aktuellen Firewallstatus an.
C:\>netsh firewall show logging

Protokollierungskonfiguration:
-------------------------------------------
Dateipfad       = C:\WINDOWS\pfirewall.log
Max. Dateigre = 4096 KB
Verworf. Pakete = Aktiv
Verbindungen    = Aktiv
  • portopening
    • aktuelle port-Konfiguration anzeigen (je Netzverbindung)
    • ... ENABLE -> Anzeige aller freigegebenen (Aktiv) sowie freigebbaren (Inaktiv) Ports
      (weitere Ports sind hinzufügbar)
C:\>netsh firewall show portopening

Portkonfiguration fr Profil "Domne":
Port   Protokoll Modus    Name
----------------------------------------------------------
3389   TCP       Aktiv    Remotedesktop

Portkonfiguration fr Profil "Standard":
Port   Protokoll Modus    Name
----------------------------------------------------------
1346   UDP       Aktiv    GhostConsole
7001   UDP       Aktiv    AFS CacheManager Callback (UDP)
7001   TCP       Aktiv    AFS CacheManager Callback (TCP)
5900   TCP       Aktiv    WinVNC
139    TCP       Aktiv    NetBIOS-Sitzungsdienst
445    TCP       Aktiv    SMB ber TCP
3389   TCP       Aktiv    Remotedesktop
  • state
    • aktuellen Status des firewalls anzeigen (Zusammenfassung)
    • ... ENABLE -> ...

netsh firewall set

  • Änderungen an der aktuellen Konfiguration vornehmen
  • Kommando-Optionen (analog netsh firewall show):
    allowedprogram, icmpsetting, logging, multicastbroadcastresponse, notifications, opmode, portopening, service
  • spezifische Syntax je Option siehe: netsh firewall set option /?
  • Empfehlung:
    Jede Änderung an der firewall-Konfiguration explizit prüfen!
    Mindestens mittels ... show ..., möglichst auch einen Praxistest!
  • Beispiele
    • netsh firewall set allowedprogram C:\Programme\Symantec\Ghost\ngctw32.exe GhostClient DISABLE ALL
    • netsh firewall show icmpsetting ENABLE
      netsh firewall set icmpsetting type = 8 mode = ENABLE
      netsh firewall show icmpsetting
    • netsh firewall set logging connections = DISABLE
      erfolgreiche Verbindungen nicht protokollieren
    • netsh firewall set service type = REMOTEDESKTOP
    • netsh firewall set notification ENABLE
      Benutzer werden benachrichtigt, wenn ein Programm versucht einen Port zu öffnen
    • netsh firewall set portopening TCP 80 Web

netsh firewall add / delete / dump / reset

  • dump - nicht unterstützt
    (export-/import-Funktion in Vista)
  • reset
    • firewall-Konfiguration wird auf Standard zurückgesetzt
    • Standard festgelegt in %WINDIR%\inf\netfw.inf = Installation
      siehe Installations-CD: i386\netfw.in_
    • Modifikation möglich (s.o.)
  • add / delete
    • für allowedprogram bzw. portopening
    • Beispiel
1346   UDP       Aktiv    GhostConsole
netsh firewall delete portopening  UDP 1346
netsh firewall add portopening  UDP 1346 Ghost
1346   UDP       Aktiv    Ghost

Einstellungen in der registry

Protokolldatei

pfirewall.log
#Version: 1.5
#Software: Microsoft Windows Firewall
#Time Format: Local
#Fields: date time action protocol src-ip dst-ip src-port dst-port size tcpflags tcpsyn tcpack tcpwin icmptype icmpcode info path
#Fields: 
#date      time   action protocol src-ip     dst-ip          src-   dst-  size tcpflags tcpsyn      tcpack   tcpwin icmptype icmpcode info path
                                                             port   port

2006-12-22 00:58:25 DROP UDP 134.109.200.209 134.109.201.255  138     138  202 -         -          -         -     - - -                  RECEIVE
2006-12-22 00:58:25 DROP UDP 134.109.200.209 134.109.201.255  137     137   78 -         -          -         -     - - -                  RECEIVE
2006-12-22 00:58:26 OPEN TCP 134.109.200.109 134.109.132.164 3598    1984    - -         -          -         -     - - -                  -
...
2006-12-22 05:22:28 DROP TCP  59.148.181.199 134.109.200.109   80    12115  48 SA        3885423350 104298265 16384 - - -                  RECEIVE
2006-12-22 05:22:32 DROP TCP  59.148.181.199 134.109.200.109   80    12115  48 SA        3885423350 104298265 16384 - - -                  RECEIVE
2006-12-22 05:25:44 DROP TCP  59.148.181.199 134.109.200.109   80    12115  48 SA        4208457496 104298265 16384 - - -                  RECEIVE
2006-12-22 05:25:47 DROP TCP  59.148.181.199 134.109.200.109   80    12115  48 SA        4208457496 104298265 16384 - - -                  RECEIVE
2006-12-22 09:15:55 DROP TCP 222.134.32.227  134.109.200.109   80    12115  40 AR          0        104298265     0 - - -                  RECEIVE
2006-12-22 09:15:55 DROP TCP 222.134.32.227  134.109.200.109   80    12115  40 AR          0        104298265     0 - - -                  RECEIVE
Erläuterung:
  • ... selbsterläuternd
  • src... - Quelle, Absender
  • dst... - Ziel, Adressat
  • tcpflags - TCP-Steuerungsflags
  • tcpsyn - TCP-Sequenznummer
  • tcpack - TCP-Bestätigungsnummer
  • tcpwin - TCP-Fenstergröße
  • icmptype - Typ-Feld der ICMP-Nachricht
  • icmpcode - Code-Feld der ICMP-Nachricht
  • ...

Spezifika in Windows Vista

  • unterstützt eingehenden und ausgehenden Netzwerkverkehr
  • Konfiguration von Ausnahmen für für Quell- und Ziel-IP-Adressen, für IP-Protokollnummern, für Quell- und Ziel-TCP- und UDP-Ports, ...
  • logging in C:\Windows\system32\LogFiles\Firewall\pfirewall.log
  • Filter zur Anzeige
  • Profile <- Netzwerkstandorte (festgelegt bei allererster Anmeldung)
    • "zu Hause " -> Profil: Privat
    • "Arbeistplatz" -> Profil: Privat
    • "Öffentlicher Ort" -> Profil: Öffentlich
    • oder bei Integration in eine Domäne -> Profil: Domäne
    • IPsec - "sichere Verbindungen", Schlüsselaustausch
    • Kontrolle/Änderung: -> Systemsteuerung -> Netzwerk- und Freigabecenter
  • MS-Console: wf.msc
  • gpedit.msc -> Computerkonfiguration -> Windows-Einstellungen -> Sicherheitseinstellungen -> Windows-firewall mit erweiterter Sicherheit ... (nicht in Home-Edition)
  • Kommando netsh advfirewall ...
    • "Profil Standard" entspricht "Profil Privat"
    • komplette Kommandozeile (ähnlich netsh firewall ...)
    • spezielle advfirewall-Kommandoumgebung möglich: Kommando netsh Kommando advfirewall Kommando help ...
      • Protokollierung: set file ...
      • firewall-Administration eines anderen PCs: set machine ...
    • Beispiele
netsh advfirewall /?
Befehle in diesem Kontext:

?              - Zeigt eine Liste der Befehle an.
consec         - Wechselt zum "netsh advfirewall consec"-Kontext.
dump           - Zeigt ein Konfigurationsskript an.
export         - Exportiert die aktuelle Richtlinie in eine Datei.
firewall       - Wechselt zum "netsh advfirewall firewall"-Kontext.
help           - Zeigt eine Liste der Befehle an.
import         - Importiert eine Richtliniendatei in den aktuellen Speicher.
monitor        - Wechselt zum "netsh advfirewall monitor"-Kontext.
reset          - Setzt die Richtlinie auf die standardmäßige Richtlinie zurück.
set            - Legt die profilbezogenen oder globalen Einstellungen fest.
show           - Zeigt Profil- bzw. globale Eigenschaften an.

Folgende Unterkontexte sind verfügbar:

 consec firewall monitor
netsh advfirewall show allprofiles
Domänenprofil-Einstellungen:
----------------------------------------------------------------------
Status                                ON
Firewallrichtlinie                    BlockInbound,AllowOutbound
Lokale Firewallregeln                 Nicht zutreffend (nur für GRO-Speicher)
Lokale Verbindungssicherheitsregeln   Nicht zutreffend (nur für GRO-Speicher)
Eingehende Benutzerbenachrichtigung   Enable
Remoteverwaltung                      Disable
Unicastantwort auf Multicast          Enable

Protokollierung:
Zugelassene Verbindungen protokol.    Disable
Getrennte Verbindungen protokollieren Enable
Dateiname                             C:\Windows\system32\LogFiles\Firewall\pfirewall.log
Max. Dateigröße                       4096


Privates Profil-Einstellungen:
----------------------------------------------------------------------
Status                                ON
Firewallrichtlinie                    BlockInbound,AllowOutbound
Lokale Firewallregeln                 Nicht zutreffend (nur für GRO-Speicher)
Lokale Verbindungssicherheitsregeln   Nicht zutreffend (nur für GRO-Speicher)
Eingehende Benutzerbenachrichtigung   Enable
Remoteverwaltung                      Disable
Unicastantwort auf Multicast          Enable

Protokollierung:
Zugelassene Verbindungen protokol.    Disable
Getrennte Verbindungen protokollieren Enable
Dateiname                             C:\Windows\system32\LogFiles\Firewall\pfirewall.log
Max. Dateigröße                       4096


Öffentliches Profil-Einstellungen:
----------------------------------------------------------------------
Status                                ON
Firewallrichtlinie                    BlockInbound,AllowOutbound
Lokale Firewallregeln                 Nicht zutreffend (nur für GRO-Speicher)
Lokale Verbindungssicherheitsregeln   Nicht zutreffend (nur für GRO-Speicher)
Eingehende Benutzerbenachrichtigung   Enable
Remoteverwaltung                      Disable
Unicastantwort auf Multicast          Enable

Protokollierung:
Zugelassene Verbindungen protokol.    Disable
Getrennte Verbindungen protokollieren Enable
Dateiname                             C:\Windows\system32\LogFiles\Firewall\pfirewall.log
Max. Dateigröße                       4096

OK.

Tipps

  • Immer mit aktivem firewall arbeiten, niemals ausschalten (auch nicht für Tests)!
    Aktuelle Systeme haben zum Abschluss einer Installation einen aktiven firewall.
    (Sonst Vorkehrungen treffen, u.U. ohne Netz installieren.)
  • Problembehebung - netzbasierte Software funktioniert nicht
    • siehe firewall-Protokoll -> C:\WINDOWS\pfirewall.log -> abgewiesene Pakete (siehe Quelle und Datum)
    • siehe Programm-/Produktbeschreibung oder Hersteller kontaktieren
    • C:\WINDOWS\system32\drivers\etc/services oder http://www.iana.org/assignments/port-numbers
    • benötigte Portnummer selbst ermitteln:
      • netstat -ano -> ... IP-Adresse:Port PID
      • tasklist bzw. tasklist /svc -> ... PID
  • Problembehebung - kein Zugriff/ keine Manipulation der firewall möglich
    Dienst "Windows-Firewall/Gemeinsame Nutzung der Internetverbindung" reagiert nicht mehr (fehlerhafte registry-Bearbeitung?!)
    1. %WINDIR%\inf\netfw.inf wiederherstellen
    2. netsh firewall reset
    3. firewall-Konfiguration aktualisieren
      oder
  • Sicherung/Wiederherstellung der aktuellen firewall-Konfiguration
    • registry-Teil SharedAccess sichern
      exportieren von HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess nach Datei sharedaccess.reg
  • firewall nur für benötigte und nachvollziehbare Anforderungen öffnen!
    Nicht mehr benötigte Ausnahmen unbedingt schließen! (nach Programm-Deinstallation, ...)
  • Achtung, wenn bei fehlendem Zugriff eines Programms mittels Fenster die "Behebung" des Problems angeboten wird, "Weiterhin blocken"/"Nicht mehr blocken"/"Erneut nachfragen". Dies sollte als anonyme Änderung der firewall (in Bezug auf Ports, Dauer, ...) interpretiert und somit abgelehnt werden! Konsequenz: explizite (eigene) firewall-Konfiguration vornehmen.
  • häufig: Ports 137, 138, 139 für NETBIOS ... (file und printer sharing)
  • Kontrolle auf Veränderungen?

Links