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
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.
Zur Installation rechts auf den Button klicken. Danach die Installation mit dem Button Confirm bestätigen und warten.
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.
Im Menü über Services -> Proxy Server aufrufen
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.
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
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
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
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
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
Squid Memory Cache Settings
- Memory cache size -> 512
- Maximum object size in RAM -> 256
- Memory replacement policy -> Heap GDSF
Dynamic and Update Content
- Cache Dynamic Content -> checked
- Refresh Paterns -> keine Auswahl
- Custom refresh_patterns -> leer
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
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
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
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
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
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
Advanced options – c-icap.con
- c-icap.conf – Zeile entfernen:
Manager: Apassword@ldap.chtsanti.net?o=chtsanti?mermberuid?(&(objectClass=posixGroup)(cn=%s) –
- c-icap.conf – ganz unten einfügen:
Service squid_clamav squidclamav.so
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.
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:
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:
Interessiert in verschiedenste IT Themen, schreibe ich in diesem Blog über Software, Hardware, Smart Home, Games und vieles mehr. Ich berichte z.B. über die Installation und Konfiguration von Software als auch von Problemen mit dieser. News sind ebenso spannend, sodass ich auch über Updates, Releases und Neuigkeiten aus der IT berichte. Letztendlich nutze ich Taste-of-IT als eigene Dokumentation und Anlaufstelle bei wiederkehrenden Themen. Ich hoffe ich kann dich ebenso informieren und bei Problemen eine schnelle Lösung anbieten. Wer meinen Aufwand unterstützen möchte, kann gerne eine Tasse oder Pod Kaffe per PayPal spenden – vielen Dank.
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
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.
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
Hallo, danke und das mit dem Realtime Monitor schau ich mir mal an. Aktuell habe ich Null Zeit ,(. Ich vermute aber es ist ein pfSense/Paket -problem.
Sehr cool,
Danke
Ein paar andere Tutorial´s sind sicher auch ganz interessant 😉
Danke für die Rückmeldung. Bei der knappen Zeit die ich habe freue ich mich, geholfen zu haben und für dein Feedback 😉