O que faz este módulo #
Um antivírus compara os ficheiros do teu servidor com um catálogo de assinaturas de malware conhecido. Se algo coincide, marca-o como infetado para que não continue a circular — por exemplo, um anexo malicioso enviado para uma pasta pública ou um ficheiro contaminado que chegou por FTP.
O módulo clamav coloca o motor ClamAV ao teu alcance com um punhado de comandos claros: consulta o seu estado, analisa o caminho que quiseres (um ficheiro ou uma árvore inteira), decide o que fazer com o que estiver infetado — só reportá-lo, eliminá-lo ou movê-lo para uma quarentena segura da qual podes restaurar mais tarde — e mantém a base de assinaturas atualizada com o freshclam. A quarentena isola o ficheiro sem o apagar, por isso nunca perdes nada por engano.
Uma análise deteta com a base de assinaturas que tiveres nesse momento. Se há dias que não atualizas, lança primeiro imaxe clamav update para não perderes ameaças recentes. Analisar árvores grandes pode demorar e consumir CPU: limita o caminho ao que realmente queiras rever.
Tarefas comuns #
Escolhe o que queres fazer. Cada receita traz o comando já escrito — basta trocar o caminho pelo teu e clicar em Copiar.
1
Ver se o ClamAV está pronto
Verifica o motor, o modo e que antiguidade têm as tuas assinaturas.
Liga-te por SSH ao teu servidor e pede o estado geral:
$ sudo imaxe clamav statusSó te interessa a base de assinaturas — versão, data e ficheiros? Usa db:
$ sudo imaxe clamav db2
Analisar uma pasta
Revê um caminho e fica com o relatório, sem mexer em nada.
Analisa um diretório e todo o seu conteúdo com --recursive. Por omissão apenas reporta: não apaga nem move nada.
$ sudo imaxe clamav scan /home --recursiveSó um ficheiro isolado? Passa-lhe o caminho direto, sem --recursive:
$ sudo imaxe clamav scan /srv/uploads/factura.pdf3
Analisar e isolar o que estiver infetado
Move automaticamente para quarentena tudo o que der positivo.
Analisa um caminho e, com --quarantine, afasta cada ficheiro infetado para a quarentena em vez de o deixar onde está:
$ sudo imaxe clamav scan /srv/uploads --recursive --quarantineSe preferires eliminar diretamente o que estiver infetado em vez de o isolar, usa --remove (é irreversível, usa-o com cabeça):
$ sudo imaxe clamav scan /srv/uploads --recursive --remove4
Rever e restaurar a quarentena
Vê o que está isolado e recupera um falso positivo se for preciso.
Lista o que há em quarentena — cada entrada traz o seu identificador, origem, assinatura e data:
$ sudo imaxe clamav quarantine listEra um falso positivo? Restaura-o para o seu caminho original com o identificador que aparece na lista:
$ sudo imaxe clamav quarantine restore a1b2c3d4Quando confirmares que tudo o que está isolado é lixo, esvazia a quarentena de forma definitiva:
$ sudo imaxe clamav quarantine purge --yes5
Atualizar as assinaturas
Descarrega as últimas definições para detetar ameaças novas.
Lança o freshclam para trazer a base de assinaturas mais recente:
$ sudo imaxe clamav updateVerifica depois que a base ficou atualizada, com a sua versão e data:
$ sudo imaxe clamav db--removeEliminar apaga o ficheiro sem volta atrás, e nenhum antivírus está livre de falsos positivos. Na dúvida, usa sempre --quarantine: isola igualmente bem e deixa-te restaurar se te enganaste.
Sinopse #
imaxe clamav <subcomando> [<ruta>] [--recursive] [--quarantine|--remove] [--json]Os subcomandos que analisam, movem ou eliminam ficheiros requerem privilégios de root (usa sudo), porque leem caminhos de outros utilizadores e escrevem na quarentena do sistema. Adiciona --json a qualquer comando para obter saída legível por máquina, apta para scripting.
Subcomandos #
| Subcomando | O que faz | Flags relevantes |
|---|---|---|
| status | Estado do ClamAV: engine, modo (daemon/on-demand), freshclam e base de assinaturas. | --json |
| scan | Analisa um caminho; pode reportar, eliminar ou colocar em quarentena o que estiver infetado. | --recursive, --remove, --quarantine, --json |
| update | Atualiza a base de assinaturas através do freshclam. | --json |
| db | Informação da base de assinaturas: versão, data e ficheiros. | --json |
| quarantine | Gere a quarentena de ficheiros infetados (grupo de subcomandos). | list · restore · purge |
O grupo quarantine reúne três subcomandos:
| Subcomando | O que faz | Flags relevantes |
|---|---|---|
| quarantine list | Lista os ficheiros em quarentena (origem, assinatura, data). | --json |
| quarantine restore | Restaura um ficheiro da quarentena para o seu caminho original ou para um destino indicado. | <id> [<destino>] |
| quarantine purge | Elimina definitivamente tudo o que houver em quarentena. | --yes |
Argumentos e flags #
| Flag / argumento | Tipo | Por omissão | Descrição |
|---|---|---|---|
| <ruta> obr. | path | — | Em scan, ficheiro ou diretório a analisar. |
| <id> obr. | string | — | Em quarantine restore, identificador do elemento em quarentena (aparece em quarantine list). |
| <destino> | path | caminho original | Em quarantine restore, caminho para o qual restaurar o ficheiro. Por omissão, a sua localização original. |
| --recursive | bool | false | Em scan, análise recursiva de diretórios. |
| --quarantine | bool | false | Em scan, move os ficheiros infetados para a quarentena. |
| --remove | bool | false | Em scan, elimina os ficheiros infetados. Irreversível; exclusivo com --quarantine. |
| --yes | bool | false | Em quarantine purge, confirma a eliminação sem perguntar. |
| --json | bool | false | Emite o resultado como JSON em stdout. Disponível em todos os subcomandos. |
Ficheiros e caminhos #
| Caminho | Conteúdo |
|---|---|
| /etc/imaxe/clamav.yml | Configuração do módulo: diretório de quarentena e caminhos excluídos da análise. |
| /var/lib/imaxe/clamav/quarantine | Armazém da quarentena: aqui isolam-se os ficheiros infetados que se podem restaurar. |
| /var/lib/clamav/ | Base de assinaturas que o freshclam mantém (definições de malware). |
| /var/log/imaxe/clamav.log | Registo estruturado de cada análise, quarentena e atualização. |
Exemplo de clamav.yml:
quarantine_dir: /var/lib/imaxe/clamav/quarantine
scan:
exclude:
- /proc
- /sysscan.exclude é uma lista de caminhos que a análise ignora; por omissão vem vazia.
Códigos de saída e logs #
Cada execução devolve um código que podes verificar com echo $? — útil para encadear em scripts:
Segue o log em direto enquanto depuras:
$ sudo tail -f /var/log/imaxe/clamav.logResolução de problemas #
| Sintoma | Causa provável | Solução |
|---|---|---|
| Sai INFECTED (código 3) | A análise detetou uma ou mais ameaças. | Revê o relatório; volta a lançar scan com --quarantine para as isolar. |
| Sai UPDATE (código 4) | O freshclam não conseguiu descarregar as assinaturas (rede ou mirror em baixo). | Verifica a saída para a Internet do servidor e tenta novamente clamav update. |
| A análise demora demasiado | O caminho abrange demasiados ficheiros ou caminhos de sistema. | Limita o caminho e exclui o desnecessário com scan.exclude no clamav.yml. |
| Perdi um ficheiro legítimo | Falso positivo movido para quarentena por --quarantine. | Localiza-o com quarantine list e recupera-o com quarantine restore <id>. |
| O estado indica assinaturas velhas | Há tempo que não se executa o freshclam. | Lança clamav update e verifica com clamav db. |
Ficou bloqueado com o módulo ClamAV?
Escreva-nos com a saída de «imaxe <module> status --json» e respondemos rapidamente.