Clamav com Mailscanner para Postfix
Este artigo ensina a configurar o MailScanner em conjunto com o anti-vírus Clamav para bloquear mensagens infectadas que chegam a um servidor de e-mail que faz uso do PostFix como MTA.
Parte 4: Configurando o ClamAV
Requerimentos: zlib, zlib-devel, gcc, bzip2
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
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 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órios que serão scaneados
com o anti-ví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/sbin/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
#
# 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" | 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.