Menu
Szybki wybór
Hosting Domeny VPS SSL Kalkulator Porównania FAQ
Aktywne kody
Wszystkie kody rabatowe

ClamAV na VPS — antywirus open-source dla Linuksa

Opublikowano: 9 kwietnia 2026 · Kategoria: Bezpieczeństwo

ClamAV to darmowy, open-sourcowy silnik antywirusowy od Cisco Talos. Nie chroni Linuksa przed wirusami Windows w tym sensie, że nie są one dla niego egzekwowalne — ale skanuje pliki przychodzące pocztą, uploady na WordPressie, archiwa FTP i udziały Samba po to, aby nie przekazywać złośliwego kodu dalej, do klientów końcowych. Na serwerach pocztowych i hostingach współdzielonych ClamAV jest często wymogiem regulacyjnym. Ten artykuł pokazuje instalację, konfigurację freshclam, uruchomienie on-access scannera i integrację z Postfixem.

Instalacja na Ubuntu/Debian i RHEL

# Ubuntu / Debian
sudo apt update
sudo apt install clamav clamav-daemon clamav-freshclam clamav-docs -y

# RHEL / Rocky / AlmaLinux / CentOS Stream
sudo dnf install epel-release -y
sudo dnf install clamav clamav-update clamd -y

# Pierwsza aktualizacja bazy wirusow (moze potrwac 5-10 minut)
sudo systemctl stop clamav-freshclam
sudo freshclam
sudo systemctl start clamav-freshclam

# Uruchomienie daemona clamd
sudo systemctl enable --now clamav-daemon

# Sprawdzenie wersji i statusu
clamscan --version
sudo systemctl status clamav-freshclam clamav-daemon

freshclam — automatyczna aktualizacja sygnatur

freshclam pobiera nowe definicje wirusów z mirrorów ClamAV (db.XX.clamav.net). Bazy wirusów są spore — główny plik daily.cvd ma ponad 300 MB. Domyślnie freshclam sprawdza aktualizacje 12 razy dziennie (co 2 godziny). Konfiguracja:

# /etc/clamav/freshclam.conf (Debian/Ubuntu)
# /etc/freshclam.conf (RHEL)

DatabaseDirectory /var/lib/clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogRotate yes
DatabaseMirror db.pl.clamav.net
DatabaseMirror database.clamav.net
Checks 24
NotifyClamd /etc/clamav/clamd.conf

# Recznie wymusz update:
sudo freshclam

# Sprawdz wersje baz
sudo sigtool --info /var/lib/clamav/daily.cvd
sudo sigtool --info /var/lib/clamav/main.cvd

Skanowanie on-demand i uploadów WordPress

Dla WordPressa z uploadami najlepiej ustawić cron, który co noc skanuje wp-content/uploads i wysyła raport na email admina. Używaj clamdscan (wysyła do działającego daemona — szybkie) zamiast clamscan (ładuje bazę za każdym razem — wolne).

# Skanowanie jednorazowe katalogu (on-demand)
sudo clamdscan -r /var/www/html/wp-content/uploads/

# Cron w /etc/cron.d/clamav-wp
0 3 * * * root /usr/bin/clamdscan -r --fdpass \
  --log=/var/log/clamav/wp-uploads.log \
  /var/www/html/wp-content/uploads/ || \
  echo "ClamAV alert" | mail -s "[VPS] ClamAV detected malware" [email protected]

# Skanowanie z wykluczeniami (np. pomin duze filmy)
clamdscan -r --fdpass \
  --exclude-dir="^/proc|^/sys" \
  --exclude=".*\.(mp4|mkv|iso)$" \
  /var/www/

# Raport z liczba zeskanowanych plikow
clamdscan -r --fdpass --summary /home/

clamonacc — skanowanie on-access przez fanotify

clamonacc to watchdog, który używa mechanizmu fanotify w jądrze Linux do monitorowania operacji na plikach w czasie rzeczywistym. Kiedy użytkownik zapisuje plik w monitorowanym katalogu, clamonacc wysyła ścieżkę do clamd, a clamd skanuje plik — przed tym jak ktokolwiek zdąży go otworzyć. Jeśli plik jest zainfekowany, fanotify może zablokować operację.

# /etc/clamav/clamd.conf - wlacz on-access
OnAccessMountPath /var/www
OnAccessIncludePath /var/www/html/wp-content/uploads
OnAccessExcludeUname clamav
OnAccessPrevention yes       # blokuj dostep jesli wirus
OnAccessExtraScanning yes

# Restart clamd i start clamonacc
sudo systemctl restart clamav-daemon
sudo clamonacc -F --fdpass &

# Test - zapisz plik testowy EICAR
cd /var/www/html/wp-content/uploads/
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > eicar.txt
cat eicar.txt      # Powinno zostac zablokowane z Permission denied

# Status clamonacc
sudo tail -f /var/log/clamav/clamav.log

Integracja z Postfixem przez amavis

Najpopularniejszy sposób skanowania poczty to wpięcie amavis-new między Postfix a skrzynkę. amavisd-new jest content filterem, który dostaje mail z Postfixa, przekazuje go do ClamAV (przez clamd socket) i SpamAssassina, po czym zwraca do Postfixa. Poniższa tabela porównuje typowe konfiguracje serwera mailowego.

Konfiguracja Zasoby (RAM) Wydajność Zastosowanie
Postfix + amavis + ClamAV ~800 MB ~50 mails/s Klasyczne stack mailowe, łatwa integracja
Postfix + Rspamd + ClamAV ~400 MB ~150 mails/s Nowsze, wydajniejsze, lepsze anti-spam
Postfix + MailScanner + ClamAV ~600 MB ~80 mails/s Alternatywa dla amavis, prosty config
Mailcow (gotowy stack) ~2 GB ~100 mails/s Docker, out-of-the-box ClamAV + Rspamd
Sam clamdscan w cron ~1 GB N/A (offline) Tylko skany uploadów FTP, nie maili

Optymalizacja i false positives

ClamAV potrafi zjeść 1-2 GB RAM-u sam w sobie (bazy + cache). Na VPS z 2 GB RAM to dużo. Najważniejsze techniki optymalizacji:

  • Wyłącz nieużywane sygnaturyExcludeSig w clamd.conf dla baz, które nie są potrzebne (np. Macro dla Office, jeśli nie hostujesz dokumentów).
  • Nie skanuj plików >25 MBMaxFileSize 25M w clamd.conf. Większe zwykle nie zawierają wirusów skompresowanych.
  • Limit głębokości archiwówMaxRecursion 10, MaxFiles 10000. Chroni przed zip bombs.
  • Biała lista dla false positives — plik signatures.ign2 z nazwami sygnatur, które są FP dla twoich aplikacji (często .exe generowane przez twoich developerów).
  • Nie używaj clamscan w produkcji — za każdym razem ładuje bazę (5-10s, ~1 GB RAM). Używaj clamdscan z uruchomionym clamd.

Najczęstsze pytania

Czy na VPS z Linuksem potrzebny jest antywirus? +
Tak, ale z innych powodów niż na Windows. ClamAV na Linuksie głównie skanuje przychodzące maile (Postfix/amavis), uploady użytkowników (WordPress wp-content/uploads), oraz pliki na współdzielonych dyskach. Chroni nie tyle sam serwer Linux, co klientów którzy pobierają pliki z twojego serwera (np. wykryje zawirusowane PDF-y w załącznikach).
Jak zaktualizować bazy wirusów ClamAV? +
freshclam automatycznie aktualizuje bazy wirusów. Ręczna aktualizacja: sudo freshclam. Daemon freshclamd działa w tle i sprawdza nowe definicje co N godzin (domyślnie 12x dziennie = co 2h). Konfiguracja w /etc/clamav/freshclam.conf — kluczowe opcje to DatabaseMirror i Checks (ile razy dziennie sprawdzać).
Czym różni się clamd od clamonacc? +
clamd to daemon z załadowaną bazą wirusów — odpowiada na zapytania clamdscan. clamonacc to monitor on-access używający fanotify w jądrze Linux — skanuje pliki automatycznie przy dostępie (open, write) i blokuje jeśli wykryje malware. clamonacc wymaga systemu z fanotify (kernel 3.8+) i ma wyższy narzut niż on-demand scan.
Jak zintegrować ClamAV z Postfix? +
Najczęściej przez amavis-new, który działa jako content filter między Postfixem a skrzynką. Pipeline: Postfix → amavis (port 10024) → ClamAV (przez clamd socket) → Postfix (port 10025) → skrzynka. Konfiguracja: content_filter=smtp-amavis:[127.0.0.1]:10024 w main.cf Postfixa, a w amavisd.conf włączyć skaner clamd.

Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.