A ClamAV egy ingyenes és nyílt forráskódú víruskereső motor és a hozzá használható vírusadatbázis. Ez az adatbázis naponta többször frissül, így esetleg nagy forgalmat generál a központi letöltési kiszolgálók felé. Ennek elkerülésére célszerű szervezet szinten belső ClamAV adatbázis tükörkiszolgálót létrehozni. Ezt egy külön cvdupdate nevű Python programmal lehet elvégezni. A példában külön Python virtuális környezetben, külön felhasználóval kerül letöltésre a központi letöltési kiszolgálókról.
Felhasználó és a szükséges mappa létrehozása
Hozzon létre felhasználót a frissítő script futtatásához:
groupadd -g 678 -r clamav-update useradd -c "ClamAV mirror update user" -g clamav-update -M -r -u 678 -s /sbin/nologin clamav-update
Hozza létre a cvdupdate alkalmazás megfelelő jogosultsággal a szükséges mappákat:
mkdir -p /srv/www/clamav/ chown clamav-update. /srv/www/clamav/ mkdir -p /var/log/clamav-update/ chown clamav-update. /var/log/clamav-update/
A cvdupdate Python modul telepítése
A cvdupdate Python alkalmazás elérhető innen:
https://github.com/Cisco-Talos/cvdupdate
A következő műveleteket az előbbiekben létrehozott „clamav-update” felhasználóként:
sudo -su clamav-update
Amennyiben proxy elérés kell a külső Python PIP tároló eléréséhez, azt adja meg, például így:
export https_proxy="http://192.168.50.50:3128/"
Telepítse a Virtualenv Python csomagot a Python virtuális csomag és függőségeinek telepítéséhez.
pip3 install --user virtualenv
Virtuális Python környezet létrehozása:
virtualenv -p python3.10 /home/clamav-update/python.clamav-update
A létrehozott virtuális Python környezetbe történő belépés:
. /home/clamav-update/python.cvdupdate/bin/activate
A cvdupdate nevű Python program telepítése:
python3 -m pip install --user cvdupdate
A telepített cvdupdate Python csomag a cvd parancsot teszi elérhetővé a rendszeren, ha a cvd program elérhető a $PATH környezeti változóban.
A cvdupdate Python modul beállítása
cvd config show cvd config set --dbdir /srv/www/clamav/
Ha nincsen megadva a cvd parancs a $PATH környezeti változóban, akkor lehet Python modulként is futtatni. Beállítások megjelenítése:
python -m cvdupdate show
A fenti mappáknak megfelelő beállítások elvégzése:
python -m cvdupdate config set --dbdir /srv/www/clamav/ python -m cvdupdate config set --logdir /var/log/clamav-update/
A frissítési folyamat elindítása
python -m cvdupdate update
A frissítést érdemes rendszeresen lefuttatni például cron.d segítségével:
A „/etc/cron.d/clamav-update” fájl tartalma:
# proxy használata esetén: https_proxy="http://192.168.50.50:3128/" 0 */4 * * * clamav-update /usr/bin/env bash -c 'source /home/clamav-update/python.cvdupdate/bin/activate && python -m cvdupdate update' > /dev/null 2>&1
A „/srv/www/clamav/” mappát kell elérhetővé tenni Apache2/httpd, nginx, lighttpd segítségével, vagy éppen a cvdupdate programba épített webkiszolgáló segítségével.
Fájl elérhetővé tétele nginx segítségével
Telepítse az nginx webkiszolgáló alkalmazást és hozza létre a „/etc/nginx/sites-available/clamav-update.conf” fájlba:
server { listen 80; server_name clamav-update.example.com; root /srv/www/clamav/; location / { allow all; sendfile on; sendfile_max_chunk 10m; autoindex on; autoindex_exact_size off; autoindex_format html; autoindex_localtime on; if_modified_since before; access_log /var/log/nginx/clamav-update_access.log main; error_log /var/log/nginx/clamav-update_error.log; } }
Majd szimbolikus linkelje a fájlt a sites-enabled mappába és indítsa újra az nginx szolgáltatást:
systemctl restart nginx
Megjegyzés
A
if_modified_since before;
nginx beállítás tehermentesíti a webkiszolgálót, mert a freshclam csak a módosult fájlokat tölti le.
Saját webkiszolgáló használata
A cvdupdate eszköz tartalmaz egy --serve funkciót, amely az aktuális adatbázis könyvtárát a http://localhost címen szolgálja ki, alapértelmezetten a 8000 porton.
Javasolt ClamAV beállítások
Amennyiben a számítógép legalább 8Gb memóriát tud a víruskeresési feladatokra elérni, akkor az alábbi beállítások elvégzését érdemes megtenni:
DetectPUA yes ExcludePUA PUA.Win.Packer ExcludePUA PUA.Win.Trojan.Packed ExcludePUA PUA.Win.Trojan.Molebox ExcludePUA PUA.Win.Packer.Upx ExcludePUA PUA.Doc.Packed MaxScanSize 150M MaxFileSize 100M MaxRecursion 40 MaxEmbeddedPE 100M MaxHTMLNormalize 50M MaxScriptNormalize 50M MaxZipTypeRcg 50M
Javasolt freshclam.conf beállítások
A frissen letöltött adatbázisok teszteléséhez engedélyezze az alábbi beállítást:
TestDatabases yes
Javasolt SELinux beállítások
setsebool -P antivirus_can_scan_system 1 setsebool -P clamd_use_jit 1
Hibakeresés
A nem betöltött szignatúrák megjelenítése és a hiba oka:
clamscan --debug 2>&1 /dev/null | grep "loaded"