Hulpartikel overzicht

Hulpartikel

ClamAV installeren en configureren in Ubuntu

ClamAV is een gratis, opensource-antivirusprogramma voor de detectie van onder andere trojans, virussen en malware op je VPS. In deze tutorial laten wij je zien hoe je ClamAV installeert in Ubuntu 16, of 18 (LTS en interim), zorgt dat ClamAV automatisch start, en je VPS dagelijks scant.

Voer de stappen in dit artikel uit met sudo, of als gebruiker met root-rechten en verbind voor je verder gaat met je VPS via SSH of de VPS-console.


ClamAV installeren

De installatie van ClamAV in Ubuntu is straight forward en doe je met het commando:

apt install -y clamav

Wil je ClamAV automatisch je VPS laten scannen en in real-time tegen virussen beschermen? Installeer dan ook de ClamAV daemon met het onderstaande commando.

De daemon gebruikt een redelijke hoeveelheid RAM (al snel +- 600MB), dus is het aan te raden om minimaal een X4-VPS te gebruiken wanneer je de daemon installeert, of gebruik alternatief enkel de basis-versie samen met een Cronjob, zie de cronjob-instructie verderop dit artikel.

apt install -y clamav-daemon

De virus database updaten

ClamAV komt met een tool genaamd Freshclam om de virus database van ClamAV te updaten. Freshclam controleert automatisch 24x per dag op virus database updates.

Freshclam wordt automatisch uitgevoerd. De huidige status controleer je met:

systemctl status clamav-freshclam

Bij Ubuntu 16 staat Freshclam doorgaans niet automatisch aan na de installatie van ClamAV. Je zet FreshClam aan met het commando:

systemctl start clamav-freshclam

Handmatig updaten

Als je freshclam uitzet (met systemctl stop clamav-freshclam) en enkel handmatig wil updaten, dan gebruik je het commando:

freshclam

Als je het bovenstaande commando gebruikt terwijl freshclam nog actief is, krijg je de melding:

ERROR: /var/log/clamav/freshclam.log is locked by another process
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).

Je VPS automatisch scannen

Automatisch scannen met de ClamAV-daemon

Gebruik je de daemon-versie van ClamAV, dan draait de ClamAV-daemon (ClamD) automatisch als service en zal ook na een herstart van je VPS automatisch starten.

ClamD zal niet automatisch je VPS in realtime beschermen. Hiervoor gebruikt het de aanvullende On-Access Scanning tool. Om deze aan te zetten, maak je eerst enkele aanpassingen in de ClamD configuratie:

Stap 1

Open de ClamD-configuratie

nano /etc/clamav/clamd.conf

 

Stap 2

Voeg de volgende inhoud toe onderaan het bestand (zie de toelichting):

ScanOnAccess yes
OnAccessIncludePath /home
OnAccessIncludePath /etc
OnAccessIncludePath /var
OnAccessPrevention yes
  • ScanOnAccess yes : zet On-Access scanning aan
  • OnAccessIncludePath : de mappen die hier gedefinieerd zijn (/home /etc /var) worden recursief gescand.
  • OnAccessPrevention yes : blokkeert virussen, met 'no' wordt enkel een melding gemaakt maar geen actie ondernomen.

Er zijn nog meer opties, zoals het excluden van mappen met OnAccessExcludePath. Meer informatie over alle beschikbare opties vind je op deze pagina en hier worden enkele use cases besproken.


 

Stap 3

De wijzigingen kun je pas doorvoeren wanneer de clamav-daemon service uit staat. Zet deze dus uit als volgt:

systemctl stop clamav-daemon

 

Stap 4

Start eerst ClamD en daarna de bijbehorende service:

clamd
systemctl start clamav-daemon

Het zal een momentje duren voor het starten van clamd voltooid is.


Aanvullende tips:

  • Je controleert de status van de ClamAV-daemon met het commando:
    systemctl status clamav-daemon
  • De logbestanden vind je in:
    nano /var/log/clamav/clamav.log
  • Clamd heeft een resource monitor vergelijkbaar met top/htop. Deze gebruik je met het commando:
    clamdtop
  • Krijg je een melding dat inotify het maximaal aantal watchpoints heeft uitgeput, dan kun je er daar meer aan toevoegen met:
    $ echo 524288 | sudo tee -a /proc/sys/fs/inotify/max_user_watches

Je VPS automatisch scannen met een cronjob

Aan het begin van dit artikel gaven wij aan dat de ClamAV daemon aardig wat RAM gebruikt. Als alternatief kun je ook de ClamAV-daemon niet installeren en een cronjob aanmaken waarmee je automatisch de handmatige ClamAV scan uitvoert (met een cronjob maak je een taak op je VPS om een of meerdere opdrachten uit te voeren op vaste momenten). Dit werkt als volgt:

Stap 1

Maak een cronjob aan met het commando:

crontab -e

 

Stap 2

Geef je cronjob bijvoorbeeld de volgende inhoud:

SHELL=/bin/bash
HOME=/
* */1 * * * date >> /var/log/clamav_log
* */1 * * * clamscan --exclude-dir=/proc/* --exclude-dir=/sys/* -i -r /

Kort samengevat doet bovenstaand het volgende:

  • De cronjob wordt uitgevoerd ieder uur (gedefinieerd door * */1 * * *). Wil je liever dagelijks op een specifiek moment scannen? Voor iedere dag om 18:00 gebruik je bijvoorbeeld * 18 * * *. Op https://crontab.guru/ kun je zien hoe je in een cronjob specifieke tijden opgeeft.
  • date >> /var/log/clamav_log: dit stukje zorgt dat iedere keer dat de cronjob wordt uitgevoerd in /var/log/clamav_log op een nieuwe regel aan het eind van /var/log/clamav_log de datum en tijd wordt vermeld van de synchronisatie.
  • Het Clamscan commando wordt onder 'handmatig scannen met ClamAV' nader toegelicht.

Het runnen van het clamscan commando zal, zolang de scan loopt, een verhoogd gebruik van je hardware veroorzaken. Hou hier rekening mee bij het vaststellen van de tijden waarop je de scan laat uitvoeren.

Desgewenst verwijder je de cronjob als volgt:

crontab -r

Je cronjob zelf controleer je (zonder hem aan te passen) met:

crontab -l

Let op: gebruik je een custom logfile-directory zoals hierboven, vergeet dan niet die aan te maken (mkdir /var/log/siteupdates).


Je VPS handmatig scannen

Handmatig scannen met ClamAV

ClamAV scant enkel bestanden waartoe de uitvoerende gebruiker rechten heeft. Scan daarom altijd als root-user, of gebruik sudo.

Voor de handmatige versie gebruik je het commando:

clamscan --exclude-dir=/proc/* --exclude-dir=/sys/* -i -r /
  • Met de toevoeging --exclude-dir=/proc/* en --exclude-dir=/sys/* zorg je dat ClamAV deze mappen niet scant. De /proc/ en /sys/ mappen zijn virtuele bestandssystemen die o.a. de communicatie tussen de hardware van je VPS / de processen van je VPS en je OS verzorgt.
  • -i (infected) zorgt ervoor dat alleen geïnfecteerde bestanden getoond worden
  • -r (recursive) zorgt ervoor dat alle onderliggende mappen gescand worden
  • / geeft aan dat alle mappen van je VPS gescand worden. Je kunt hiermee dus ook specifieke mappen, e.g. /etc/

Handmatig scannen met ClamD

Je kunt ook met de ClamAV-daemon handmatig je OS scannen, maar deze heeft minder scan opties dan clamscan en is vooral bedoelt om specifieke mappen te scannen, niet je hele OS in een keer. De syntax die je hiervoor kunt gebruiken is:

clamdscan--fdpass -i /etc
  • --fdpass: de ClamAV-daemon wordt door de gebruiker ClamAV uitgevoerd en heeft weinig rechten tot mappen. Met --fdpass geef je de rechten van de gebruiker waarmee je werkt aan clamdscan. Voer je dit commando als root-user uit, dan heeft clamdscan met --fdpass dus rechten om alle mappen te scannen waar de root-user toegang toe heeft.
  • -i (infected) zorgt ervoor dat alleen geïnfecteerde bestanden getoond worden
  • /etc Geeft aan welke map je (recursief) wil scannen.

Het scannen met ClamD maakt gebruik van de configuratie in clamd.conf. Je kunt dit bestand editen om het scannen naar je eigen wens aan te passen:

nano /etc/clamav/clamd.conf

 

Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.

Wil je dit artikel met andere gebruikers bespreken, laat dan vooral een bericht achter onder 'Reacties'.

Heb je ook een goed idee?

Stuur jouw idee in! Met genoeg stemmen komt jouw idee op onze wishlist!

Heeft dit artikel je geholpen?

Maak een account aan of log in om een beoordeling achter te laten.

Reacties

Maak een account aan of log in om een reactie te plaatsen.

Kom je er niet uit?

Ontvang persoonlijke hulp van onze supporters

Neem contact op