br-linux

Artigos br-linux.org
Artigos sobre Linux em bom português, originais e com qualidade

Filtragem de vírus com pop3 transparente: POP3VSCAN
Publicado em 11 de outubro de 2004

Allan Cassaro Vilela Gomes (allan.gomes@capes.gov.br) enviou um tutorial que permite ativar filtragem transparente de e-mails que os usuários da sua rede buscam em servidores POP3 na Internet. Seguindo os passos deste documento, todo o tráfego que passar pela interface de rede com destino à Internet na porta 110 será redirecionado para o pop3vscan e verificado contra vírus, de forma transparente, sem necessitar de nenhuma configuração nos usuários.

Filtragem de vírus com pop3 transparente: POP3VSCAN

por Allan Cassaro Vilela Gomes (allan.gomes@capes.gov.br)

Esclarecimento:
Este artigo é destinado a ADMINISTRADORES DE REDES COM PRÁTICA NO USO DE SOFTWARE LIVRE E/OU UNIX.

Primeira parte: Filtragem POP3
-------------------------------------

Pre-requisitos:

- Pop3Vscan
http://pop3vscan.sourceforge.net

- Um antivírus, vou falar do ClamAV
http://www.clamav.net

- Iptables

- Kernel compilado com os seguintes parametros:
* CONFIG_NETFILTER=y
* CONFIG_IP_NF_IPTABLES=[y/m]
* CONFIG_IP_NF_TARGET_REDIRECT=[y/m]
(iptables com suporte a REDIRECT)
-------------------------------------

Por incrível que pareça, esta foi a parte mais difícil...

Depois de baixar o .tar.gz do site e instalar o clamav, vamos compilar o pop3vscan:

Descompacte em algum lugar e simplesmente dê um "make"
(Edite o Makefile se quiser)

usuario$ make

Depois disso será criado o binário do pop3vscan, mova-o para algum lugar, como "/usr/local/sbin" por exemplo e mova o pop3vscan.conf e pop3vscan.mail para o /etc

root# mv pop3vscan /usr/local/sbin
root# mv pop3vscan.conf /etc
root# mv pop3vscan.mail /etc

O arquivo "pop3vscan.mail" é o que será enviado para o usuário em caso de um vírus ser encontrado.
Edite o arquivo pop3vscan.conf e adapte para suas necessidades, os parâmetros mais importantes são:

port = 8110 --> Padrão 8110 (NÃO USE PORTA ABAIXO DE 1024!!!)
user = mail --> O usuário que o pop3vscan vai rodar (NÃO USE O ROOT!!!)
virusdir = /var/spool/pop3vscan --> Diretorio onde os virus serão colocados (o usuário acima precisa de direitos de escrita e leitura!)
scannertype = basic --> Se você optou por utilizar o clamav (ou outro que não esteja listado, avpd ou trophie)
scanner = /usr/bin/clamdscan --no-summary -i --> Local do binário do seu clamav
viruscode = 1 --> No caso do clamav, este é o código de erro que é retornado em caso de vírus encontrado
virusregexp = .*: (.*) FOUND
template = /etc/pop3vscan.mail --> Local onde gravou o pop3vscan.mail

Outras dicas do clamav podem ser encontradas em:
http://www.clamav.net/faq.html#pagestart


Feito isso, inicialize o pop3vscan (e crie um script de inicialização; no diretório stuff do pacote existem diversos scripts para várias distribuições)

e crie uma regra no iptables como esta:
root# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 110 -j REDIRECT --to 8110

Lembrete: Este computador deve ser o default gateway ou o firewall da sua rede, ou o tráfego não irá passar por ele...

Pronto! Todo o tráfego que passar pela "eth0" com destino à Internet na porta 110 será redirecionado para o pop3vscan e scaneado contra vírus, de forma trasnparente, sem necessitar de nenhuma configuração nos usuários.

Divirta-se.

Autor: Allan Cassaro Vilela Gomes (allan.gomes@capes.gov.br)

Postado por brain em outubro 11, 2004 05:52 PM

Comentários para "Filtragem de vírus com pop3 transparente: POP3VSCAN"

» Postado por: César em outubro 11, 2004 07:10 PM, 200.171.58.:

    O pop3vscan não roda no viruscan for Linux???

 

» Postado por: Tiago Cruz em outubro 11, 2004 11:31 PM, 200.170.125:

    Hei, precisa mesmo compilar o kernel?
    As distros atuais não tem suporte a isso por padrão, como a Fedora ou CL10?

 

» Postado por: edmarcos em outubro 12, 2004 12:52 AM, 200.181.190:

    Não consigo compilar , segue os erros:

    [root@edmarcos pop3vscan-0.4]# make
    Makefile:121: .dep: Arquivo ou diretório não encontrado
    creating depencies
    rm .tmp.dep -f
    gcc -M -Wall -O2 ./parsefile.c
    gcc -M -Wall -O2 ./getline.c
    gcc -M -Wall -O2 ./scanner_sample.c
    gcc -M -Wall -O2 ./pop3vscan.c
    gcc -M -Wall -O2 ./scanner_avpd.c
    gcc -M -Wall -O2 ./scanner_trophie.c
    gcc -M -Wall -O2 ./scanner_basic.c
    mv .tmp.dep .dep
    gcc -Wall -O2 -c getline.c
    gcc -Wall -O2 -c parsefile.c
    gcc -Wall -O2 -c pop3vscan.c
    In file included from pop3vscan.c:55:
    pop3vscan.h:132:8: warning: extra tokens at end of #endif directive
    In file included from pop3vscan.c:58:
    scanner.h:41:9: warning: extra tokens at end of #endif directive
    gcc -Wall -O2 -c scanner_basic.c
    In file included from scanner_basic.c:33:
    pop3vscan.h:132:8: warning: extra tokens at end of #endif directive
    gcc -Wall -O2 -c scanner_avpd.c
    In file included from scanner_avpd.c:41:
    pop3vscan.h:132:8: warning: extra tokens at end of #endif directive
    gcc -Wall -O2 -c scanner_trophie.c
    In file included from scanner_trophie.c:38:
    pop3vscan.h:132:8: warning: extra tokens at end of #endif directive
    ln -sf ripmime/ripmime.a libmime.a
    gcc -o pop3vscan getline.o parsefile.o pop3vscan.o scanner_basic.o scanner_avpd.o scanner_trophie.o -L. -lmime -lpcre
    ./libmime.a(mime.o)(.text+0x80d): In function `quick_clean_filename':
    : undefined reference to `__ctype_b'
    ./libmime.a(mime.o)(.text+0x22db): In function `MIME_decode_encoding':
    : undefined reference to `__ctype_b'
    ./libmime.a(mime.o)(.text+0x233b): In function `MIME_decode_encoding':
    : undefined reference to `__ctype_b'
    ./libmime.a(XAM_strtok.o)(.text+0x1f): In function `XAM_strncasecmp':
    : undefined reference to `__ctype_tolower'
    ./libmime.a(MIME_headers.o)(.text+0xad9): In function `MIMEH_parse_headers':
    : undefined reference to `__ctype_b'
    ./libmime.a(MIME_headers.o)(.text+0xdf2): In function `MIMEH_parse_headers':
    : undefined reference to `__ctype_b'
    ./libmime.a(MIME_headers.o)(.text+0xe6c): In function `MIMEH_parse_headers':
    : undefined reference to `__ctype_b'
    ./libmime.a(strlower.o)(.text+0x15): In function `strlower':
    : undefined reference to `__ctype_tolower'
    collect2: ld returned 1 exit status
    make: ** [pop3vscan] Erro 1

 

» Postado por: Allan Gomes em outubro 13, 2004 10:24 AM, 200.130.18.:

    Para Tiago Cruz:
    Bem, compilar o Kernel depende de um único detalhe. Seu netfilter (iptables) suporta NAT?
    Aqueles parâmetros são exatamente para isso. Se seu netfilter já possui suporte para NAT, passe adiante.

    Para César:
    O Pop3VScan possui suporte a qualquer tipo de antivírus (teoricamente) pois permite que você mesmo defina os parâmetros de filtragem e retorno.

    Para Edmarcos:
    Este erro aparenta ser algum problema com o libmime, tente atualiza-la ok?

    Abraços a todos.

 

» Postado por: Erivelto Postai em outubro 14, 2004 05:13 PM, 200.250.45.:

    Caros,
    Estou instalando o protudo citado e estou tendo problemas em compilação.
    Estou fazendo isso em um Red Hat 8.0 Kernel 2.4.27.
    Esta dando o seguinte erro:
    make
    Makefile:121: .dep: No such file or directory
    creating depencies
    rm .tmp.dep -f
    gcc -M -Wall -O2 ./parsefile.c
    gcc -M -Wall -O2 ./getline.c
    gcc -M -Wall -O2 ./scanner_sample.c
    In file included from scanner_sample.c:35:
    pop3vscan.h:132:8: warning: extra tokens at end of #endif directive
    gcc -M -Wall -O2 ./pop3vscan.c
    In file included from pop3vscan.c:55:
    pop3vscan.h:132:8: warning: extra tokens at end of #endif directive
    In file included from pop3vscan.c:58:
    scanner.h:41:9: warning: extra tokens at end of #endif directive
    gcc -M -Wall -O2 ./scanner_avpd.c
    In file included from scanner_avpd.c:41:
    pop3vscan.h:132:8: warning: extra tokens at end of #endif directive
    gcc -M -Wall -O2 ./scanner_trophie.c
    In file included from scanner_trophie.c:38:
    pop3vscan.h:132:8: warning: extra tokens at end of #endif directive
    gcc -M -Wall -O2 ./scanner_basic.c
    scanner_basic.c:31:18: pcre.h: No such file or directory
    In file included from scanner_basic.c:33:
    pop3vscan.h:132:8: warning: extra tokens at end of #endif directive
    make: *** [.dep] Error 123

    Aguardo um retorno.
    Muito obrigado.

    Erivelto Postai

 

» Postado por: Allan Cassaro em outubro 15, 2004 04:52 PM, 200.130.18.:

    Erivelto Postai, está faltando bibliotecas de desenvolvimento (o fonte delas na verdade).
    Instale a libpcre-devel e a libmime-devel Ok?

    Até mais.

 

» Postado por: Gonzalo em outubro 18, 2004 11:49 PM, 24.232.49.1:

    como eu posso provar se este funcionamento?

 

» Postado por: Allan Cassaro em outubro 20, 2004 12:46 PM, 200.130.18.:

    Para testar, você pode enviar um vírus de teste, como o "EICAR" por exemplo. Para baixa-lo, vá em http://www.eicar.org
    Até mais.

 

» Postado por: Rodrigo em outubro 25, 2004 10:39 PM, 200.148.150:

 

Antes de comentar...

- Preserve a qualidade desta discussão
- Leia os Termos de Uso.
- Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum.
- Mantenha o foco nos argumentos e no assunto
- Não faça ataques pessoais.
- Pense 5 vezes antes de entrar em discussões inúteis, como "qual é a melhor distribuição/ambiente gráfico/linguagem de programação/etc.", mesmo se alguém já tiver provocado - um erro não justifica o outro
- Não seja um e-mala ;-)

Envie seu comentário









Lembrar as informações pessoais?


Atenção: Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum, onde mais pessoas estarão disponíveis para respondê-lo..






Nota: os comentários pertencem a seus respectivos autores e são de responsabilidade de quem os postou. O restante desta nota está disponível sob a licença GNU FDL, exceto se explicitamente declarado em contrário.