ClamAV (Português)
Clam AntiVirus é uma caixa de ferramentas de antivírus, código aberto (GPL), para UNIX. Ele fornece uma série de utilitários, incluindo um daemon multi-threaded 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. Como o uso principal do ClamAV é em servidores de arquivos/e-mails para desktops Windows, ele principalmente detecta vírus e malwares do Windows com suas assinaturas embutidas.
Atualizando o banco de dados
Atualize as definições de vírus com:
# freshclam
Se você está por trás de um proxy, edite /etc/clamav/freshclam.conf
and update HTTPProxyServer, HTTPProxyPort, HTTPProxyUsername e HTTPProxyPassword.
Os arquivos de banco de dados são salvos em:
/var/lib/clamav/daily.cvd /var/lib/clamav/main.cvd /var/lib/clamav/bytecode.cvd
Inicie/habilite clamav-freshclam.service
para que as definições de vírus estejam sempre recentes.
Iniciando o daemon
freshclam
antes de iniciar o serviço pela primeira vez ou você poderá ter problema/erros que impedirão o ClamAV de iniciar corretamente.O serviço chamado clamav-daemon.service
. Inicie-o e habilite-o para iniciar quando da inicialização do sistema.
Testando o software
Para ter certeza que o ClamAV e as definições estão instaladas corretamente, execute um scan no arquivo de teste EICAR (uma assinatura inofensiva com nenhum código de vírus) com clamscan.
$ curl https://secure.eicar.org/eicar.com.txt | clamscan -
A saída deve incluir:
stdin: Win.Test.EICAR_HDB-1 FOUND
Do contrário, leia a parte Solução de Problemas ou peça por ajuda nos Fóruns do Arch.
Adicionando mais repositórios de bancos de dados/assinaturas
ClamAV pode usar banco de dados/assinaturas de outros repositórios ou fornecedores de segurança.
Para adicionar os mais importantes em um único passo, instale clamav-unofficial-sigsAUR (veja a descrição no GitHub) ou python-fangfrischAUR (veja a documentação online). Ambos vão adicionar assinaturas/banco de dados de provedores populares, como por exemplo, MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect, etc.
Opção nº 1: Configure Fangfrisch
Fangfrisch foi projetado como um substituto mais seguro, flexível e coveniente para o clamav-unofficial-sigs, e requer muito pouca configuração.
Mais importante, o Fangfrisch nunca precisa ser executado com permissões de root, diferentemente de clamav-unofficial-sigs.
Crie a estrutura de banco de dados executando:
# sudo -u clamav /usr/bin/fangfrisch --conf /etc/fangfrisch/fangfrisch.conf initdb
Habilite o fangfrisch.timer
.
Opção nº 2: Configure clamav-unofficial-sigs
Habilite o clamav-unofficial-sigs.timer
.
Isso vai atualizar regularmente as assinaturas não oficiais baseadas nos arquivos de configuração no diretório /etc/clamav-unofficial-sigs
.
Para atualizar as assinaturas manualmente, execute o seguinte comando:
# clamav-unofficial-sigs.sh
Para alterar as configurações padrão, acesse e modifique /etc/clamav-unofficial-sigs/user.conf
.
Banco de dados MalwarePatrol
Se você quiser de usar o banco de dados do MalwarePatrol, crie uma conta em https://www.malwarepatrol.net/free-guard-upgrade-option.
Em /etc/clamav-unofficial-sigs/user.conf
, altere o seguinte para habilitar essa funcionalidade:
malwarepatrol_receipt_code="SEU-NÚMERO-RECIBO" # Insira seu número de recibo aqui malwarepatrol_product_code="8" # Use 8 se você tiver uma conta Free ou 15 se você for um cliente Premium. malwarepatrol_list="clamav_basic" # clamav_basic ou clamav_ext malwarepatrol_free="yes" # Defina para yes se você tiver uma conta Free ou no see você tiver uma conta Premium.
Fonte: https://www.malwarepatrol.net/clamav-configuration-guide/
Varrendo por vírus
pode ser usado para varrer (scan) certos arquivos, diretórios home, um sistema inteiro:
$ clamscan meuarquivo $ clamscan --recursive --infected /home # clamscan --recursive --infected --exclude-dir='^/sys|^/dev' /
Se você quiser que remova o arquivo infectado, adicione ao comando a opção ou você pode usar --move=/dir
para colocá-los em quarentena.
Você também pode se interessar em usar o para varrer arquivos grandes. Neste caso, anexe as opções e ao comando. "4000M" é o maior valor possível e pode ser diminuído conforme necessário.
Usar a opção vai imprimir os logs do para um arquivo texto para localizar infecções relatadas.
Usando o milter
Milter vai realizar um scan em seu servidor sendmail por e-mail contendo vírus. Ajuste as configurações de às suas necessidades. Por exemplo:
Crie :
/etc/systemd/system/clamav-milter.service
[Unit] Description='ClamAV Milter' After=clamav-daemon.service [Service] Type=forking ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf [Install] WantedBy=multi-user.target
Para Postfix, adicione as seguintes linhas para :
Verifique journalctl se a permissão para acessar o clamav-milter.socket para o postfix estiver configurada adequadamente; caso contrário, inclua o postfix do usuário no grupo clamav.
OnAccessScan
A varredura no acesso (on-access scan) requer que o kernel seja compilado com o módulo kernel fanotify (kernel >= 3.8). Verifique se fanotify foi ativado antes de ativar a varredura no acesso.
$ zgrep FANOTIFY /proc/config.gz
A varredura no acesso digitalizará o arquivo ao ler, escrever ou executá-lo.
Primeiro, edite o arquivo de configuração , adicionando o seguinte ao final do arquivo (você também pode alterar as opções individuais):
/etc/clamav/clamd.conf
# Ativa varredura no acesso, exige que clamav-daemon.service esteja em execução ScanOnAccess true # Define o ponto de montagem onde deve-se realizar recursivamente a varredura, # isso poderia ser todo caminho ou vários caminho (uma linha por caminho) OnAccessMountPath /usr OnAccessMountPath /home/ OnAccessExcludePath /var/log/ # Sinaliza fanotify para bloquear quaisquer eventos em arquivos monitorados para realizar a varredura OnAccessPrevention false # Realiza a varredura em arquivos recém-criados, movidos ou renomeados OnAccessExtraScanning true # Verifica o UID do evento do fanotify OnAccessExcludeUID 0 # Especifica uma ação para realizar quando o clamav detecta um arquivo malicioso # é possível especificar um comando em linha também VirusEvent /etc/clamav/detected.sh # AVISO: clamd deve ser executado como root User root
Em seguida, crie o arquivo e adicione o conteúdo a seguir. Isso permite que você altere/especifique a mensagem de depuração quando um vírus tiver sido detectado pelo dispositivo de varredura no acesso do clamd:
Se você está usando AppArmor, também é necessário permitir que o clamd execute como root:
# aa-complain clamd
Reinicie o clamav-daemon.service
.
Fonte: https://blog.clamav.net/2016/03/configuring-on-access-scanning-in-clamav.html
Solução de programas
Erro: Clamd was NOT notified
Se você receber as seguintes mensagens após executar freshclam:
Adicione um arquivo sock ao ClamAV:
# touch /run/clamav/clamd.ctl # chown clamav:clamav /run/clamav/clamd.ctl
Então, edite - descomente essa linha:
LocalSocket /run/clamav/clamd.ctl
Salve o arquivo e reinicie clamav-daemon.service
.
Erro: No supported database files found
Se você receber o erro abaixo quando iniciar o daemon:
Isso acontece por causa de incompatibilidade entre a configuração do /etc/clamav/freshclam.conf
e do . /etc/clamav/freshclam.conf
apontando para /var/lib/clamav
, mas (diretório padrão) apontando para , ou outro diretório. Edite e substituta com o mesmo DatabaseDirectory como no /etc/clamav/freshclam.conf
. Após isso, clamav vai iniciar com sucesso.
Erro: Can't create temporary directory
Se você obtiver o erro a seguir, junto com um 'HINT' contendo um número de UID e um de GID:
# can't create temporary directory
Corrija as permissões:
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav
sendo UID e GID o informado na dica acima
Dicas e truques
Usando clamscan
Ao varrer um arquivo ou diretório a partir da linha de comando usando , apenas uma única thread de CPU é usada. Isso pode servir em casos em que o tempo não é crítico ou você não deseja que o computador fique lento. Se houver necessidade de varrer rapidamente uma pasta grande ou uma unidade USB, convém usar todas as CPUs disponíveis para acelerar o processo.
é projetado para funcionar em uma única thread, então você pode usar para executar a varredura em paralelo:
$ find /home/archie -type f -print0 | xargs -0 -P $(nproc) clamscan
Neste exemplo, o parâmetro -P
para executa na quantidade de processos igual à de CPUs relatada por por vez. As opções e permitirão um controle ainda melhor do envio em lote da carga de trabalho entre as threads.
Usando clamdscan
Se você já tiver o daemon em execução, pode ser usado (veja #Iniciando o daemon):
$ clamdscan --multiscan --fdpass /home/archie
Aqui, o parâmetro --multiscan
permite que o verifique o conteúdo do diretório em paralelo usando as threads disponíveis. O parâmetro é necessário para passar as permissões do descritor de arquivo para , pois o daemon está sendo executado sob o usuário e grupo .
O número de threads disponíveis para é determinado em através do parâmetro . Mesmo que você possa ver que o número de especificado é mais de um (o padrão atual é 10), quando você inicia a varredura usando na linha de comando e não especifica a opção --multiscan
, apenas uma thread eficaz da CPU será usado para a varredura.