Configuração e Instalação do CLAMAV

Introdução

Trata-se de um anti-vírus desenvolvido em gnuC que roda multiplataforma 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

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 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/lib

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 600 /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
#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, 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 "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 diretório que serão scaneados com o antivírus. Sugiro para
servidores de arquivo que apenas o diretório /home seja scanneado ( 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 scanneando 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/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:

	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 !
Voce 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 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 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Á ! Talves 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.

