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: 54.353 ]

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 um arquivo de zona

SOCKS - Acessando Hosts remotos via OpenSSH

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

Autenticando o Speedy Business automaticamente em firewalls Linux

Configurando BIND 9 + chroot sem mistérios

Leitura recomendada

Firefox 2 e seu recurso de proteção contra Web Phishing

Detectando vulnerabilidades com o Nessus

Servidor SSH (Secure Shell Hosting)

Implementando a segurança em servicos de acesso remoto

Nmap do início ao fim (parte 1)

  
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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts