Whitelist-Ansatz für Windows- und Programmebene: Allen nicht explizit legitimierten (ausgehenden) Datenverkehr unterbinden



  • Guten Abend,

    vor geraumer Zeit habe ich mir einen kleinen PC zusammengestellt, welcher fortan als pfSense-Firewall wirken soll. Seit einigen Tagen beschäftige ich mich intensiv mit der Einrichtung des besagten Systems. Als absoluter Anfänger bzgl. pfSense stoße ich jedoch mittlerweile an meine Grenzen, aufgrund derer ich hier Hilfe erbete.

    Ausgangssituation:
    Soweit ich es überblicken kann ist die Grundkonfiguration abgeschlossen. Ein individuelle definierter DNS-Server (sowohl für IPv4 als auch für IPv6) ersetzt die Basiseinstellung. Des Weiteren habe ich die zwei standardmäßig bestehenden „Scheunentor“-Regeln („Default allow LAN to any rule“) deaktiviert und stattdessen eigene für DNS, HTTP, HTTPS sowie eMail, Kalender und Adressbuch angelegt.
    Zu meiner Freude konnte ich – wenn auch mit Hilfe konkreter Anleitungen – den pfBlockerNG soweit konfigurieren, dass er mir Schädlinge, Spionage und Werbung etwas vom Leib hält.

    Vorhaben:
    Mein Wunsch besteht zunächst primär in der Bändigung des Betriebssystems und der auf ihm installierten Programme. Leider werde ich aufgrund einer inkompatiblen Hardware-Software Kombination Windows 7 bald verlassen (müssen) und zu Windows 10 wechseln. Um mich in dieser Situation nicht immer mit der Ungewissheit aktualisierter Sperrlisten herumplagen zu müssen, möchte ich gerne einen „Whitelist“-Ansatz verfolgen. Sprich: Alle vom Betriebssystem (und ggf. weiterer Programme/Systeme) ausgehenden Daten sind vom Internet abgeschnitten, es sei denn, ich definiere explizit eine Ausnahme für bspw. das Windows-Update, ein sich aktualisierendes Programm x oder auch ein sich aktualisierendes NAS.

    Soweit Wunsch und Theorie für mich. In der Praxis stehe ich jedoch vor einem Bergmassiv, welches ich – derzeit – nicht zu besteigen vermag. Trotz intensiver Internet-Recherche (pfSense-Dokumentation, Suchmaschinen, Foren, Youtube) habe ich leider keine adäquate Lösung für meine Problematik entdecken können (existiert etwa keine?!).
    Versucht habe ich z. B. in den Firewall-Einstellungen die allgemeinen Regeln für HTTP und HTTPS zu deaktivieren und stattdessen Regeln mit Aliasen (beinhalteten etwa IP-Adressen) und den jeweiligen Ports (80/443) zu erstellen, die den Internetzugriff auf konkrete Webseiten/Adressen legitimieren sollten. Allerdings führte dieses Vorgehen (auch wenn es sich mir noch nicht recht erschließt) zu keinerlei Erfolg, da insgesamt kein Zugriff auf das Internet möglich war. Weiterhin habe ich versucht – gestützt auf die eine oder andere Anleitung – mein o. g. Vorhaben mittels Zusatzpaketen (Squid, SquidGuard oder auch pfBlockerNG) zu realisieren. Doch auch diese Versuche schlugen leider bisher allesamt fehl, weshalb ich langsam nicht nur mit meinem Latein, sondern auch mit meinen Nerven am Ende angelangt bin.

    Es wäre wirklich fantastisch, wenn ihr mir Hilfe zu meiner Problemstellung geben könntet!

    Vielen Dank schon einmal vorab!

    Gruß
    M.i.t.M.X

    P. S. Sollten weitergehende Angaben (z. B. Screenshots) notwendig sein, so reiche ich diese selbstverständlich gerne nach.



  • @m-i-t-m-x
    Hallo und willkommen im Forum.
    dein Ansatz ist leider mit der pfSense so nicht praktikabel umsetzbar, da die pfSense keinen Application Filter anbietet, wie zum Beispiel Fortigate oder Sophos. Aber selbst da werden Applications auch nicht ausnahmslos und vollständig gepflegt.

    Die pfSense arbeitet wie viele andere auch auf IP und Port Basis. Wenn du dir also wirklich die Mühe machen willst und nur bestimmte Anwendungen whitelisten möchtest, wirst du nicht drum herum kommen, von den gewünschten Applikationen die Destination Adressen und Ports herauszufinden und die als Aliase in der Firewall hinterlegen und dann ganz viele LAN -> WAN Regeln erstellen. Aus meiner Sicht ist das nicht machbar, da gerade bei großen Content Anbietern wie Youtube gar nicht alle Destination Adressen herauszufinden sind.

    Vielleicht fällt jemand noch eine Alternative ein, mit dem dein Wunsch zu bewerkstelligen ist....



  • @m0nji said in Whitelist-Ansatz für Windows- und Programmebene: Allen nicht explizit legitimierten (ausgehenden) Datenverkehr unterbinden:

    Vielleicht fällt jemand noch eine Alternative ein, mit dem dein Wunsch zu bewerkstelligen ist....

    Windows > Systemsteuerung > System und Sicherheit > Windows-Firewall
    ☺

    Nur das Betriebssystem selbst kennt tatsächlich die Programme, die eine Netzwerkverbindung herstellen möchten.
    Möglicherweise gibt es zur Windows Firewall auch noch bessere Alternativen, doch wenn sie ja nach Programm Verbindungen filtern können sollen, müssen sie zumindest mit dem Betriebssystem eng zusammenarbeiten und daher auch darauf laufen.

    Alle externen Lösungen können bestenfalls mit fertigen Whitelists arbeiten, die eben Verbindungen zu bestimmten Ziel-IP/Port-Kombinationen zulassen und andere blockieren oder den Datenverkehr analysieren und so entscheiden, ob die Verbindung erlaubt oder blockiert wird.
    Ersteres könnte auf der pfSense mit pfBlockerNG und einer entsprechenden Whitelist zu realisieren sein, letzteres mit Sqid u. SquidGuard. Eine derartige Beschneidung habe ich aber bislang mit keinem der Werkzeuge gemacht.

    Grüße



  • Hallo,

    vielen Dank für die nette Begrüßung sowie für eure zwei Beiträge, welche mich einige Dinge bereits etwas klarer sehen lassen (insb. mit Bezug auf den „Application Filter“).

    @m0nji said in Whitelist-Ansatz für Windows- und Programmebene: Allen nicht explizit legitimierten (ausgehenden) Datenverkehr unterbinden:

    @m-i-t-m-x
    Wenn du dir also wirklich die Mühe machen willst und nur bestimmte Anwendungen whitelisten möchtest, wirst du nicht drum herum kommen, von den gewünschten Applikationen die Destination Adressen und Ports herauszufinden und die als Aliase in der Firewall hinterlegen und dann ganz viele LAN -> WAN Regeln erstellen. Aus meiner Sicht ist das nicht machbar, da gerade bei großen Content Anbietern wie Youtube gar nicht alle Destination Adressen herauszufinden sind.

    Mit Fleißarbeit habe ich grundsätzlich keine großen Schwierigkeiten – ich muss lediglich einen (kontinuierlichen) Fortschritt spüren.
    Mittlerweile konnte ich meine anfänglichen Schwierigkeiten jedoch eingrenzen – auch dank euren inspirierenden Beiträgen. Die Problematik ist/war tatsächlich der Umfang an unterschiedlichen IP-Adressen beim Zugriff auf Webseiten (in diesem Fall z. B. eBay-Deutschland). Trotz der ermittelten ASN und der daraufhin über die pfSense-Kommandozeile generierten IPs will/wollte keine Verbindung zur Webseite gelingen. Wähle ich hingegen eine kleine Webseite respektive eine eher schlichte Software aus erhalte ich eine Freigabe, während der Rest keinen Zugriff auf HTTP/HTTPS erhält.

    Aber auch ebay lässt sich – wenn auch kleinschrittig – freischalten. Falls es jemanden interessiert: Ich habe dazu das Microsoft-nahe Tool „TCPView“ genutzt. Mittels dieses Werkezuges konnte ich auch IP-Adressen identifizieren, die nicht in direktem Zusammenhang (etwa in Schweden ansässige Cloud-Dienste) mit eBay standen, für dessen Funktion jedoch unabdingbar waren.

    @viragomann said in Whitelist-Ansatz für Windows- und Programmebene: Allen nicht explizit legitimierten (ausgehenden) Datenverkehr unterbinden:

    Möglicherweise gibt es zur Windows Firewall auch noch bessere Alternativen, doch wenn sie ja nach Programm Verbindungen filtern können sollen, müssen sie zumindest mit dem Betriebssystem eng zusammenarbeiten und daher auch darauf laufen.

    Interessante Überlegung! Dieses Instrument hatte ich – obwohl sowieso in Windows implementiert – gerade nicht auf dem Radar. Bisher habe ich Kaspersky genutzt, allerdings hatte ich mit dieser Software in der Vergangenheit auch die eine oder andere Schwierigkeit, weshalb ich mich gerne von einer zusätzlichen softwarebasierenden Lösung verabschieden wollte. Für zusätzlich installierte Programme kann das tatsächlich eine brauchbare Möglichkeit sein. Das größte Problem stellt für mich ohnehin das Geschnatter von Windows (10) selbst dar, da dessen Kommunikationswege hardcodiert sind und auf das Betriebssystem aufsetzende Software leider keinerlei Sicherheit gewährleistet.

    @viragomann said in Whitelist-Ansatz für Windows- und Programmebene: Allen nicht explizit legitimierten (ausgehenden) Datenverkehr unterbinden:

    […] pfSense mit pfBlockerNG und […] Sqid u. SquidGuard.

    Beide Pakete habe ich zwar auf meiner pfSense installiert und mehr (pfBlockerNG) oder minder (Squid/Squidguard) aktiv, allerdings lediglich basierend auf verschiedene Anleitungen. Ein tiefergehendes Verständnis habe ich gegenüber beiden Addons leider noch nicht erlangt.

    Bisher ging ich davon aus, dass die Funktion im pfBlockerNG insbesondere im Blockieren von IP-Adressbereichen respektive dem Ausschluss von Ländern (z. B. zum Versiegeln von Quellen erhöhter Hacker-Aktivitäten) besteht. Squid/SquidGuard soll hingegen eher URL-bezogen agieren, in dem es „schwarze“ Listen mit unterschiedlichen Kategorien zur Verfügung stellt.
    Gemäß deinen Ausführungen über die zwei Pakete scheine ich pfBlockerNG korrekt erfasst zu haben. Mir ist jedoch noch nicht ganz klar, wie Squid/SquidGuard arbeitet. Müsste bei einer Datenverkehrsanalyse die zu prüfenden Informationen dann nicht auf Schlagworten anstatt auf URLs basieren?



  • Hi,

    pfBlockerNG kann auch Listen aus dem Intenet ziehen und diese regelmäßig aktualisieren.
    Firewall > pfBlockerNG > IPv4 bzw. Firewallpf > BlockerNG > IPv6
    Das hatte ich mal für eine eigene Blocklist und auch für ein paar externe verwendet.

    Noch besser soll DNSBL in pfBlockerNG für solche Zwecke geeignet sein.

    Beide Funktionen arbeiten mit Listen aus dem Netz, die man nicht mal selbst pflegen muss, und solche Listen gibt es für alle möglichen Zwecke. Könnte auch für dich was dabei sein.

    Squid ist ein Proxy, der auch in der Anwendungsebene arbeiten kann, damit kann er neben der URL auch den gesamten Traffic genau analysieren.

    Wie erwähnt, habe ich mich aber mit beidem nicht so eingehen beschäftigt. Macht vielleicht Sinn, wenn du dir diese Dinge mal ansiehst, was für dich brauchbar wäre und dann eventuell einen neuen Thread mit gezielt diesem Thema eröffnest. "Whitelist-Ansatz für Windows- und Programmebene" mag eine gewisse abschreckende Wirkung auf die Leute hier haben. 😀
    Es gibt aber auch schon einiges zu den Themen hier im Forum.

    Grüße



  • Morgen,

    ich hätte noch eine Anmerkung, du kannst lokal für W10 auch folgendes verwenden:
    https://www.winprivacy.de/ find ich persönlich super,
    oder
    https://github.com/crazy-max/WindowsSpyBlocker dieser schafft es wohl auch, aber damit habe ich persönlich noch nichts zu tun gahabt.

    Jedoch solltest du einen Wiederherstellungspunkt erstellen oder damit bei einem Problem wieder auf die alten Einstellungen zurück gegriffen werden kann.
    Wenn du winprivacy ausführst (run as Admin) dann erstellt er in diesem Ordner Hosts und IPFiles, diese könntest du auch auf der PFSense hinterlegen und du unterdrückst damit das gequassel von W10 in Richtung Redmond Campus ;)

    Wenn du aber noch den pfBlockerNG verwendest wird es in deinem Netzwerk recht ruhig ;) Kann ich nur empfehlen, da schon jede Menge an Ads oder anderer "Schrott" aus dem Internet beim Surfen draußen bleibt.

    Bei DNSLB Category kannst du zusätzlich Shella oder UT1 verwenden, letzeres verwende ich:
    0_1540456342271_2018-10-25_102855.png

    Dazu gäbe es noch easyLists die ebenso zum Standard gehören:
    0_1540456354152_2018-10-25_102914.png

    Auch eigene Listen unter DNSLB Feeds können angegeben werden:
    0_1540456360803_2018-10-25_102928.png

    Unter IP - IPv4 kannst du eigene Listen hinterlegen, basierend auf IPs:
    0_1540456366129_2018-10-25_102944.png

    Dazu kannst du auch die mitgebrachten Feeds aktivieren:
    0_1540456576906_2018-10-25_103549.png

    Hoffe es hilft dir etwas weiter.

    VG, p54


  • Moderator

    @m0nji said in Whitelist-Ansatz für Windows- und Programmebene: Allen nicht explizit legitimierten (ausgehenden) Datenverkehr unterbinden:

    @m-i-t-m-x
    Hallo und willkommen im Forum.
    dein Ansatz ist leider mit der pfSense so nicht praktikabel umsetzbar, da die pfSense keinen Application Filter anbietet, wie zum Beispiel Fortigate oder Sophos. Aber selbst da werden Applications auch nicht ausnahmslos und vollständig gepflegt.

    Das stimmt so allerdings nicht. Es gibt sehr wohl ein Application Filtering - siehe den offiziellen Blogeintrag von Netgate bezüglich Snort+OpenAppID und pfSense. Das ist im Prinzip auch nichts anderes als eben genau Sophos und Co mit ihrem ApplicationID Filtering tun. Allerdings ist das m.E. nicht wirklich die Lösung oder das was der OP eigentlich möchte - zumindest so wie ich es verstehe ;)

    Bei pfBlockerNG empfehle ich bei der Installation aber den neuen Devel Baum zu nehmen wo wesentlich komfortable Lösungen möglich sind weil schon Regeln einfach vordefinierbar sind.

    Von der Warte aus, abgehenden Traffic direkt auf Windows zu filtern, was bei so genauer Angabe der Applikationen sicher auch eine gute Idee wäre, sehe ich da aber ein paar Punkte die mich stutzig machen, wie bspw. die Aussage von @M-i-t-M-X dass die selbst erstellten Regeln nicht funktioniert hätten. Das lässt sich so ohne weiteres allerdings schlecht lösen, wenn man die Regeln nicht sieht.

    Prinzipiell wird es sicherlich kein Problem sein, abgehenden Traffic bspw. auf bestimmte gute Ports einzugrenzen, allerdings: inzwischen läuft ja selbst bei Windows/MS so viel über Standard HTTP/HTTPS, dass es schwierig wird das einzugrenzen.

    Hier könnte aber der neue pfBlockerNG mit bspw. ASN Listen helfen, indem man ganze Netzblöcke da autonom reinpackt und dagegen dann eine Block oder Pass Regel baut.

    Prinzipiell aber muss ich sagen, dass ich trotz den diversen Problemen bei Windows Updates die immer mal vorkommen es eher sehr kritisch sehe, Rechner vom Update abzuscheiden, denn es hat schon gute Gründe, wenn Updates (vor allem kritische) ausgeliefert werden. Leider sehen wir im Netzwerktraffic immer und immer wieder veraltete oder völlig verwarloste Clients auf uraltem Softwarestand (Windows 7 / XP) ungepatcht, die dann in irgendwelchen Botnetzen und sonstigem hängen und einfach das Netz verpesten. Meist weil deren Eigentümer leider die Fraktion Aluhut haben und das "halblegale" Windows blos nicht aktivieren/updaten lassen wollen - damit das Netz für alle aber wieder ein bisschen schlechter machen. Es ist ein wenig wie beim Impfen (ohne auf selbiges jetzt eingehen zu wollen), aber wenn alle ordentlich mitspielen würden, hätten wir sicherlich wesentlich kleinere Botnetze und DDOS Flotten als wir sie heute haben. :)

    Gruß



  • @jegr said in Whitelist-Ansatz für Windows- und Programmebene: Allen nicht explizit legitimierten (ausgehenden) Datenverkehr unterbinden:

    Snort+OpenAppID

    Application Filtering on pfSense ist vollkommen an mir vorbei gegangen. Danke für die Richtigstellung.


  • Moderator

    @m0nji said in Whitelist-Ansatz für Windows- und Programmebene: Allen nicht explizit legitimierten (ausgehenden) Datenverkehr unterbinden:

    @jegr said in Whitelist-Ansatz für Windows- und Programmebene: Allen nicht explizit legitimierten (ausgehenden) Datenverkehr unterbinden:

    Snort+OpenAppID

    Application Filtering on pfSense ist vollkommen an mir vorbei gegangen. Danke für die Richtigstellung.

    Kein Problem, gerne. Steht leider noch auf meinem ToDo Zettel zum Testen aber leider dank Krankheit und Arbeit noch nicht dazu gekommen ;)