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.