Windows unter Kontrolle – IPFire Teil4

1. Kein Windows ohne FirewallIPFire Windows

Windows (10) ist ein Datenschutzsuper-GAU – das werden die meisten wissen. Aufgrund mangelnder Alternativen werden viele dennoch weiterhin notgedrungen auf Microsoft setzen und versuchen, dem Kontrollverlust irgendwie entgegenzuwirken.

Das Problem kurz zusammengefasst: Selbst wenn man im Privat- oder Unternehmensumfeld auf Linux umgestiegen ist, so gibt es immer Anwendungen, die ausschließlich für Microsoft (Windows) konzipiert sind. Dazu gehören bspw. Anwendungen zur Steuererklärung oder Buchhaltungssoftware – aufgrund mangelnder (guter) Alternativen für Linux benutzen selbst eingeschworene Linux-Fans und Open-Source Anhänger noch immer Systeme mit Windows. Nicht weil sie es wollen, sondern weil sie es müssen.

Im vierten und letzten Teil der IPFire-Artikelserie möchte ich aufzeigen, wie ihr Level 3 (siehe Ziffer 6) erreichen könnt und den Datenverkehr von Windows auf der IPFire kontrolliert und einschränkt. Am Beispiel von einer Steuer- und Buchhaltungssoftware werde ich euch demonstrieren, wie ihr nur jene Verbindungen freigebt, die für das Funktionieren eurer Software erforderlich sind.

Dieser Beitrag ist Teil einer Artikelserie:

2. Ausgangslage

Für echte Kontrollfreaks gibt es nur eine Lösung, wenn sie auf Anwendungen angewiesen sind, die unter Windows laufen und gleichzeitig nicht wollen, dass sie von Microsoft ausspioniert werden: Die Filterung des Netzwerkverkehrs mittels einer externen Firewall, die ausgehende Verbindungen von einem Windows-Rechner reglementiert.

Das im vorliegenden Beitrag dargestellte Szenario eignet sich für all jene, die Windows nicht als Hauptsystem nutzen, sondern lediglich als Werkzeug, um mit Anwendungen zu arbeiten, die ausschließlich unter Windows lauffähig sind. Das System soll später so stark durch die IPFire reglementiert sein, dass nur jene Verbindungen »nach draußen« erlaubt sind, die für das Funktionieren eurer Software erforderlich sind. Weitere Einsatzszenarien, wie Surfen, E-Mails schreiben / lesen oder Videostreaming sind ausgeschlossen bzw. aufgrund der strikten Beschränkung des Netzwerkverkehrs durch die IPFire nicht vorgesehen.

2.1 Windows Updates nur manuell

Das regelmäßige Einspielen von (System-) Updates stellt eine sehr wichtige Maßnahme gegen bekannte bzw. bekanntgewordene Sicherheitslücken dar. Im Grunde bedeutet das: Sowohl das Betriebssystem, als auch alle auf dem System installierten Anwendungen, Plug-Ins, Browser-Erweiterungen etc. sollten stets auf dem aktuellen Stand sein und gehalten werden. Es gilt daher die einfache Regel:

Wenn du etwas installiert hast, dann update es auch.

Für unser Projekt machen wir keine Ausnahme, werden Software- und Windows-Updates allerdings manuell einspielen. Unser Windows-System wird zu keinem Zeitpunkt Verbindung zu Microsoft aufnehmen können / dürfen.

Über sogenannte »Update Packs« kann man Windows aktuell halten. Das Einspielen von Updates via Update Pack ist zwar weniger zeitnah, als die in Windows integrierte Update-Funktion, für unser Vorhaben allerdings vertretbar, da unser Nutzungsprofil eine relativ geringe Angriffsfläche bietet.

Die Update Packs für Windows 7 und 8 werden unter anderem von DrWindows (erster angepinnter Thread), WinFuture oder Chip angeboten und monatlich aktualisiert. Für Windows 10 bekommt man die Update Packs bei DrWindows (erster angepinnter Thread) und Chip. Nach Angaben der Betreiber sind alle (relevanten) Updates enthalten und dennoch bleibt ein mulmiges Gefühl, von einem Drittanbieter (Betriebssystem-)Updates zu beziehen. Letztendlich müsst ihr den Anbietern vertrauen oder eben eure Windows-Maschinen in der IPFire soweit öffnen, dass zumindest Updates via Microsoft möglich sind.

Alternativ stellt ihr euch einen Windows Server Update Service (WSUS) in euer Netzwerk oder nutzt das WSUS Offline Update Tool der c’t bzw. Torsten Wittrock. Beide Varianten sind den Update Packs vorzuziehen, erfordern allerdings etwas mehr Aufwand. Das Positive: Auch hierbei kommuniziert euer System nicht direkt mit Microsoft.

Hinweis

Windows lässt sich übrigens via Telefon aktivieren. Es ist nicht zwingend eine Internetverbindung erforderlich:

2.2 Software-Updates

Nicht nur Windows, sondern auch unsere Steuer- und Buchhaltungssoftware wollen wir natürlich aktuell halten. Da heutige Software meist einen Update-Check inklusive Download und Installationsroutine integriert hat, können wir die dafür notwendigen IP-Adressen der Gegenstelle beim Anbieter einfach in der IPFire freischalten. Alternativ könnt ihr hin und wieder auch selbst direkt beim Hersteller nach Updates suchen und diese gegebenenfalls einspielen.

3. IPFire Vorbereitung

Euer Windows-System wird vermutlich im blauen (WLAN) oder grünen (LAN) Netzbereich der IPFire untergebracht sein. Zur Erinnerung nochmal mein eigener Aufbau:

Netzwerkdiagramm

  • Rot: Externes Netzwerk, dass typischerweise direkt mit dem Internet bzw. ISP verbunden ist. Bei mir ist das rote Netzwerk der interne IP-Adressbereich der FRITZ!Box (192.168.50.0/24).
  • Grün: Das interne private Netzwerk (192.168.200.0/24), bei dem Geräte mit einem Netzwerkkabel verbunden sind.
  • Blau: Ein separates Netzwerk (192.168.150.0/24) für Wireless Geräte wie bspw. Smartphones.
  • Orange: Nicht vorhanden. Typischerweise die DMZ, für Geräte, die direkt aus dem Internet erreichbar sein sollen.

Weitere Details zum Aufbau könnt ihr dem ersten Beitrag der Artikelserie entnehmen.

3.1 Windows-System mit eigener IP-Adresse

Persönlich betreibe ich mein Windows 7 in einer VirtualBox über eine Netzwerkbrücke (Bridged Networking) und fester IP-Adresse. Den Netzwerkmodus »Netzwerkbrücke« habe ich natürlich bewusst gewählt, damit ich dem Windows-System eine eigene IP-Adresse in der IPFire zuweisen kann – das würde beim NAT-Modus nicht funktionieren, da VirtualBox die IP-Adresse vom Hostsystem verwendet.

Ihr solltet eurem Windows-System -egal ob das System virtualisiert ist oder nicht- also eine feste bzw. eigene IP-Adresse zuweisen. Legt dazu am besten auf der IPFire unter »Firewall -> Firewallgruppen -> Hosts« einen neuen Eintrag an:

IPFire Host

4. IP-Adressen bzw. Gegenstelle identifizieren

Wie bereits erwähnt erhält Windows selbst keinerlei Zugriff »nach draußen« bzw. auf das Internet, sondern ausschließlich ausgewählte Software, die dies auch tatsächlich benötigt. Hierfür ist es notwendig, dass ihr die Server bzw. Gegenstellen identifiziert, die eure Software zur Funktionserbringung benötigt. In meinem Fall ist das bspw. das Finanzamt Karlsruhe, an das ich meine monatliche Umsatzsteuervoranmeldung (Buchhaltung) und die jährliche Einkommensteuererklärung (Steuern) übermittle.

Bevor wir die IP-Adressen identifizieren, möchte ich euch noch kurz das Whitelist-Prinzip vorstellen – einem empfehlenswerten Ansatz für die Firewall-Konfiguration bzw. der Regelsätze:

Verboten ist alles, was nicht ausdrücklich erlaubt ist.

Es werden also nur jene Verbindungen nach außen zugelassen, die explizit erlaubt sind. Ein solches Regelwerk zu definieren ist je nach Anwendung und Anzahl der installierten Programme, die mit der Außenwelt kommunizieren dürfen, ein langwieriger Prozess. Für unser Vorhaben ist das allerdings durchaus machbar, denn wir reduzieren uns auf jene Software, die wir notgedrungen unter Windows einsetzen müssen – im vorliegenden Beispiel also auf eine Steuer- und Buchhaltungssoftware.

4.1 Logging in der IPFire

Die IPFire bietet eine Logging-Funktionalität, mit der ihr grundsätzlich in der Lage seid, die Gegenstellen bzw. Server für eure Software zu identifizieren. Grundsätzlich bedeutet an dieser Stelle, dass dies nach meiner Auffassung nicht unbedingt der ideale Weg ist. Ich werde euch dennoch kurz demonstrieren, wie ihr für ein System die aus- und eingehenden Verbindungen direkt auf der IPFire einsehen könnt.

Klickt auf »Protokolle -> Fw-Protokolldiagramme (IP)«. Dort bekommt ihr neben einem Diagramm auch folgende Auflistung angezeigt:

IPFire Diagramm

Die IP-Adresse des Windows-Systems (192.168.150.50) taucht dort ebenfalls auf. Klickt auf »Mehr« und ihr erhaltet folgende Ansicht:

IPFire Protokoll

Dort werden euch einige Informationen angezeigt. Unter anderem auch das Ziel, wohin das Windows-System eine Verbindung versucht aufzubauen. Da wir mit dem Whitelist-Prinzip arbeiten, ist der Verbindungsaufbau allerdings nicht erfolgreich, sondern die Anfrage wird von der IPFire (DROP_FORWARD) verworfen.

Das Problem ist allerdings, wir können die IP-Adressen bzw. Gegenstelle nicht ohne größeren Aufwand einer Anwendung zuordnen. Daher ist dieser Ansatz für unsere Zwecke eher nicht von Vorteil.

4.2 TCPView

Für Windows stellt Microsoft ein kleines Tools (TCPView) bereit, mit dem man eine detaillierte Auflistung aller TCP- und UDP-Endpunkte auf dem System erhält. Wir nutzen TCPView, um herauszufinden, mit welchen Endpunkten bzw. Servern unsere Software kommunizieren möchte. Die IP-Adressen können wir anschließend für unser Windows-System auf der IPFire freigeben und dadurch die Kommunikation erlauben.

Zunächst starten wir TCPView und entfernen unter »Options« die Häkchen bei:

  • Show Unconnected Endpoints
  • Resolve Addresses

Anschließend wird die Steuersoftware gestartet. TCPView wird kurz nach dem Start die ersten Verbindungsversuche der Anwendung registrieren und darstellen:

TCPView

Mit einem Rechtsklick auf »OnlineUpdate.exe« und einem weiteren Klick auf »Process Properties« können wir sicherstellen, dass der Verbindungsversuch tatsächlich von der eben gestarteten Anwendung stammt.

Mit diesem Vorgehen können wir die IP-Adressen der Gegenstellen ermitteln und die Adressen anschließend als Host-Objekte in der Firewall anlegen oder diese in einer Gruppe zusammenfassen.

Anschließend müssen wir den Vorgang wiederholen, denn die Freigabe einer IP-Adresse bedeutet nicht, dass der Update-Prozess anschließend reibungslos abläuft. Im Falle der Steuersoftware erfolgt die Prüfung auf eine neue Version über die IP-Adresse 89.244.131.141 – der Download von Updates allerdings über eine andere IP-Adresse, nämlich der 212.211.139.206.

Hinweis

Der Unterschied zum Logging auf der IPFire besteht insbesondere darin, dass wir mit TCPView auf Anwendungsebene sehen, zu welchem Ziel eine Verbindung aufgebaut wird. Das erleichtert eine Zuweisung zu einer IP-Adresse ungemein und ist daher dem Logging-Verfahren auf der IPFire vorzuziehen – jedenfalls bei unserem Anwendungsfall.

Du kannst den Blog aktiv unterstützen!

Unabhängig. Kritisch. Informativ. Praxisnah. Verständlich.

Die Arbeit von kuketz-blog.de wird vollständig durch Spenden unserer Leserschaft finanziert. Sei Teil unserer Community und unterstütze unsere Arbeit mit einer Spende.

Mitmachen ➡

4.3 IPFire Konfiguration

Öffnet erneut die Hosts-Ansicht über »Firewall -> Firewallgruppen -> Hosts«. Dort legt ihr dann Hosts-Objekte für alle identifizierten IP-Adressen an, zu denen eure Software eine Verbindung initiieren darf:

IPFire Hosts

Insgesamt werden fünf IP-Adressen bzw. Hosts benötigt, damit die Steuer- und Buchhaltungssoftware ihre Funktion erbringen kann. Drei der IP-Adressen sind notwendig, um den automatischen Update-Prozess zu erlauben. Die anderen beiden IP-Adressen wiederum sind vom Finanzamt Karlsruhe, an das im Anschluss die Daten übermittelt werden.

5. Fazit

Windows kann so viel »schreien« und »rufen« wie es will – die IPFire lässt das neugierige Betriebssystem verstummen. Mit diesem Ansatz könnt ihr ausgehende Verbindungen kontrollieren und reglementieren. Letztendlich solltet ihr nur jene Verbindungen zulassen, die eure Anwendungen für die Funktionserbringung benötigen – alles andere ist in diesem Setup nicht erlaubt.

An dieser Stelle sei noch erwähnt, dass ihr für die Umsetzung nicht zwangsläufig eine IPFire benötigt. Auch andere externe Firewalls, die ihr nach Vorbild des Whitelist-Prinzips konfiguriert, erzielen das selbe Ergebnis: Windows ist unter Kontrolle. Oder anders formuliert: Es hält endlich seine Klappe.

Bildquellen:

Windows: Smashicons from www.flaticon.com is licensed by CC 3.0 BY
Jail: Freepik from www.flaticon.com is licensed by CC 3.0 BY

Über den Autor | Kuketz

Mike Kuketz

In meiner freiberuflichen Tätigkeit als Pentester / Sicherheitsforscher (Kuketz IT-Security) schlüpfe ich in die Rolle eines »Hackers« und suche nach Schwachstellen in IT-Systemen, Webanwendungen und Apps (Android, iOS). Des Weiteren bin ich Lehrbeauftragter für IT-Sicherheit an der Dualen Hochschule Karlsruhe, sensibilisiere Menschen in Workshops und Schulungen für Sicherheit und Datenschutz und bin unter anderem auch als Autor für die Computerzeitschrift c’t tätig.

Der Kuketz-Blog bzw. meine Person ist regelmäßig in den Medien (heise online, Spiegel Online, Süddeutsche Zeitung etc.) präsent.

Mehr Erfahren ➡

SpendeUnterstützen

Die Arbeit von kuketz-blog.de wird zu 100% durch Spenden unserer Leserinnen und Leser finanziert. Werde Teil dieser Community und unterstütze auch du unsere Arbeit mit deiner Spende.

Folge dem Blog

Wenn du über aktuelle Beiträge informiert werden möchtest, hast du verschiedene Möglichkeiten, dem Blog zu folgen:

Bleib aktuell ➡


Diskussion

10 Ergänzungen zu “Windows unter Kontrolle – IPFire Teil4”

  1. Comment Avatar Thomas Müller sagt:

    Danke!
    Super bebildert, sehr schöne, sogar verständliche Darstellung!

    Zugleich so beschämend, welche – für Laien letztlich völlig unzumutbaren – Vorkehrungen man treffen muss, um nicht beliebig nackt gemacht zu werden. Computergrundrecht, (Grund-!)Recht auf Informationelle Selbstbestimmung, wo bist du?
    Ich komme nicht umhin, anzunehmen, dass unsere „Elite“ davon zu profitieren meint, dass der einfache Bürger nackt gemacht wird.

  2. Comment Avatar jakobssystems.net sagt:

    Hallo Mike, sehr gut! Ich möchte auf einen ungenannten Sachverhalt und Argument für Offline-Updates hinweisen: Microsoft benutzt zum Aktualisieren seines Office-Pakets – und das ist wohl (leider) auf jedem Business PC oder Terminalserver beheimatet – seine komische Datei-Streaming Technologie. Dummerweise schmeisst Squidguard diese URLs (richtigerweise) raus, da Doppel-Slashes // drin vorkommen „Warning: Possible bypass attempt. Found multiple slashes where only one is expected“.

  3. Comment Avatar ths sagt:

    Schöner Beitrag, aber der Download von kritischen Updates sollte niemals von Dritten, sondern nur vom Hersteller geschehen.
    Dazu entweder WSUS verwenden oder das c’t Offline Update. Hier gibt es sogar Linux-Shellskripte zum Download direkt von Microsoft, und man kann beim Einspielen auf den Windows-Büchsen festlegen, was gemacht werden soll – nur OS, MSSE, Silverlight, Office usw.
    http://wsusoffline.de/

    • Comment Avatar Mike Kuketz sagt:

      Richtig. Daher hatte ich die WSUS-Variante auch im Beitrag erwähnt.

      Den Hinweis für c’t Offline Update nehme ich dankend an und habe es im Beitrag ergänzt.

  4. Comment Avatar Robert sagt:

    Ok, Konzept verstanden und das funktioniert auch alles soweit. Aber wer garantiert dabei das nicht ein beliebiges Programm oder etwa Microsoft Windows (Update/Telemetrie) einen Tunnel durch eine der Freigaben aufbaut? https://de.wikipedia.org/wiki/Tunnel_(Rechnernetz)

    Oder hat schon mal jemand Teamviewer hinter IPFire probiert? Das Ding kommt doch durch jeden Router durch.

    Eigentlich hilft da nur ein echter OFFLINE-Rechner, der ab und an Updates per autonomen WSUS-Server (oder am besten ausschliesslich per USB-Stick) erhält.

    • Comment Avatar Mike Kuketz sagt:

      Wir geben hier im dargestellten Szenario lediglich Gegenstellen bzw. IP-Adressen frei und keine Ports oder Protokolle. Es ist zu 99,99 % auschließbar, dass sich ein Dienstleister einer Steuersoftware zum Lakeien von Microsoft macht und über sein Netzwerk die Daten zu Microsoft weiterschleust. Nein, dein Einwand ist hier falsch platziert – auch der zu Teamviewer oder anderer Software, die gerne »Löcher« in Firewalls bohren.

      Und nein, ein Offline-Rechner hilft nicht, wenn die Daten direkt aus der Buchhaltungssoftware digital an das Finanzamt übertragen werden (müssen).

  5. Comment Avatar Eric sagt:

    Hi Mike,

    ich hole neue Updates direkt von Microsoft.
    http://www.catalog.update.microsoft.com/home.aspx

  6. Comment Avatar Panoptikum sagt:

    Hallo, sehr guter Artikel.

    Ein paar Ergänzungen möchte ich noch loswerden. Da Windows 10 ja quasi im Jahr immer Versionsupdates bekommt und diese im Endeffekt dann, in einer neuen Windows-Version resultieren (Auch der Kernel hat meist dann eine neue Version) Sollte man es doch aktuell halten. Hier habe ich eine Möglichkeit gefunden wie man seine Daten behält und quasi offline das os „upgraden“ kann.
    Zuerst muss man sich ein aktuelles ISO direkt von der MS Seite laden.

    Mit Rufus kann man sich einen boot stick erzeugen. Nach der erfolgreichen Installation auf den Stick, würde ich ein 1:1 Backup von der Systempartion machen (man kann nie wissen) Dann den Stick an das System anstecken und Windows quasi installieren, nur jetzt gibt man an, dass man die Daten behalten möchte. Wenn alles klappt, ist nach ~30 min das OS auf dem neuest Stand und alle Programme und Daten sind erhalten geblieben. Nach so einem „System“ upgrade müssen Dienste wie der Windows index/such Dienst wieder deaktiviert werden. Das gilt auch für alle anderen Dinge wie Cortana und Onedrive usw.

    Was man alternativ auch noch machen kann, direkt am Client:
    https://github.com/crazy-max/WindowsSpyBlocker
    Nach Analyse diverser Pi-hole logs, müssen für ein internen Updatefunktion des OS, diese Domains zugreifbar sein:
    g.live.com
    go.microsoft.com
    login.live.com
    fe3.delivery.mp.microsoft.com
    Ich erwähne dies weil die Filterlisten von Crazy max ein bisschen zu „Scharf“ eingestellt sind

    Wenn man sein windows aktivieren möchte, muss diese Domains zugreifbar sein:
    licensing.mp.microsoft.com

    Schlussendlich kann man dem Os einfach nicht trauen, den MS kann die Domains ändern.
    Deine Variante mit quasi einer Whitelist(ipfire) ist genial , weil damit muss man sich einfach keine Gedanken mehr machen was blockiert wird ;)

    Grüße Panoptikum

  7. Comment Avatar Gerwin Schmidt sagt:

    Ein bisschen OT, aber unbedingt lesenswert für die Nicht-nur-technisch-Interessierten:

    „IT Europas fatale Abhängigkeit von Microsoft“, Tagesspiegel (!) 13.5.17

    https://www.tagesspiegel.de/weltspiegel/sonntag/cyber-attacken-auf-staatliche-it-europas-fatale-abhaengigkeit-von-microsoft/19628246.html

  8. Comment Avatar Chris sagt:

    Vielen Dank für diese interessante Artikelserie!

    Es gehört zwar nur am Rande zum Thema, aber vielleicht ist es doch nützlich zu erwähnen: Man benötigt nicht unbedingt ein Microsoft Windows System, wenn man auf das ein oder andere Windows-Programm (noch) nicht verzichten kann. So manches Windows-Programm läuft auch unter Wine.

    Selber nutze ich schon seit Jahren ausschließlich Linux und komme wunderbar damit zurecht. Ich denke, da hält auch so manches Vorurteil viele davon ab, den Umstieg auf Linux zu probieren. Und natürlich die Bequemlichkeit, solange die meisten Computer mit Windows vorinstalliert verkauft werden.

HilfeWenn du konkrete Fragen hast oder Hilfe benötigst, sind das offizielle Forum oder der Chat geeignete Anlaufstellen, um dein Anliegen zu diskutieren. Per E-Mail beantworte ich grundsätzlich keine (Support-)Anfragen – dazu fehlt mir einfach die Zeit. Kuketz-Forum

Abschließender Hinweis

Blog-Beiträge erheben nicht den Anspruch auf ständige Aktualität und Richtigkeit wie Lexikoneinträge (z.B. Wikipedia), sondern beziehen sich wie Zeitungsartikel auf den Informationsstand zum Zeitpunkt des Redaktionsschlusses.

Kritik, Anregungen oder Korrekturvorschläge zu den Beiträgen nehme ich gerne per E-Mail entgegen.