Configurao e Instalao do CLAMAV

Introduo

Trata-se de um anti-vrus desenvolvido em gnuC que roda multiplataforma nos diversos sabores de Unix.
Tem como pretenso rodar como um anti-vrus de acesso a arquivos. Isto  ideal para servidores
SAMBA/NIS/MARS.  Tambm  possvel rodar este anti-vrus 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 configuraes abaixo descritas foram realizadas em um Intel Celeron 1GHZ, 256MB Ram. As distribuies
usadas como teste foram:

	Redhat Linux 7.3 - kernel 2.4.18
	Conectiva Linux 8.0 - kernel 2.4.18

As duas distribuies foram instaladas na modalidade FULL .


Downloads necessrios

ClamAV      -  http://clamav.elektrapro.com/stable/clamav-0.53.tar.gz
AMAVIS      -  http://umn.dl.sourceforge.net/sourceforge/amavis/amavis-ng_0.1.4.1.orig.tar.gz
MailScanner -  http://www.sng.ecs.soton.ac.uk/mailscanner/downloads.shtml

Inicio

V para seu diretrio 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 mdulo DAZUKO.

Aqui um ponto muito importante. Para poder verificar o contedo de tudo que  acessado, o ClamAV se utiliza
de um mdulo que trabalha em comunicao com o kernel do sistema. Sendo assim  necessrios 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 usurio root.

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

At aqui compilamos o mdulo dazuko e copiamos ele para /usr/local/sbin . Coloquei a porque no quis perder
tempo acertando o kernel para incluir ele diretamente junto com o fonte. Para fazer isso consulte o site
www.dazuko.org. Eu no fiz e tudo est funcionando.

Agora vamos instalar o DAZUKO. Continuamos como root.

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

 uma boa idia 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
#groupadd clamav
#adduser -g clamav -s/bin/false -c"ClamAV" clamav
#./configure --prefix=/usr --sysconfdir=/etc
#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, no posso dizer nada a 
respeito :-( .

Acertando o /etc/clamav.conf

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

Encontrar a linha "Example" e comentar.
Encontrar a linha "LogFile", descomentar e alterar para /var/log/clamd.log
Encontrar a linha "LogFile Max Size" e descomentar
Encontrar a linha "LogVerbose" e descomentar
Encontrar a linha "LogTime" e descomentar
Encontrar a linha "PidFile", descomentar e alterar para /var/run/clamav/clamav.pid
Encontrar a linha "DataDirectory" e descomentar
Encontrar a linha "LocalSocket" e comentar
Encontrar a linha "TCPSocket" e descomentar
Encontrar a linha "ClamukoScanOnLine" e descomentar
Encontrar a linha "ClamukoIncludePath" e alterar para /home

A linha Clamuko Include Path discrimina quais os diretrio que sero scaneados com o antivrus. Sugiro para
servidores de arquivo que apenas o diretrio /home seja scanneado ( se este  o lugar onde esto os arquivos
de usurio ;-) ) fazendo com que o sistema ento tenha uma performance mais agradvel scanneando apenas o que
realmente interessa.

Deve-se ento criar o diretrio /var/run/clamav e dar a ele direitos para o usurios 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. Reconheo que no
est muito bom mas  meu primeiro script feito do Zero OK. Melhorias sero 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/lib/dazuko.o
	daemon clamd
	echo
	touch /var/lock/subsys/clamd
	;;
  stop)
  	gprintf "Stopping %s: " "clamd"
	echo "QUIT\r" | 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" | telnet 127.0.0.1 3310
	;;
  reload)
	echo "RELOAD\r" | 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:

	No  necessria nenhuma alterao para o anti-vrus 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 no sei qual dos dois  melhor ou pior. Depende mais do gosto de cada um. Ambos so interpretados
j que rodam em perl e dependem de vrias coisas estarem configuradas no perl para funcionar. Instalei os dois
e achei o MailScanner mais fcil 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 configurao que o sendmail apresenta e no pela funcionalidade ou qualidade OK ( antes que
isto vire um flame war :-) ). Outras alternativas bvias seriam o postfix e o qmail. Fique a vontade.
No me focarei na configurao do AMAVIS/MailScanner com o Sendmail mas sim na instalao do ClamAV como
Vrus Scanner para estes softwares.

Amavis.

Se tudo correr bem com a sua instalao, voc ter um arquivo chamado amavis.conf em /etc/amavis. Basta ento
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 !
Voce precisar acertar o cdigo 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 / aps a palavra parts .

Para rodar legal recomendo que voce baixe e instale as sequintes bibliotecas e pacotes :

Config-INIFiles.tar.gz  - CPAN ( www.cpan.org )
File-MMagic.tar.gz - CPAN ( www.cpan.org )
IO-stringy-2.108.tar.gz - CPAN ( www.cpan.org )
Archive-TAR-0.22.tar.gz - CPAN ( www.cpan.org )
Archive-ZIP-1.05.tar.gz - CPAN ( www.cpan.org )
lha-1.14i-4.i386.rpm - RPMFind.net ( www.rpmfind.net )
arc-5.21e-5.i386.rpm - RPMFind.net ( www.rpmfind.net )
unzoo-4.4-1.i386.rpm - RPMFind.net ( www.rpmfind.net )
unrar-3.0.1.i386.rpm - RPMFind.net ( www.rpmfind.net )

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

Basicamente estas bibliotecas acima servem para extrao de arquivos em anexo ao email para ento 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
configurao. VOA-L ! Talves tenha sido assim porque instalei o AMAVIS antes, no sei dizer ...

Acerte voc tambm 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 atravs do email marcolino@facil.com . Tambm  possvel encontrar
gente boa na lista linuxabc@yahoogrupos.com.br .

Bom gente  valeu.

