Instalação e configuração do antivírus ClamAV com arquivos de configurações, On-Access Scanning (proteção em tempo real), várias assinaturas de bancos de dados e interface gráfica (ClamTk).
INTRODUÇÃO
Leia todo o artigo antes de sair executando comandos, a não ser que você saiba o que está fazendo!
Nenhum software se feriu durante a realização do artigo!
Siga os comandos na sequência apresentada no artigo, pois o ClamAV é sensível e se ofende por qualquer coisa... já grita ERROR ERROR ERROR! Porém, depois de instalado, configurado e funcionando redondo ele é bastante estável e não apresenta erros... até surpreende pela estabilidade.
O artigo ficou extenso, mas depois de ler e executar uma vez você verá que é simples e rápido instalar e fazer a manutenção do ClamAV, são poucos comandos e você poderá usar também a interface gráfica que, apesar de ser bastante básica, é uma mão na roda.
ClamAV é um kit de ferramentas antivírus de código aberto (GPLv2) projetado especialmente para verificação de e-mail em gateways de e-mail. Ele fornece vários utilitários incluindo um daemon multiencadeado flexível e escalável, um scanner de linha de comando e uma ferramenta avançada para atualizações automáticas de banco de dados. O núcleo do pacote é um mecanismo antivírus disponível na forma de biblioteca compartilhada. O ClamAV é fornecido pela Cisco Systems, Inc.
Antivirus para Linux ainda não se faz muito necessário, pois o Linux é modular, caso você pegar um vírus ele se restringirá a somente uma pequena parte do sistema. Além disso, poucos tem interesse em fazer vírus para Linux, pois quem faz vírus, ransomware, etc, pretende levar uma vantagem financeira e como o Linux não é muito usado em desktop não há interesse. Em servidores, que são a maioria baseados em UNIX/Linux no mundo todo, conta-se com a proteção do firewall, um bom filtro de pacotes e o sistema de permissões dos diretórios e arquivos que fornecem quase a totalidade da proteção necessária. E mais além disso, no caso de vírus e ransomware, na esmagadora maioria das vezes o principal responsável é o usuário que entra em certos sites duvidosos e clica em cima de links, executa arquivos, etc, sem o menor cuidado, muitas vezes levado por ganância financeira e/ou desejo sexual.
Porém, um antivírus como o ClamAV fornece uma camada extra de proteção, principalmente para quem gosta de acessar certos sites duvidosos e, neste caso, tanto faz se for Linux, Windows, macOS, etc.
E, como já foi dito, o ClamAV é projetado especialmente para verificação de e-mail em gateways de e-mail.
IMPORTANTE
Para ter On-Access Scanning (proteção em tempo real) requer um sistema executando um kernel Linux versão >= 3.8 com fanotify compilado, sem o fanotify não rola o On-Access Scanning.
Segundo o que está na página oficial do ClamAV (link ao final do artigo):
"On-Access Scanning The ClamOnAcc application provides On-Access Scanning for Linux systems. On-Access Scanning is a form of real-time protection that uses ClamD to scan files when they're accessed."
"Varredura ao acessar O aplicativo ClamOnAcc fornece varredura ao acessar para sistemas Linux. A varredura ao acessar é uma forma de proteção em tempo real que usa o ClamD para verificar os arquivos quando eles são acessados."
O ClamAV não tem aquela proteção que fica o tempo todo "escaneando" o computador (aliás, antivírus nenhum tem, mas isso é passível de discussão), ele somente escaneia o diretório e/ou o arquivo quando ele é acessado, o que não é muito diferente.
O cliente ClamOnAcc para o daemon de varredura ClamD fornece varredura no acesso em versões modernas do Linux. Isso inclui um recurso opcional para bloquear o acesso ao arquivo até que um arquivo seja verificado (prevenção no acesso). E o ClamAV é um glutão de memória, ele sozinho consome 3GB de RAM só existindo. Executando processos pode chegar a 5GB de RAM só para ele. Porém, com as configurações aqui presentes consegui reduzir para 2GB ele sozinho e 3GB com processos de escaneamento ocorrendo. Apesar de que isso é relativo atualmente, pois como os softwares gráficos vão se atualizando, cada vez mais faz-se necessário mais memória RAM.
Caso você não tenha muita memória RAM com seu Linux sugiro não habilitar o On-Access Scanning, faça uma instalação básica do ClamAV (link ao final do artigo), mas ainda assim ele consumirá, no mínimo, 2GB de RAM só para ele.
total usada livre compart. buff/cache disponível
Mem.: 25183 3054 21201 111 1378 22128
Swap: 1999 0 1999
Vejam que tem 24GB de RAM e 3054MB usados (~3GB), sendo que tem instalado o sistema Debian 12, Apache2, PostgreSQL, PHP, Nftables, Netbeans, Filezilla, Google Chrome, Firefox e o ClamAV, além de outros programas.
Figura 01 - Pelo htop podemos ver o On-Access Scanning (proteção em tempo real) em ação.
INSTALAÇÃO
Aqui será demonstrada a instalação no Debian (e derivados), mas você pode usar o pacman, o dnf, o zypper, etc, sempre verificando os caminhos dos arquivos, pois podem ser diferentes na sua distribuição.
O ClamAV tem nos repositórios da maioria das distribuições e pode ser instalado pelo gerenciador de pacotes. Quem quiser a versão mais atual do ClamAV visite o site https://www.clamav.net/downloads e baixe a versão correspondente ao teu sistema e faça a instalação manual.
Verificando a configuração do kernel para a presença do fanotify:
# cat /boot/config-`uname -r` | grep FANOTIFY
Caso tiver habilitado no kernel a saída será essa:
E se isso aparecer:
então está habilitado, mas a verificação de acesso será restrita ao modo somente notificação, ou seja, só vai avisar que tem vírus, mas fará absolutamente nada.
Caso aparecer
CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
o fanotify não está habilitado no seu kernel então você deverá recompilar o kernel para habilitá-lo, mas não será mostrado aqui pois demanda tempo e não é o escopo do artigo. Porém, você pode instalar o ClamAV mesmo assim e colocar para escanear o PC duas ou três (ou mais) vezes por dia através do cron.
Instalando dependências:
# apt-get install arc arj bzip2 cabextract lhasa lzop nomarch p7zip-full pax rpm tnef unrar-free unzip zip
Instalando
Não será modificada a configuração do arquivo clamav-milter.conf, deixaremos com as configurações padrões.
O Clamav-Milter é o aplicativo do ClamAV que fornece filtragem de e-mails, caso a máquina Linux não for servidor de e-mails não se faz muito necessário. Para Desktop não precisa instalar, mas vai do seu gosto.
Aqui foi instalado o clamav-milter por uma questão de o artigo ficar mais completo, mas você pode escolher não instalá-lo para economizar memória RAM.
Caso você instalá-lo e depois queira remover:
Deixaremos para instalar o clamTK (interface gráfica) no final.
Iniciando, habilitando e parando:
Verifique se os arquivos freshclam.conf, clamd.conf e clamav-milter.conf estão dentro da pasta /etc/clamav:
ARQUIVO FRESHCLAM.CONF
Os arquivos freshclam.conf e o clamd.conf são os arquivos principais de configurações do ClamAV antivírus. Lembrando que na instalação básica (link ao final do artigo) configura-se somente o freshclam.conf.
O parâmetro "DatabaseDirectory /var/lib/clamav" deve ser o mesmo nos arquivos freshclam.conf e clamd.conf. Caso alterar num, deve obrigatoriamente, alterar no outro. Aconselho a deixar no padrão.
Ao executar o freshclam o programa buscará uma atualização no endereço especificado na linha DatabaseMirror e caso não encontre ele passará para o endereço subsequente até encontrar e baixar as atualizações. Depois ele executará todas as DatabaseCustomURL. O arquivo em si ficou gigantesco, mas cada atualização completa demora em média apenas 2 a 3 minutos dependendo do seu PC e da sua banda de internet.
WARNING
"The mirrors reserve the right to block your IP address, if you are downloading too many times per hour or are abusing their servers/bandwidth in any way."
AVISO
"Os espelhos e links se reservam o direito de bloquear seu IP caso você abusar dos downloads e atualizações muitas vezes por hora ou abusar do servidor de qualquer maneira."
Faça atualizações dos bancos de dados e assinaturas com sensatez.
O arquivo abaixo está configurado para atualizar as assinaturas (banco de dados de porcarias, vírus, malware, etc) duas vezes por dia (parametro Checks 2). O padrão é Checks 24 (24 vezes por dia), mas leva em conta somente as assinaturas do próprio ClamAV.
Vamos adicionar mais repositórios no freshclam.conf (verifique o caminho onde foi instalado o ClamAV, no Debian é em /etc/clamav).
Antes faça um backup do arquivo original.
# mv /etc/clamav/freshclam.conf /etc/clamav/freshclam.conf.bkp
Segue o arquivo gigantesco com as configurações abaixo (está completo com espelhos de todo lugar para malware, spam, phishing, etc). Nem precisa de tudo isso, mas depois, caso você queira, pesquise e diminua e/ou altere o arquivo de acordo com as tuas necessidades.
# vim /etc/clamav/freshclam.conf <<< usei o vim use teu editor de texto preferido.
# Comments will get lost when you reconfigure the clamav-freshclam package
DatabaseOwner clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogVerbose false
LogSyslog false
LogFacility LOG_LOCAL6
LogFileMaxSize 0
LogRotate true
LogTime true
Foreground false
Debug false
MaxAttempts 5
DatabaseDirectory /var/lib/clamav
DNSDatabaseInfo current.cvd.clamav.net
ConnectTimeout 30
ReceiveTimeout 0
TestDatabases yes
ScriptedUpdates yes
CompressLocalDatabase no
Bytecode true
NotifyClamd /etc/clamav/clamd.conf
# Check for new database 2 times a day
Checks 2
DatabaseMirror db.local.clamav.net
DatabaseMirror database.clamav.net
#
DatabaseMirror db.br.clamav.net
DatabaseMirror db.ar.clamav.net
DatabaseMirror db.at.clamav.net
DatabaseMirror db.au.clamav.net
DatabaseMirror db.be.clamav.net
DatabaseMirror db.bg.clamav.net
DatabaseMirror db.ca.clamav.net
DatabaseMirror db.ch.clamav.net
DatabaseMirror db.cn.clamav.net
DatabaseMirror db.cz.clamav.net
DatabaseMirror db.de.clamav.net
DatabaseMirror db.dk.clamav.net
DatabaseMirror db.ec.clamav.net
DatabaseMirror db.ee.clamav.net
DatabaseMirror db.es.clamav.net
DatabaseMirror db.fr.clamav.net
DatabaseMirror db.gr.clamav.net
DatabaseMirror db.hk.clamav.net
DatabaseMirror db.hu.clamav.net
DatabaseMirror db.id.clamav.net
DatabaseMirror db.ie.clamav.net
DatabaseMirror db.it.clamav.net
DatabaseMirror db.jp.clamav.net
DatabaseMirror db.kr.clamav.net
DatabaseMirror db.lt.clamav.net
DatabaseMirror db.mx.clamav.net
DatabaseMirror db.nl.clamav.net
DatabaseMirror db.pl.clamav.net
DatabaseMirror db.pt.clamav.net
DatabaseMirror db.ro.clamav.net
DatabaseMirror db.ru.clamav.net
DatabaseMirror db.se.clamav.net
DatabaseMirror db.sg.clamav.net
DatabaseMirror db.sk.clamav.net
DatabaseMirror db.tr.clamav.net
DatabaseMirror db.tw.clamav.net
DatabaseMirror db.ua.clamav.net
DatabaseMirror db.uk.clamav.net
DatabaseMirror db.us.clamav.net
# Argentina
DatabaseMirror clamav.md5.com.ar
# Australia
DatabaseMirror clamav.island.net.au
DatabaseMirror clamav.mirror.pacific.net.au
DatabaseMirror clamavdb.planetmirror.com
# Austria
DatabaseMirror clamav.inode.at
DatabaseMirror xarch.clamav.net
# Belgium
DatabaseMirror clamav.edpnet.net
# Bulgaria
DatabaseMirror clamav.host.bg
DatabaseMirror clamav.paralax.org
# Canada
DatabaseMirror clamav.mirror.rafal.ca
DatabaseMirror clamav.gossamer-threads.com
# China
DatabaseMirror clamav.ialfa.net
# Czech Rrepublic
DatabaseMirror clamav.iol.cz
DatabaseMirror clamav.skynet.cz
DatabaseMirror clamav.mirror.vutbr.cz
# Denmark
DatabaseMirror clamav.dif.dk
DatabaseMirror clamav.mirrors.webpartner.dk
# Ecuador
DatabaseMirror clamav.ecualinux.com
# Estonia
DatabaseMirror clamav.infonet.ee
# France
DatabaseMirror clamav.easynet.fr
DatabaseMirror clamav.inet6.fr
DatabaseMirror clamav.univ-nantes.fr
DatabaseMirror clamav.ovh.net
DatabaseMirror clamav.mirror.waycom.net
# Germany
DatabaseMirror clamav.mirror.fizzelpark.com
DatabaseMirror clamav.informatik.fh-furtwangen.de
DatabaseMirror clamav.lug-norderstedt.de
DatabaseMirror clamav.mcs.de
DatabaseMirror clamav.mirror.myebs.de
DatabaseMirror clamav.pcn.de
DatabaseMirror clamav.power-netz.de
DatabaseMirror clamav.savework.de
DatabaseMirror fuxhausen.tiscali.de
DatabaseMirror clamav.ftpproxy.org
DatabaseMirror clamav.kgt.org
# Greece
DatabaseMirror clamav.forthnet.gr
DatabaseMirror clamav.uoc.gr
# Hong Kong
DatabaseMirror clamav.meiwing.com
DatabaseMirror clamavdb.hostlink.com.hk
DatabaseMirror clamav.cpss.edu.hk
# Hungary
DatabaseMirror clamav.crysys.hu
DatabaseMirror clamav.dc.hu
DatabaseMirror clamav.fisher.hu
DatabaseMirror clamavdb.ikk.sztaki.hu
# Indonesia
DatabaseMirror clamav.cbn.net.id
DatabaseMirror db.clamav.or.id
# Ireland
DatabaseMirror clamavdb.heanet.ie
# Italy
DatabaseMirror clamav.oltrelinux.com
DatabaseMirror clamav.mirror.garr.it
DatabaseMirror clamav.linux.it
DatabaseMirror idea.sec.dico.unimi.it
# Japan
DatabaseMirror clamav.nara.wide.ad.jp
DatabaseMirror clamav-mirror.wiseknot.co.jp
DatabaseMirror clamavdb.ml-club.jp
DatabaseMirror clamav.mtcnet.jp
DatabaseMirror clamav.begi.net
DatabaseMirror clamavdb.osj.net
DatabaseMirror clamav.s-lines.net
DatabaseMirror clamav.yukiguni.net
DatabaseMirror clamavdb.mithril-linux.org
# Republic of Korea
DatabaseMirror clamav.hanbiro.com
# Lithuania
DatabaseMirror clamav.vtu.lt
# Mexico
DatabaseMirror clamav.mpsnet.com.mx
# Netherlands
DatabaseMirror clamav.essentkabel.com
DatabaseMirror clamav.fx-services.com
DatabaseMirror clamav.prolocation.net
DatabaseMirror clamav.mirror.transip.nl
DatabaseMirror clamav.unnet.nl
DatabaseMirror clamav.xs4all.nl
DatabaseMirror clamav.packetstorm.nu
# Poland
DatabaseMirror database.clamav.ps.pl
# Portugal
DatabaseMirror clamav.linux.pt
# Romania
DatabaseMirror clamav.iasi.roedu.net
# Russian Federation
DatabaseMirror clamav.citrin.ru
DatabaseMirror clamav.eastweb.ru
DatabaseMirror clamav.unix.su
# Singapore
DatabaseMirror clamav.acnova.com
# Slovakia
DatabaseMirror clamav.hq.alert.sk
# Spain
DatabaseMirror clamav.talika.eii.us.es
# Sweden
DatabaseMirror clamav.kratern.se
DatabaseMirror clamav.df.lth.se
DatabaseMirror clamav.mainloop.se
# Switzerland
DatabaseMirror switch.clamav.net
# Taiwan
DatabaseMirror clamav.cs.pu.edu.tw
DatabaseMirror clamav.stu.edu.tw
# Turkey
DatabaseMirror clamav.enderunix.org
DatabaseMirror clamav.ubak.gov.tr
# Ukraine
DatabaseMirror clamav.intercom.net.ua
# United Kingdom
DatabaseMirror clamav.mirror.camelnetwork.com
DatabaseMirror clamav.dbplc.com
DatabaseMirror clamav.spod.org
DatabaseMirror clamav.public-internet.co.uk
# United States
DatabaseMirror clamav.catt.com
DatabaseMirror clamav.clearfield.com
DatabaseMirror clamav.devolution.com
DatabaseMirror clamav.edebris.com
DatabaseMirror clamav.edgescape.com
DatabaseMirror clamav.infotex.com
DatabaseMirror clamav.irontec.com
DatabaseMirror clamav.liquidweb.com
DatabaseMirror clamav.pathlink.com
DatabaseMirror avmirror2.prod.rxgsys.com
DatabaseMirror clamav.theshell.com
DatabaseMirror clamav-du.viaverio.com
DatabaseMirror clamav-sj.viaverio.com
DatabaseMirror clamav.walkertek.com
DatabaseMirror clamav.westlinks.com
DatabaseMirror clamav.xyxx.com
DatabaseMirror clamav.pinna.cx
DatabaseMirror clamav.unet.brandeis.edu
DatabaseMirror clamav.bridgeband.net
DatabaseMirror clamav.inoc.net
DatabaseMirror clamav-000.mirrors.nks.net
DatabaseMirror clamav-001.mirrors.nks.net
DatabaseMirror clamav-002.mirrors.nks.net
DatabaseMirror clamav-003.mirrors.nks.net
DatabaseMirror clamav-004.mirrors.nks.net
DatabaseMirror clamav-005.mirrors.nks.net
DatabaseMirror clamav.oc1.mirrors.redwire.net
DatabaseMirror clamav.securityminded.net
DatabaseMirror clamav.securitywonks.net
DatabaseMirror clamav.sonic.net
#
# Malware
DatabaseCustomURL https://cdn.malware.expert/malware.expert.ndb
DatabaseCustomURL https://cdn.malware.expert/malware.expert.hdb
DatabaseCustomURL https://cdn.malware.expert/malware.expert.ldb
DatabaseCustomURL https://cdn.malware.expert/malware.expert.fp
# Sanesecurity: malware, spam, phishing, lottery, etc
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/sigwhitelist.ign2
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/sanesecurity.ftm
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/MiscreantPunch099-INFO-Low.ldb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/MiscreantPunch099-Low.ldb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/Sanesecurity_BlackEnergy.yara
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/Sanesecurity_sigtest.yara
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/Sanesecurity_spam.yara
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/badmacro.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/blurl.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/hackingteam.hsb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/junk.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/jurlbl.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/jurlbla.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/lott.ndb
# Bofhland
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/bofhland_cracked_URL.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/bofhland_malware_URL.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/bofhland_malware_attach.hdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/bofhland_phishing_URL.ndb
# Foxhole
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/foxhole_all.cdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/foxhole_all.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/foxhole_filename.cdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/foxhole_generic.cdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/foxhole_js.cdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/foxhole_js.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/foxhole_links.ldb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/foxhole_mail.cdb
#
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/malware.expert.fp
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/malware.expert.hdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/malware.expert.ldb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/malware.expert.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/malwarehash.hsb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/phish.ndb
#
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/phishtank.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/porcupine.hsb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/porcupine.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/rogue.hdb
#
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/scam.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/scamnailer.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/shelter.ldb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/spam.ldb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/spamattach.hdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/spamimg.hdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/spear.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/spearl.ndb
#
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/winnow.attachments.hdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/winnow.complex.patterns.ldb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/winnow_bad_cw.hdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/winnow_extended_malware.hdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/winnow_extended_malware_links.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/winnow_malware.hdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/winnow_malware_links.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/winnow_phish_complete.ndb
# DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/winnow_phish_complete_url.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/winnow_spam_complete.ndb
#
DatabaseCustomURL https://www.rfxn.com/downloads/rfxn.ndb
DatabaseCustomURL https://www.rfxn.com/downloads/rfxn.hdb
# Phishing, scams and other junk, hashes of spam documents and images
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/crdfam.clamav.hdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/doppelstern-phishtank.ndb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/doppelstern.hdb
DatabaseCustomURL https://ftp.swin.edu.au/sanesecurity/doppelstern.ndb
Salve e saia do arquivo.
Deixo a título de informação a descrição de algumas assinaturas:
Note: Only use ONE of the above databases, winnow_phish_complete.ndb or winnow_phish_complete_url.ndb.
NOTA: Use somente um dos dois, ou um ou outro: winnow_phish_complete.ndb ou winnow_phish_complete_url.ndb.
No arquivo freshclamav.conf já deixei o winnow_phish_complete.ndb comentado.
Maiores informações aqui:
https://ftp.swin.edu.au/sanesecurity/readme.txt
ATUALIZANDO O FRESHCLAM
O parâmetro DatabaseDirectory /var/lib/clamav deve ser o mesmo nos arquivos freshclam.conf e clamd.conf. Caso alterar num deve obrigatoriamente alterar no outro. Aconselho a deixar no padrão. Ao executar o freshclam o programa tentará buscar uma atualização no endereço especificado na linha DatabaseMirror, caso não encontre, ele passará para o endereço subsequente, até encontrar e baixar as atualizações. Depois ele executará todas as DatabaseCustomURL.
Atualizando pelo terminal:
# freshclam
Levará em torno de um a dois minutos atualizando os bancos de dados. Caso der um erro semelhante a esse:
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).
ERROR: initialize: libfreshclam init failed.
ERROR: Initialization error!
Faça o seguinte:
# lsof /var/log/clamav/freshclam.log
e veja na saída o número do PID ao final:
freshclam XXXX clamav 3wW REG 8,3 3384 7471195 /var/log/clamav/freshclam.log
Encerre o processo:
# kill XXXX <<< no lugar de XXXX terá um número de 4 dígitos
Atualizando:
# freshclam
Abaixo é somente um exemplo, a saída bem maior:
Mon Jun 20 20:15:41 2023 -> daily.cvd database is up-to-date (version: 26944, sigs: 2037362, f-level: 90, builder: raynman)
Mon Jun 20 20:15:41 2023 -> main.cvd database is up-to-date (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr)
Mon Jun 20 20:15:41 2023 -> bytecode.cvd database is up-to-date (version: 334, sigs: 91, f-level: 90, builder: anvilleg)
Mon Jun 20 20:15:42 2023 -> malware.expert.ndb is up-to-date (version: custom database)
Mon Jun 20 20:15:43 2023 -> malware.expert.hdb is up-to-date (version: custom database)
Time: 1.1s, ETA: 0.0s [========================>] 246B/246B
Mon Jun 20 20:15:44 2023 -> Testing database: '/var/lib/clamav/tmp.6691514a05/clamav-d170be684bda2d5cf594bdd941ceae65.tmp-malware.expert.ldb' ...
Mon Jun 20 20:15:44 2023 -> Database test passed.
Mon Jun 20 20:15:44 2023 -> malware.expert.ldb updated (version: custom database, sigs: 1)
Deverá terminar com a última linha assim:
Mon Jun 20 20:16:19 2023 -> Clamd successfully notified about the update.
Aconselho a colocar no cron para fazer freshclam uma vez por semana (ou mais, a seu gosto) ou use o Programador na interface do ClamTK. Lembrando que o ClamTK é bem básico e abrange somente os aspectos do ClamAV (somente o que está nos arquivos de configurações), por exemplo, as atualizações do clamav-unofficial-sigs você deverá programar no cron ou realizar manualmente.
# systemctl start clamav-freshclam
IMPORTANTE
Sempre antes de executar freshclam deve-se parar o serviço, a sequência é sempre essa:
# freshclam
# systemctl start clamav-freshclam
Testando
Vamos instalar o diretório virulento de testes fornecido pelo clamav:
# apt-get install clamav-testfiles
Escaneando
# clamscan /usr/share/clamav-testfiles/
Deverá terminar com a lista de arquivos encontrados e ao final terá:
Known viruses: 8808129
Engine version: 1.0.1
Scanned directories: 1
Scanned files: 46
Infected files: 46
Data scanned: 20.73 MB
Data read: 6.21 MB (ratio 3.34:1)
Time: 85.844 sec (1 m 25 s)
Start Date: 2023:06:19 20:26:40
End Date: 2023:06:19 20:28:06
# apt-get remove clamav-testfiles
ON-ACCESS SCANNING
Agora vamos habilitar o On-Access Scanning conhecido também como Proteção em Tempo Real.
Segundo o que está na página oficial do ClamAV:
"On-Access Scanning The ClamOnAcc application provides On-Access Scanning for Linux systems. On-Access Scanning is a form of real-time protection that uses ClamD to scan files when they're accessed."
"Varredura ao acessar O aplicativo ClamOnAcc fornece varredura ao acessar para sistemas Linux. A varredura ao acessar é uma forma de proteção em tempo real que usa o ClamD para verificar os arquivos quando eles são acessados."
O ClamAV não tem aquela proteção que fica o tempo todo "escaneando" o computador (aliás, antivírus nenhum tem, mas isso é passível de discussão), ele somente escaneia o diretório e/ou o arquivo quando ele é acessado, o que não é muito diferente.
O cliente ClamOnAcc para o daemon de varredura ClamD fornece varredura no acesso em versões modernas do Linux. Isso inclui um recurso opcional para bloquear o acesso ao arquivo até que um arquivo seja verificado (prevenção no acesso).
IMPORTANTE
Caso o fanotify não estiver habilitado no Kernel (página INTRODUÇÃO) não adianta fazer esse procedimento sem antes habilitá-lo.
Pare o serviço e acesse o arquivo clamd.conf:
# cd /etc/clamav
# vim clamd.conf
Deixe como está abaixo:
#To reconfigure clamd run #dpkg-reconfigure clamav-daemon
#Please read /usr/share/doc/clamav-daemon/README.Debian.gz for details
LocalSocket /var/run/clamav/clamd.ctl
FixStaleSocket true
LocalSocketGroup clamav
LocalSocketMode 666
# TemporaryDirectory is not set to its default /tmp here to make overriding
# the default with environment variables TMPDIR/TMP/TEMP possible
User clamav
ScanMail true
ScanArchive true
ArchiveBlockEncrypted false
MaxDirectoryRecursion 15
FollowDirectorySymlinks false
FollowFileSymlinks false
ReadTimeout 180
MaxThreads 12
MaxConnectionQueueLength 15
LogSyslog false
LogRotate true
LogFacility LOG_LOCAL6
LogClean false
LogVerbose false
PreludeEnable no
PreludeAnalyzerName ClamAV
DatabaseDirectory /var/lib/clamav
OfficialDatabaseOnly false
SelfCheck 3600
Foreground false
Debug false
ScanPE true
MaxEmbeddedPE 10M
ScanOLE2 true
ScanPDF true
ScanHTML true
MaxHTMLNormalize 10M
MaxHTMLNoTags 2M
MaxScriptNormalize 5M
MaxZipTypeRcg 1M
ScanSWF true
ExitOnOOM false
LeaveTemporaryFiles false
AlgorithmicDetection true
ScanELF true
IdleTimeout 30
CrossFilesystems true
PhishingSignatures true
PhishingScanURLs true
PhishingAlwaysBlockSSLMismatch false
PhishingAlwaysBlockCloak false
PartitionIntersection false
DetectPUA false
ScanPartialMessages false
HeuristicScanPrecedence false
StructuredDataDetection false
CommandReadTimeout 30
SendBufTimeout 200
MaxQueue 100
ExtendedDetectionInfo true
OLE2BlockMacros false
AllowAllMatchScan true
ForceToDisk false
DisableCertCheck false
DisableCache false
MaxScanTime 120000
MaxRecursion 16
MaxFiles 10000
MaxPartitions 50
MaxIconsPE 100
PCREMatchLimit 10000
PCRERecMatchLimit 5000
PCREMaxFileSize 25M
ScanXMLDOCS true
ScanHWP3 true
MaxRecHWP3 16
StreamMaxLength 25M
LogFile /var/log/clamav/clamav.log
LogTime true
LogFileUnlock false
LogFileMaxSize 0
Bytecode true
BytecodeSecurity TrustSigned
BytecodeTimeout 60000
#
OnAccessMountPath /
OnAccessExcludePath /sys
OnAccessIncludePath /
OnAccessIncludePath /home
OnAccessPrevention yes
OnAccessExcludeUname clamav
OnAccessExtraScanning yes
OnAccessMaxFileSize 20M
MaxFileSize 50M
MaxScanSize 200M
TCPSocket 3310
TCPAddr localhost
AlertExceedsMax yes
Salve e saia do arquivo.
Com a configuração acima (OnAccessPrevention yes e as outras após o último #) o fanotify bloqueará qualquer evento acionado permitindo que apenas arquivos limpos sejam abertos ou acessados.
Essa configuração também alertará imediatamente se um arquivo malicioso for baixado inadvertidamente. O inotify tem um número limitado de pontos de controle disponíveis para uso por um processo a qualquer momento.
Para aumentar o número de inotifywatch-points disponíveis para uso pelo ClamAV (para 524288), execute:
# echo 20971520 | sudo tee -a /proc/sys/fs/inotify/max_user_watches
Saída: 20971520
AVISO
O número ali são 20M convertidos em bytes. Esse número deve ser o mesmo do parâmetro OnAccessMaxFileSize. Caso você mudar o número do parâmetro OnAccessMaxFileSize deve executar esse comando novamente com o novo número.
Por enquanto somente vamos configurar esses parâmetros, em outra oportunidade disponibilizo um arquivo clamd.conf mais completo com outras configurações.
Vejam bem, as opções acrescentadas acima estão todas comentadas mais abaixo no arquivo, somente acrescentei elas no início para evitar que tivessem que procurá-la no gigantesco arquivo, então caso você for configurar por conta o arquivo clamd.conf tenha cuidado de não repetir os parâmetros.
O parâmetro OnAccessIncludePath pode ser utilizado várias vezes, esse parâmetro especifica o(s) diretórios (com arquivos) que serão incluídos no escaneamento no acesso.
No parâmetro OnAccessExcludePath excluímos do escaneamento o diretório sys para evitar muitos falsos positivos. Tal diretório você deve escanear manualmente.
Execute:
# clamd <<< esse comando demora alguns segundos, caso não retornar nada é porque está tudo certo.
# systemctl start clamav-daemon
# systemctl start clamav-milter
# clamonacc
IMPORTANTE
Cada vez que se alterar o arquivo clamd.conf deve-se executar os comandos na sequência: parar o serviço, alterar o arquivo e salvar, iniciar o serviço.
# htop
Descompactando os bancos de dados cvd adicionais:
# cd /tmp/clamav-sigs/
# sigtool --unpack /var/lib/clamav/main.cvd
# ls
COPYING main.fp main.hsb main.mdb main.ndb main.crb main.hdb main.info main.msb main.sfp
# ls
COPYING daily.ftm daily.idb daily.ldu daily.ndb main.cdb main.info main.sfp daily.cdb daily.hdb daily.ign daily.mdb daily.ndu main.crb main.ldb daily.cfg daily.hdu daily.ign2 daily.mdu daily.pdb main.fp main.mdb daily.crb daily.hsb daily.info daily.msb daily.sfp main.hdb main.msb daily.fp daily.hsu daily.ldb daily.msu daily.wdb main.hsb main.ndb
Atualizando a base não oficial:
# clamav-unofficial-sigs
INSTALANDO O CLAMTK
# apt-get install clamtk
Para finalizar, reinicie o computador e execute um htop novamente para certificar se os serviços estão iniciando com o sistema.
Para remover:
# apt autoremove
# rm -rf /var/lib/clamav/main.cvd
# rm -rf /var/lib/clamav/daily.cvd
No caso do cron segue uma sugestão:
# 40 23 * * 0,3 root clamscan --recursive --exclude-dir="^/sys" / --move=/home/clamav/quarentena
# * 1 * * 0,3 root clamav-unofficial-sigs
Salve e saia.
A opção --recursive fará a varredura em todos os subdiretórios abaixo do /root.
Para um escaneamento manual aconselha-se acrescentar a opção -i que exibirá os arquivos infectados, se houver:
# clamscan --recursive -i --exclude-dir="^/sys" / --move=/home/clamav/quarentena
O arquivo quarentena em /home/clamav/quarentena você pode criar (mkdir) em outro lugar de sua escolha.
O cron acima fará uma atualização todos os dias às 23:20h e uma varredura às 23:40h no domingo e na quarta em todo o sistema com exceção do diretório sys para evitar muitos falsos positivos e chamadas de erros.
Caso queira, acrescente mais entradas de varreduras em vários horários no Cron de acordo com as suas necessidades. O diretório sys aconselho a escanear sozinho e manualmente para ter mais controle. E no domingo e na quarta fará atualização do clamav-unofficial-sigs à uma hora da madrugada.
Agende como quiser no crontab quantas varreduras quiser de acordo com as suas necessidades, somente dei uma sugestão.
Opcional
Para instalar outras assinaturas adicionais do clamav-unofficial-sigs veja aqui: https://gerenciandoservidor.com/como-instalar-assinaturas-adicionais-para-o-clamav/
https://manpages.ubuntu.com/manpages/focal/en/man8/clamav-unofficial-sigs.8.html
Referências
https://blog.clamav.net/2016/03/configuring-on-access-scanning-in-clamav.html
https://docs.clamav.net/manual/OnAccess.html
https://www.vivaolinux.com.br/etc/freshclam.conf-lpareal
https://www.edivaldobrito.com.br/clamav-no-linux
https://servidordebian.org/pt/buster/intranet/antivirus/clamav
https://github.com/extremeshok/clamav-unofficial-sigs
https://malware.expert/signatures/
https://ftp.swin.edu.au/sanesecurity/
https://ftp.swin.edu.au/sanesecurity/readme.txt
https://www.rfxn.com/projects/linux-environment-security/
https://wiki.archlinux.org/title/ClamAV_(Portugu%C3%AAs)
Nenhum comentário:
Postar um comentário