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.