Squid und ClamAV

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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
  • Eskann daher als Echtzeitscanner verwendet werden.

Schaubild

Installation von Clamav

  • apt install c-icap clamav clamdscan clamav-daemon libicapapi-dev libssl-dev git

Tool zum kompilieren

apt install gcc make

Über git clone squidclamav Source herunterladen

Kompilieren

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

Squid Konfiguration erweitern

/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
...

c-icap aktivieren

  • cat /etc/default/c-icap
START=yes
  • cat /etc/c-icap/c-icap.conf
Service squidclamav squidclamav.so

diverse Dienste starten

  • systemctl restart clamav-freshclam.service clamav-daemon.service c-icap.service squid

Update

cd /var/lib/clamav/
wget https://www.danami.com/hotfix/main.cvd
wget https://www.danami.com/hotfix/daily.cld
chown clamav:clamav main.cvd
chown clamav:clamav daily.cld
systemctl restart clamav-daemon

Hier kann man Testen

Der Log zum clamav

  • tail -f /var/log/clamav/clamav.log
Tue Sep 27 15:12:56 2022 -> instream(local): Win.Test.EICAR_HDB-1(44d88612fea8a8f36de82e1278abb02f:68) FOUND
Tue Sep 27 15:13:05 2022 -> instream(local): Win.Test.EICAR_HDB-1(44d88612fea8a8f36de82e1278abb02f:68) FOUND
Tue Sep 27 15:13:16 2022 -> instream(local): Win.Test.EICAR_HDB-1(e4968ef99266df7c9a1f0637d2389dab:308) FOUND
Tue Sep 27 15:14:12 2022 -> instream(local): Win.Test.EICAR_HDB-1(e4968ef99266df7c9a1f0637d2389dab:308) FOUND
Tue Sep 27 15:15:43 2022 -> instream(local): Win.Test.EICAR_HDB-1(44d88612fea8a8f36de82e1278abb02f:68) FOUND
Tue Sep 27 15:16:50 2022 -> instream(local): Win.Test.EICAR_HDB-1(e4968ef99266df7c9a1f0637d2389dab:308) FOUND
Tue Sep 27 15:16:57 2022 -> instream(local): Win.Test.EICAR_HDB-1(44d88612fea8a8f36de82e1278abb02f:68) FOUND

Links