Tutorial de Instalação do ClamAV - Anti-vírus open Source

Trata-se de um anti-vírus desenvolvido em gnuC que roda multi-plataforma nos diversos sabores de Unix. Tem como pretensão rodar como um anti-vírus de acesso a arquivos. Isto é ideal para servidores SAMBA/NIS/MARS. Também é possível rodar este anti-vírus em conjunto com o AMAVIS e o MailScanner para proteger servidores de Email e com o Apache para proteger servidores WEB.

[ Hits: 56.951 ]

Por: Alexandre de Jesus Marcolino em 22/11/2002 | Blog: http://blog.marcolino.com.br/wordpress/


TUTORIAL COMPLETO



Introdução

Trata-se de um anti-vírus desenvolvido em gnuC que roda multi-plataforma nos diversos sabores de Unix. Tem como pretensão rodar como um anti-vírus de acesso a arquivos. Isto é ideal para servidores SAMBA/NIS/MARS. Também é possível rodar este anti-vírus em conjunto com o AMAVIS e o MailScanner para proteger servidores de Email e com o Apache para proteger servidores WEB.

Ambiente de teste

As configurações abaixo descritas foram realizadas em um Intel Celeron 1GHZ, 256MB Ram. As distribuições usadas como teste foram:
  • Redhat Linux 7.3 - kernel 2.4.18
  • Conectiva Linux 8.0 - kernel 2.4.18

As duas distribuições foram instaladas na modalidade FULL .

Downloads necessários



Inicio

Vá para seu diretório favorito onde você deixa os fontes das coisas que compila e destarreie o arquivo clamav-053.tar.gz:

$ cd tmp
$ tar xzfv $HOME/mydownloads/clamav-053.tar.gz


Configurando o módulo DAZUKO

Aqui um ponto muito importante. Para poder verificar o conteúdo de tudo que é acessado, o ClamAV se utiliza de um módulo que trabalha em comunicação com o kernel do sistema. Sendo assim é necessários que os fontes do kernel estejam devidamente instalados em seu computador. Para o RH 7.3 o pacote se chama kernel-source-2.4.18-3.i386.rpm e está localizado no CD 2. No CL8 o pacote se chama kernel-source-2.4.18-3U8_4cl e se encontra no CD 2.

Tendo os fontes do kernel instalados, vamos ao passo a passo para instalar o DAZUKO. Isto é coisa para gente grande e por isso deve ser feito com o usuário root.

$ pwd
/home/marcolino/tmp/clamav-053
$ su -
# cd /home/marcolino/tmp/clamav-053
# cd support/dazuko
# make dazuko
# cp dazuko.o /usr/local/sbin


Até aqui compilamos o módulo dazuko e copiamos ele para /usr/local/sbin. Coloquei aí porque não quis perder tempo acertando o kernel para incluir ele diretamente junto com o fonte. Para fazer isso consulte o site www.dazuko.org. Eu não fiz e tudo está funcionando.

Agora vamos instalar o DAZUKO. Continuamos como root.

# mknod -m 666 /dev/dazuko c 254 0
# insmod /usr/local/sbin/dazuko.o


É uma boa idéia carregar isso antes do ClamAv. Coloquei em meu script de start/stop para carregar. Depois você poderá ver com isso ficou.

Configurando o ClamAV

Bom aqui é o ritual de sempre. Como root:

# cd /home/marcolino/tmp/clamav-053
# ./configure --prefix=/usr --sysconfdir=/etc
# groupadd clamav
# adduser -g clamav -s/bin/false -c"ClamAV" clamav
# make
# make install


Tudo sem surpresas nas duas distros aqui. Se você tiver alguma dificuldade pode ter certeza que é a falta de algum pacote de desenvolvimento. Como estou com as distros instaladas full, não posso dizer nada a respeito :-( .

Acertando o /etc/clamav.conf

Abaixo eu descrevo brevemente o que deve ser mexido ou não neste arquivo OK.

  • Encontrar a linha "Example" e comentar.
  • Encontrar a linha "Log File", descomentar e alterar para /var/log/clamd.log
  • Encontrar a linha "Log File Max Size" e descomentar
  • Encontrar a linha "Log Verbose" e descomentar
  • Encontrar a linha "Log Time" e descomentar
  • Encontrar a linha "Pid File", descomentar e alterar para /var/run/clamav/clamav.pid
  • Encontrar a linha "Data Directory" e descomentar
  • Encontrar a linha "Local Socket" e comentar
  • Encontrar a linha "TCP Socket" e descomentar
  • Encontrar a linha "Clamuko Scan OnLine" e descomentar
  • Encontrar a linha "Clamuko Include Path" e alterar para /home


A linha Clamuko Include Path discrimina quais os diretórios que serão scaneados com o anti-vírus. Sugiro para servidores de arquivo que apenas o diretório /home seja scaneado ( se este é o lugar onde estão os arquivos de usuário ;-) ) fazendo com que o sistema então tenha uma performance mais agradável escaneando apenas o que realmente interessa.

Deve-se então criar o diretório /var/run/clamav e dar a ele direitos para o usuários clamav.

# mkdir /var/run/clamav
# chown clamav:clamav /var/run/clamav
Bem para finalizar produzi um script para inicializar e parar o daemon do ClamAV. Reconheço que não está muito bom mas é meu primeiro script feito do Zero OK. Melhorias serão bem vindas. Abaixo a listagem:

#! /bin/sh
#
# clamd     Start/Stop the clamav daemon.
#
# processname: clamd
# config: /etc/clamav.conf
# pidfile: /var/run/clamav/clamd.pid

# Source function library.
. /etc/rc.d/init.d/functions

# See how we were called.
case "$1" in
  start)
    gprintf "Starting %s: " "clamd"
    insmod /usr/local/sbin/dazuko.o
    daemon clamd
    echo
    touch /var/lock/subsys/clamd
    ;;
  stop)
    gprintf "Stopping %s: " "clamd"
    echo "QUIT\r" > /tmp/command
    cat /tmp/command | telnet 127.0.0.1 3310
    sleep 5
    kill `cat /var/run/clamav/clamd.pid`
    sleep 2
    rmmod dazuko
    echo
    rm -f /var/lock/subsys/clamd
    ;;
  status)
    echo "PING\r" > /tmp/command
    cat /tmp/command | telnet 127.0.0.1 3310
    ;;
  reload)
    echo "RELOAD\r" > /tmp/command
    cat /tmp/command | telnet 127.0.0.1 3310
    ;;
  *)
    gprintf "Usage: %s {start|stop|status|reload}\n" "clamd"
    exit 1
esac

exit 0


Aqui terminamos de configurar o ClamAV. Se você chegou até aqui, precisa ser orientado que:

Não é necessária nenhuma alteração para o anti-vírus atuar junto com um servidor de arquivos/WEB qualquer.

Uma dica interessante ainda pode ser dada. Inclua isto em seu crontab:

freshclam

Isto atualiza a base de dados do ClamAV.
Bom, agora vamos por para funcionar com um Servidor de EMAIL !!

Amavis ou MailScanner ?

Eu realmente não sei qual dos dois é melhor ou pior. Depende mais do gosto de cada um. Ambos são interpretados já que rodam em perl e dependem de várias coisas estarem configuradas no perl para funcionar. Instalei os dois e achei o MailScanner mais fácil de configurar. Meu ambiente você já conhece. A única ressalva é que em meus teste utilizei o sendmail como MTA, por motivos óbvios: se funcionar bem com o sendmail funcionará bem com quase todos os outros MTA's. Digo isso pela complexidade de configuração que o sendmail apresenta e não pela funcionalidade ou qualidade OK ( antes que isto vire um flame war :-) ). Outras alternativas óbvias seriam o postfix e o qmail. Fique a vontade.

Não me focarei na configuração do AMAVIS/MailScanner com o Sendmail mas sim na instalação do ClamAV como Vírus Scanner para estes softwares.

Amavis

Se tudo correr bem com a sua instalação, você terá um arquivo chamado amavis.conf em /etc/amavis. Basta então editar este arquivo em seu editor favorito e descomentar a linha:

virus-scanner = CLAM

Depois é só acertar a linha:

clamscam = /usr/bin/clamscan

Moleza né ! BUG NA ÁREA !
Você precisará acertar o código do Amavis para rodar com o ClamAV...
Abra em seu editor preferido o arquivo /usr/lib/perl5.6.1/site_perl/5.6.1/AMAVIS/AV/CLAM.pm
Vá na linha 49 - inclua um / após a palavra parts.

Para rodar legal recomendo que você baixe e instale as seguintes bibliotecas e pacotes :


Pode ser que eu me esqueci de anotar alguma ... Caso você queira acrescentar alguma coisa, esteja a vontade. Se quiser que isto seja incluído neste texto, mande-me um email OK.

Basicamente estas bibliotecas acima servem para extração de arquivos em anexo ao email para então o AMAVIS conseguir scannear.

MailScanner

Bom este foi o mais BABA de tudo que enfrentei até aqui :-) . Puxei o arquivo, instalei e acertei o arquivo de configuração. VOA-LÁ ! Talvez tenha sido assim porque instalei o AMAVIS antes, não sei dizer ...

Acerte você também este arquivo. Vá em /etc/MailScanner/MailScanner.conf e edite conforme abaixo.
  • Localize a linha "Virus Scanners = " e coloque clamav
  • Localize a linha "Minimum Code Status = " e coloque unsupported


Pronto !!!!!!!!!!

Agradecimento e dados para contato.

Quero agradecer a Deus que me ajudou até aqui.

Contatos comigo podem ser conseguidos através do email marcolino@facil.com . Também é possível encontrar gente boa na lista linuxabc@yahoogrupos.com.br.

Bom gente valeu.
   

Páginas do artigo
   1. TUTORIAL COMPLETO
Outros artigos deste autor

Configurando BIND 9 + chroot sem mistérios

SOCKS - Acessando Hosts remotos via OpenSSH

Configurando um arquivo de zona

Gerando estatísticas do seu servidor de email utilizando o isoqlog

openSUSE 12.1 - Instalando Oracle Java

Leitura recomendada

Desvendando código malicioso no fórum Viva o Linux

A Arte de HACKEAR Pessoas

Ultimate Nmap

Gerenciamento de segurança da informação com open source (parte 1)

Implementação de um sistema de arquivos criptografado transparente ao usuário

  
Comentários
[1] Comentário enviado por fabineri em 20/06/2003 - 13:04h

Não consigo compilar dá o seguinte erro:

gcc -g -O2 -o .libs/clamscan clamscan.o options.o getopt.o others.o manager.o treewalk.o -L/tmp/clamav/clamav-0.54/libclamav /tmp/clamav/clamav-0.54/libclamav/.libs/libclamav.so -lpthread
/tmp/clamav/clamav-0.54/libclamav/.libs/libclamav.so: undefined reference to `inflate'
/tmp/clamav/clamav-0.54/libclamav/.libs/libclamav.so: undefined reference to `zError'
/tmp/clamav/clamav-0.54/libclamav/.libs/libclamav.so: undefined reference to `inflateEnd'
/tmp/clamav/clamav-0.54/libclamav/.libs/libclamav.so: undefined reference to `inflateInit2_'
collect2: ld returned 1 exit status
make[1]: ** [clamscan] Erro 1
make[1]: Leaving directory `/tmp/clamav/clamav-0.54/clamscan'
make: ** [install-recursive] Erro 1

o que faço me ajuda por favor

[2] Comentário enviado por fabineri em 22/06/2003 - 14:37h

O erro acontece pois exists a dependência das seguintes bibliotecas:

Requerimento : zlib, zlib-devel, gcc, bzip2

Se elas estiverem instaladas tudo fica OK.

apanhei mas descobri.

[3] Comentário enviado por marcolinux em 23/06/2003 - 14:13h

Certo mas não precisava republicar o meu artigo né !

[4] Comentário enviado por lamss em 04/11/2003 - 19:49h

Eu estou tentando instalar o Clamav no CL9 e dá a seguinte mensagem.

[root@linux clamav-0.60]# ./configure --prefix=/usr --sysconfdir=/etc
checking build system type... i586-pc-linux-gnulibc1
checking host system type... i586-pc-linux-gnulibc1
checking target system type... i586-pc-linux-gnulibc1
creating target.h - canonical system defines
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets ${MAKE}... yes
checking for gawk... (cached) gawk
checking for gcc... gcc
checking for C compiler default output... configure: error: C compiler cannot create executables

[5] Comentário enviado por marcolinux em 06/11/2003 - 10:43h

Cara sinceramente... eu também não consegui fazer a instalação em cima do Conectiva 9. parece que ele quando instalado FULL falta algum pacote ou o compilador esta bugado... Desculpe mas o problema não é no CLAMAV e sim em sua DISTRO. Nada contra a Conectiva, mas em qualquer outra eu já consegui ( incluindo o Conectiva 8 ) e nesta não. Existe um folclore que diz que todas as versões ímpares do Conectiva são cheias de falhas...

[6] Comentário enviado por lamss em 10/11/2003 - 21:08h

É por que o conectiva 9 vc tem que instalar as bibliotecas que servem para compilação manualmente mesmo ná hora da instalação agora sim eu consegui instalar esta funcionando belezinha o clamav.

Olha para quem quizer uma molezinha de instalação sem tar mais um rpm o site onde baixei o clamav em rpm é:

http://rpm.pbone.net/index.php3/stat/11/limit/1/dl/40/vendor/1595




[7] Comentário enviado por removido em 05/03/2004 - 14:56h

QUanto ao problema do "C compiler cannot create executables", é que estão faltando as bibliotecas de desenvolvimento do gcc e glibc. Se não me engano se chama gcc-devel.

[8] Comentário enviado por inf_sheila em 12/03/2004 - 17:49h

quando dou o seguinte comando
./Clamav stop
da o seguinte erro
Stopping %s: clamd
./clamav: kill: cat /var/run/clamav/clamd.pid: no such pid

o que pode ser e como resolvo


[9] Comentário enviado por mpgo_2000 em 23/04/2004 - 13:03h

estou usando Conectiva 8

To tentando instalar o amavis-ng-0.1.4.1.orig, mas quando eu dou make dá o seguinte erro:

make[1]: Entering directory `/home/marcos/antivirus/amavis-ng-0.1.4.1.orig/amavis-milter'
cc \
-DAMAVISD_SOCKET=\"/var/run/amavis/milter.amavis\" \
-DRUNTIME_DIR=\"/var/spool/amavis\" \
-DPID_FILE=\"/var/run/amavis/amavis-milter.pid\" \
-o amavis-milter amavis-milter.c \
-L/usr/lib/libmilter/ -lmilter -lpthread
amavis-milter.c:53: libmilter/mfapi.h: No such file or directory
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/marcos/antivirus/amavis-ng-0.1.4.1.orig/amavis-milter'
make: *** [subdirs] Error 2

Amigos, me ajude por favor, já faz quase um mês que to tentando instalar um antii-virus, mas não consigo, já peguei vários tutoriais, e meu conhecimento em linux é limitadissimo :(

[10] Comentário enviado por andersonmo7 em 15/04/2005 - 15:50h

primeiramente, parabnes pelo artigo.

Utilizo dist Debian. Fiz o dazuko funcionar (tive que recompílar o kernel e tudo mais).
Instalei o Clamv, blz.

Copiei um arquivo com virus via scp e ele permitiu a gravação na boa.

O meu clamd.conf eu habilitei o ClamukoScanOnLine ClamukoScanOnAccess ClamukoIncludePath /home.


Vc pode dar uma ajuda ?


[11] Comentário enviado por removido em 28/12/2008 - 13:34h

Marcolino,

Tive problemas em compilar o dazuko com o kernel 2.6.27-gentoo-r7 (kernnel 2.6.27 com patches aplicados pelo pessoal do gentoo).

Gostaria de saber se você também teve problemas com algum kernek 2.6.27.X e, se sim, como fez para resolvê-lo.


Grande abraço.
E, para variar, ótimo artigo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts