Squid-Kit-Clamav Rocky: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 25: Zeile 25:
 
*dnf install -y epel-release
 
*dnf install -y epel-release
 
;Pakete installieren
 
;Pakete installieren
*dnf install -y clamav clamd clamav-update c-icap c-icap-libs c-icap-modules git gcc make c-icap-devel
+
*dnf install -y clamav clamd clamav-update c-icap c-icap-libs c-icap-modules git gcc make c-icap-devel redhat-rpm-config
  
 
== Pakete zur Installation ==
 
== Pakete zur Installation ==
Zeile 42: Zeile 42:
 
=== c-icap-modules ===
 
=== c-icap-modules ===
 
*Zusätzliche Module für c-icap, wird für squidclamav benötigt
 
*Zusätzliche Module für c-icap, wird für squidclamav benötigt
 +
=== c-icap-devel ===
 +
*Entwicklungsbibliotheken für c-icap
 +
*Wird benötigt damit squidclamav gegen c-icap kompiliert werden kann
 +
=== redhat-rpm-config ===
 +
*Enthält Red Hat spezifische Compiler-Spec-Dateien
 +
*Wird beim Kompilieren von squidclamav auf Rocky Linux benötigt
 
=== git / gcc / make ===
 
=== git / gcc / make ===
 
*Werden benötigt um squidclamav aus dem Quellcode zu kompilieren
 
*Werden benötigt um squidclamav aus dem Quellcode zu kompilieren
Zeile 52: Zeile 58:
 
*cd squidclamav
 
*cd squidclamav
 
*./configure && make && make install
 
*./configure && make && make install
 +
 +
=clamd Konfiguration=
 +
;clamd kommuniziert über einen Unix-Socket mit squidclamav
 +
;Der Socket-Pfad und die Zugriffsrechte müssen korrekt gesetzt sein
 +
*vi /etc/clamd.d/scan.conf
 +
;Folgende Zeilen einkommentieren bzw. anpassen
 +
LocalSocket /run/clamd.scan/clamd.sock
 +
LocalSocketGroup virusgroup
 +
LocalSocketMode 666
 +
 +
;Da /run beim Booten neu erstellt wird, muss das Verzeichnis dauerhaft korrekt angelegt werden
 +
;systemd-tmpfiles übernimmt das beim Systemstart
 +
*vi /etc/tmpfiles.d/clamd.conf
 +
d /run/clamd.scan 0755 clamscan virusgroup -
 +
 +
=squidclamav Konfiguration=
 +
;squidclamav muss wissen wo der clamd Socket liegt
 +
*vi /etc/c-icap/squidclamav.conf
 +
;Ersetze diese Zeile
 +
clamd_local /var/run/clamav/clamd.ctl
 +
;Durch diese Zeile
 +
clamd_local /run/clamd.scan/clamd.sock
 +
;Fehlerseite zuweisen — Ersetze diese Zeile
 +
redirect http://proxy.domain.dom/cgi-bin/clwarn.cgi
 +
;Durch diese Zeile
 +
redirect https://virus-found.xinux.de
 +
;Wer dies selbst aufsetzen will
 +
*[[Squid-Clamav-Virus-detect]]
 +
 +
=c-icap Konfiguration=
 +
;squidclamav als Modul in c-icap eintragen
 +
*echo "Service squidclamav squidclamav.so" >> /etc/c-icap/c-icap.conf
 +
 +
;c-icap muss nach clamd starten — sonst kann squidclamav den Socket nicht erreichen
 +
;systemd Override erstellen
 +
*systemctl edit c-icap
 +
[Unit]
 +
After=clamd@scan.service
 +
Requires=clamd@scan.service
 +
*systemctl daemon-reload
  
 
=Squid Konfiguration erweitern=
 
=Squid Konfiguration erweitern=
Zeile 71: Zeile 117:
 
adaptation_access service_resp allow all
 
adaptation_access service_resp allow all
 
</pre>
 
</pre>
 
=aktivieren=
 
;Modul squidclamav aktivieren
 
*echo "Service squidclamav squidclamav.so" >> /etc/c-icap/c-icap.conf
 
;Fehlerseite zuweisen
 
*vi /etc/c-icap/squidclamav.conf
 
;Ersetze diese Zeile
 
redirect http://proxy.domain.dom/cgi-bin/clwarn.cgi
 
;Durch diese Zeile
 
redirect https://virus-found.xinux.de
 
;Wer dies selbst aufsetzen will
 
*[[Squid-Clamav-Virus-detect]]
 
  
 
=Dienste starten=
 
=Dienste starten=
Zeile 100: Zeile 134:
 
=Der Log zum c-icap=
 
=Der Log zum c-icap=
 
*tail -f /var/log/c-icap/server.log
 
*tail -f /var/log/c-icap/server.log
 +
<pre>
 +
squidclamav.c LOG Virus found in https://secure.eicar.org/eicar.com ending download [stream: Win.Test.EICAR_HDB-1 FOUND]
 +
</pre>
  
 
=Links=
 
=Links=
 
*https://github.com/darold/squidclamav
 
*https://github.com/darold/squidclamav

Aktuelle Version vom 28. April 2026, 11:36 Uhr

Konzepte

ICAP

  • Allgemein ist ICAP ein schlankes Protokoll, um einen „Remote Procedure Call" für HTTP(S) und FTP auszuführen.
  • ICAP-Clients können HTTP-Daten an einen ICAP-Server weitergeben, der seinerseits die Inhalte umformt oder bearbeitet.
  • Der Server sendet die Daten nach der Bearbeitung zurück an den Client.
  • Normalerweise sind die adaptierten Inhalte HTTP(S)/FTP-Anfragen oder -Antworten.
  • Ein ICAP-Client ist im Normalfall ein Proxy, der HTTP(S)/FTP-Requests von einem Browser entgegennimmt.
  • Die Daten werden zu einem ICAP-Server gesendet, um dort bearbeitet zu werden.
  • Diese Bearbeitung kann eine Überprüfung des URL, ein Virenscan etc. sein.
  • Der Server sendet eine Antwort zurück, die dann über den ICAP-Client zurück zum Browser geht und dort angezeigt wird.
  • ICAP verwendet standardmäßig den TCP-Port 1344

ClamAV

  • ClamAV (Clam AntiVirus) ist ein unter der GNU General Public License stehendes Virenschutzprogramm
  • Bei ClamAV handelt es sich um eine Bibliothek, die in eigene Anwendungen eingebunden werden kann.
  • ClamAV läuft als Dienst im Hintergrund (Daemon) oder als eine Befehlszeilen-Anwendung.
  • Unter Linux greift ClamAV auf fanotify zurück, um den Zugriff auf das Dateisystem über den Virenscanner umzuleiten
  • Es kann daher als Echtzeitscanner verwendet werden.

Schaubild

Installation

EPEL aktivieren
  • dnf install -y epel-release
Pakete installieren
  • dnf install -y clamav clamd clamav-update c-icap c-icap-libs c-icap-modules git gcc make c-icap-devel redhat-rpm-config

Pakete zur Installation

clamav

  • Open-Source-Virenschutzprogramm
  • Überprüft Dateien und Daten auf Viren und Malware

clamd

  • Hintergrunddienst (Daemon) von ClamAV
  • Ermöglicht Virenscans im Echtzeitmodus

clamav-update

  • freshclam — aktualisiert die ClamAV-Virendatenbank automatisch

c-icap

  • ICAP-Server — nimmt Anfragen von Squid entgegen und leitet sie an ClamAV weiter

c-icap-libs

  • Bibliotheken für c-icap

c-icap-modules

  • Zusätzliche Module für c-icap, wird für squidclamav benötigt

c-icap-devel

  • Entwicklungsbibliotheken für c-icap
  • Wird benötigt damit squidclamav gegen c-icap kompiliert werden kann

redhat-rpm-config

  • Enthält Red Hat spezifische Compiler-Spec-Dateien
  • Wird beim Kompilieren von squidclamav auf Rocky Linux benötigt

git / gcc / make

  • Werden benötigt um squidclamav aus dem Quellcode zu kompilieren

Über git clone squidclamav Source herunterladen

"SquidClamAV" ist ein Drittanbieter-Plug-In für den Squid-Proxy-Server, das speziell zur Integration von ClamAV in den Proxy entwickelt wurde. SquidClamAV ermöglicht es Squid, den HTTP-Datenverkehr zu überwachen und nach Viren und Malware zu scannen.

Kompilieren

  • cd squidclamav
  • ./configure && make && make install

clamd Konfiguration

clamd kommuniziert über einen Unix-Socket mit squidclamav
Der Socket-Pfad und die Zugriffsrechte müssen korrekt gesetzt sein
  • vi /etc/clamd.d/scan.conf
Folgende Zeilen einkommentieren bzw. anpassen
LocalSocket /run/clamd.scan/clamd.sock
LocalSocketGroup virusgroup
LocalSocketMode 666
Da /run beim Booten neu erstellt wird, muss das Verzeichnis dauerhaft korrekt angelegt werden
systemd-tmpfiles übernimmt das beim Systemstart
  • vi /etc/tmpfiles.d/clamd.conf
d /run/clamd.scan 0755 clamscan virusgroup -

squidclamav Konfiguration

squidclamav muss wissen wo der clamd Socket liegt
  • vi /etc/c-icap/squidclamav.conf
Ersetze diese Zeile
clamd_local /var/run/clamav/clamd.ctl
Durch diese Zeile
clamd_local /run/clamd.scan/clamd.sock
Fehlerseite zuweisen — Ersetze diese Zeile
redirect http://proxy.domain.dom/cgi-bin/clwarn.cgi
Durch diese Zeile
redirect https://virus-found.xinux.de
Wer dies selbst aufsetzen will

c-icap Konfiguration

squidclamav als Modul in c-icap eintragen
  • echo "Service squidclamav squidclamav.so" >> /etc/c-icap/c-icap.conf
c-icap muss nach clamd starten — sonst kann squidclamav den Socket nicht erreichen
systemd Override erstellen
  • systemctl edit c-icap
[Unit]
After=clamd@scan.service
Requires=clamd@scan.service
  • systemctl daemon-reload

Squid Konfiguration erweitern

unter die http_access rules
  • vi /etc/squid/squid.conf
icap_enable on
icap_send_client_ip on
icap_send_client_username on
icap_client_username_encode off
icap_client_username_header X-Authenticated-User
icap_preview_enable on
icap_preview_size 1024

icap_service service_req reqmod_precache bypass=0 icap://127.0.0.1:1344/squidclamav
icap_service service_resp respmod_precache bypass=0 icap://127.0.0.1:1344/squidclamav

adaptation_access service_req allow all
adaptation_access service_resp allow all

Dienste starten

  • systemctl enable --now clamav-freshclam clamd@scan c-icap squid

Firewall

  • firewall-cmd --zone=public --add-port=1344/tcp --permanent
  • firewall-cmd --reload

Hier kann man Testen

Der Log zum clamav

  • tail -f /var/log/clamav/clamd.log
instream(local): Win.Test.EICAR_HDB-1(44d88612fea8a8f36de82e1278abb02f:68) FOUND

Der Log zum c-icap

  • tail -f /var/log/c-icap/server.log
squidclamav.c LOG Virus found in https://secure.eicar.org/eicar.com ending download [stream: Win.Test.EICAR_HDB-1 FOUND]

Links