OPNsense Squid ClamAV: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
= Vorraussetzungen =
+
= Zu installieren =
==Selbstsigniertes CA Zertifikat==
+
 
*System
+
* os-squid
**Trust
+
* os-clamav
***Authorities
+
* os-c-icap
****+
+
 
 +
= Administration =
 +
 
 +
== Services: Squid Web Proxy: Administration: General Proxy Settings ==
 +
 
 +
;Die Seite zeigt alle Felder erst bei eingeschaltetem "advanced mode"
 +
 
 
{| class="wikitable"
 
{| class="wikitable"
! Bereich !! Einstellung !! Wert
+
! Parameter !! Wert !! Bedeutung
 
|-
 
|-
| Method || Create an internal Certificate Authority ||
+
| Proxy interfaces || LAN || Interfaces auf denen der Proxy lauscht
 
|-
 
|-
| Description || SQUID-CA ||
+
| Proxy port || 3128 || Port fuer unverschluesselte Anfragen
 
|-
 
|-
| Key || Key type || RSA-2048
+
| Enable Transparent HTTP proxy || (x) || Clients muessen nicht umkonfiguriert werden, die Anfragen werden umgelenkt
 
|-
 
|-
| Key || Digest Algorithm || SHA256
+
| Enable SSL inspection || (x) || Squid bricht die TLS-Verbindung auf und sieht den Inhalt
 
|-
 
|-
| Key || Issuer || self-signed
+
| Log SNI information only || ( ) || Nur den angefragten Namen protokollieren, ohne den Inhalt zu entschluesseln
 
|-
 
|-
| Key || Lifetime (days) || 825
+
| SSL Proxy port || 3129 || Port fuer die aufgebrochenen TLS-Verbindungen
 
|-
 
|-
| General || Country Code || Germany
+
| CA to use || xinux-ca || CA mit der Squid die Zertifikate fuer die Clients ausstellt
 
|-
 
|-
| General || Common Name || squid-ca
+
| SSL no bump sites || || Ziele die vom Aufbrechen ausgenommen bleiben
 
|}
 
|}
  
==Update==
+
;Das Zertifikat der CA muss auf den Clients installiert sein, sonst meldet jeder Browser einen Zertifikatsfehler
*System
+
 
**Firmware
+
= Verbindung zu C-ICAP =
***Status
+
 
***Check for updates
+
== Services: Squid Web Proxy: Administration: Forward Proxy ==
==Plugins==
 
*System
 
**Firmware
 
***Plugins
 
;Installieren
 
*os-squid
 
*os-c-icap
 
*os-clamav
 
  
= Firewall =
 
;Destination NAT
 
*Firewall
 
**NAT
 
***Destination NAT
 
 
{| class="wikitable"
 
{| class="wikitable"
! Interface !! Version !! Protocol !! Source !! Source Port !! Destination !! Destination Port !! Redirect Target IP !! Redirect Target Port !! Description
+
! Parameter !! Wert !! Bedeutung
 
|-
 
|-
| INSIDE || IPv4 || TCP || * || * || * || https || 127.0.0.1 || 3129 || transparenter HTTPS
+
| Enable ICAP || (x) || Squid reicht die Daten an einen ICAP-Dienst weiter
 
|-
 
|-
| INSIDE || IPv4 || TCP || * || * || * || http || 127.0.0.1 || 3128 || transparenter HTTP
+
| Request Modify URL || icap://[::1]:1344/avscan || Adresse des Dienstes fuer ausgehende Anfragen
 +
|-
 +
| Response Modify URL || icap://[::1]:1344/avscan || Adresse des Dienstes fuer die Antworten
 +
|-
 +
| Exclusion List || || Ziele die nicht geprueft werden
 
|}
 
|}
;Rules
+
 
*Firewall
+
= C-ICAP aktivieren =
**Rules
+
 
***LAN
+
== Services: C-ICAP: Configuration: General ==
 +
 
 
{| class="wikitable"
 
{| class="wikitable"
! Action !! Protocol !! Source !! Source Port !! Destination !! Destination Port !! Gateway !! Schedule !! Description
+
! Parameter !! Wert !! Bedeutung
 +
|-
 +
| Enable c-icap service || (x) || Startet den Dienst
 +
|-
 +
| Timeout || 300 || Wartezeit auf den Client in Sekunden
 +
|-
 +
| Max keepalive requests || 100 || Anfragen pro offener Verbindung
 +
|-
 +
| Max keepalive timeout || 600 || Wie lange eine Verbindung offen bleibt
 +
|-
 +
| Start servers || 3 || Beim Start gestartete Prozesse
 
|-
 
|-
| IPv4 TCP || * || * || * || 127.0.0.1 || 3128 || * || * || transparenter HTTP
+
| Max servers || 10 || Obergrenze der Prozesse
 
|-
 
|-
| IPv4 TCP || * || * || * || 127.0.0.1 || 3129 || * || * || transparenter HTTPS
+
| Min spare threads || 10 || Mindestzahl wartender Threads
 +
|-
 +
| Max spare threads || 20 || Hoechstzahl wartender Threads
 +
|-
 +
| Threads per child || 10 || Threads je Prozess
 +
|-
 +
| Max requests per child || 0 || Anfragen bis ein Prozess neu gestartet wird, 0 heisst unbegrenzt
 +
|-
 +
| Listen address || ::1 || Adresse auf der C-ICAP lauscht, passend zur ICAP-URL in Squid
 +
|-
 +
| Server admin || || Kontaktadresse
 +
|-
 +
| Servername || || Name des Dienstes
 +
|-
 +
| Enable access logging || (x) || Zugriffe protokollieren
 +
|-
 +
| Use c-icap with local squid || (x) || Bindet den Dienst an den lokalen Squid
 
|}
 
|}
  
= Squid =
+
= Was soll gescannt werden =
;Aktivieren
+
 
*Services
+
== Services: C-ICAP: Configuration: Antivirus ==
**Squid Web Proxy
+
 
***Administration
 
 
{| class="wikitable"
 
{| class="wikitable"
! Bereich !! Einstellung !! Wert
+
! Parameter !! Wert !! Bedeutung
 +
|-
 +
| Enable ClamAV || (x) || ClamAV als Scan-Engine verwenden
 +
|-
 +
| Scan for filetypes || Text files, Binary files, Executables, Archives, GIF anim || Welche Dateitypen geprueft werden
 +
|-
 +
| Send percentage data || 5 || Anteil der Daten der schon vor dem Scan an den Client geht
 +
|-
 +
| Start send percentage data || 2M || Ab welcher Groesse damit begonnen wird
 +
|-
 +
| Allow 204 responses || ( ) || Erlaubt dem Scanner unveraenderte Daten zurueckzuweisen statt sie zu senden
 
|-
 
|-
| General Proxy Settings || Enable proxy || aktiviert
+
| Pass on error || ( ) || Bei einem Fehler des Scanners wird der Inhalt nicht durchgelassen
 
|-
 
|-
| General Proxy Settings || User error pages || Squid
+
| Max object size || 5M || Groessere Objekte werden nicht geprueft
 
|}
 
|}
;Grundeinstellung
+
 
*Services
+
;Send percentage data verhindert, dass der Browser bei grossen Dateien in einen Timeout laeuft, waehrend der Scanner noch arbeitet
**Squid Web Proxy
+
 
***Administration
+
= CLAM-AV =
****Forward Proxy
+
 
*****General Forward Settings
+
== Services: ClamAV: Configuration: General ==
 +
 
 
{| class="wikitable"
 
{| class="wikitable"
! Bereich !! Einstellung !! Wert
+
! Parameter !! Wert !! Bedeutung
 +
|-
 +
| Enable clamd service || (x) || Der eigentliche Scan-Dienst
 +
|-
 +
| Enable freshclam service || (x) || Holt die Signaturen automatisch nach
 +
|-
 +
| Enable TCP port || (x) || clamd ueber TCP erreichbar
 +
|-
 +
| Maximum number of threads running || 10 || Gleichzeitige Scans
 +
|-
 +
| Maximum number of queued items || 100 || Warteschlange
 +
|-
 +
| Idle timeout || 30 || Leerlaufzeit eines Threads
 +
|-
 +
| Max directory recursion || 20 || Verschachtelungstiefe bei Verzeichnissen
 +
|-
 +
| Follow directory symlinks || ( ) || Verzeichnis-Symlinks verfolgen
 +
|-
 +
| Follow regular file symlinks || ( ) || Datei-Symlinks verfolgen
 
|-
 
|-
| General Proxy Settings || Proxy interfaces || INSIDE
+
| Disable cache || ( ) || Ergebnisse zwischenspeichern
 
|-
 
|-
| General Proxy Settings || Proxy port || 3128
+
| Scan portable executable || (x) || Windows-Programme pruefen
 
|-
 
|-
| General Proxy Settings || Enable Transparent HTTP proxy || aktiviert
+
| Scan executable and linking format || (x) || ELF, also Linux-Programme pruefen
 
|-
 
|-
| General Proxy Settings || Enable SSL inspection || aktiviert
+
| Detect broken executables || ( ) || Beschaedigte Programmdateien melden
 
|-
 
|-
| General Proxy Settings || Log SNI information only || deaktiviert
+
| Scan OLE2 || (x) || Alte Office-Formate pruefen
 
|-
 
|-
| General Proxy Settings || SSL Proxy port || 3129
+
| OLE2 block macros || ( ) || Makros grundsaetzlich blocken
 
|-
 
|-
| General Proxy Settings || CA to use || SQUID-CA
+
| Scan PDF files || (x) || PDF pruefen
 
|-
 
|-
| General Proxy Settings || SSL no bump sites || -
+
| Scan SWF || (x) || Flash pruefen
 +
|-
 +
| Scan XMLDOCS || (x) || Neue Office-Formate pruefen
 +
|-
 +
| Scan HWP3 || (x) || Hangul-Office pruefen
 +
|-
 +
| Decode mail files || (x) || Mailanhaenge auspacken und pruefen
 +
|-
 +
| Scan HTML || (x) || HTML pruefen
 +
|-
 +
| Scan archives || (x) || Archive auspacken und pruefen
 +
|-
 +
| Block encrypted archive || ( ) || Verschluesselte Archive verwerfen, da nicht pruefbar
 +
|-
 +
| Max scan size || 100M || Obergrenze der geprueften Datenmenge je Objekt
 +
|-
 +
| Max file size || 25M || Obergrenze je Datei
 +
|-
 +
| Max recursion || 16 || Verschachtelungstiefe bei Archiven
 +
|-
 +
| Max files || 10000 || Dateien je Archiv
 +
|-
 +
| ClamAV log verbose || (x) || Ausfuehrliches Protokoll
 +
|-
 +
| Freshclam log verbose || (x) || Ausfuehrliches Protokoll des Updaters
 +
|-
 +
| Freshclam database mirror || db.ac.clamav.net || Quelle der Signaturen
 +
|-
 +
| Freshclam connect timeout || 60 || Wartezeit beim Abholen
 
|}
 
|}
;ICAP
+
 
*Services
+
= Weitere Virensignaturen =
**Squid Web Proxy
+
 
***Administration
+
;Ebenfalls unter Services: ClamAV: Configuration: General
****Forward Proxy
+
 
*****General Forward Settings
 
******ICAP
 
Services: Squid Web Proxy: Administration
 
 
{| class="wikitable"
 
{| class="wikitable"
! Bereich !! Einstellung !! Wert
+
! Parameter !! Wert !! Bedeutung
 
|-
 
|-
| General Proxy Settings || Enable ICAP || aktiviert
+
| Add Malware Expert Signatures || (x) || Signaturen von Malware Expert, Nutzung auf eigenes Risiko
 
|-
 
|-
| General Proxy Settings || Request Modify URL || icap://[::1]:1344/avscan
+
| Add BLURL Signatures || (x) || Signaturen von BLURL, Nutzung auf eigenes Risiko
 
|-
 
|-
| General Proxy Settings || Response Modify URL || icap://[::1]:1344/avscan
+
| Add JURLBLA Signatures || (x) || Signaturen von Sanesecurity JURLBLA, Nutzung auf eigenes Risiko
 
|-
 
|-
| General Proxy Settings || Exclusion List || -
+
| Add BOFHLand Signatures || (x) || Signaturen von Sanesecurity BOFHLand, Nutzung auf eigenes Risiko
 
|}
 
|}
  
= C-ICAP =
+
= Sind die Standard Virensignaturen da? =
*Services
 
**C-ICAP
 
***Configuration
 
****General
 
  
[[Datei:opnsense-squid-clam-06.png|1500px]]
+
== Services: ClamAV: Configuration: Versions ==
  
[[Datei:opnsense-squid-clam-07.png|1500px]]
+
{| class="wikitable"
 +
! Zeile !! Bedeutung
 +
|-
 +
| ClamAV engine version || Version der Scan-Engine
 +
|-
 +
| main || Hauptdatenbank mit Version, Anzahl Signaturen und Baudatum
 +
|-
 +
| daily || Taegliche Ergaenzungen
 +
|-
 +
| bytecode || Bytecode-Signaturen
 +
|-
 +
| Total number of signatures || Summe aller geladenen Signaturen
 +
|}
 +
 
 +
;Stehen die Zeilen nicht da, freshclam auf der Konsole ausfuehren
 +
 
 +
*freshclam
 +
 
 +
= Portforwarding =
 +
 
 +
== Firewall: NAT: Port Forward ==
  
= ClamAV =
+
{| class="wikitable"
* Im Moment funktioniert das Updaten der Datenbank nicht über die Weboberfläche
+
! Interface !! Proto !! Source Address !! Source Ports !! Destination Address !! Destination Ports !! NAT IP !! NAT Ports !! Description
* auf der Kommandozeile muss der folgende Befehl manuell ausgeführt werden
+
|-
* '''freshclam'''
+
| LAN || TCP || * || * || LAN address || 22, 80, 4444 || * || * || Anti-Lockout Rule
* Danach sollten unter '''Services => ClamAV => Configuration => Versions''' die aktuellen Signaturen angezeigt werden
+
|-
==Test ob die Ports laufen==
+
| WAN || TCP || * || * || WAN net || 9922 || webserver || 22 (SSH) ||
*sockstat -P tcp  | egrep "squid|clamav|icap"
+
|-
<pre>
+
| WAN || TCP || * || * || WAN net || 9923 || purple || 22 (SSH) ||
c_icap  c-icap    79193 3  tcp6  *:1344                *:*
+
|-
c_icap  c-icap    78528 3  tcp6  *:1344                *:*
+
| WAN || TCP || * || * || WAN net || 9924 || kali || 22 (SSH) ||
c_icap  c-icap    78447 3  tcp6  *:1344                *:*
+
|-
c_icap  c-icap    78447 9  tcp6  ::1:1344              ::1:6597
+
| WAN || TCP || * || * || WAN net || 5601 || purple || 5601 ||
c_icap  c-icap    78447 10  tcp6  ::1:1344              ::1:41124
+
|-
c_icap  c-icap    78152 3  tcp6  *:1344                *:*
+
| LAN || TCP || LAN net || * || * || 80 (HTTP) || 127.0.0.1 || 3128 || redirect traffic to proxy
squid    squid      31274 15  tcp6  ::1:6597              ::1:1344
+
|-
squid    squid      31274 19  tcp6  ::1:41124            ::1:1344
+
| LAN || TCP || LAN net || * || * || 443 (HTTPS) || 127.0.0.1 || 3129 || redirect traffic to proxy
squid    squid      31274 22  tcp4  127.0.0.1:3128        *:*
+
|}
squid    squid      31274 23  tcp6  ::1:3128              *:*
 
squid    squid      31274 24  tcp4  127.0.0.1:3129        *:*
 
squid    squid      31274 25  tcp6  ::1:3129              *:*
 
squid    squid      31274 26  tcp4  172.17.213.1:3128    *:*
 
clamav  clamd      2247 4  tcp4  127.0.0.1:3310        *:*
 
</pre>
 
  
= Testen =
+
;Die beiden letzten Regeln machen den Proxy transparent, sie lenken den Verkehr der Clients auf die Ports von Squid um
 +
;Die Anti-Lockout Rule wird vom System selbst angelegt
  
Der Download aus dem LAN sollte für die Testviren auf [https://www.eicar.org/download-anti-malware-testfile/ eicar.org] blockiert werden.
+
= Weitere Patterns =
  
*https://www.eicar.org/download-anti-malware-testfile/
+
* https://opnsense.tools/clamav-erweitern/
 +
* https://ftp.swin.edu.au/sanesecurity/

Version vom 30. August 2026, 15:42 Uhr

Zu installieren

  • os-squid
  • os-clamav
  • os-c-icap

Administration

Services: Squid Web Proxy: Administration: General Proxy Settings

Die Seite zeigt alle Felder erst bei eingeschaltetem "advanced mode"
Parameter Wert Bedeutung
Proxy interfaces LAN Interfaces auf denen der Proxy lauscht
Proxy port 3128 Port fuer unverschluesselte Anfragen
Enable Transparent HTTP proxy (x) Clients muessen nicht umkonfiguriert werden, die Anfragen werden umgelenkt
Enable SSL inspection (x) Squid bricht die TLS-Verbindung auf und sieht den Inhalt
Log SNI information only ( ) Nur den angefragten Namen protokollieren, ohne den Inhalt zu entschluesseln
SSL Proxy port 3129 Port fuer die aufgebrochenen TLS-Verbindungen
CA to use xinux-ca CA mit der Squid die Zertifikate fuer die Clients ausstellt
SSL no bump sites Ziele die vom Aufbrechen ausgenommen bleiben
Das Zertifikat der CA muss auf den Clients installiert sein, sonst meldet jeder Browser einen Zertifikatsfehler

Verbindung zu C-ICAP

Services: Squid Web Proxy: Administration: Forward Proxy

Parameter Wert Bedeutung
Enable ICAP (x) Squid reicht die Daten an einen ICAP-Dienst weiter
Request Modify URL icap://[::1]:1344/avscan Adresse des Dienstes fuer ausgehende Anfragen
Response Modify URL icap://[::1]:1344/avscan Adresse des Dienstes fuer die Antworten
Exclusion List Ziele die nicht geprueft werden

C-ICAP aktivieren

Services: C-ICAP: Configuration: General

Parameter Wert Bedeutung
Enable c-icap service (x) Startet den Dienst
Timeout 300 Wartezeit auf den Client in Sekunden
Max keepalive requests 100 Anfragen pro offener Verbindung
Max keepalive timeout 600 Wie lange eine Verbindung offen bleibt
Start servers 3 Beim Start gestartete Prozesse
Max servers 10 Obergrenze der Prozesse
Min spare threads 10 Mindestzahl wartender Threads
Max spare threads 20 Hoechstzahl wartender Threads
Threads per child 10 Threads je Prozess
Max requests per child 0 Anfragen bis ein Prozess neu gestartet wird, 0 heisst unbegrenzt
Listen address ::1 Adresse auf der C-ICAP lauscht, passend zur ICAP-URL in Squid
Server admin Kontaktadresse
Servername Name des Dienstes
Enable access logging (x) Zugriffe protokollieren
Use c-icap with local squid (x) Bindet den Dienst an den lokalen Squid

Was soll gescannt werden

Services: C-ICAP: Configuration: Antivirus

Parameter Wert Bedeutung
Enable ClamAV (x) ClamAV als Scan-Engine verwenden
Scan for filetypes Text files, Binary files, Executables, Archives, GIF anim Welche Dateitypen geprueft werden
Send percentage data 5 Anteil der Daten der schon vor dem Scan an den Client geht
Start send percentage data 2M Ab welcher Groesse damit begonnen wird
Allow 204 responses ( ) Erlaubt dem Scanner unveraenderte Daten zurueckzuweisen statt sie zu senden
Pass on error ( ) Bei einem Fehler des Scanners wird der Inhalt nicht durchgelassen
Max object size 5M Groessere Objekte werden nicht geprueft
Send percentage data verhindert, dass der Browser bei grossen Dateien in einen Timeout laeuft, waehrend der Scanner noch arbeitet

CLAM-AV

Services: ClamAV: Configuration: General

Parameter Wert Bedeutung
Enable clamd service (x) Der eigentliche Scan-Dienst
Enable freshclam service (x) Holt die Signaturen automatisch nach
Enable TCP port (x) clamd ueber TCP erreichbar
Maximum number of threads running 10 Gleichzeitige Scans
Maximum number of queued items 100 Warteschlange
Idle timeout 30 Leerlaufzeit eines Threads
Max directory recursion 20 Verschachtelungstiefe bei Verzeichnissen
Follow directory symlinks ( ) Verzeichnis-Symlinks verfolgen
Follow regular file symlinks ( ) Datei-Symlinks verfolgen
Disable cache ( ) Ergebnisse zwischenspeichern
Scan portable executable (x) Windows-Programme pruefen
Scan executable and linking format (x) ELF, also Linux-Programme pruefen
Detect broken executables ( ) Beschaedigte Programmdateien melden
Scan OLE2 (x) Alte Office-Formate pruefen
OLE2 block macros ( ) Makros grundsaetzlich blocken
Scan PDF files (x) PDF pruefen
Scan SWF (x) Flash pruefen
Scan XMLDOCS (x) Neue Office-Formate pruefen
Scan HWP3 (x) Hangul-Office pruefen
Decode mail files (x) Mailanhaenge auspacken und pruefen
Scan HTML (x) HTML pruefen
Scan archives (x) Archive auspacken und pruefen
Block encrypted archive ( ) Verschluesselte Archive verwerfen, da nicht pruefbar
Max scan size 100M Obergrenze der geprueften Datenmenge je Objekt
Max file size 25M Obergrenze je Datei
Max recursion 16 Verschachtelungstiefe bei Archiven
Max files 10000 Dateien je Archiv
ClamAV log verbose (x) Ausfuehrliches Protokoll
Freshclam log verbose (x) Ausfuehrliches Protokoll des Updaters
Freshclam database mirror db.ac.clamav.net Quelle der Signaturen
Freshclam connect timeout 60 Wartezeit beim Abholen

Weitere Virensignaturen

Ebenfalls unter Services
ClamAV: Configuration: General
Parameter Wert Bedeutung
Add Malware Expert Signatures (x) Signaturen von Malware Expert, Nutzung auf eigenes Risiko
Add BLURL Signatures (x) Signaturen von BLURL, Nutzung auf eigenes Risiko
Add JURLBLA Signatures (x) Signaturen von Sanesecurity JURLBLA, Nutzung auf eigenes Risiko
Add BOFHLand Signatures (x) Signaturen von Sanesecurity BOFHLand, Nutzung auf eigenes Risiko

Sind die Standard Virensignaturen da?

Services: ClamAV: Configuration: Versions

Zeile Bedeutung
ClamAV engine version Version der Scan-Engine
main Hauptdatenbank mit Version, Anzahl Signaturen und Baudatum
daily Taegliche Ergaenzungen
bytecode Bytecode-Signaturen
Total number of signatures Summe aller geladenen Signaturen
Stehen die Zeilen nicht da, freshclam auf der Konsole ausfuehren
  • freshclam

Portforwarding

Firewall: NAT: Port Forward

Interface Proto Source Address Source Ports Destination Address Destination Ports NAT IP NAT Ports Description
LAN TCP * * LAN address 22, 80, 4444 * * Anti-Lockout Rule
WAN TCP * * WAN net 9922 webserver 22 (SSH)
WAN TCP * * WAN net 9923 purple 22 (SSH)
WAN TCP * * WAN net 9924 kali 22 (SSH)
WAN TCP * * WAN net 5601 purple 5601
LAN TCP LAN net * * 80 (HTTP) 127.0.0.1 3128 redirect traffic to proxy
LAN TCP LAN net * * 443 (HTTPS) 127.0.0.1 3129 redirect traffic to proxy
Die beiden letzten Regeln machen den Proxy transparent, sie lenken den Verkehr der Clients auf die Ports von Squid um
Die Anti-Lockout Rule wird vom System selbst angelegt

Weitere Patterns