Linux je sice obecně vůči virům odolnější než Windows, ale nikoli nezranitelný. Odolnost vychází z jeho architektury, způsobu správy uživatelských práv a vývoje open-source softwaru. Význam antiviru na Linuxu je především v prevenci, aby se nezanášel infikovanými soubory a nešířil je dál. Avšak antivirové skenování do jisté míry zatěžuje systém — především procesor a disk.
Přehled několika antivirů:
- clamAv – open-source volně dostupný antivir s aktivním vývojem, instalovatelné přímo z repozitářů daných distribucí
- Comodo – ověřit si podporu nových verzí Linuxů
- Avast – komerční s aktivním vývojem, podporující i nové verze Linuxů, určený především pro firemní nasazení
ClamAV je volně dostupná open-source antivirová aplikace spravovaná komunitou. Umožňuje si vytvořit vlastní styl antivirového skenování a časového naplánování. Samozřejmě s přihlédnutím na zátěž systému při skenování. Zároveň umožňuje uživatelům individuálně oskenovat si data, ke kterým mají přístupová práva a to pomocí příkazové řádky nebo grafického rozhraní. Antivirová databáze se aktualizuje automaticky.
Clamav je modulární a má dva základní druhy skenování:
- bez služby (standalone mód)
- občasné oskenování uživatelského adresáře z příkazové řádky nebo z grafického rozhraní
clamtk - pomalejší skenování než službou
clamd - nepotřebuje službu
clamd
- občasné oskenování uživatelského adresáře z příkazové řádky nebo z grafického rozhraní
- jako služba (
clamd)- časté skenování většího objemu dat
- rychlejší skenování než bez služby
- požadavky na skenování adresářů nebo od mail serveru, webového proxy apod. přebírá přes sockety
☝️ Po přerušení clamscan a clamdscan se nenaváže, po spuštění začne skenování od znova.
☝️ Pozor na limitující práva k souborům a složkám uživatele, pod kterým skenování běží.
clamd je na pozadí běžící služba, která čeká na příkazy od klienta přes Unix Socket nebo TCP socket. Samotný clamd tedy neví, co má skenovat, dokud mu to někdo neřekne.
💡 Požadavek z příkazu clamdscan se přebírá přes Unix Socket (Local Socket) nebo TCP Socket.
💡 Externí požadavky od mail serveru, webového proxy apod. se přebírají přes TCP Sockety.
☝️ clamd skenuje s přístupovými právy uživatele, nadefinovaného v /etc/clamav/clamd.conf , standardně „clamav“.
😎 koncept pro mé požadavky:
- skenování souborů a složek napříč počítačem
- pouze lokálně, pomocí
clamdscan - jak ručně spouštěné tak plánované cronem
Instalace:
💡 Instalace je možná i z oficiálních stránek clamAv obsahující instalační soubor a pokyny.
😎 Volím instalaci z repozitářů na Xubuntu 24.04.
💻 sudo apt install clamav-daemon
Automaticky se doinstalují balíčky:
clamav– pro skenovaní v rámci uživatele příkazemclamscanclamav-base– základclamav-daemon– službaclamd, čekající na skenovací příkazy například odclamdscannebo odjinudclamav-freshclam– službafreshclam, automaticky aktualizující antivirovou databázilibclamav11t64– knihovny
Služby:
clamav-daemon.service– systemd jednotka, pro start, stop službyclamdclamav-freshclam.service– systemd jednotka, pro start, stop službyfreshclam
Nastavení služeb:
☝️ Pro skenování souborů všech uživatelů, se musí službě udělit nejvyšší přístupová práva, ale zároveň zamezit přístupu všem ostatním.
💻 sudo cp -p /etc/clamav/clamd.conf /etc/clamav/clamd.conf.orig
# editace
sudo mousepad /etc/clamav/clamd.conf
User |
root | 👉 pro skenování všech souborů napříč uživatelů |
LocalSocketGroup |
clamav | 👉 uživatelská skupina pro socket |
LocalSocketMode |
660 | 👉 práva uživateli root skenovat a skupině clamav spouštět, prohlížet logy |
LocalSocket |
/run/clamav/clamd.ctl | 👉 Unix socket |
TCPSocket |
0 | 👉 zakázání TCP sockeku (chybí-li tento parametr, tak ho přidat) |
DetectPUA |
true | 👉 detekce pouze potenciálně nežádoucích aplikací, nejde o skutečné viry |
☝️ Zároveň zamezit přístupu všem ostatním v nastavení Socketu.
💻 sudo cp -p /usr/lib/systemd/system/clamav-daemon.socket /usr/lib/systemd/system/clamav-daemon.socket.orig
# editace
sudo mousepad /usr/lib/systemd/system/clamav-daemon.socket
[Socket] |
|
ListenStream=/run/clamav/clamd.ctl |
👉 služba clamd vytvoří na této cestě Unix socket (TCP socket tímto vypnut) |
SocketUser=root |
👉 Unix socket bude vlastněn uživatelem root |
SocketGroup=clamav |
👉 Unix socket bude ve skupině clamav |
SocketMode=0660 |
👉 pouze uživatel a skupina mohou číst i zapisovat |
RemoveOnStop=True |
👉 Unix socket bude po zastavení služby odstraněn |
Zanesení změn do systému:
💻 sudo systemctl daemon-reload
💻 sudo systemctl restart clamav-daemon.service
💻 sudo systemctl
💻 restart clamav-daemon.socket
Kontrola nastavení služeb:
💡 Přidaný nepovinný parametr --no-pager jen vypne stránkovací zobrazení, ukončující se jinak klávesou ‚q‘.
💻 sudo systemctl status clamav-daemon.service --no-pager
💻 sudo systemctl status clamav-daemon.socket --no-pager
💻 sudo ls -l /run/clamav/clamd.ctl

💻 sudo systemctl status clamav-freshclam.service --no-pager

Přidání uživatele do skupiny clamav:
💡 Aby mohl uživatel spouštět antivirové skenování přes službu clamd nebo prohlížel její logy, musí být ve skupině clamav.
👉 Příklad přidání uživatele spravce do skupiny clamav a kontrola akce.
💻 sudo usermod -aG clamav spravce
💻 sudo getent group clamav

⚠️ Změna se projeví až po odhlášení a opětovném přihlášení uživatele.
Příklad skenování adresáře:
💻 /usr/bin/clamdscan ~/Dokumenty

💡 Tento clamdscan služdou clamd byl přibližně 2 krát rychlejší než v příkladu clamscan bey služby.
Služba, která automaticky aktualizuje aintivirovou databázi.
Instalace:
💡 Instalace je možná i z oficiálních stránek clamAv obsahující instalační soubor a pokyny.
😎 Volím instalaci z repozitářů na Xubuntu 24.04.
💻 sudo apt install clamav-freshclam
Automaticky se doinstalují balíčky:
clamav– pro skenovaní v rámci uživatele příkazemclamscanclamav-base– základlibclamav11t64– knihovny
Služba:
clamav-freshclam.service– systemd jednotka, pro start, stop službyfreshclam
Editace nastavení:
💻 sudo mousepad /etc/clamav/freshclam.conf
Uživatel může příkazem clamscan spustit antivirovou kontrolu souborů a složek, ke kterým má přístup alespoň pro čtení.
Uživatel má možnost příkazem oskenovat soubory na viry, ke kterým má práva alespoň pro čtení. Nastavení, co a jak se skenuje nebo zaznamenává do log záznamu, se řídí parametry příkazu.
💡 Výsledek skenování se zobrazí v terminálu, nebo může být přesměrován do logovacího souboru.
💡 Při běžící službě clamav-freshclam.service automatické aktualizace antivirové databáze, nelze vykonat ruční aktualizaci sudo freshclam .
⚠️ Skenování je pouze s právy uživetele, pod kterým je příkaz clamscan spuštěn. Tam kam nemá přístup, hlásí chybu.
💡 Pro práva skenování všeho lze použít sudo /usr/bin/clamscan a k předejití podsunutí aliasu, tak s cestou k příkazu.
Instalace:
💡 Instalace je možná i z oficiálních stránek clamAv obsahující instalační soubor a pokyny.
😎 Volím instalaci z repozitářů na Xubuntu 24.04.
💻 sudo apt install clamav
Automaticky se doinstalují balíčky:
clamav-base– základclamav-freshclam– službafreshclam, automaticky aktualizující antivirovou databázilibclamav11t64– knihovny
Služba:
clamav-freshclam.service– systemd jednotka, pro start, stop službyfreshclam
Skenování souborů a složek, včetně vnořených, s podrobným záznamem do logovacího souboru:
💻 /usr/bin/clamscan -r --detect-pua=yes /adresář_k_oskenovaní >/cesta/clamscan.log 2>&1
Stejné skenování, ale bez zaznamenávání „OK“ souborů do logu:
💻 /usr/bin/clamscan -r --suppress-ok-results --detect-pua=yes /adresář_k_oskenovaní >/cesta/clamscan.log 2>&1
Zkráceně:
💻 /usr/bin/clamscan -r -o --detect-pua=yes /adresář_k_oskenovaní >/cesta/clamscan.log 2>&1
Stejné skenování, ale do logu zaznamenávající pouze infikované, podezřelé soubory a sumární zprávu:
💻 /usr/bin/clamscan -r --infected --detect-pua=yes /adresář_k_oskenovaní >/cesta/clamscan.log 2>&1
zkráceně
💻 /usr/bin/clamscan -r -i --detect-pua=yes /adresář_k_oskenovaní >/cesta/clamscan.log 2>&1
Zobrazení z logu pouze záznamů o infikovaných a podezřelých souborech:
💻 grep -E 'Heuristic|PUA|Phishing|Suspicious' /cesta/clamscan.log
Příklad skenování adresáře:
💻 clamscan ~/Dokumenty

💡 Tento clamscan byl přibližně 2 krát pomalejší než v příkladu clamdscan přes službu clamd.
Dává uživateli možnost vlastní správy antivirového skenování svých dat.
😎 Grafické rozhraní moc nepoužívám, tak o něm jen obecněji.
💡 Nastavení se vztahuje pouze pro aktuálního uživatele, uložené v adresáři ~/.clamtk/ .
💡 Globální nastavení pro službu clamav-daemon zde neplatí.
💡 Na infikované soubory pouze upozorní v okně „Karanténa“ a nabídne jejich smazání.
⚠️ Soubory, ke kterým nemá antivirový skener práva alespoň pro čtení, jsou ignorovány.
⚠️ Z „Karantény“ nejdou smazat infikované soubory, ke kterým uživatel nemá právo k zápisu.
⚠️ Sporná funkčnost „Heuristic“ („Možné hrozby“)
Instalace:
💡 Instalace je možná i z oficiálních stránek clamAv obsahující instalační soubor a pokyny.
😎 Volím instalaci z repozitářů na Xubuntu 24.04.
💻 sudo apt install clamtk
Automaticky se doinstalují balíčky:
clamav– pro skenovaní v rámci uživatele příkazemclamscanclamav-base– základclamav-freshclam– službafreshclam, automaticky aktualizující antivirovou databázilibclamav11t64–
Služby:
clamav-freshclam.service– systemd jednotka, pro start, stop službyfreshclam
Spuštění:
💻 clamtk
🏁 V Desktopovém prostředí lze spustit zástupcem Clamtk




