Antivírus ClamAV com proteção em tempo real

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).

[ Hits: 11.779 ]

Por: Buckminster em 12/08/2023


ON-ACCESS SCANNING (Proteção em Tempo Real)



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:

"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 1 - INTRODUÇÃO) não adianta fazer esse procedimento sem antes habilitá-lo.

Acesse o arquivo clamd.conf:

# systemctl stop clamav-daemon
# cd /etc/clamav
# vim clamd.conf

Deixe como está abaixo:

#Automatically Generated by clamav-daemon postinst
#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:

# systemctl stop clamav-daemon

Esse comando demora alguns segundos, caso não retornar nada é porque está tudo certo:

# clamd

# 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 acima.
Você pode verificar com o comando top ou htop se o clamonacc está rodando: # htop

Descompactando os bancos de dados cvd adicionais:

# mkdir /tmp/clamav-sigs
# 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


# sigtool --unpack /var/lib/clamav/daily.cvd
# 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

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação
   3. Arquivo freshclam.conf
   4. Atualizando o freshclam
   5. ON-ACCESS SCANNING (Proteção em Tempo Real)
   6. Instalando o Clamtk
Outros artigos deste autor

kernel Linux otimizado - Compilação e teste

Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário

Instalando e Configurando o pgAgent no Linux (pgAdmin e PostgreSQL)

Como um monte de letras de um código fonte transforma-se em voltagens?

Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha

Leitura recomendada

Criptografia em roteadores

Buffer Overflow: Entendendo e explorando

SECtool - Análise Local para Linux

Monitorando redes utilizando Ntop

VPN: IPSec vs SSL

  
Comentários
[1] Comentário enviado por fabio em 12/08/2023 - 20:37h

Muito bom! Parabéns pelo trabalho.

[2] Comentário enviado por hauck em 02/09/2023 - 10:03h

Posso usar a proteção em tempo real em um servidor com sites hospedados e outros serviços?
Poderia ter algum problema devido a um arquivo ser bloqueado pelo clamav?

[3] Comentário enviado por Buckminster em 03/09/2023 - 17:22h


[2] Comentário enviado por hauck em 02/09/2023 - 10:03h

Posso usar a proteção em tempo real em um servidor com sites hospedados e outros serviços?
Poderia ter algum problema devido a um arquivo ser bloqueado pelo clamav?


Problema nenhum.
O ClamAV (como todo antivírus) tem uma lista onde você pode colocar certos sites e arquivos para escapar da proteção.

[4] Comentário enviado por Sofiabriggs em 11/09/2023 - 08:12h


Thanks for the information. https://www.telltims.net

[5] Comentário enviado por Minions em 28/09/2023 - 02:07h

Isso de "proteção em tempo real" seria como no Windows?

Esse método roda o clamav na memória ram e nos processos do sistema?

[6] Comentário enviado por Buckminster em 19/10/2023 - 08:16h


[5] Comentário enviado por Minions em 28/09/2023 - 02:07h

Isso de "proteção em tempo real" seria como no Windows?

Esse método roda o clamav na memória ram e nos processos do sistema?


https://docs.clamav.net/manual/OnAccess.html

https://blog.clamav.net/2016/03/configuring-on-access-scanning-in-clamav.html

[7] Comentário enviado por cumestive em 28/10/2023 - 11:27h


muito bom esse tutorial, obrigado

[8] Comentário enviado por maurixnovatrento em 29/10/2023 - 13:33h


Ótimo artigo, muito bom.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10

[9] Comentário enviado por fabiobarby em 20/12/2023 - 11:30h


Muito bom, me ajudou aqui, obrigado!

[10] Comentário enviado por Minions em 22/04/2024 - 12:26h

Poderia ter no vol uma base de assinatura feita pelos usuários para o Clamav.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts