Hero Image

# [ARCHIVIERT] Mit pfSense Werbung und potentielle Angriffe blockieren

Es gibt ein sehr schönes Projekt namens PiHole, welches durch einen eigenen DNS Server im Netz Werbung, Trojanerseiten, etc. elegant ausfiltert. Wer aber schon eine pfSense® sein eigen nennt hier wird beschreiben wie sie installiert wird, kann dies auch mit dieser und sogar noch ein bischen mehr ebenfalls bewerkstelligen und benötigt keine weitere zusätzliche Hardware.

WICHTIG: Dieser Artikel ist archiviert und erfährt keine Neuerungen mehr, da wir mit OPNsense eine Alternative nutzen. Er kann aber gut als Inspiration weiterhin dienlich sein.

Angenehmer Nebeneffekt: Das Surfen bzw. der Seitenaufbau wird nicht nur sicherer, sondern auch deutlich schneller.

Letzte Aktualisierung:

  • 05.01.2020: Update der Filterquellen, leichte Überarbeitung, Fehlerkorrekturen (Danke für die Emails!)
  • 31.07.2019: Allgemeines Update
  • 01.10.2018: CoinBlockerLists entfernt (Projekt gestorben)

Das Addon der Wahl für die pfSense® ist pfBlockerNG und kann bequem über die eingebaute Paketverwaltung von pfSense® nachinstalliert werden.

Am Ende dieser Anleitung wird die pfSense® folgenden Schmutz aus dem Netz filtern:

  • Tracking-, Analyse- und Schnüffel-Zugriffe von Windows
  • Werbebanner, Tracking und Skripte aller Art
  • Infizierte Webseiten
  • Zugriffe auf und von Trojaner und andere Botnetze
  • Zugriffe auf und von bekannten Angreifern (meist russischer und fernöstlicher Raum)
  • Webseiten die den eigenen Rechner missbrauchen um Kyptogeld zu schürfen

und zwar per:

  • Filtern per Namensauflösung (DNS)

    z.b. die Adresse http://banner.werbung.de wird nicht mehr real aufgelöst, sondern auf eine ungültige IP-Adresse umgesetzt.
    Damit läuft ein Aufruf ins Leere und verlässt nie das eigene Netzwerk.

    Wir benutzen hier die Sperrlisten nicht nur von piHole, sondern auch u.a. von (Vollständige Liste und wer was macht weiter unten):

  • Blockieren per Firwall (pf)

    Verweise direkt auf eine IP Adresse (damit greift die DNS-Modifikation nicht!) werden durch die Firewall komplett blockiert. Auch Angriffe von außen werden blockiert.

Kapitelübersicht

  • Installieren des pfBlockerNG Addons
  • pfBlockerNG einrichten
    • Grundeinstellungen
    • IPv4 Filter
    • DNS Basic Filter
    • DNS Extra Filter
    • Testen

Installieren des pfBlockerNG Addons

Nach dem Einloggen in die pfSense® Oberfläche, die Paketverwaltung unter „System“ – „Paketverwaltung“ – „Verfügbare Pakete“ öffnen.
Als Suchbegriff „pfblocker“ eintippen, suchen und mit „+ Install“ letztendlich installieren.

Nach dem Klick auf „Bestätigen“ läuft das dann automatisch durch. Kaffee holen gehen, das dauert ’n bissel!

Denn für ca 3-4 Minuten ist dann folgendes Bild zu sehen

und am Ende zeigt einem dann diese Meldung das alles fertig ist:

Damit steht nun im Menü der pfSense® unter „Firewall“ der neue Menüpunkt „pfBlockerNG“ zur Verfügung, der auch am besten gleich aufgerufen wird.


pfBlockerNG einrichten (Grundeinstellungen)

Unter „Allgemeine Einstellungen“ folgende Felder aktivieren:

  • Enable pfBlockerNG
  • De-Duplication
  • CIDR Aggregation

  • MaxMind Localized Language = German

Weiter unten kommen dann die „Interface/Rules Configuration“ in der die Schnittstellen ausgewählt werden, bei denen die Filter aktiviert sein sollen.
Z.B. kann man über ein eigenes WLAN/VLAN einen ungefilterten Weg in der Rückhand halten, falls mal etwas zuviel oder unerwünscht blockiert wurde.

Typischerweise ist hier das

  • Inbound Firewall Rules = WAN und
  • Outbound Firewall Rules = LAN

Wer OpenVPN aktiviert hat (so wird es konfiguriert), kann auch noch den Haken bei „OpenVPN Interface“ setzen,
damit die Filter auch OpenVPN Benutzern zur verfügung stehen.

Ganz unten noch „States entfernen“ aktivieren, damit bei Updates auch sichergestellt wird das evtl. bereits aufgerufene schadhafte Verbindungen getrennt werden.

Mit „Speichern“ ganz unten ist das Grundgerüst einsatzbereit aber noch ziemlich nutzlos.
Was hier nun gebraucht wird, ist etwas Futter und das kommt in Form von Listen. Jummy!


pfBlockerNG einrichten (IPv4 Filter)

Als erstes bringen wir der pfSense® bei, auf IP-Ebene zu filtern bzw. zu blockieren. Hier gibt es drei gut gepflegte und sehr aktuelle Listen die nun hinzugefügt werden.
Dazu den IPv4 Reiter öffnen und für jede Liste jeweils auf „Hinzufügen“ klicken.

#security = Sicherheit, #malware = Schadprogramme, #privacy = Spionage / Tracking

  • WindowsSpyBlockerIP [Webseite] [Dateilink]WindowsSpyBlockerIP #privacy
    Diese Filterliste beendet die Tracking-, Analyse- und Schnüffel-Zugriffe von Windows 10.

    • Alias Name  WindowsSpyBlockerIP
    • List Description: https://github.com/crazy-max/WindowsSpyBlocker
    • IPv4 Lists

      • Format: Auto

      • State: On

      • Quelle: https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/proxifier/spy/ips.txt

      • Header/Label: WindowsSpyBlockerIP

    • List Action „Deny Both“
    • Aktualisierungsintervall: Wöchentlich (reicht!)

Das sieht dann ausgefüllt so aus:

Analog zu dem obigen Eintrag noch die beiden anderen Hinzufügen:

  • Binary Defense [Webseite] [Dateilink] BinaryDefense_IPs #security #malware
    Diese Filterliste beinhaltet Angreifer, Trojaner und andere Sicherheitsbedrohungen

    • Alias Name  Binary Defense

    • List Description: https://www.binarydefense.com/

    • IPv4 Lists

      • Format: Auto
      • State: On
      • Quelle: https://www.binarydefense.com/banlist.txt
      • Header/Label: BinaryDefense_IPs
    • List Action „Deny Both“

    • Aktualisierungsintervall: Once a day

  • Firehol_level3 [Webseite] [Dateilink] fireholLevel3 #security #malware
    Diese Filterliste beinhaltet ebanfalls Angreifer, Trojaner und andere Sicherheitsbedrohungen mit häufigeren Updates.

    • Alias Name  WindowsSpyBlockerIP

    • List Description: https://iplists.firehol.org/?ipset=firehol_level3

    • IPv4 Lists

      • Format: Auto

      • State: On

      • Quelle: https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level3.netset

      • Header/Label: fireholLevel3

    • List Action „Deny Both“

    • Aktualisierungsintervall: Alle 2 Stunden

Das sollte dann hinterher so in der Übersicht aussehen und was dann mit „Speichern“ aktiviert wird.

Die Filter sind NICHT direkt aktiv wenn man sie hinzugefügt hat. Erst mit der Aktualisierung werden diese auf Aktiv gesetzt. Die Aktivierung kann man entweder abwarten (läuft automatisch jede Sunde) oder in dem Reiter „Update“ manuell auslösen. Aber Achtung: NIE manuell auslösen, wenn eh in ein paar Minuten der Cron Job gestartet wird. So wie hier:

Wenn aber genug Zeit da ist (Mahr alas 5 Minuten sollten es sein) , einfach auf „Run“ drücken und warten.
Kontrolle: Listen die erfolgreich heruntergeladen wurden, tauchen in der Regelliste der Firewall auf:

Sehr schön: Auf dem Dashboard gibt es ein neues pfBlockerNG Widget, welches ein paar schöne Statistiken bereithält (in Echtzeit!).

Unter Alerts gibts es dazu auch eine schöne Detailübersicht.


pfBlockerNG einrichten (DNS Basic Filter)

So, als nächstes geht es nun der Werbung an den Kragen. Dazu den DNSBL Reiter öffnen und folgende Optionen aktivieren:

  • Enable DNSBL
  • DNSBL Firewall Rule
    • Und das LAN Interface rechts daneben auswählen

Mit „Speichern“ ganz unten bestätigen.

Wie bei den IP Filterlisten benötigen wir ein paar Filterlisten. Als erstes aktivieren wir den „eingebauten“ Easylist Filter unter „DNSBL Easylist“.
Die Listen sind aus dem AdBlockPlus Projekt.

  • DNS GROUP Name: Easylist
  • Beschreibung: Easylist
  • EasyList Feeds
    • State On
    • EasyList Feed: EasyList w/o Elements
    • Header/Label: Easy
    • EasyList Feed: EasyPrivacy
    • Header/Label: EasyPrivacy
  • Categories: Alle auswählen
  • List Action: Unbound
  • Aktualisierungsintervall: Einmal pro Tag

Das sollte dann hinterher so in der Übersicht aussehen, was dann wieder mit „Speichern“ aktiviert wird.

Listen die erfolgreich heruntergeladen wurden, tauchen wieder in dem Widget auf dem Dashboard auf.

Auch hier: Die Filter sind NICHT direkt aktiv wenn man sie hinzugefügt hat. Erst mit der Aktualisierung werden diese auf Aktiv gesetzt. Die Aktivierung kann man entweder abwarten (läuft ja jede Sunde) oder in dem Reiter „Update“ manuell auslösen. Aber Achtung: NIE manuell auslösen, wenn eh in ein paar Minuten der Cron Job gestartet wird.


pfBlockerNG einrichten (DNS Extra Filter)

Jetzt wird es aber interessant: Unter dem Reiter DNSBL Feeds können eigene Filter hinzugefügt werden.

Bei den ganzen Quellen die verfügbar sind, habe ich mal die relevanten und vor allem aktiv gepflegten Quellen ausgewählt,
etwas aufgeschlüsselt und mit Kategorien und der Projektbeschreibung versehen. Hier arbeiten wir also mit einem Eintrag pro Projekt damit man auch weiß mit wem man es zu tun hat, wir bekommen eine eigene Statistik pro Projekt
und wir sehen wie effektiv welche nach einiger Zeit ist.

Aus der Liste ist der Name der „DNS GROUP Name“, „Beschreibung“ der Link zum Author, der [Dateilink] die Quelle und das fett gedruckte der Header/Label, also z.B.

sieht dann so aus:

Für die Copy und Paste Orgie hier nun die Liste:

#adware = Werbung ,
#security = Sicherheit,
#malware = Schadprogramme,
#privacy = Spionage / Tracking

  • piHole Quellen
    • CAMELEON [Webseite] [Dateilink] Cameleon #adwareIs a free system that helps Internet users or administrators to blocks web-adverts.
    • Zeustracker [Webseite] [Dateilink] Zeustracker #securityTracks ZeuS Command&Control servers (hosts) around the world and provides you a domain- and a IP-blocklist
    • Disconnet.me [Webseite] [Dateilink1] [Dateilink2] DisconnectTracking DisconnectAds #privacy #adwareFree yourself from unwanted tracking. Enjoy a faster, safer internet.
    • hpHosts [Webseite] [Dateilink] hpHosts #adware #privacy #malwareIs a community managed and maintained hosts file that allows an additional layer of protection against access to ad, tracking and malicious websites.
  • uBlock Origin
  • Verschiedene
    • BBcan177 [Webseite] [Dateilink1] [Dateilink2] BBcan177MS2 BBcan177MS4 #privacy #malwareDNSBL Malicious Domain Names
      webtransparency.cs.princeton.edu – The following is the list of sites from Alexa top 1 million which embed scripts that extract email addresses from the browsers‘ built-in login (password) managers.
    • Malwaredomains.com [Webseite] [Dateilink1] [Dateilink2] MalwareDomainsImmortal MalwareDomains #malwareThe DNS-BH project creates and maintains a listing of domains that are known to be used to propagate malware and spyware.
    • WindowsSpyBlocker [Webseite] [Dateilink] WindowsSpyBlocker #privacyBlock spying and tracking
    • Steven’s Black Hosts [Webseite] [Dateilink] StevenBlackhostsBase #adware #malwareExtending and consolidating hosts files from several well-curated sources like adaway.org, mvps.org, malwaredomainlist.com, someonewhocares.org, and potentially others
    • Internet Storm Center [Webseite] [Dateilink] InternetStormCenter #malwareThere are many suspicious domains on the internet
    • Someonewhocares [Webseite] [Dateilink] SWCares #malware #adware #privacyUse this file to prevent your computer from connecting to selected internet hosts. Protect you from many types of spyware, reduces bandwidth use, blocks certain pop-up traps, prevents user tracking by way of „web bugs“ embedded in spam, provides partial protection to IE from certain web-based exploits and blocks most advertising
    • NoTrack [Webseite] [Dateilink1] [Dateilink2] NoTrack #privacyIs a network-wide DNS server which blocks Tracking sites UPDATED
    • AD-Away [Webseite] [Dateilink] AdAway #adwareIs an open source ad blocker for Android using the hosts file.

Bei mir kommt das ganze dann so daher:

Im Grunde war es das erstmal. Mit diesen Listen wird schon eine Menge ausgefiltert und die Seiten sehen schon deutlich leerer aus.

Wer sich etwas mehr zutraut, kann auch diese Liste nehmen, die noch eine Vielzahl an anderen Quellen zusammenfasst.
Aber Vorsicht, da wird richtig viel blockiert: https://wally3k.github.io/


pfBlockerNG testen

Als Abschluss noch ein paar Tests, um zu sehen ob auch wirklich alles funktioniert.
Wenn man auf einem PC (ggf. neu starten vorher) nun einen Ping absetzt für:

  • Werbung
    • ping b.rad.msn.com , da kommt als Antwort wie 10.10.10.1 (oder die IP Adresse die bei pfBlockerNG hinterlegt wurde)
    • Ein Aufruf der üblichen Nachrichtenportale sollte nun wesentlisch schlanker daherkommen.
  • Schädliche IP Adressen:
    • ping 13.68.82.8 , da kommt hoffentlich ein „Zeitüberschreitung der Anforderung.“
    • Weiterhin die Statistiken auf dem Dashboard beobachten

Und nun viel Spass beim nachbauen.