Squid-Kit-Clamav Rocky: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (2 dazwischenliegende Versionen desselben Benutzers werden 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 | + | *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> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
=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.
- git clone https://github.com/darold/squidclamav
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]
