pfSense – Squid als Transparenter Proxy mit Antivirus funktion für HTTP

System ist die Open Source Firewall pfSense in der aktuellen Version 2.2 (amd64) auf FreeBSD 10.1-Release-p4. Alles läuft virtuell als KVM, ohne zusätzliche CF Karte oder ähnlichem.

Aktuell sind keine weiteren Pakete installiert, die Firewall läuft als “einfache Firewall” mit Traffic Shaping vor dem Internet als Trennung ins interne Netzwerk.

Ziel soll es sein Squid als transparenten Webproxy zur Performancesteigerung mit der zusätzlichen Funktion des Antivierenfilters für den HTTP Webtraffic einzusetzen.

Nachfolgend eine kurze Anleitung zur Installation und groben Einrichtung – Feintuning liegt dann an jedem selbst. Ich werde es in 2 Schritten erklären und mit der Installation von Squid beginnen. Wenn der Proxy läuft, kümmern wir uns um die Antivirus Funktion. Also ab ins Menü der Packages

pfSense Menue Packages
pfSense Menue Packages

Installation von Squid (Stable 2.7.9 pkg v4.3.6)

Vor der pfSense Version 2.2 hatte ich das Packet Squid3 (3.4.10_2 pkg 0.2.6) installiert. Mit dem Update auf pfSense 2.2 wurde auch die freeBSD Version angehoben, sodass es jetzt nur noch das Packet Squid gibt.

pfSense Package Squid
pfSense Package Squid

Zur Installation rechts auf den Button klicken. Danach die Installation mit dem Button Confirm bestätigen und warten.

pfSense Package Squid Instal
pfSense Package Squid Instal

Am Ende wird, hoffentlich, Success angezeigt.

Konfiguration von Squid

Am Ende sollen die Prozesse wie folgt aussehen, wobei dies ein aktuellerer Screen meines Systems ist. Die Services von c-icap, Clamd und Squid müssen laufen.

pfSense - Services Status
pfSense – Services Status

Im Menü über Services -> Proxy Server aufrufen

pfSense Menue Services Proxy Server
pfSense Menue Services Proxy Server

Im Proxy Squid gibt es diverse Konfigurationsmöglichkeiten. Nachfolgen das Menü mit den Punkten General, Remote Cache, Local Cache, Antivirus, ACLs, Traffic Mgmt, Authentication, Users, Real time, Sync.

pfSense Squid Menue
pfSense Squid Menue

Squid Proxy – Reiter General

Nachfolgend meine Optionen als Schnellkonfiguration

Squid General Settings

  • Proxy Interface -> LAN
  • Proxy Port -> 3128
  • ICP port -> leer
  • Allow users on interface -> checked
  • Patch captive portal -> unchecked
  • Resolv dns v4 first -> unchecked
  • Disable ICMP -> unchecked
  • Use alternate DNS-servers for the proxy-server -> leer
pfSense Squid Generell Settings
pfSense Squid Generell Settings

Transparent Proxy Settings

  • Transparent HTTP Proxy -> checked
  • Transparent Proxy interface -> LAN
  • Bypass proxy for Private Adress destination -> unchecked
  • Bypass proxy for these source IPs -> leer
  • Bypass proxy for these destination IPs -> leer
pfSense Squid Transparent Proxy Settings
pfSense Squid Transparent Proxy Settings

SSL man in the middle Filtering -> deaktiviert, da hier vorerst nur HTTP konfiguriert wird

Logging Settings

  • Enabled logging -> checked
  • Log store directory (default) -> /var/squid/logs
  • Log rotate (Tage die Logs behalten werden)-> 14
  • Visible Hostname -> firewall
  • Administrator email -> admin@firewall.local
  • Language -> de
  • Disable X-Forward -> checked
  • Disable VIA -> unchecked
  • Log denied pages by squidguard -> unchecked
  • What to do with requests that have whitespace characters in the URI -> strip
  • Supress Squid Version -> checked
pfSense Squid Logging Settings
pfSense Squid Logging Settings

Custom Settings -> keine

Button Save

Squid Proxy – Reiter Remote Cache

Wird von mir nicht genutzt -> unkonfiguriert

Squid Proxy – Reiter Local Cache

Die ist der Kern von Squid. Hier kann festgelegt werden wieviel und was im lokalen Cache, bei mir also auf der Festplatte landet. Dies kann die Performance steigern oder aber zum Zusammenbruch des Systems führen ;). Also passt die nachfolgenden Werte auf eure Anforderungen und vor allem eure Hardware -ressourcen an. Hier sind die Festplattengröße und der RAM entscheidend, was sich letztendlich auch auf die CPU auswirkt.

Squid Cache General Settings

  • Cache replacement policy -> Heap LFUDA
  • Low-water-mark in % -> 90
  • High-water-mark in % -> 95
  • Do not cache -> leer
  • Enable offline mode -> unchecked
  • External Cache-Managers -> leer
pfSense Squid Cache General Settings
pfSense Squid Cache General Settings

Squid Hard disk cacheSettings

  • Hard disk cache size -> 1024
  • Hard disk cache system -> aufs
  • Clear cache on log rotate -> uncheck
  • Level 1 subdirectories -> 16
  • Hard disk cache location -> /var/squid/cache
  • Minium object size -> 0
  • Maximum object size -> 400
pfSense Squid Hard disk Cache Settings
pfSense Squid Hard disk Cache Settings

Squid Memory Cache Settings

  • Memory cache size -> 512
  • Maximum object size in RAM -> 256
  • Memory replacement policy -> Heap GDSF
pfSense Squid Memory Cache Settings
pfSense Squid Memory Cache Settings

Dynamic and Update Content

  • Cache Dynamic Content -> checked
  • Refresh Paterns -> keine Auswahl
  • Custom refresh_patterns -> leer
pfSense Dynamic Update Content
pfSense Dynamic Update Content

Button Save

Squid Proxy – Reiter Antivirus

Ja ist interessant, aber Geduld ich komme unten als finales Highlight darauf zu sprechen ,)

Squid Proxy – Reiter Traffic Mgmt

Squid Traffic Managment Settings

  • Maximum downlod size -> 0
  • Maximum uupload size -> 0
  • Overall bandwidth -> 0
  • Per-host throttling -> 0
pfSense Squid Traffic Management Settings
pfSense Squid Traffic Management Settings

Squid Transer Extension Settings

  • Throttle only specific extensions -> checked
  • Throttle binary files -> unchecked
  • Throttle CD images  -> unchecked
  • Throttle multimedia files -> unchecked
  • Throttle other extensions -> leer
pfSense Squid Transfer Extension Settings
pfSense Squid Transfer Extension Settings

Squid Transfer Quick Abort Settings

  • Finish transfer if less than x KB remaining -> 0
  • Abort transfer if more than x KB remaining -> 0
  • Finish transfer if more than x % finished -> 0
pfSense Squid Quick Abort Settings
pfSense Squid Quick Abort Settings

Button Save

Squid Proxy – Reiter Authentication

Hier habe ich aktuell keine Methode hinterlegt. Der Proxy ist somitfür jeden für das interne Lan transparent zugänglich.

Squid Proxy – Reiter Users

Dieser Reiter ist ebenfalls unkonfiguriert

Squid Proxy – Reiter Real time

Hier kannst du jeder Zeit sehen, was von und an wem im LAN/WAN durch deinen Proxy läuft und wie der Status der Anfrage und Abarbeitung ist.

Abschluss mit Start des Services Squid

pfSense Squid Serivce Start
pfSense Squid Serivce Start

Als nächstes wird der Dienst oben rechts gestartet. Wenn alles richtig konfiguriert ist wird der Dienst wie im Screen zusehen laufen und unter dem Reiter Real time sind entsprechende Seitenaufrufe zu sehen. Ansonsten kann ein Blick in die Logs von pfSense helfen.

Squid Proxy – Konfiguration von ClamAV als Antivirus Scanner für HTTP

Als nächstes, nachdem Squid läuft, werde ich die Konfiguration von Antivirus beschreiben.

Squid Proxy – Reiter Antivirus

  • Enable -> checked
  • direkt nach dem Aufruf unten auf dem Button Save klicken -> die Default Konfiguration wird geladen

danach

  • Enable -> immer noch checked
  • Client forward options ->Send Both client username and ip info (Default)
  • Save
pfSense Squid Antivirus Enable
pfSense Squid Antivirus Enable

Advanced options – squidclamav.con

  • squidclamav.conf – hier muss Redirect auf eigenen pfSense IP / Hostname geändert werden z.B. : redirect https://192.168.0.3/squid_clwarn.php
pfSense Squid ClamAV Conf
pfSense Squid ClamAV Conf

Advanced options – c-icap.con

  •  c-icap.conf – Zeile entfernen:

Manager: Apassword@ldap.chtsanti.net?o=chtsanti?mermberuid?(&(objectClass=posixGroup)(cn=%s) –

pfSense Squid Antivirus C-Icap Remove
pfSense Squid Antivirus C-Icap Remove
  • c-icap.conf – ganz unten einfügen:

Service squid_clamav squidclamav.so

pfSense Squid ClamAV Service
pfSense Squid ClamAV Service

Konfiguration mit Button Speichern klicken, abschließen. Dies kann nun ein wenig dauern, denn im Hintergrund wird versucht Freshclam, also die Signaturen und Pattern zu aktualisieren.

In der Konsole kann man folgendes ausführen:

# tail -f /var/log/clamav/freshclam.log

Wenn das passiert ist, bei mir musste ich 2, 3 Anläufe unternehmen.

pfSense Squid ClamAV Update Error
pfSense Squid ClamAV Update Error

Kann nun der Service Squid, c-icap und Antivirus neugestartet werden. Alle drei sollten im Status grün sein.

Falls etwas mit der Konfiguration nicht stimmen sollte, werden evtl. diese Fehler angezeigt:

pfSense Squid Antivirus Fehler
pfSense Squid Antivirus Fehler

Ein abschließender Test der Antivirusfunktion ist mittels EICAR Testvirus über die Homepage http://www.eicar.org möglich. Die Meldung im Browser beim öffnen des Archivs, sieht dann wie folgt aus:

pfSense Squid Antivirus EICAR
pfSense Squid Antivirus EICAR

 

6 Gedanken zu „pfSense – Squid als Transparenter Proxy mit Antivirus funktion für HTTP“

  1. Hallo, habe Squid mal installiert, aber wieder gelöscht. Nun werden aber immer noch Webseiten gesperrt. Fehlermeldung:
    Ihre Verbindung ist nicht privat. Wie kann ich dies ändern? Bei mir zu Hause läuft alles tadellos. In der Firma habe ich dieses Problem und Hr. Doktor meckert laufend. Bekomme es aber nicht hin. Bitte um Hilfe und Unterstützung. Vielen lieben Dank. VG Harald

    Antworten
    • Hi Harald,
      ich hatte dieses Problem noch nicht, kann dir keine direkte Lösung geben. Hast mal einen Neustart versucht? Ansonsten würde ich das Backup zurückspielen, aber das gibt es vermutlich nicht. Ansonsten mal auf Befehlsebene nach dem rechten schauen und evtl. deinstallieren, ggf. auch von Hand. Prozess stoppen, oder das Paket neuinstallieren und dann deinstallieren.

      Antworten
  2. Super Anleitung!

    Kleines Problem. Im Realtime Monitor unter “Services” -> “squid proxyserver”
    wird unter C-Icap accesslogs und C-ICAP Serverlogs
    nichts angezeigt, obwohl die Dateien existieren?

    mfg jogy_s

    Antworten

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.