Posts na série Acesso HTTP com antivírus
- Protengendo o acesso HTTP com antivírus - HAVP no Debian “etch”
- Protengendo o acesso HTTP com antivírus - HAVP + Clamav + Squid
No post anterior desta série expliquei como instalar o pacote HAVP diretamente do repositório Debian oficial. Comentei sobre as dependências do Clamav, mas me esqueci de dizer que essencialmente precisamos apenas dos pacotes (básicos) clamav, clamav-freshclam e libclamav3, sendo dispensável o pacote clamav-daemon.
Nesta implementação considerei utilizar o HAVP como um proxy parente do Squid a melhor solução. A grande vantagem é que você continua com todos os beníficios das ACLs do Squid, ou seja poderá continuar controlando e filtrando todo o tráfego que passar pelo Squid e ainda ter a protenção contra vírus, conforme demostrado no esquema baixo.
Para integramos o HAVP + Clamav + Squid, precisamos alterar alguns arquivos de configuração. Vou considerar que o Squid já esteja configurado e funcionando corretamente. Primeiramente editamos o /etc/havp/havp.config e alteramos algumas de suas seções para que fiquem iguais à:
USER havp GROUP havp LOG_OKS false PORT 8080 BIND_ADDRESS 127.0.0.1 TEMPLATEPATH /etc/havp/templates/br ENABLECLAMLIB true ENABLECLAMD false
Penso que seja auto explicativo, mantenha todas as outras opções do arquivo intactas. Agora devemos indicar ao Squid qual é seu proxy parente, neste caso o HAVP, então acrescentamos as seguintes linhas ao /etc/squid.conf:
acl all src 0.0.0.0/0.0.0.0 cache_peer localhost parent 8080 0 no-query no-digest no-netdb-exchange default cache_peer_access localhost allow all # Todo o tráfego HTTP deve ser enviado ao proxy parente HAVP acl HTTP proto HTTP never_direct allow HTTP
Com as opções acima indicamos ao Squid que todo o tráfego HTTP deverá passar obrigatoriamente pelo proxy parente que fará a verificação com o antivírus Clamav. Antes de testar recarregue as novas configurações dos serviços envolvidos:
# invoke-rc.d havp force-reload # invoke-rc.d squid force-reload
Para testar configure o seu navegador para acessar pelo Squid e visite a página http://www.eicar.org/download/eicar_com.zip, caso tudo esteja funcionando corretamente será exibida a tela abaixo.
Acho que desta forma podemos ter uma boa segurança contra estes vírus espertos que enganam muita gente e causam muitos prejuízos as empresas.
Espero que tenham gostado e o resto fica por conta da imaginação de cada um, ou seja proxy transparente, customização dos templates do HAVP e outros ajustes finos que podenm ser feitos tanto no Squid quanto no HAVP. Como ponto de partida deixo, logo abaixo, algumas referências que utilizei.
http://www.server-side.de/ideas.htm
http://www.opensourcehowto.org/how-to/squid/squid-clamav–havp.html
http://sidux.com/PNphpBB2-viewtopic-t-7162.html











11 Comentários
Parabéns, cara! Tanto pelo artigo quanto pela iniciativa de colocar no BR-Linux, porque eu sinceramente nem imaginava essa possibilidade, de scannear o download no proxy… Agora parece óbvio, mas sem seu toque nem pensaria nisso.
Apesar de não ser referente ao topico, respondo a vossa visita ao nação e desde já agradeço:
Salve Wanderson,
Acho valido sim e até existe um tópico com sugestões e tal. O nome do registro eu acho que não foi possível de registro completo, mas o forum se chama Gnu/Linux MG1
Ajude nos a melhorar!
Em relação a performance? Como fica a navegação?
O Delay é alto?
A máquina onde está instalada esta estrutura? Qual a configuração que você usou?
Como fica o uso de memória e processador nesta máquina?
Você já usou em ambiente de produção? Como muitos usuários?
Sei que são muitas perguntas, mas se possível responda-as…
Agradeço antecipadamente
Dailson Fernandes
Dailson,
Não realizei nenhum teste comparativo de desempenho e empiricamente não houve delay. A máquina é uma comum de uns dois anos atrás (sempron ? com 512MB RAM). Não fiz nenhuma medição de memória ou processamento, mas não consome muito pois nem precisa do daemon do clamav que parece ser um bom devorador de recursos. Esta solução foi aplicada em um ambiente de produção com uns 4 clientes usando simultaneamente num link adsl de 150Kbps.
Como esta implementação é plugável ao Squid é possível fazer diversos testes em ambientes que demandam alta carga não duvido que funcione bem, mesmo com algum custo computacional vale muito a implementação. (mas em momento algum deve se dispensar o anti-vírus nas estações para os chupa-cabras de vírus da M$)
Uma observação que gostaria de fazer é que como todo o tráfego passa pelo HAVP e depois “repousa” no cache do Squid os arquivos em cache não são escaneados novamente, dependendo do ambiente uma “sintonia fina” no Squid pode minimizar possíveis problemas de desempenho.
Muito interessante.
No caso, para utilizar outros protocolos, no caso ftp, basta adicionar uma regra semelhante, certo?
Abraço.
Adriano,
Em tese funciona, mas pode existir alguma limitação quanto ao tamanho do arquivo a ser verificado. Por questões de memória RAM, não é aconselhável escanear todos os arquivos.
Faça alguns testes… e tire suas conclusões.
Tive problemas para instalar o havp aqui no debian etch
Primeiramente instalei o havp, ele pede a dependencia do libclamav3, mas só que o este depende do libgmp3… fui no site do debian… instalei o libgmp3. daí deu pra instalar o havp numa boa.
Só que qndo peço pra instalar o clamav no synapitc ele pede pra retirar o libclamav3 - libgmp3 - havp!!!!!
Alguma solução para este problema!!
Nelson,
Por acaso você ativou e está utilizando o repositório volatile, conforme indicado no artigo?
Sim.
Segui totalmente os passos.
Achei estranho a dependencia de libgmp3, onde este não foi mencionado no artigo.
Tentei de tudo e realmente qndo peço pra instalar o clamav ele quer desinstalar de qualquer jeito o havp.
Muito estranho!
Nelson,
De fato já tem um tempinho que escrevi este tutorial, e as atualizações são muito rápidas. Observei que a versão do HAVP nos repositórios do debian já é a 0.88 enquanto no site oficial do HAVP já está na 0.89 e estes 2 centésimos fazem muita diferença.
Tenho duas soluções pra você:
- Compilar e instalar do site oficial ou
- Atualizar o seu debian de etch para o lenny , próxima versão prevista para ser lançada ainda este mês, é provável que funcione com perfeição (faça uma instalação nova).
boa sorte!
Wasare,
eu tinha baixado o 0.87… mas eu acho q realmente o problema está com o libgmp3, onde este na lista do debian está como libgmp3c2.
vou tentar baixar uma versão mais atual do havp e ver se funciona. se não der, o jeito é compilar mesmo
valeu e obrigado pela ajuda!
Envie um Comentário