Wie richtet man einen Caching-Proxy auf pfSense-Software ein?
Die pfSense-Software bietet einen umfassenden Caching-Proxy-Dienst mit umfangreichen Zugriffskontrolllisten, kategoriebasiertem Webfiltering und Unterstützung des transparenten Modus. Es bietet Unterstützung für HTTP und HTTPS. Zusätzlich kann der Proxy-Server mit dem Traffic Shaper kombiniert werden, um das Benutzererlebnis zu verbessern. Durch das Caching und die Wiederverwendung häufig besuchter Websites werden die Reaktionszeiten verbessert und die Bandbreitennutzung optimiert. Die ICAP-Schnittstelle ermöglicht die Integration mit der überwiegenden Mehrheit der professionellen Antivirenprodukte.
Neben seinen Caching-Proxy-Funktionen bietet die pfSense-Software CE auch Next-Generation-Firewall-Funktionen wie Webkontrolle und Anwendungssteuerung. Dies wird durch das externe Tool Zenarmor bereitgestellt.
Die Zenarmor NGFW-Erweiterung für pfSense ermöglicht es Ihnen, Ihre Firewall in Sekundenschnelle in eine Next Generation Firewall umzuwandeln. Next-Generation Firewalls (NGFWs) ermöglichen es Ihnen, gegen zunehmend ausgeklügelte Cyberangriffe der heutigen Zeit vorzugehen.
Layer-7-Anwendungs-/Benutzerbewusstseinssperren, granulare Filterrichtlinien, kommerzielles Webfiltering mit cloudbasierter, KI-gestützter Bedrohungsintelligenz, Kindersicherung und die besten Netzwerk-Analysen und -Berichte der Branche sind einige der Fähigkeiten.
Zenarmor Die kostenlose Edition wird allen pfSense CE-Nutzern kostenlos angeboten.
In diesem Tutorial werden wir die folgenden Themen kurz erklären:
-
Was sind die Funktionen des Caching-Proxy auf der pfSense-Software?
-
Wie richtet man einen grundlegenden Caching-Proxy auf der pfSense-Software ein?
-
Wie aktiviert man die Webfilterung mit SquidGuard auf dem pfSense-Proxy?
-
Wie man den transparenten HTTP- und SSL-Modus auf dem pfSense-Proxy aktiviert?
-
Wie importiert man ein internes CA-Zertifikat in Windows 10 als vertrauenswürdige Stamm-CA?
Achten Sie darauf, dass der Caching-Proxy-Dienst stark von der CPU-Auslastung und den Schreibvorgängen auf den Festplattencache abhängt. Daher wird empfohlen, eine SSD-Festplatte für den Caching-Proxy-Dienst zu verwenden.
Was ist Cache / Proxy?
Proxy-Server fungieren als Vermittler zwischen Clients und Servern. Ein Client verbindet sich mit einem Proxy, der dann bestimmt, ob der Client auf den Inhalt eines Servers zugreifen kann. In diesem Fall stellt der Proxy seine eigene Verbindung zum Server her und sendet dann die Daten zurück an den Client. Es gibt zwei Hauptkategorien von Proxy-Servern:
-
Forward-Proxy: Der typische Standort eines Proxy-Servers befindet sich zwischen lokalen Clients und entfernten Internet-Servern. Es wird verwendet, um einzuschränken, auf welche Websites die Clients zugreifen dürfen, oder um die Server und URLs aufzuzeichnen, die die Clients besuchen. Diese arbeiten hauptsächlich mit HTTP, können aber unter bestimmten Umständen auch mit HTTPS funktionieren. Squid wird überwiegend für die Zugriffskontrolle von Clients als Forward-Proxy verwendet. Es kann jedoch bei Bedarf als Reverse-Proxy verwendet werden.
-
Reverse Proxy: Im Allgemeinen steht ein Proxy-Server zwischen entfernten Clients und lokalen Servern. Diese ermöglichen intelligentes Verbindungsrouting, Lastenausgleich und Failover für öffentliche Dienste wie Webserver. HAProxy ist ein leistungsstarker Reverse-Proxy, der in der Lage ist, eine Vielzahl von Aufgaben zu bewältigen und sich gut für große Bereitstellungen zu skalieren.
Was ist das HAProxy-Paket?
HAProxy ist eine kostenlose, unglaublich schnelle und zuverlässige Lösung, die hohe Verfügbarkeit, Lastenausgleich und Proxying für TCP-, HTTP- und HTTPS-Anwendungen bietet. Es eignet sich ideal für Websites, die mit extrem hohem Verkehr zu kämpfen haben und Persistenz oder Layer7-Verarbeitung benötigen.
Das Unterstützen von Zehntausenden von Verbindungen ist offensichtlich mit der heute verfügbaren Hardware machbar. Es wurde nachgewiesen, dass HAProxy mit Threads extrem gut skaliert und 2 Millionen Anfragen pro Sekunde über SSL sowie 100 Gbps für weitergeleiteten Verkehr erreicht. Seine Betriebsweise macht die Integration in bestehende Architekturen einfach und risikofrei, während die Option erhalten bleibt, anfällige Webserver vor dem Internet zu schützen.
HAProxy definiert fünf Hauptkonfigurationsabschnitte auf der pfSense-Firewall.
-
Global: Definiert Optionen, die typischerweise betriebssystemspezifisch und prozessweit sind.
-
Defaults: Legt Standardparameter für alle Abschnitte fest, die seiner Deklaration folgen.
-
Frontend: Beschreibt eine Sammlung von Client-accepting Listening-Sockets.
-
Backend: Identifiziert die Sammlung von Servern, mit denen der Proxy kommunizieren wird, um eingehende Verbindungen weiterzuleiten.
-
Listen: Definiert einen umfassenden Proxy, indem er seine Schnittstelle und das Backend zu einer einzigen Komponente kombiniert. Es ist im Allgemeinen vorteilhaft für reinen TCP-Verkehr.
Es gibt Registerkarten, um "Frontends" und "Server" im pfSense-Softwarepaket zu definieren, aber die resultierende Konfiguration besteht vollständig aus Listenabschnitten. Dies ist in den meisten Fällen akzeptabel, aber es verhindert anspruchsvollere Anwendungen, die Verweise auf mehrere Backends und ähnliches erfordern.
Mit HAProxy wird eine einzelne Server-Direktive mit einem leeren Port auf allen zugewiesenen Frontend-Ports lauschen. Dies wird durch die grafische Benutzeroberfläche des Pakets impliziert, die den Port leer lässt.
Stattdessen wird für jeden Port, auf dem die Schnittstelle reagiert, eine einzelne Server-Direktive generiert. Dies ist eine bedeutende Unterscheidung, wenn die abgehörten Ports nicht austauschbar sind. Zum Beispiel:
Definieren Sie eine Client-Schnittstelle für SMTP-Verbindungen auf den Ports 25 und 465. Der Server hört auf beiden Ports, aber Port 25 unterstützt kein SSL/TLS, während Port 465 dies tut. Wenn ein Benutzer sich mit Port 25 verbindet, sollte er mit dem Server auf Port 25 verbunden werden, und wenn er sich mit Port 465 verbindet, sollte er mit dem Server auf Port 465 verbunden werden.
In einer standardmäßigen HAProxy-Konfiguration, bei der das Frontend so konfiguriert ist, dass es auf beiden Ports lauscht und eine einzelne Server-Direktive ohne Port angegeben ist, wird es wie erwartet funktionieren.
Die pfSense-Software wird zwei Server-Direktiven generieren, eine für jeden Port. HAProxy überträgt Verbindungen nicht auf vorhersehbare Weise. Es wird die Last zwischen ihnen ausgleichen, unabhängig davon, ob die Frontend- und Server-Ports gleich sind.
Da es sich um grundlegend unterschiedliche Dienste handelt, muss in der pfSense-Software eine separate Schnittstelle eingerichtet werden. Ports 25 und 2525 können kombiniert werden, wenn es keine Rolle spielt, ob ein an einen Port angeschlossener Client zum anderen umgeleitet wird.
e Trennung der Server nach Port führt zu einem separaten Eintrag für jeden Server auf der Statistikseite, wobei der Port weggelassen wird. In einer HAProxy-Konfiguration, in der eine einzelne Server-Direktive keine Ports hat, aber mehrere verwaltet (aufgrund der Vererbung vom Frontend), wird sie nur einmal in den Statistiken angezeigt.
Was sind die Funktionen des Caching-Proxys auf pfSense?
Die Hauptmerkmale des pfSense-Caching-Proxy-Dienstes sind unten aufgeführt:
-
Authentifizierung: Der Proxy kann als transparenter Proxy eingerichtet werden, indem die folgenden Authentifizierungsmethoden verwendet werden:
- Keine Authentifizierung
- Lokale Datenbank
- Radius
- LDAP
- Captive Portal
Sie können die Authentifizierungsoptionen des pfSense-Caching-Proxys konfigurieren, indem Sie zu Services > Squid Proxy Server > Authentication navigieren.
Abbildung 1. Authentifizierungseinstellungen auf dem pfSense-Proxy-Server
-
Access Control: Es unterstützt Zugriffssteuerlisten, indem es die folgenden Kriterien verwendet:
- Subnetze
- Ports
- MIME-Typen
- Unbeschränkte IPs
- Gesperrte Hosts Adressen
- Whitelists
- Blacklists
- Browser/User-Agents
- Unterstützung für Blacklists
- Google-Konten-Domains
- YouTube SafeSearch-Beschränkungen
Sie können die Zugriffskontrolllisten des pfSense-Caching-Proxys konfigurieren, indem Sie zu Services > Squid Proxy Server > ACLs navigieren.
-
Transparenter Modus: Der transparente Modus leitet alle Anfragen an den Proxy weiter, ohne dass eine Client-Konfiguration erforderlich ist. Der transparente Modus funktioniert gut mit unverschlüsseltem HTTP-Verkehr. Für SSL-verschlüsselte HTTPS-Verbindungen wird der Proxy jedoch zum Man-in-the-Middle, da der Client mit dem Proxy "spricht" und der Proxy die Netzwerkpakete mit seinem Master-Schlüssel verschlüsselt, dem der Client vertrauen muss.
warnungDie Verwendung eines transparenten HTTPS-Proxys kann riskant sein und ist möglicherweise für einige Webanwendungen, wie z.B. E-Commerce, nicht erlaubt.
-
Webfilter: Das pfSense SquidGuard-Paket umfasst kategoriebasierten Webfilter
- Support mit den folgenden Funktionen:- Daten von einer entfernten URL abrufen
- Den integrierten Scheduler verwenden, um auf dem neuesten Stand zu bleiben
- Kompatibilität mit den am weitesten verbreiteten Blacklists
- Flache Dateilisten und kategoriebasierte komprimierte Listen werden unterstützt
- Kategoriebasierte Blacklists werden automatisch in Squid-ACLs umgewandelt.
-
Traffic Management: Der Proxy kann in Verbindung mit dem Traffic Shaper verwendet werden, um dessen Shaping-Funktionen vollständig auszunutzen. Es bietet die folgenden Optionen:
- Maximale Dateigröße für Download/Upload
- Begrenzung der gesamten Bandbreite
- Begrenzung der Bandbreite pro Host
- Begrenzung spezifischer Erweiterungen
- Schnelle Abbruch-Einstellungen
Sie können die Optionen für das Traffic Management des pfSense-Caching-Proxys konfigurieren, indem Sie zu Services > Squid Proxy Serve > Traffic Management navigieren.
-
Antivirus: pfSense bietet ClamAV-Anti-Virus-Integration mit C-ICAP an. Es bietet auch die folgenden inoffiziellen Virensignaturen an:
- URLhaus
- InterServer
- SecuriteInfo
- SecuriteInfo Premium
Sie können die Antivirus-Optionen des pfSense-Caching-Proxys konfigurieren, indem Sie zu Services > Squid Proxy Serve > Antivirus navigieren.
Wie richtet man einen einfachen Caching-Proxy auf der pfSense-Software ein?
Sie können einen grundlegenden Caching-Proxy-Dienst auf Ihrer pfSense-Firewall ganz einfach einrichten, indem Sie die folgenden 10 Hauptschritte befolgen:
- Squid-Paket installieren
- Lokalen Cache aktivieren/deaktivieren
- Proxy-Server aktivieren/deaktivieren
- Proxy-Schnittstelle(n) und Proxy-Port konfigurieren
- Konfigurieren Sie den Proxy-Listening-Port
- SSL-Filterung aktivieren
- Authentifizierungsmethode konfigurieren
- Protokollierung aktivieren
- Definieren Sie die Zugriffssteuerungsliste
- Definieren Sie Firewall-Regeln, um zu verhindern, dass Clients den Proxy-Server umgehen.
- Konfigurieren Sie den Proxy in Ihrem Windows-Client oder Browser
Wir werden diese Schritte kurz unten erklären.
1. Squid-Paket installieren
Squid kann als Cache fungieren, um die Webleistung zu verbessern, und sich mit SquidGuard zur Inhaltsfilterung integrieren, und seine Archive bilden die Grundlage für Berichte darüber, wo Benutzer im Web unterwegs sind. Sie können das Squid-Paket ganz einfach installieren, indem Sie die folgenden Schritte befolgen:
-
Greifen Sie auf die WebGUI Ihrer pfSense®-Software zu.
infoDer Standardbenutzername und das Standardpasswort für die pfSense®-Software sind admin und pfsense. Es wird dringend empfohlen, Ihr Passwort durch ein sicheres zu ersetzen.
-
Navigieren Sie zu System > Package Manager > Available Packages.
-
Geben Sie squid in das Suchfeld ein und klicken Sie dann auf Search.
-
Klicken Sie auf die Schaltfläche +Install am Ende des Pakets.
Abbildung 2. Squid-Paket suchen und installieren
-
Klicken Sie auf Confirm, um die Installation des Pakets zu starten. Dies wird einige Zeit in Anspruch nehmen, da mehrere Dateien und Datenbanken heruntergeladen werden müssen.
Abbildung 3. Bestätigung für die Installation des Squid-Pakets
-
Sobald die Installation abgeschlossen ist, sollten Sie nach ein paar Minuten success sehen.
Abbildung 4. Installation des Squid-Pakets erfolgreich abgeschlossen
2. Lokalen Cache aktivieren/deaktivieren
Um den lokalen Cache auf Ihrem Proxy-Server zu konfigurieren, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Services >** Squid Proxy Server > Local Cache.
-
Sie können die Option Disable Caching aktivieren, wenn Ihr Squid nur als Proxy zur Überprüfung des Website-Zugriffs verwendet wird. Lokales Caching ist standardmäßig aktiviert.
-
Sie können Domain(s) und/oder IP-Adresse(n), die niemals zwischengespeichert werden sollen, in das Feld Do Not Cache eingeben. Sie müssen jeden Eintrag in eine separate Zeile schreiben.
Abbildung 5. Allgemeine Einstellungen des Squid-Cache
-
Sie können die Hard Disk Cache Size je nach Ihrem System erhöhen, zum Beispiel auf 1024. Es sind standardmäßig 100 MB.
-
Sie können die Maximum object size (MB, die standardmäßig 4MB beträgt, erhöhen.
Abbildung 6. Squid-Festplattencache-Einstellungen
-
Sie können die Memory Cache Size je nach Ihrem System erhöhen. Es sind standardmäßig 64 MB.
-
Sie können die Memory Object Size in RAM je nach Ihrem System erhöhen. Es sind standardmäßig 256 KBytes. Objekte, die größer als diese Größe sind, werden nicht im Speichercache gehalten.
-
Sie können die anderen Einstellungen als Standard belassen.
Abbildung 7. Speichern der lokalen Cache-Einstellungen von Squid
-
Klicken Sie auf Save, um die Einstellungen zu aktivieren.
Andere Squid Cache General Settings werden im Folgenden erklärt:
-
Cache Replacement Policy: Die Cache-Ersatzrichtlinie bestimmt, welche zwischengespeicherten Objekte bleiben und welche ersetzt werden, um Platz für neue Objekte zu schaffen. Die folgenden Optionen für die Cache-Ersatzstrategie stehen zur Verfügung:
Heap LFUDA
: Beibehaltung beliebter Objekte im Cache unabhängig von ihrer Größe, Optimierung der Byte-Trefferquote auf Kosten der Trefferquote. Die Standardoption istHeap LFUDA
.Heap GDSF
: Optimiert die Objekt-Trefferquote, indem beliebte und weniger beliebte Objekte zwischengespeichert werden.LRU
: Speichert kürzlich zugegriffene Objekte. (i.e., replaces the object that has not been accessed for the longest time).Heap LRU
: Ähnlich wie LRU, aber verwendet einen Heap.
-
Low-Water Mark in %: Der minimale Schwellenwert für die Auslagerung von Cache-Objekten für AUFS/UFS/diskd durch den Algorithmus cache_replacement_policy. Der Cache-Ersatz beginnt, wenn die Swap-Nutzung diesen unteren Grenzwert überschreitet und versucht, die Nutzung nahe an diesem Schwellenwert zu halten. Es ist standardmäßig 90.
-
High-Water Mark in %: Die maximale Cache-Objekt-Ausscheidungsrate für AUFS/UFS/diskd durch den cache_replacement_policy-Algorithmus. Wenn die Swap-Nutzung dieses maximale Niveau erreicht, wird die Objektaussortierung aggressiver.
-
Enable Offline Mode: Aktivieren Sie diese Option, um zu verhindern, dass der Proxy-Server zwischengespeicherte Objekte validiert. Der Offline-Modus ermöglicht den Zugriff auf mehr zwischengespeicherte Daten, als normalerweise erlaubt ist. (e.g., expired cached versions where the origin server should have been contacted otherwise).
-
External Cache Managers: Geben Sie die IP-Adressen der externen Cache-Manager ein, denen der Zugriff auf diesen Proxy gewährt wird.
3. Proxy-Server aktivieren/deaktivieren
Auf der pfSense-Firewall kommt der Proxy-Server mit vernünftigen Standardeinstellungen für eine schnelle Einrichtung. Um den Proxy-Dienst auf Ihrer pfSense-Firewall zu aktivieren, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Services > Squid Proxy Server > General.
-
Aktivieren Sie die Option Squid-Proxy aktivieren.
-
Klicken Sie auf die Schaltfläche Save am Ende der Seite, um den Proxy-Server zu aktivieren.
Der Proxy wird ohne Benutzerauthentifizierung aktiviert und läuft standardmäßig auf Port 3128 der LAN-Schnittstelle.
Abbildung 8. Proxy auf pfSense aktivieren
Wie startet/neu startet/stoppt man den Proxy-Server?
Sie können den Status des Proxy-Dienstes anzeigen, indem Sie im pfSense Web UI zu Status > Services navigieren. Die Status- und Aktionsschaltflächen sind auf der Seite Dienste verfügbar.
Wenn der Proxy-Server läuft, wird die Status-Schaltfläche als grüner Kreis mit einem weißen Häkchen-Symbol angezeigt.
Sie können auf die Schaltfläche Restart service klicken, um den Proxy-Server neu zu starten.
Sie können auf die Schaltfläche Stop service klicken, um den Proxy-Server zu stoppen.
Abbildung 9. Neustart/Stoppen des Squid-Proxy-Dienstes auf pfSense
Wenn der Proxy-Server gestoppt ist, wird die Status-Schaltfläche als roter Kreis mit einem weißen Kreuz-Symbol angezeigt.
Sie können auf die Start-Schaltfläche klicken, um den Proxy-Server zu starten.
Abbildung 10. Starten eines gestoppten Proxy-Dienstes auf pfSense
Sie können den Status des Squid-Dienstes verwalten, indem Sie die Aktionsschaltflächen in der oberen rechten Ecke der Squid Proxy Server-Einstellungsseite verwenden.
Abbildung 11. Verwalten des Dienststatus auf der Einstellungsseite des Squid-Proxy-Servers
4. Konfigurieren Sie die Proxy-Schnittstelle(n) und den Proxy-Port
Wenn Sie die Schnittstellen (Subnetze) ändern müssen, an die der Proxy gebunden wird, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Services > Squid Proxy Server > General.
-
Wählen Sie Schnittstellen im Feld Proxy Interface(s) im Bereich
Squid Allgemeine Einstellungen
. Sie können so viele Schnittstellen hinzufügen, wie Sie möchten, oder eine entfernen. -
Klicken Sie auf Save, um die Einstellungen zu aktivieren.
5. Konfigurieren Sie den Proxy-Hörport
Standardmäßig hört der Proxy auf Port 3128. Um den Proxy-Listening-Port zu ändern, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Services > Squid Proxy Server > General.
-
Setzen Sie den Proxy port im Bereich
Squid General Settings
auf einen geeigneten Wert Ihrer Wahl, z.B. 8080. -
Klicken Sie auf Save, um die Einstellungen zu aktivieren.
6. SSL-Filterung aktivieren
Sie können die HTTPS/SSL-Interceptierung auf dem Squid-Proxy aktivieren, indem Sie die folgenden Anweisungen befolgen:
-
Gehen Sie zu System > Cert Manager > CAs, um ein CA-Zertifikat zu erstellen, das zur Abfangung von HTTPS-Verkehr verwendet wird.
Abbildung 12. Verwalten von Zertifizierungsstellen auf pfSense
-
Klicken Sie auf die Schaltfläche +Add, um ein neues CA-Zertifikat zu erstellen.
-
Geben Sie einen Descriptive Name ein, wie zum Beispiel
SquidCA
. -
Wählen Sie den Country Code, wie zum Beispiel
DE
. -
Füllen Sie das Feld State or Province aus.
-
Füllen Sie das Feld City aus.
-
Füllen Sie das Feld Organization aus.
-
Füllen Sie das Feld Organizational Unit aus.
-
Sie können die anderen Einstellungen als Standard belassen.
Abbildung 13. Hinzufügen eines neuen CA-Zertifikats auf pfSense
-
Klicken Sie auf Save, um ein neues CA-Zertifikat hinzuzufügen.
Abbildung 14. Anzeigen des neuen CA-Zertifikats auf pfSense
-
Navigieren Sie zu Services > Squid Proxy Server > General.
-
Aktivieren Sie
Enable SSL filtering
für die HTTPS/SSL Interception-Option. -
Sie können den SSL Proxy port ändern, auf den der SSL-Proxy-Dienst hören wird. Es ist standardmäßig 3129.
-
Sie können die neu erstellte Zertifizierungsstelle
SquidCA
aus der CA-Option auswählen, um sie für die SSL inspection zu verwenden. -
Sie können die anderen Einstellungen auf den Standardwerten belassen.
Abbildung 15. Aktivierung der SSL-Filterung auf pfSense
7. Authentifizierungsmethode konfigurieren
Um die Authentifizierungsmethode für Ihren Proxy-Dienst auf pfSense zu ändern, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Services > Squid Proxy Server > Authentication.
-
Wählen Sie den/die gewünschten Authentifikator(en) im Feld *Authentication Method field. If you do not want to use any authentication, click on the None-Link. Wenn Sie die Methode
Local
auswählen, müssen Sie Squid-Benutzer manuell hinzufügen. -
Sie können Enforce local group einstellen, um den Zugriff für Benutzer in der ausgewählten (lokalen) Gruppe zu beschränken, wenn Sie möchten. Wir lassen es als Standard.
-
Sie können die Authentication Prompt nach Belieben ausfüllen. Es wird im Authentifizierungsanforderungsfenster angezeigt.
-
Setzen Sie Authentication TTL auf 240. Dies gibt an, wie lange der Proxy-Server davon ausgeht, dass eine extern validierte Kombination aus Benutzername und Passwort gültig ist (in Minuten). (Time To Live). Wenn die TTL abläuft, wird der Benutzer aufgefordert, seine Anmeldeinformationen erneut einzugeben. Es ist standardmäßig 5.
-
Sie können die Authentication processes als Standard belassen. Die Gesamtzahl der Authentifizierungsprozesse, die gestartet werden.
-
Klicken Sie auf Save, um die Einstellungen zu aktivieren.
Abbildung 16. Einstellen der Authentifizierungsmethode für Proxy auf pfSense
-
Wenn Sie die Authentifizierungsmethode
Local
auswählen, klicken Sie auf die Registerkarte Users im oberen Bereich, um einen Squid-Benutzer manuell hinzuzufügen. -
Klicken Sie auf die Schaltfläche +Add.
-
Füllen Sie das Feld Username aus.
-
Füllen Sie das Feld Password aus.
-
Füllen Sie das Feld Description aus.
-
Klicken Sie auf Save.
Abbildung 17. Hinzufügen eines Squid-Benutzers auf pfSense
8. Protokollierung aktivieren
Um das Protokollieren für Ihren Proxy-Dienst auf pfSense zu aktivieren, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Services > Squid Proxy Server > General.
-
Aktivieren Sie die Option Enable Access Logging im Bereich
Logging Settings
. -
Sie können die Einstellung Log Store Directory auf den Standardwert belassen.
-
Stellen Sie die Rotate Logs-Option nach Ihren Wünschen ein, zum Beispiel auf 7. Es legt fest, wie viele Tage von Protokolldateien aufbewahrt werden. Die Rotation ist deaktiviert, wenn das Feld leer gelassen wird.
-
Sie können die Option Log Pages Denied by SquidGuard, aktivieren, die es ermöglicht, dass von SquidGuard abgelehnte Protokolle in die Squid-Protokolle aufgenommen werden.
-
Klicken Sie unten auf der Seite auf Save, um die Einstellungen zu aktivieren.
Abbildung 18. Aktivieren Sie das Protokollieren für den Squid-Proxy-Dienst
9. Zugriffssteuerungsliste definieren
Um Zugriffssteuerlisten für Ihren Proxy-Dienst auf pfSense zu definieren, können Sie die folgenden Schritte befolgen:
-
Navigieren Sie zu Services > Squid Proxy Server > ACL.
-
Sie können Allowed Subnets festlegen, indem Sie die Subnetze eingeben, denen Sie den Zugriff auf den Proxy-Server erlauben möchten. Alle anderen Subnetze werden den Proxy nicht nutzen können. Die Proxy-Schnittstellen sind standardmäßig erlaubt.
-
Sie können Unrestricted IP addresses hinzufügen. Für diese IP-Adressen werden keine Authentifizierung und keine Sperrung angewendet.
-
Sie können IP-Adressen, denen Sie den Zugriff auf den Proxy-Server verweigern möchten, in das Feld Banned Hosts addresses eingeben.
-
Sie können Domains zur Whitelist hinzufügen, damit sie nicht vom Proxy-Server blockiert werden, wie zum Beispiel unharmful.com.
Abbildung 19. Einstellung von ACLs für den Proxy-Dienst auf pfSense-1
-
Sie können Domains zur Blacklist hinzufügen, damit sie vom Proxy-Server blockiert werden, wie zum Beispiel harmful.com.
-
Sie können Block User Agents einstellen, um bestimmte Browser zu blockieren. Zum Beispiel wird "Mozilla" "alle auf Mozilla basierenden Browser" blockieren und "(.)+Macintosh(.)+Firefox/36.0" wird die "Macintosh-Version von Firefox Revision 36.0" blockieren. Wir werden MS Internet Explorer von 6 bis 10 blockieren, da er kritische Sicherheitsanfälligkeiten aufweist.
Abbildung. Einstellung von ACLs für den Proxy-Dienst auf pfSense-2
-
Sie können Block MIME types (Reply Only) einstellen, um HTTP-Antworten basierend auf dem MIME-Typ der Serverinhalte zu blockieren, wie z.B. Bild, Text, HTML, Flash, Musik, MPEG usw. Zum Beispiel blockiert die Eingabe von "video/Flv" den Flash-Video-Inhalt von Youtube, und "application/x-javascript" blockiert "javascript".
-
Sie können ACL SafePorts hinzufügen.
-
Sie können ACL SSLPorts hinzufügen.
-
Sie können die Domain eingeben, die berechtigt ist, Google GSuite im Feld Google Accounts Domains zu verwenden. Alle Konten, die nicht zu dieser Domain gehören, werden daran gehindert, sie zu nutzen.
-
Sie verwenden YouTube-Beschränkungen, indem Sie das Feld YouTube Filter auf Moderate oder Strict einstellen.
-
Klicken Sie auf Save.
Abbildung 20. Einstellung von ACLs für Ports und erweiterte Filterung im Proxy-Dienst
10. Definieren Sie Firewall-Regeln, um zu verhindern, dass Clients den Proxy-Server umgehen
Eine Firewall-Regel muss hinzugefügt werden, um sicherzustellen, dass niemand den Proxy umgehen kann. Da alle Clients über den pfSense-Proxy-Server, der auf Port 3128 läuft, auf das Internet zugreifen müssen, müssen alle HTTP(S)-Anfragen, die an die Ports 80/433 gesendet werden, blockiert werden. Sie können verhindern, dass Ihre Benutzer Ihren Proxy-Server umgehen, indem Sie die drei unten angegebenen Hauptschritte befolgen:
-
Fügen Sie eine Firewall-Regel hinzu, um ausgehenden HTTP-Verkehr auf Port 80 zu blockieren.
-
Fügen Sie eine Firewall-Regel hinzu, um ausgehenden HTTPS-Verkehr auf Port 443 zu blockieren.
-
Aktivieren Sie die neuen Firewall-Regeln.
1. Fügen Sie eine Firewall-Regel hinzu, um ausgehenden HTTP-Verkehr auf Port 80 zu blockieren
Um eine Firewall-Regel hinzuzufügen, die verhindert, dass Clients Proxy-Server umgehen, indem ausgehender HTTP-Verkehr auf Port 80 blockiert wird, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Firewall > Rules in Ihrer pfSense-Weboberfläche.
-
Klicken Sie auf die Schnittstelle, an die Ihr Proxy gebunden ist, wie z.B. LAN.
-
Klicken Sie auf die grüne Add-Schaltfläche mit dem Hochpfeil-Symbol,
, oben rechts in der Regel-Liste, um eine Regel an den Anfang der Liste hinzuzufügen. Dies wird Sie zur Regelkonfigurationsseite weiterleiten.
-
Setzen Sie Action auf Block.
-
Stellen Sie sicher, dass die Interface auf die Schnittstelle eingestellt ist, an die Ihr Proxy gebunden ist, wie zum Beispiel LAN.
-
Stellen Sie Protocol auf TCP ein.
-
Setzen Sie Source auf LAN net
Abbildung 21. Hinzufügen einer Firewall-Regel zum Blockieren des ausgehenden HTTP-Verkehrs auf Port 80 auf pfSense-1
-
Setzen Sie den Destination port range auf HTTP.
-
Sie können das Protokollieren aktivieren, indem Sie Log packets that are handled by this rule im Log-Option aktivieren.
-
Geben Sie Block HTTP Bypass für das Feld Description ein.
-
Sie können die anderen Einstellungen als Standard belassen.
-
Klicken Sie auf die Schaltfläche Save am unteren Rand der Seite.
Abbildung 22. Hinzufügen einer Firewall-Regel zum Blockieren des ausgehenden HTTP-Verkehrs auf Port 80 auf pfSense-2
2. Fügen Sie eine Firewall-Regel hinzu, um ausgehenden HTTPS-Verkehr auf Port 443 zu blockieren
Um eine Firewall-Regel hinzuzufügen, die verhindert, dass Clients Proxy-Server umgehen, indem sie ausgehenden HTTPS-Verkehr auf Port 443 blockiert, können Sie die folgenden Schritte ausführen:
-
Klonen Sie die neu erstellte Firewall-Regel um den ausgehenden HTTP-Verkehr im vorherigen Schritt durch Klicken auf die Klon-Schaltfläche zu blockieren. Dies wird Sie zur Bearbeitungsseite der Firewall-Regel weiterleiten.
-
Setzen Sie den Destination port range auf HTTPS.
-
Ändern Sie das Feld Description in Block HTTPS Bypass.
-
Sie können die anderen Einstellungen als Standard belassen.
-
Klicken Sie auf die Schaltfläche Save am unteren Rand der Seite.
Abbildung 23. Hinzufügen einer Firewall-Regel zum Blockieren des ausgehenden HTTPS-Verkehrs auf Port 443 auf pfSense-2
3. Aktivieren Sie die neuen Firewall-Regeln
Um die neuen Firewall-Regeln zu aktivieren, müssen Sie auf die Schaltfläche Apply Changes in der oberen rechten Ecke der Firewall-Regeln LAN-Schnittstellenseite klicken.
Abbildung 24. Anwenden von Firewall-Regeln in pfSense
11. Konfigurieren Sie den Proxy in Ihrem Windows-Client oder Browser
Sie können die Proxy-Einstellungen in Ihrem Windows-Client ganz einfach so konfigurieren, dass der Webverkehr über Ihren Proxy-Server geleitet wird, indem Sie die folgenden Schritte ausführen:
-
Öffnen Sie Network & Internet Settings, indem Sie mit der rechten Maustaste auf das Netzwerksymbol in der Taskleiste Ihres Windows 10 PCs klicken. Oder klicken Sie auf das Hamburger-Symbol in der oberen rechten Ecke Ihres Chrome-Browsers und navigieren Sie zu Settings > Advanced > System > Open your computer's proxy settings.
Abbildung 25. Zugriff auf die Proxy-Server-Einstellungen im Chrome-Browser
Abbildung 26. Zugriff auf die Proxy-Server-Einstellungen im Windows 10-Client
-
Klicken Sie auf Proxy.
-
Aktivieren Sie Use a proxy server im Bereich Manual proxy setup.
-
Geben Sie die IP-Adresse Ihres Proxy-Servers in das Feld Address ein, zum Beispiel 10.1.1.1.
-
Geben Sie die Portnummer Ihres Proxy-Servers, die Sie im vorherigen Abschnitt festgelegt haben, in das Feld Port ein, z.B. 3128.
-
Klicken Sie auf Save, um die Einstellungen zu aktivieren.
Abbildung 27. Einrichten eines Proxys im Windows 10-Client
Ihre Proxy-Server- und Client-Konfigurationen sind abgeschlossen. Jetzt können Sie Ihre Einstellungen testen.
Testen der Proxy-Konfiguration
Sie können Ihre Proxy-Konfiguration testen, indem Sie die folgenden Schritte ausführen:
-
Öffnen Sie Ihren Browser auf dem PC des Kunden. Dies wird ein Dialogfeld ähnlich Abbildung 27 für die Benutzerauthentifizierung anzeigen, wenn Sie die Authentifizierung in Ihren Proxy-Einstellungen aktiviert haben.
Abbildung 28. Proxy-Client-Authentifizierung auf einem Windows 10-PC
-
Verbinden Sie sich über Ihren Browser mit der Seite
[https://www.lagado.com/tools/cache-test](https://www.lagado.com/tools/cache-test)
.Abbildung 29. Proxy-Cache-Testseite
-
Notieren Sie sich die Seitenseriennummer irgendwo.
-
Leeren Sie den Cache Ihres Browsers.
-
Klicken Sie auf diesen Link, um diese Seite erneut zu laden. (Alternativ können Sie diese Seite aufrufen oder ein Lesezeichen verwenden.) Drücken Sie nicht auf Aktualisieren.) Wenn die Seitenseriennummer dieselbe ist wie die, die Sie in Schritt 3 notiert haben, verwenden Sie höchstwahrscheinlich einen Caching-Proxy.
Wie aktiviert man die Webfilterung mit SquidGuard?
Das SquidGuard-Programm bietet eine hochwirksame URL-Filterung und Zugriffskontrolle. Es kann Blacklists oder benutzerdefinierte Listen von Websites verwenden, um den Zugriff auf diese Seiten selektiv zu erlauben oder zu verweigern. Um den Nutzen von SquidGuard zu erhalten, müssen Sie bereits das Squid-Paket installiert und konfiguriert haben.
Wie installiert man SquidGuard auf pfSense?
Sie können das SquidGuard-Paket ganz einfach installieren, indem Sie die folgenden Schritte befolgen:
-
Greifen Sie auf die WebGUI Ihrer pfSense®-Software zu.
-
Navigieren Sie zu System > Package Manager > Available Packages.
-
Geben Sie squidguard in das Suchfeld ein und klicken Sie dann auf Search.
-
Klicken Sie auf die Schaltfläche +Install am Ende des Pakets.
Abbildung 30. SquidGuard-Paket suchen und installieren
-
Klicken Sie auf Confirm, um die Installation des Pakets zu starten. Dies wird einige Zeit in Anspruch nehmen, da mehrere Dateien und Datenbanken heruntergeladen werden müssen.
-
Sobald die Installation abgeschlossen ist, sollten Sie nach ein paar Minuten success sehen.
Wie aktiviert man SquidGuard auf pfSense?
Sie können den SquidGuard-Dienst ganz einfach aktivieren, indem Sie die nächsten Schritte befolgen:
-
Navigieren Sie zu Services > SquidGuard Proxy Filter in Ihrer pfSense-Weboberfläche.
-
Aktivieren Sie Enable im Bereich Allgemeine Optionen.
-
Aktivieren Sie Enable GUI log, um den Zugriff auf die Proxy-Filter-GUI zu protokollieren.
-
Scrollen Sie zum Bereich Protokollierungsoptionen.
-
Aktivieren Sie Enable log, um die Proxy-Filtereinstellungen wie blockierte Websites in Common ACL, Group ACL und Target Categories zu protokollieren. Diese Option wird normalerweise verwendet, um die Filtereinstellungen zu überprüfen.
-
Aktivieren Sie Enable log rotation, um die Protokolle täglich zu rotieren. Dies wird empfohlen, wenn Sie eine Art von Protokollierung aktivieren, um die Dateigröße zu begrenzen und nicht den Speicherplatz auf der Festplatte zu überschreiten.
-
Aktivieren Sie Clean Advertising im Verschiedenes-Bereich, um ein leeres GIF-Bild anstelle der standardmäßigen Blockseite anzuzeigen. Mit dieser Option erhält der Benutzer eine sauberere Webseite.
Abbildung 31. Einstellen der Protokollierungsoptionen für SquidGuard
-
Klicken Sie unten auf der Seite auf Save.
-
Klicken Sie auf Apply im Bereich Allgemeine Optionen oben auf der Seite.
Abbildung 32. SquidGuard aktivieren
Wie verwendet man Blacklists in SquidGuard?
Schwarze Listen sind vordefinierte Listen von Websites in bestimmten Kategorien, wie zum Beispiel soziale, erwachsene, Musik- und Sport-Websites. Um Blacklists in SquidGuard zu verwenden, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Services > SquidGuard Proxy Filter in Ihrer pfSense-Weboberfläche.
-
Aktivieren Sie Blacklist im Bereich Blacklist-Optionen am unteren Rand der Seite.
-
Geben Sie die Blacklist-URL ein, wie zum Beispiel
https://github.com/maravento/blackweb/blob/master/blackweb.tar.gz
.Abbildung 33. Einstellungen der Blacklist-Optionen
-
Klicken Sie auf Save.
-
Klicken Sie auf Apply im Bereich Allgemeine Optionen oben auf der Seite.
-
Klicken Sie auf die Registerkarte Blacklist oben auf der Seite.
Abbildung 34. Herunterladen der Blacklist
-
Klicken Sie auf Download, um den Download der Blacklist zu starten.
Wie definiert man Zielkategorien?
Zielkategorien sind benutzerdefinierte Sammlungen von Websites oder anderen Ausdrücken, die eine Gruppe von Elementen definieren, für die der Zugriff gewährt oder verweigert werden kann. Sie werden auf dem Tab mit der Bezeichnung "Zielkategorien" verwaltet.
Das Hinzufügen einer neuen Zielkategorie erfordert die folgenden Optionen:
-
Name: Der Name der Kategorie, wie er in den ACLs zur Auswahl erscheinen wird. Der Name muss aus zwei bis fünfzehn alphanumerischen Zeichen bestehen, wobei das erste Zeichen ein Buchstabe sein muss.
-
Domainliste: Dies ist die Liste der blockierten Domains, wie
google.com
,microsoft.com
usw. Sie können mehrere Domains eingeben, getrennt durch ein Leerzeichen. -
Weiterleitungsmodus: Diese Option bestimmt, was passiert, wenn eine Website auf dieser Liste einen Benutzer blockiert. Der Standardwert "none" führt zu keiner Weiterleitung. Die häufigste Konfiguration ist die Fehlerseite.
-
Umleiten: Geben Sie die Fehlermeldung ein, die dem Benutzer angezeigt wird, wenn der Benutzer über die interne Fehlerseite weitergeleitet wird. Wenn ein externer Weiterleitungstyp ausgewählt ist, geben Sie die vollständige URL zur gewünschten Zielseite ein, einschließlich des entsprechenden Protokolls (
http://
oderhttps://
).
Um Zielkategorien zu definieren, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Services > SquidGuard Proxy Filter > Target Categories on your pfSense web UI.
-
Klicken Sie auf +Add, um eine neue Zielkategorie hinzuzufügen.
-
Füllen Sie die Name-Option aus, z.B.
Google_Whitelist
. -
Füllen Sie die Domain List-Option aus. Wir werden Google-Domains eingeben.
Abbildung 35. Zielkategorien definieren
-
Füllen Sie die Description-Option aus, wie zum Beispiel
Google Domains
. -
Aktivieren Sie die Log-Option, um das Protokollieren für diese ACL zu aktivieren.
-
Klicken Sie auf Save.
Wie man Downloads nach Erweiterung blockiert?
Im squidGuard-GUI (Services > Proxy-Filter):
Um Downloads nach Dateierweiterung zu blockieren, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Services > SquidGuard Proxy Filter > Target Categories in Ihrer pfSense-Weboberfläche.
-
Füllen Sie die Name-Option aus, z.B.
Google_Whitelist
. -
Klicken Sie auf +Add, um eine neue Zielkategorie hinzuzufügen.
-
Geben Sie einen Namen für die Kategorie ein, wie zum Beispiel
BlockExt
. -
Fügen Sie Regular Expression hinzu, wie
(.*\/.*\.(asf|wm|wma|wmv|zip|rar|cab|mp3|avi|mpg|swf|exe|mpeg|mp.|mpv|mp3|wm.|vpu))
-
Aktivieren Sie die Log-Option, um das Protokollieren für diese ACL zu aktivieren.
Abbildung 36. Zielkategorie zum Blockieren von Erweiterungen definieren
-
Klicken Sie auf Speichern.
-
Gehen Sie zur Seite "Common ACL" oder "Groups ACL".
-
Klicken Sie auf Zielregelliste, um die Liste der Kategorien zu erweitern. Die neu erstellte Kategorie sollte alphabetisch in der Liste angezeigt werden, über allen Blacklist-Kategorien. Finden Sie den Eintrag BlockExt in der Liste und wählen Sie deny.
Abbildung 37. Definieren einer gemeinsamen ACL zum Blockieren von Erweiterungen
-
Klicken Sie auf Save.
-
Gehe zum Tab General Einstellungen und drücke Apply.
Wie definiert man eine Zugriffssteuerungsliste?
In SquidGuard gibt es zwei Kategorien von ACL-Einträgen:
- Gemeinsame ACL: Die gemeinsame ACL ist die Standard-ACL, die auf alle Benutzer in SquidGuard angewendet wird.
- Gruppen-ACL: Gruppen-ACL-Einträge werden auf spezifische IP-Adressen, IP-Adressgruppen oder Netzwerke angewendet.
Besuchen Sie zuerst die Registerkarte "Common ACL". Wählen Sie die Standardaktionen für alle Kategorien aus Blacklists oder lokal definierten Listen aus. Um dies zu erreichen, klicken Sie auf Zielregelliste und wählen Sie die gewünschten Aktionen aus dem Dropdown-Menü am Ende jeder Zeile aus. Die Standardzugriffsoption [alle] bestimmt, was passiert, wenn in keiner der Kategorien ein Treffer gefunden wird.
Wechseln Sie nach dem Speichern der Einstellungen zur Registerkarte "Gruppen-ACL", um einen Eintrag für einen bestimmten Benutzer oder eine Benutzergruppe zu erstellen. Mit einer Gruppen-ACL ist es möglich, eine Ausnahme von den Regeln der gemeinsamen ACL zu erstellen, entweder um den Zugriff auf eine Website zu blockieren, die andere erreichen können, oder um den Zugriff auf eine Website zu erlauben, die andere nicht sehen können.
Um eine Gruppen-ACL zu erstellen, können Sie die folgenden Schritte ausführen:
-
Wechseln Sie zum Tab "Gruppen-ACL"
-
Klicken Sie auf
Fügen Sie eine neue Eintragung hinzu und konfigurieren Sie sie wie folgt:
- Name: Der Name der ACL
- Client (Quelle): Geben Sie die IP-Adresse des Benutzers, das Subnetz usw. ein. Mehrere Werte können eingegeben werden, getrennt durch Leerzeichen.
- Zielregelliste: Definiert die Liste der Aktionen für diese spezifische Benutzergruppe
-
Klicken Sie auf Save.
-
Kehren Sie zur Registerkarte General Einstellungen zurück.
-
Klicken Sie auf Apply
Wie man den transparenten SSL-Modus auf dem pfSense-Proxy aktiviert?
Es ist nur möglich, HTTP-Verkehr transparent abzufangen, wenn ein Proxy verwendet wird. Das bedeutet, dass nur HTTP-Verkehr automatisch erfasst und ohne Benutzerintervention oder -wissen über einen Proxy geleitet werden kann. Dies ist praktisch, da der Benutzer keine Einstellungen auf seinem Computer konfigurieren muss. Der Nachteil dieser Technik ist, dass nur HTTP-Verkehr erfasst werden kann; HTTPS kann nicht auf die gleiche Weise abgefangen werden.
Der Versuch, HTTPS transparent abzufangen, würde die Vertrauenskette, die durch SSL geschaffen wurde, brechen, was zu einer erschreckenden Zertifikat-Warnung führen würde, wenn der Benutzer versucht, auf eine sichere Website zuzugreifen. In einem solchen Szenario ist diese Warnung angemessen, da der Proxy im Wesentlichen einen Man-in-the-Middle-Angriff durchführt, um den Datenverkehr des Benutzers zu überprüfen.
Die Squid-Proxy-Software ist in der Lage, HTTPS abzufangen, aber das kann nicht ohne das Wissen des Benutzers oder Änderungen am Computer erfolgen. Das Abfangen von HTTPS erfordert die Implementierung einer vertrauenswürdigen Root-CA, die speziell für diesen Zweck erstellt wurde, damit der Proxy echte Zertifikate verwenden kann.
Die optimale Methode besteht darin, die Proxy-Einstellungen auf dem Computer und/oder Webbrowser des Benutzers zu konfigurieren. Diese Aufgabe kann manuell, über GPO in einer Windows-Domäne, DHCP oder automatisch über WPAD erledigt werden.
In diesem Abschnitt werden wir erklären, wie man die transparenten Proxy-Modi für HTTP und HTTPS (SSL Bump) in der pfSense-Firewall konfiguriert.
Die Verwendung eines transparenten HTTPS-Proxys kann gefährlich sein und von den von Ihnen genutzten Servicesn, wie z.B. E-Commerce, eingeschränkt werden, da der transparente SSL/HTTPS-Proxy-Modus eine Methode namens Man-in-the-Middle ausnutzt. Wenn Sie sich Ihrer Fähigkeiten sicher sind, konfigurieren und verwenden Sie nur den transparenten Modus. Wenn sie falsch konfiguriert sind, können Ihre Sicherheitsmaßnahmen eher geschwächt als gestärkt werden.
Sie können den transparenten SSL-Modus in Ihrem pfSense-Proxy-Dienst ganz einfach aktivieren, indem Sie die folgenden 4 Hauptschritte befolgen:
-
Erstellen Sie eine Zertifizierungsstelle für transparentes SSL
-
Authentifizierung für den Proxy-Server deaktivieren
-
Aktivieren Sie den transparenten HTTP- und SSL-Modus
-
Proxy-Client konfigurieren
Wir gehen davon aus, dass Sie bereits einen grundlegenden Caching-Proxy in Ihrem pfSense konfiguriert haben, indem Sie den Anweisungen im ersten Abschnitt gefolgt sind.
Wir werden die wichtigsten Schritte zur Aktivierung des transparenten SSL-Modus in Ihrem pfSense-Proxy kurz erläutern.
1. Erstellen Sie eine Zertifizierungsstelle für transparentes SSL
Bevor Sie den transparenten SSL-Modus auf Ihrem Proxy-Server aktivieren, müssen Sie eine interne Zertifizierungsstelle erstellen, falls Sie noch keine haben.
2. Deaktivieren Sie die Authentifizierung für den Proxy-Server
Im transparenten Modus ist eine Proxy-Authentifizierung nicht möglich. Da der Browser nicht weiß, dass ein Proxy verwendet wird, kann er nicht auf eine Proxy-Authentifizierungsanforderung reagieren. Um die Authentifizierungsmethode für Ihren Proxy-Dienst auf pfSense zu ändern, können Sie die folgenden Schritte befolgen:
-
Navigieren Sie zu Services > Squid Proxy-Server > General.
-
Wählen Sie None im Feld Authentication Method aus.
-
Klicken Sie auf Save, um die Einstellungen zu aktivieren.
3. Aktivieren Sie den transparenten HTTP- und SSL-Modus
Sie können den transparenten HTTP-Modus ganz einfach aktivieren, indem Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Services > Squid Proxy Server > General.
-
Aktivieren Sie die Option Transparenter HTTP-Proxy.
-
Sie können die Option Bypass Proxy for Private Address Destination aktivieren.
-
Sie können Bypass Proxy for These Source IPs eingeben. Diese Option leitet den Verkehr von diesen Quell-IP-Adressen, CIDR-Netzen, Hostnamen oder Aliasen nicht über den Proxy-Server weiter, sondern lässt ihn direkt durch die Firewall passieren.
-
Sie können Bypass Proxy for These Destination IPs eingeben. Diese Einstellung leitet den Verkehr, der an diese Ziel-IP-Adressen, CIDR-Netze, Hostnamen oder Aliase geht, nicht über den Proxy, sondern lässt ihn direkt durch die Firewall passieren. Um sicherzustellen, dass bekannte Seiten nicht blockiert werden und ihre ursprüngliche Sicherheitsstufe beibehalten, sollten Sie sie in dieses Feld hinzufügen.
-
Überprüfen Sie die Option HTTPS/SSL Interception im SSL MAN in der Middle Filtering.
-
Wählen Sie Splice All für den SSL/MTM Mode.
-
Wählen Sie das neu erstellte CA-Zertifikat für die CA-Option aus.
-
Klicken Sie auf die Schaltfläche Save, um die Einstellungen anzuwenden.
Abbildung 38. Aktivierung des transparenten HTTP- und SSL-Modus auf dem pfSense-Proxy
4. Proxy-Client konfigurieren
Da Ihre interne CA vom Browser nicht vertraut wird, erhalten Sie eine Warnmeldung wie *Your connection isn't private. Attackers might be trying to steal your information NET::ERR_CERT_AUTHORITY_INVALID für jede SSL-Website, die Sie besuchen.
Abbildung 39. ERR_CERT_AUTHORITY_INVALID-Warnmeldung
Um dieses Problem zu lösen, müssen Sie das CA-Zertifikat als vertrauenswürdiges Root-CA-Zertifikat in Ihrem Client-Betriebssystem hinzufügen. Sie können den Key in einen Windows 10-PC importieren und ihn als vertrauenswürdiges Root-CA-Zertifikat festlegen, indem Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu System > Certificate Manager > CAs in Ihrer pfSense-Weboberfläche.
-
Klicken Sie auf das Export CA-Symbol, um das CA-Zertifikat zu exportieren.
-
Kopieren Sie das CA-Zertifikat auf den Client-PC, in unserem Beispiel ist es ein Windows 10-PC.
-
Sie können das CA-Zertifikat als vertrauenswürdiges Root-CA-Zertifikat importieren, indem Sie das MMC-Tool auf Ihrem Windows 10-PC verwenden. Geben Sie mmc in die Suchleiste ein und drücken Sie die Eingabetaste, um die Microsoft Management Console zu starten.
-
Klicken Sie auf den Link im Menü File und wählen Sie Add/Remove Snap-in.
Abbildung 40. Snap-In Microsoft Management Control hinzufügen/entfernen
-
Klicken Sie nun unter Verfügbare Snap-Ins auf Zertifikate und dann auf Hinzufügen. Das Snap-In für Zertifikate ermöglicht es Ihnen, den Inhalt der Zertifikatspeicher für sich selbst, einen Dienst oder einen Computer zu durchsuchen.
-
Klicken Sie auf OK.
Abbildung 41. Hinzufügen des Snap-Ins für Zertifikate in der Microsoft Management-Konsole
-
Wählen Sie im nächsten Dialogfeld das Computerkonto aus und klicken Sie dann auf Weiter.
Abbildung 42. Hinzufügen des Snap-Ins für Zertifikate für das Computer-Konto
-
Wählen Sie nun Lokaler Computer und klicken Sie auf Fertig.
**Abbildung 43. ** Hinzufügen des Snap-Ins für Zertifikate für den lokalen Computer
-
Jetzt, zurück in der MMC, im Konsolenbaum, doppelklicken Sie auf Zertifikate und klicken Sie dann mit der rechten Maustaste auf Vertrauenswürdige Stammzertifizierungsstellen. Unter Alle Aufgaben wählen Sie Importieren. Dies öffnet den Zertifikat-Import-Assistenten.
**Abbildung 44. ** Importieren von Zertifikaten als vertrauenswürdige Stamm-CA
**Abbildung 45. ** Zertifikatsimport-Assistent-1
-
Klicken Sie auf die Schaltfläche Next.
-
Durchsuchen Sie die Datei und wählen Sie das CA-Zertifikat aus, das Sie importieren möchten, und klicken Sie dann auf die Schaltfläche Next.
**Abbildung 46. ** Auswählen der Zertifikatdatei zum Importieren im Zertifikatsimport-Assistenten
-
Klicken Sie auf Weiter.
Abbildung 47. Auswahl des Zertifikatspeichers im Zertifikatsimport-Assistenten
-
Klicken Sie auf die Schaltfläche Finish, um den Zertifikatsimport abzuschließen. Nachdem der Importvorgang erfolgreich abgeschlossen wurde, erscheint ein Dialogfeld.
**Abbildung 48. ** Abschluss des Zertifikat-Import-Assistenten
Abbildung 49. CA-Zertifikat-Import wurde erfolgreich abgeschlossen.
-
Klicken Sie auf OK.
Abbildung 50. Interne pfSense CA-Zertifikate als vertrauenswürdiges Root-CA-Zertifikat im Windows 10-Client importiert
Wie man Squid optimiert?
Einige Benutzer haben berichtet, dass die Implementierung der folgenden Änderung die Leistung erheblich verbessert hat:
-
Bearbeiten Sie die Datei
/boot/loader.conf.local
. -
Ändern Sie
kern.ipc.nmbclusters="0"
inkern.ipc.nmbclusters="32768"
-
Starten Sie die Firewall neu
Die Verwendung der ufs-Cache-Dateisystemeinstellung hat die Leistung für einige Benutzer verbessert. Erhöhen Sie vfs.read_max=32
auf vfs.read_max=128
in System > Advanced, im Bereich System Tunables, wenn Sie das ufs-Dateisystem verwenden.
**Abbildung 51. ** Aktualisierung der vfs-Systemtuning-Parameter
Squid führt ein Cache-Index-Journal namens swap.state
auf der obersten Ebene des Squid-Cache-Ordners, der typischerweise /var/squid/cache/swap.state
ist. Diese Datei kann sehr groß werden und den gesamten verfügbaren Speicherplatz auf der Festplatte beanspruchen. Um dies zu verhindern, konfigurieren Sie Log Rotate in der Squid-Konfiguration.
Durch die Angabe der Anzahl der Tage, an denen die Protokolle aufbewahrt werden sollen, aktiviert das Squid-Paket einen nächtlichen Cron-Job, der die folgenden Befehle ausführt:
squid -k rotate
Im Rahmen des Rotationsverfahrens wird die Datei swap.state
komprimiert, um zu verhindern, dass sie zu groß wird.
Es ist möglich, diese Datei zu löschen, während Squid in Betrieb ist, wenn sie übermäßig groß ist. Nachdem die Datei gelöscht wurde, führen Sie den nächsten Befehl aus:
squid -k rotate
Dies wird dazu führen, dass es neu geschrieben wird. (but compacted). Alternativ können Sie squid anweisen, eine vollständige Beendigung mit dem folgenden Befehl durchzuführen:
squid -k shutdown
Dies wird die swap.state
-Datei neu schreiben, aber squid wird anhalten und neu gestartet werden müssen, was es zur am wenigsten wünschenswerten Option macht.
Wenn die swap.state
-Datei gelöscht wird, während squid nicht in Betrieb ist, muss squid den Cache-Ordner erneut scannen, um ihn wiederherzustellen. Dies kann ein zeitaufwändiger und langwieriger Prozess sein. Es kann vorzuziehen sein, den Inhalt des Cache-Ordners zu löschen und seine Struktur mit dem Befehl neu zu erstellen:
squid -z
Wie man Windows-Updates auf pfSense zwischenspeichert?
Wenn eine Reihe lokaler PCs Windows-Updates benötigt, aber ein WSUS-Server nicht verfügbar ist, kann Squid diese zwischenspeichern.
-
Navigieren Sie zu Services > Squid Proxy Server > General.
-
Klicken Sie auf die Schaltfläche Show Advanced Options am unteren Rand der Seite.
-
Geben Sie die folgenden Zeilen in das Feld Custom Option ein:
refresh_pattern -i windowsupdate.com/.*\.(cab|exe|ms[i|u|f|p]|[ap]sf|wm[v|a]|dat|zip|psf) 43200 80% 129600 reload-into-ims
refresh_pattern -i microsoft.com/.*\.(cab|exe|ms[i|u|f|p]|[ap]sf|wm[v|a]|dat|zip|psf) 43200 80% 129600 reload-into-ims
refresh_pattern -i windows.com/.*\.(cab|exe|ms[i|u|f|p]|[ap]sf|wm[v|a]|dat|zip|psf) 43200 80% 129600 reload-into-ims
refresh_pattern -i microsoft.com.akadns.net/.*\.(cab|exe|ms[i|u|f|p]|[ap]sf|wm[v|a]|dat|zip|psf) 43200 80% 129600 reload-into-ims
refresh_pattern -i deploy.akamaitechnologies.com/.*\.(cab|exe|ms[i|u|f|p]|[ap]sf|wm[v|a]|dat|zip|psf) 43200 80% 129600 reload-into-ims
range_offset_limit noneFor caching MAC Updates you may add the following lines:
refresh_pattern ([^.]+.|)(download|adcdownload).(apple.|)com/.*\.(pkg|dmg) 4320 100% 43200 reload-into-ims
For caching AVG and other updates you may add the following lines:
refresh_pattern ([^.]+.|)avg.com/.*\.(bin) 4320 100% 43200 reload-into-ims
refresh_pattern ([^.]+.|)spywareblaster.net/.*\.(dtb) 4320 100% 64800 reload-into-ims
refresh_pattern ([^.]+.|)symantecliveupdate.com/.*\.(zip|exe) 43200 100% 43200 reload-into-ims
refresh_pattern ([^.]+.|)avast.com/.*\.(vpu|vpaa) 4320 100% 43200 reload-into-ims -
Klicken Sie auf Save
-
Gehen Sie zum Tab Local Cache der Squid-Konfiguration:
-
Ändern Sie die Hard Disk Cache size auf etwas Großes, wie
3000
oder4000
(3GB oder 4GB), um die Updates zu berücksichtigen. -
Ändern Sie die Maximum object size auf etwas Großes, wie zum Beispiel
512000
für 512MB. Größer zu gehen, könnte notwendig sein, wenn Updates größer als diese Größe veröffentlicht werden. -
Klicken Sie auf Save
Abbildung 52. Einstellung der Squid-Festplattencache-Größe für Windows-Updates