pfSense ist ein leistungsstarkes Open-Source-Router/Firewall-Betriebssystem auf Basis von FreeBSD. Direkt nach der Installation bietet pfSense einige robuste Tools, mit denen Sie ein sicheres Netzwerk aufbauen können.
Aber pfSense ermöglicht es Ihnen auch, Pakete aus seinem offiziellen Repository zu installieren, um noch mehr Funktionalität zu Ihrem System hinzuzufügen.
pfSense ist ein leistungsfähiges Open-Source-Betriebssystem für Router und Firewalls, das auf FreeBSD basiert. Schon unmittelbar nach der Installation bietet pfSense eine Reihe von robusten Werkzeugen, die den Aufbau eines sicheren Netzwerks ermöglichen.
Zusätzlich bietet pfSense die Möglichkeit, zusätzliche Pakete aus seinem offiziellen Repository zu installieren, um die Funktionalität des Systems zu erweitern.
Eines dieser Erweiterungspakete ist Squid. Squid fungiert als zwischenspeichernder Web-Proxy und bietet zudem die Möglichkeit zur Inhaltsfilterung. Wir werden dies etwas näher erläutern und die Zusammenhänge zwischen Proxy-Servern und deren Einsatzmöglichkeiten aufzeigen.
Ein Proxy-Server ist ein zwischengeschalteter Server, der zwischen Ihrem Gerät (Laptop, Tablet, Smartphone) und Ihrem endgültigen Internetziel (irgendwelcheebsite.com) sitzt.
Ihr Datenverkehr verlässt Ihr Gerät, stellt eine Verbindung zum Proxy-Server her und geht dann von dort aus zu seinem endgültigen Ziel.
Warum sollte man seinen Datenverkehr über den Proxy-Server schicken? Dafür gibt es einige Gründe. Einer davon ist das Zwischenspeichern von Inhalten. Das bedeutet, dass der Proxy-Server einige Inhalte lokal speichert, damit sie beim nächsten Mal, wenn ein Client diese Inhalte anfordert, aus dem Cache geliefert werden, anstatt sie erneut aus dem Internet herunterzuladen.
Dies beschleunigt das Surfen im Internet, da das Abrufen von Inhalten aus dem lokalen Cache des Proxys viel schneller ist als das erneute Initiieren eines Downloads über das Internet.
Ein weiterer Zweck ist die Inhaltsfilterung. Inhaltsfilterung bedeutet, Verbindungen zu bestimmten Domains oder IP-Adressen zu blockieren. Organisationen, die den Zugriff auf Facebook blockieren, führen beispielsweise eine Inhaltsfilterung durch.
Ein weiterer Einsatzbereich für die Inhaltsfilterung ist das Blockieren von Anzeigen. Online-Anzeigen sind nervig. Sie verletzen Ihre Privatsphäre, verbrauchen Ihre Bandbreite und sind ein bedeutender Vektor für Malware. Es gibt einige hervorragende Gründe, sie loswerden zu wollen. Und genau das werden wir in diesem Artikel mit Squid tun.
Wir zeigen Ihnen, wie Sie Squid und SquidGuard (SquidGuard ist eine zusätzliche Komponente von Squid, die listenbasierte Filterung ermöglicht) auf pfSense konfigurieren können, um Anzeigen auf allen Ihren Geräten zu blockieren.
Diese Anleitung setzt voraus, dass Sie ein funktionierendes pfSense-System mit konfigurierten WAN- und LAN-Schnittstellen und GUI-Zugang haben.
Das erste, was wir tun müssen, ist der Squid-Proxy-Server zu installieren.
1. Wählen Sie in den oberen Menüs System > Paketmanager. Sie gelangen zur Registerkarte Installierte Pakete des Paketmanagers.
2. Wählen Sie Verfügbare Pakete. Die Liste der verfügbaren Pakete wird angezeigt.
3. Scrollen Sie nach unten, bis Sie Squid sehen und klicken Sie auf Installieren. Das Fenster Paketinstallateur wird angezeigt.
4. Klicken Sie auf Bestätigen. Die Installation beginnt.
5. Sobald die Installation abgeschlossen ist, sollten Sie am unteren Rand des Paketinstallateurs Erfolg sehen. Squid ist jetzt installiert.
Jetzt, da Squid installiert ist, werden wir unseren neuen Proxy-Server konfigurieren.
1. Wählen Sie in den oberen Menüs Dienste > Squid-Proxy-Server. Sie gelangen zur Registerkarte Allgemein der Squid-Einstellungen.
Wir werden die Konfiguration von Squid Abschnitt für Abschnitt durchgehen. Unser Ziel ist es, mit Squid Anzeigen zu blockieren, daher werden wir nicht in jedes Untermenü gehen. Alle Einstellungen, die nicht erwähnt werden, sollten auf ihren Standardwerten belassen werden.
Bevor wir Squid konfigurieren, müssen wir zuerst zum Tab Lokaler Cache gehen und die Standardlokale Cache-Einstellungen akzeptieren, indem wir unten auf der Seite auf Speichern klicken.
Wenn Sie versuchen, den Proxy ohne die Annahme der Standard-Lokal-Cache-Einstellungen zu konfigurieren, werden Sie aufgefordert, dies zu tun und verlieren die bisher konfigurierten Einstellungen.
Wenn Sie später Ihre lokalen Cache-Einstellungen anpassen möchten, können Sie dies vom Squid-Einstellungs-Tab Lokaler Cache aus tun.
Proxy-Server können auf zwei Arten arbeiten: transparent oder explizit. Im transparenten Modus ist keine Konfiguration auf den Clients erforderlich (Computer, Tablet, Smartphone, etc.) – ihr Traffic wird transparent proxied.
Dieser Modus wird jedoch nur HTTP-Verkehr über Port 80 proxyen, nicht jedoch HTTPS-Verkehr (es sei denn, Sie konfigurieren Man In the Middle SSL-Filterung – dazu später mehr). Da der Großteil des Internetverkehrs HTTPS nutzt, ist der transparente Modus begrenzt für Ad-Blocking, kann aber dennoch nützlich für Caching sein.
Der explizite Modus erfordert, dass Sie jeden Client konfigurieren, um den Zugriff auf den Proxy anzufordern. Und in diesem Modus wird jeglicher TCP-Internetverkehr (HTTP und HTTPS) proxied. Das ist es, was wir in diesem Leitfaden wollen. Wir werden den Transparent-Modus in diesem Leitfaden also nicht aktivieren, aber Sie können beide Modi ohne Probleme nutzen.
Wie oben erwähnt, ist es möglich, HTTPS-Verbindungen transparent zu proxieren. Aber um dies zu tun, müssen Sie im Grunde HTTPS unterbrechen.
Squid kann das korrekte SSL-Zertifikat von der Website, auf die Sie zugreifen möchten, durch sein eigenes ersetzen, die Verbindung entschlüsseln und mit seinem Zertifikat neu verschlüsseln. Dadurch können Sie SSL-Verbindungen filtern, aber auch die HTTPS-Validierung in Ihrem Browser unterbrechen.
Ich empfehle keine Man In the Middle SSL-Filterung außer für spezifische Zwecke von Personen, die verstehen, was sie tun. Wir werden diese Funktion auch deaktiviert lassen.
Die Einstellungen hier sind optional, beschränken jedoch die Menge an Informationen, die in den Squid-Headern angezeigt werden.
Um zu sehen, was wir explizit mit Squid blockieren können, müssen wir zum ACLs-Tab gehen.
Wir können sehen, dass wir mehrere Kästchen haben, um verschiedene Elemente zu definieren, die Squid herausfiltern soll. Lassen Sie uns jedes Kästchen einzeln betrachten.
Zulässige Subnetze
Sie können hier zusätzliche Subnetze hinzufügen, die über den Squid-Proxy laufen sollen. Das ist nützlich für Subnetze, die nicht an eine Schnittstelle des Systems gebunden sind, wie beispielsweise IPSec. In unserem Beispiel müssen Sie hier nichts hinzufügen.
Unbeschränkte IPs
Die hier aufgelisteten IP-Adressen haben keinen Traffic-Filter durch den Proxy-Server.
Gesperrte Host-Adressen
Die hier aufgelisteten IP-Adressen dürfen den Proxy-Server nicht nutzen, auch wenn ihr Subnetz erlaubt ist.
Whitelist
Die in der Whitelist-Box aufgeführten Domains sind für alle autorisierten Hosts verfügbar, die den Proxy nutzen dürfen. Die Einträge in der Whitelist überschreiben alle Einträge in der Blacklist.
Blacklist
Die in der Blacklist-Box aufgeführten Domains sind für alle Hosts, die den Proxy-Server nutzen dürfen, nicht zugänglich.
Blockierung von User Agents
Dieses Feld ist äußerst nützlich, um bestimmte Anwendungen am Zugriff auf das Internet zu hindern. Wenn eine Anwendung eine Anfrage an das Internet sendet, enthält ihr Header ein Feld namens User-Agent. Der User-Agent identifiziert die verwendete Anwendung. Als Beispiel ist der User-Agent von Google Chrome Chrome.
User Agents wurden ursprünglich verwendet, um den Webbrowser zu identifizieren, der eine Webanfrage an einen Server stellt, damit der Server weiß, wie er die angeforderten Daten in diesem bestimmten Browser rendern soll. Aber ihre Verwendung hat sich jetzt auf jede Anwendung ausgeweitet, die Anfragen über das Internet stellt.
Um einen User-Agent in Squid zu blockieren, müssen Sie ihn mit „^“ (ohne Anführungszeichen) voranstellen.
Wenn Sie beispielsweise ^Chrome in das Feld Block User Agent von Squid eintragen, wird Google Chrome daran gehindert, auf das Internet zuzugreifen.
Wenn Sie ^Mozilla eintragen, wird Firefox daran gehindert, auf das Internet zuzugreifen. Wenn Sie ^WhatsApp eintragen, wird WhatsApp daran gehindert, auf das Internet zuzugreifen.
User Agents sind sehr spezifisch und nicht immer so einfach wie die oben genannten Beispiele. Sie müssen den genauen User-Agent kennen, den eine Anwendung verwendet, um ihn hier blockieren zu können.
Blockierung von MIME-Typen (nur Antworten)
MIME in MIME-Typen steht für Multipurpose Internet Mail Extensions und wird verwendet, um Dateitypen innerhalb von URLs zu definieren. MIME-Typen sind wie folgt strukturiert:
type/subtype
Wenn Sie beispielsweise audio/mpeg in das Feld Block MIME Types eintragen, wird das Herunterladen von MP3-Dateien blockiert. Wenn Sie image/png in das Feld Block MIME Types eintragen, wird das Herunterladen von PNG-Bildern blockiert.
Wie bei User Agents sind MIME-Typen sehr spezifisch. Sie müssen den genauen Typ und Untertyp eingeben, damit die Filterung in Squid funktioniert.
Lassen Sie uns unsere Squid-Installation testen, um sicherzustellen, dass alles korrekt funktioniert, bevor wir mit den nächsten Schritten fortfahren. Wir werden eine Domain in das Feld „Blacklist“ eintragen, um zu sehen, ob Squid diese wie erwartet blockiert.
1. Geben Sie auf der Registerkarte ACLs der Squid-Proxy-Einstellungen „facebook.com“ in das Feld „Blacklist“ ein.
2. Klicken Sie unten auf der Seite auf „Speichern“.
3. Gehen Sie zur Registerkarte „Allgemein“ der Squid-Proxy-Einstellungen.
4. Aktivieren Sie das Kontrollkästchen „Squid-Proxy aktivieren“.
5. Klicken Sie unten auf der Seite auf „Speichern“.
Unser Proxy-Server ist jetzt aktiviert und so konfiguriert, dass er den Zugriff auf facebook.com blockiert.
Wir werden schnell unseren Webbrowser konfigurieren, damit er über den Proxy-Server läuft, um zu sehen, ob er ordnungsgemäß funktioniert. Wenn alles korrekt konfiguriert ist, sollte ich keinen Zugriff auf facebook.com haben.
1. Klicken Sie auf das Einstellungen-Symbol in der oberen rechten Ecke des Browsers und wählen Sie „Einstellungen“ (in Windows heißt dies „Optionen“). Sie gelangen zur Seite „Allgemeine Einstellungen“.
2. Scrollen Sie auf der Seite „Allgemeine Einstellungen“ zum Abschnitt „Netzwerkeinstellungen“ und klicken Sie auf die Schaltfläche „Einstellungen“.
3. Wählen Sie „Manuelle Proxy-Konfiguration“.
4. Geben Sie in das Feld „HTTP-Proxy“ die IP-Adresse Ihrer pfSense-Box ein. In meinem Fall lautet diese 192.168.1.1.5. Setzen Sie das Port-Feld auf 3128.
6. Aktivieren Sie das Kontrollkästchen „Diesen Proxy auch für FTP und HTTPS verwenden“.
7. Klicken Sie unten im Fenster auf „OK“ und schließen Sie die Einstellungsseite.
Wenn ich jetzt versuche, auf facebook.com zuzugreifen (über HTTP oder HTTPS), zeigt mein Browser die folgende Seite an:
Das ist genau das, was wir wollen.
Wir haben jetzt also einen funktionierenden Proxy-Server konfiguriert, der den Zugriff auf facebook.com blockiert. Super. Wenn wir jedoch Anzeigen blockieren möchten, müssen wir Tausende von Domains zur Blacklist von Squid hinzufügen. Nicht gerade optimal…
Hier kommt SquidGuard ins Spiel. SquidGuard ist ein Add-On-Modul für Squid, das die filterbasierte Filterung durchführen kann.
Bei der filterbasierten Filterung geben Sie die URL zu einer Liste von Domains auf der Blacklist ein, und alle Domains, die den Domains auf der Blacklist entsprechen, werden blockiert.
Da unser grundlegender Squid-Proxy-Server jetzt läuft, werden wir SquidGuard installieren und konfigurieren.
1. Wählen Sie von den oberen Menüs System > Paketmanager. Sie gelangen zur Registerkarte Installierte Pakete des Paketmanagers.
2. Wählen Sie Verfügbare Pakete. Die Liste der verfügbaren Pakete wird angezeigt.
3. Scrollen Sie nach unten, bis Sie SquidGuard sehen, und klicken Sie auf Installieren. Das Fenster Paket-Installer wird angezeigt.
4. Klicken Sie auf Bestätigen. Die Installation beginnt.
5. Sobald die Installation abgeschlossen ist, sollten Sie am unteren Rand des Paket-Installer-Fensters Erfolg sehen. SquidGuard ist jetzt installiert.
SquidGuard ist jetzt installiert. Lassen Sie uns nun die Listenfilterung konfigurieren.
1. Wählen Sie von den oberen Menüs Dienste > SquidGuard-Proxyfilter. Sie gelangen zur Registerkarte Allgemein der SquidGuard-Proxyfilter-Einstellungen.
Wie beim Konfigurieren von Squid selbst werden wir Squid Guard Abschnitt für Abschnitt konfigurieren. Wir werden nur die benötigten Abschnitte konfigurieren, um unser Ziel zu erreichen. Alle Einstellungen, die nicht erwähnt werden, sollten auf ihren Standardwerten belassen werden.
1. Lassen Sie das Feld Aktivieren vorerst unangekreuzt.
1. Aktivieren Sie das Feld Werbung entfernen.
1. Aktivieren Sie das Feld Blacklist.
2. Geben Sie die folgende URL im Feld Blacklist-URL ein: https://shallalist.de/Downloads/shallalist.tar.gz. Dies ist unsere Blacklist-URL. SquidGuard wird diese Liste herunterladen und uns verschiedene Kategorien von Domänen zur Verfügung stellen, die wir erlauben oder blockieren können. Es ist kostenlos verfügbar und wird von Shalla Secure Services bereitgestellt. Es gibt andere Listen, die Sie verwenden können, aber viele sind kostenpflichtig. Ich benutze Shallalist seit vielen Jahren und es funktioniert sehr gut und wird häufig aktualisiert, also empfehle ich, es zu verwenden.
3. Klicken Sie unten auf der Seite auf Speichern.
1. Gehe zum Blacklist-Tab der SquidGuard Proxy Filter Einstellungen. Die Blacklist-URL wird angezeigt.
2. Klicke auf die Schaltfläche Download. Der Download und die Analyse der Blacklist beginnen.
3. Wenn der Vorgang abgeschlossen ist, sollte am unteren Ende des Blacklist-Update-Logfensters „Blacklist-Update abgeschlossen“ angezeigt werden.
1. Gehe zum Common ACL-Tab der SquidGuard Proxy Filter Einstellungen.
2. Klicke auf das „+“-Symbol neben der Target Rules List. Die Target Rules List wird angezeigt.
3. Der erste Eintrag in der Liste ist „adv“, was für Werbung steht. Wähle aus dem Dropdown-Menü rechts davon „Deny“ aus.
4. Blockiere auch alle anderen Kategorien von Inhalten, die du blockieren möchtest.
5. Wenn du alle Kategorien blockiert hast, die du blockieren möchtest, wähle am Ende der Liste „Allow“ aus dem Dropdown-Menü neben „Default Access“ aus.
6. Klicke auf Speichern am unteren Ende der Seite.
7. Gehe zurück zum General-Tab der SquidGuard Proxy Filter Einstellungen, aktiviere das Kontrollkästchen „Enable“ und klicke auf Speichern am unteren Ende der Seite.
8. Klicke auf die Schaltfläche „Apply“.
Wir haben jetzt Squid mit Blacklist-Filterung konfiguriert. Wenn ich meinen Browser verwende, der bereits so konfiguriert ist, dass er den Proxy verwendet, um eine Webseite aufzurufen, die Anzeigen anzeigt, sollten diese nicht mehr angezeigt werden.
Mit Squid aktiviert:
Mit Squid deaktiviert:
Es funktioniert. Das ist großartig. Aber wie ich jetzt eingerichtet bin, wird Squid nur den Datenverkehr meines Browsers abfangen. Daher werde ich nur von Squids Ad-Blocking in meinem Webbrowser profitieren.
Ich werde dir zeigen, wie du dein gesamtes Gerät konfigurieren kannst, um seinen gesamten Datenverkehr durch den Proxy-Server zu senden. So profitierst du von Ad-Blocking in deinen Apps und nicht nur in deinem Browser. Ich zeige dir, wie du das auf macOS, Windows, Linux, iOS und Android machst.
Lassen Sie uns die manuellen Proxyeinstellungen, die wir in Firefox konfiguriert haben, um unsere Verbindung zu testen, bevor wir das Client-Gerät für eine systemweite Proxy-Konfiguration einrichten, rückgängig machen.
1. Gehen Sie zurück zu den Netzwerkeinstellungen in Firefox und wählen Sie „Systemproxyeinstellungen verwenden“. Dadurch wird der Browser angewiesen, die Systemeinstellungen als Proxy-Einstellungen zu verwenden. Dies ist die Standardeinstellung.
2. Klicken Sie auf „OK“ und schließen Sie die Einstellungsseite.
1. Wählen Sie in der Systemeinstellungen-App „Netzwerk“.
2. Stellen Sie sicher, dass Ihre aktuelle Verbindung ausgewählt ist, und klicken Sie unten rechts auf „Erweitert“.
3. Wählen Sie die Registerkarte „Proxies“.
4. Aktivieren Sie die Kontrollkästchen „Webproxy (HTTP)“ und „Sicherer Webproxy (HTTPS)“.
5. Geben Sie Ihre pfSense-Box-IP-Adresse und den Proxy-Port ein – 192.168.1.1 und 3128 in meinem Fall.
6. Klicken Sie auf „OK“ und „Übernehmen“.
1. Öffnen Sie die Einstellungen-App (Tastenkombination Win + I).
2. Gehen Sie zu „Netzwerk und Internet“.
3. Wählen Sie die Registerkarte „Proxy“.
4. Scrollen Sie zum Abschnitt „Manuelle Proxy-Einrichtung“.
5. Aktivieren Sie den Schalter „Proxyserver verwenden“.
6. Geben Sie Ihre pfSense-Box-IP-Adresse und den Proxy-Port ein – 192.168.1.1 und 3128 in meinem Fall.
7. Klicken Sie auf „Speichern“.
1. Wählen Sie im Fenster „Netzwerkeinstellungen“ „Netzwerk-Proxy“.
2. Wählen Sie „Manuell“ aus dem Dropdown-Menü „Methode“.
3. Geben Sie Ihre pfSense-Box-IP-Adresse und den Proxy-Port – 192.168.1.1 und 3128 in meinem Fall – neben „HTTP-Proxy“ und „HTTPS-Proxy“ ein.
4. Schließen Sie das Fenster „Netzwerkeinstellungen“.
1. Tippen Sie in „Einstellungen“ > „WLAN“ auf das „i“ rechts von Ihrer WLAN-Verbindung.
2. Scrollen Sie nach unten und wählen Sie „Proxy konfigurieren“.
3. Wählen Sie „Manuell“.
4. Geben Sie Ihre pfSense-Box-IP-Adresse und den Proxy-Port – 192.168.1.1 und 3128 in meinem Fall – neben „Server“ und „Port“ ein.
5. Schließen Sie die Einstellungen-App.
1. Wählen Sie in der Einstellungs-App WLAN aus.
2. Drücken Sie lange auf das derzeit verbundene WLAN-Netzwerk.
3. Wählen Sie Netzwerk ändern.
4. Erweitern Sie die erweiterten Optionen.
5. Wählen Sie im Proxy-Dropdown-Menü „Manuell“.
6. Geben Sie unter Proxy-Hostname und Proxy-Port Ihre pfSense-Box-IP-Adresse und den Proxy-Port ein – in meinem Fall 192.168.1.1 und 3128.
7. Klicken Sie auf Speichern.
Beachten Sie, dass Sie möglicherweise ein Mobile Device Management (MDM)-Profil installieren müssen, um den Proxy über mobile Daten auf iOS oder Android zum Laufen zu bringen, was über den Rahmen dieses Leitfadens hinausgeht. Vielleicht werden wir dies in Zukunft behandeln.
Sie haben jetzt einen funktionierenden Proxy-Server mit Blacklist-Filterung, den Sie auf allen Ihren Geräten verwenden können, um Werbung zu blockieren. Sie haben Ihre Sicherheit und Privatsphäre verbessert, indem Sie lästige Werbung entfernt haben, die Ihre Daten stiehlt.
Sie werden auch weniger Bandbreite verbrauchen. Und Ihre Webseiten werden schneller laden, da Anzeigen nicht heruntergeladen und gerendert werden müssen. Aber auch, weil Squid Inhalte für Sie zwischenspeichert. So werden Inhalte, die Sie häufig anfordern, schneller geladen.
Gute Sache. Bleiben Sie sicher.