Debian – Antivírus

Em servidores Linux que lidam com arquivos de terceiros (servidores de arquivos, mail gateways), o antivírus é uma camada necessária para proteger os clientes da rede.

ClamAV: Instalação e uso técnico

Passo 1 – Instale o motor e o daemon:

sudo apt update
sudo apt install clamav clamav-daemon -y
  • clamav: O scanner propriamente dito.
  • clamav-daemon: Permite que o ClamAV rode em segundo plano (como um serviço), o que acelera drasticamente as varreduras, pois o banco de dados de vírus permanece carregado na RAM.

Passo 2 – Atualização da Base de Dados

O utilitário responsável por manter as definições de vírus em dia é o freshclam.

O instalador do Debian geralmente inicia o freshclam como um serviço. Para forçar uma atualização manual imediata, você deve pará-lo temporariamente:

sudo systemctl stop clamav-freshclam
sudo freshclam
sudo systemctl start clamav-freshclam

Passo 3 – Comandos Essenciais de Varredura

Para escanear arquivos manualmente, utiliza-se o comando clamscan.

Escanear um diretório específico:

clamscan -r /caminho/do/diretorio

Escanear e mostrar apenas arquivos infectados:

clamscan -r --infected /home

Remover arquivos infectados (Cuidado!):

clamscan -r --remove /home/usuario/downloads

Mover infectados para uma pasta de quarentena:

clamscan -r --move=/tmp/quarentena /home

Passo 4 – Otimização com Clamd

Para servidores com muitos arquivos, rodar o clamscan toda vez é pesado para o CPU. Use o clamdscan (que utiliza o daemon carregado na memória):

# Certifique-se que o daemon está rodando
sudo systemctl start clamav-daemon

# Varredura rápida usando o daemon
sudo clamdscan /var/www/html

Passo 5 – Script de Automação Semanal

Abaixo, um script robusto que atualiza a base de dados, realiza a varredura e gera um log para acompanhamento.

O Script (/usr/local/bin/clamav_semanal.sh):

#!/bin/bash

# Configurações
LOG_FILE="/var/log/clamav_scan.log"
SCAN_DIR="/"           # Diretório raiz (ajuste se necessário)
QUARANTINE="/tmp/virus_quarentena"
DATE=$(date +%Y-%m-%d)

# Criar pasta de quarentena se não existir
mkdir -p $QUARANTINE

echo "--- Início da Varredura Semanal: $DATE ---" >> $LOG_FILE

# 1. Atualizar base de dados
echo "Atualizando definições..." >> $LOG_FILE
systemctl stop clamav-freshclam
freshclam >> $LOG_FILE 2>&1
systemctl start clamav-freshclam

# 2. Executar Varredura
# --exclude-dir: evita escanear sistemas de arquivos virtuais do Linux
echo "Iniciando scan em $SCAN_DIR..." >> $LOG_FILE
clamdscan -r --infected \
    --exclude-dir="^/sys" \
    --exclude-dir="^/proc" \
    --exclude-dir="^/dev" \
    --move=$QUARANTINE \
    $SCAN_DIR >> $LOG_FILE

echo "--- Varredura Finalizada: $(date) ---" >> $LOG_FILE

Passo 6 – Configurando a Execução

  1. Dê permissão de execução: sudo chmod +x /usr/local/bin/clamav_semanal.sh
  2. Adicione ao Crontab para rodar todo domingo às 03:00 da manhã: sudo crontab -e
  3. Insira a linha ao final do arquivo: 00 03 * * 0 /usr/local/bin/clamav_semanal.sh

Dicas de Segurança e Performance

  • Exclusão de diretórios: Nunca esqueça de excluir /proc, /sys e /dev em varreduras completas no /, caso contrário o scanner entrará em loops infinitos ou causará erros de sistema.
  • Recursos de CPU: O ClamAV pode consumir muita CPU. Se o servidor for de produção pesada, considere adicionar –nice=15 ao comando clamscan no script para dar prioridade menor ao processo.
  • Quarentena: Verifique o diretório de quarentena periodicamente para garantir que não houve “falsos positivos” (arquivos legítimos marcados como vírus).

Passo 7 – Comando Completo

Primeiro, crie a pasta de quarentena (caso ainda não exista):

sudo mkdir -p /root/quarentena

Agora, execute o comando de varredura:

sudo su -
clamdscan -r / --log=/var/log/clamav_varredura_geral.log --move=/root/quarentena --exclude-dir="^/proc" --exclude-dir="^/sys" --exclude-dir="^/dev" --infected

Explicação detalhada dos parâmetros utilizados:

  • -r /: Ativa a recursividade (varre subpastas) começando pela raiz do sistema.
  • –log=/var/log/clamav_varredura_geral.log: Salva todos os detalhes da varredura, incluindo quais arquivos foram analisados e quais estavam infectados, neste arquivo de texto.
  • –move=/root/quarentena: Esta é a parte que isola os arquivos. Ao mover o arquivo infectado para uma pasta fora do seu diretório original, você quebra os caminhos de execução de possíveis scripts ou serviços que dependiam dele, neutralizando a ameaça sem deletá-la permanentemente.
  • –exclude-dir=”^/proc”, “^/sys”, “^/dev”: Estes diretórios são sistemas de arquivos virtuais que contêm arquivos gerados pelo Kernel em tempo real. Escaneá-los pode causar erros, lentidão extrema ou travar o scanner. O símbolo ^ garante que o ClamAV ignore as pastas exatamente na raiz.
  • –infected: Faz com que o terminal mostre apenas os arquivos que possuem problemas, evitando que a tela fique poluída com milhares de linhas de arquivos “OK”.

Limitações de antivírus em Linux

Diferente do Windows, o malware em Linux frequentemente utiliza explorações de memória ou scripts de shell que não possuem “assinaturas” tradicionais. O ClamAV é excelente para detectar ameaças em arquivos estáticos, mas ineficaz contra ataques de escalada de privilégios ou persistência baseada em kernel sem arquivos. Portanto, o antivírus nunca substitui o patch management e o controle de acesso.

Ilustrações

SVG REPO
Disponível em: https://www.svgrepo.com/svg/354912/debian
Acesso em: 04 abr. 2026.

Referências

CLAMAV.NET – Site Oficial do ClamAV
Disponível em: https://docs.clamav.net/
Acesso em: 04 abr. 2026.

DEBIAN.ORG – ClamAV
Disponível em: https://wiki.debian.org/ClamAV
Acesso em: 04 abr. 2026.

Rolar para cima