Primeiro você precisa ter instalado em sua maquina o Clamd (O daemon do Antivirus Clamav).
No meu caso que uso o CentOS 5.0 usei o yum para instalar.
yum install clamav
(Se não tiver em seus repositorios, pode utilizar o rpmforge – http://dag.wieers.com/rpm/FAQ.php#B).
Depois baixe o SquidClamav
Agora descompacte e instale
# tar xvzf squidclamav-3.2.tar.gz
# cd squidclamav-3.2
# ./configure && make && make install
Copie o arquivo de configuração
# cp squidclamav.conf.dist /etc/squidclamav.conf
Crie o arquivo de log
# touch /var/log/squidclamav.log
# chown squid /var/log/squidclamav.log
Agora edite o arquivo a seu gosto
# vi /etc/squidclamav.conf
O meu está assim:
# Endereço do proxy, no meu caso mesma maquina
proxy http://127.0.0.1:3128/
# Endereço do arquivo de log
logfile /var/log/squidclamav.log
# Pagina que será redirecionado ser encontrar virus, eu mesmo criei essa pagina (veja mais abaixo como criar a sua)
redirect http://127.0.0.1/squidclamav/index.html
# Valor do Debug
debug 0
# Forçar a verificação de cabeçalhos mal formados
force 1
#Mostra as estatisticas do processamento do squidclamav no log.
stat 1
# Se o Clamav estiver na mesma maquina que o squidclamav, informe a linha abaixo (verifique se o arquivo está lá mesmo).
clamd_local /tmp/clamd.socket
# Endereço do Servidor do Clamav (No meu caso, a mesma maquina).
clamd_ip 127.0.0.1
# Porta onde está funcionando o Clamav (Essa porta é default, pode ser mudada no clamav).
clamd_port 3310
# Tempo de espera para encontrar o clamav
timeout 60
# A sintaxe abort informa quais tipos de arquivos não devem ser verificados, no caso do aborti são utilizados para imagens.
abort ^.*\.gz$
abort ^.*\.bz2$
abort ^.*\.pdf$
abort ^.*\.js$
abort ^.*\.html$
abort ^.*\.css$
abort ^.*\.xml$
abort ^.*\.xsl$
abort ^.*\.js$
abort ^.*\.ico$
aborti ^.*\.gif$
aborti ^.*\.png$
aborti ^.*\.jpg$
aborti ^.*\.swf$
# no manual do squidclamav informa que serve para visualizar tipo de conteúdo, juro que não entendi, mas esse valor vem no default do arquivo de configuração.
content ^.*application\/.*$
# Quais domínios não devem ser verificados
whitelist .*google\.com
Adicione essas linhas ao seu squid.conf
# Configuracao do Squidclamav
http_access deny to_localhost
http_access allow localhost
url_rewrite_access deny localhost
# Essas três linhas acima são para evitar loop no squidclamav
url_rewrite_program /usr/local/bin/squidclamav
url_rewrite_children 15
# As duas linhas acima servem para chamar o squidclamav para verificação
Criando sua propria pagina de informe de vírus no squidclamav
# mkdir /var/www/html/squidclamav
# vi /var/www/html/squidclamav/index.html
Coloque o seguinte conteúdo nesse arquivo:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<HTML><HEAD><META HTTP-EQUIV=”Content-Type” CONTENT=”text/html; charset=iso-8859-1″>
<TITLE>ERRO: A URL solicitada não pode ser recuperada</TITLE>
<STYLE type=”text/css”><!–BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}–></STYLE>
</HEAD><BODY>
<H1>ERRO</H1>
<H2>A URL solicitada não pode ser recuperada</H2>
<HR noshade size=”1px”>
O seguinte erro foi encontrado:
<UL>
<LI>
<STRONG>
PAGINA INFECTADA
</STRONG>
<P>
Essa pagina está infectada!
</UL>
</P>
Pronto! Agora somente iniciar seu Apache, Squid e Clamd
Quem quiser testar, pode acessar esse site e tentar baixar alguns trojans (POR SUA CONTA EM RISCO), infelizmente o squidclamav não pega todos.