Nextcloud – Virenchecker

Was wir in unseren Nextcloud Datenbestand auf keinen Fall brauchen können, sind Schädlinge. Um diese schon beim Upload zu erkennen, rüsten wir heute eine Antivirussoftware nach.

ClamAV New Logo
https://handwiki.org/wiki/File:New_ClamAV_Logo.svg
New_ClamAV_LogoCreative Commons Attribution-ShareAlike 4.0 International License . loading=
ClamAV New Logo

Antivirus

Ein Virenchecker erkennt anhand von Signaturen den Schädling in einer Datei und ergreift passende Sicherheitsmaßnahmen, damit der Rechner nicht kompromittiert wird.

ClamAV

ClamAV ist ein bewährtes, unter GPL stehender, frei verfügbarer Virenchecker, der nicht nur als Dateiscanner sondern auch als Service arbeiten kann.

Voraussetzungen

Für diesen Post benötigst du ein lauffähig aufgesetztes Nextcloudsystem.

Installation

ClamAV lässt sich hervorragend in einem eigenen Dockercontainer installieren. Dazu erweitere ich meine docker-compose.yml für Nextcloud um einen Eintrag für ClamAV

version: "3.8"

services:
  nextcloud:
    image: nextcloud:latest
    container_name: nextcloud
    restart: always
    ports:
      - "9000:80"  # Nur intern, nginx übernimmt externen Zugang
    environment:
      - MYSQL_PASSWORD=SW_Ep.6:ROTJ
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=database
    volumes:
      - /mnt/nextcloud/nextcloud/html:/var/www/html
      - /mnt/nextcloud/nextcloud/apps:/var/www/html/custom_apps
      - /mnt/nextcloud/nextcloud/config:/var/www/html/config
      - /mnt/nextcloud/nextcloud/data:/var/www/html/data
    networks:
      - nextcloudnet
  clamav:
    image: clamav/clamav-debian
    container_name: clamav
    restart: unless-stopped
    ports:
      - "3310:3310"  # TCP-Port für clamd
    volumes:
      - /opt/clamav:/var/lib/clamav

networks:
  nextcloudnet:
    driver: bridge

Nextcloud Anbindung

In Nextcloud musst du zuerst die App „Antivirus for Files“ installieren. Diese kannst du über die Suchfunktion in der oberen Leiste des Nextcloud WebUI finden oder über Apps/Vorgestellte Apps. Diese App musst du Herunterladen und Aktivieren.

Suchen nach der Antivirus App in der Titelleiste
raspithek.de - Olli Graf
search-appCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Suchen nach der Antivirus App in der Titelleiste

Im nächsten Schritt richtest du auf der Administrationsseite unter Sicherheit die Kommunikation zwischen Nextcloud und ClamAV ein. Stellst du den Modus auf „ClamAV-Daemon“ unter Host trägst du die IP deines Nextcloud Raspis ein (oder des Pi, auf dem der ClamAV Container läuft). Wichtig ist, das dort die IP steht. mit „localhost“ oder „127.00.1“ hat das bei mir nicht funktioniert.

Konfigurationsblock "Antivirus für Dateien"
raspithek.de - Olli Graf
nextcloud-antivirus-configCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Konfigurationsblock „Antivirus für Dateien“

Danach klickst auf den Speicherbutton unterhalb des Abschnitts. Damit ist ClamAV schon installiert und angebunden.

Test

Ohne einen Test können wir natürlich nicht sicher sein, dass der Mechanismus funktioniert. Dazu nehmen wir natürlich keine echte, verseuchte Datei. Sondern eine Testdatei, die zwar eine Virussignatur trägt, aber keinen Schädling enthält. Wenn ich die Testdatei in einem beliebigen Verzeichnis meines Nextcloud Ordners speichere, zeigt mir der Client einen Uploadfehler an, weil Nextcloud durch ClamAV daran gehindert wird, die vermeintlich schädliche Datei anzunehmen. Im Protokoll von Nextcloud finde diesen Eintrag

InvalidContentException
Der Virus Win.Test.EICAR_HDB-1 wurde in der Datei gefunden. Das Hochladen kann nicht abgeschlossen werden.

Fazit

Die Anbindung von ClamAV als Antivirus Programm ist nicht schwer und verspricht eine gewisse Sicherheit gegenüber Schädlingen. Beachte bitte, das ClamAV seine Datei mit den Virussignaturen nur beim Start des Containers aktualisiert, daher solltest du das ggf. per Cron regelmäßig machen.

Schreibe einen Kommentar

Insert math as
Block
Inline
Additional settings
Formula color
Text color
#333333
Type math using LaTeX
Preview
\({}\)
Nothing to preview
Insert
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Olli Graf - raspithek.de
WordPress Cookie Hinweis von Real Cookie Banner