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.

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.

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.

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.