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
- Dê permissão de execução: sudo chmod +x /usr/local/bin/clamav_semanal.sh
- Adicione ao Crontab para rodar todo domingo às 03:00 da manhã: sudo crontab -e
- 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.