Security Analyze
A menos que especificado de outra maneira, todos os documentos e textos são protegidos sob licença BSD - Veja a licença para mais detalhes



Mailserver Seguro over
OpenBSD


1.0 - O que irei mostrar Sobre vírus ?

Um grande problema que temos que encarar diariamente é a disseminação vírus via e-mail, . Os mecanismos utilizados nesses vírus atuais usam MTAs despreparados para enviar vírus descontroladamente. Nesse artigo irei mostrar técnicas utilizadas para diminuir um poucos os impactos causados por essa praga.
Não entrarei em detalhes na configuração de um antivírus, visto que já existe um artigo de minha autoria falando sobre esse assunto -- http://www.securityanalyze.com/gsoares/postfix_clamav.html.
Na maioria das vezes, muita gente se pergunta porque recebe e-mail de uma pessoa que nem conhece com um anexo interessante e executável. Como esse vírus chegou ate mim ? (Esse é um pergunta freqüente). Amigo, não explique, eles não irão entender, então faca o que digo nesse tutorial e livre sua alma. Todo esse artigo foi projetado e testado com o Postfix ( http://www.postfix.org/) over OpenBSD ( http://www.openbsd.org/ ).

2.0 - O que irei mostrar sobre Firewall :

Nesse artigo irei demonstrar como garantir a integridade de saída de e-mail de sua rede através do firewall. Usarei como base o PF - Packet Filter (http://www.bezendrine.cx/).

3.0 - O que irei mostrar sobre criptografia:

Irei demonstrar a necessidade de conexões over ssl, protegendo sua rede contra farejadores indesejáveis, garantindo a segurança das senhas

1.1 - Anexos no e-mail :

Deixe passar o necessário. Me responda uma pergunta, pra que deixar liberado passagens de anexos .pif ? ou .hta ? ou ate .exe ?Em 99% das vezes é vírus, fazendo esse bloqueio, você diminuirá tanto o consumo de CPU quando a geração de processos no antivírus, seu MTA ficara rápido.Alem disso, muitas vezes a velocidade de publicação das DATs comprometem seu servidor. E-mail foi feito para disseminação de mensagens, se é necessário mandar arquivos executáveis crie um ftp e ensine seus usuários a utilizar. Bloqueando :

Entre o diretório de configuração do postfix:

cd /etc/postfix>

Edite o main.cf

vi main.cf

Iremos utilizar nesse artigo o bloqueio via body_checks, dentro do seu main.cf insira a linha:

body_checks = regexp:/etc/postfix/extensoes_negadas

Crie o arquivo extensoes_negadas dentro de /etc/postfix e coloque dentro dele o conteúdo:

/^(content.*[[:space:]]+|[[:space:]]*)(filename|name)=\".*\\.(vbs)\"/ REJECT Suspeita de vírus. Renomeie para outra extensão e envie novamente.

Modifique de acordo com sua necessidade, mudando \".*\\.(exe)\" dentre outras extensões.

Apos isso, restart seu postfix : postfix reload

Veja os resultados:

tail -f /var/log/maillog | grep -i Suspeita

reject: body Content-Type: application/octet-stream; name="Price.vbs"; from= to=: Suspeita de vírus. Renomeie para outra extensão e envie novamente.

você ira se assustar com a quantidade de vírus que você descartou, antes mesmo dele chegar ao antivírus, reduzindo assim a quantidade de processamento de seu servidor.

2.1 - Fazendo rdr no PF na porta 25 (garantindo segurança na saída de e-mails):

Muitos admin bloqueiam a porta 25 no seu firewall só liberam para seu servidor de e-mail. E se alguém quiser mandar um e-mail via smtp.mail.yahoo ? O usuário terá na tela uma mensagem de erro no seu Outlook e achara que o problema é em seu servidor :) Uma boa idéia, para não causar transtorno entre os usuários, é você redirecionar tudo que sai com destino externo porta 25 para seu mta, assim, os e-mail enviados para o smtp externo serão verificados pelo seu mta antes de sair de sua rede, para isso use a regra:

rdr um $interface_de_rede proto tcp from any to any port 25 $seu_server_de_email port 25

não esqueça de ativar o roteamento no kernel:

sysctl -w net.inet.ip.forwarding=1

3.1 - Pegando Senhas com o ETTERCAP (cadê o ssl ? )

Qualquer usuário mal intencionado poderá facilmente farejar senhas de seus usuários no segmento de rede, observe:

ettercap -N -m -C

ettercap 0.6.b (c) 2002 ALoR & NaGA

Sniffing (MAC based): ANY <--> ANY

TCP + UDP packets... (default)

Collecting passwords...

12:32:01 xx.1.0.83:2930 <--> xx.xx..xx.xxx:110 pop3

USER: xxxxxxx PASS: 5910cd

Simples e prejudicial a seus usuários, observe a solução no item abaixo.

3.2 - POP3 over stunnel - POP3S

Na maioria das vezes o seu servidor de pop3 já vem preparado para rodar over ssl, porem existe a forma de roda-lo over stunnel sem entrar em detalhes:

3.21 - Creio que o openssl, stunnel e o pop3 já esteja instalado, então


Criando o certificado:

openssl req -new -x509 -days 365 -nodes -config stunnel.cnf -out stunnel.pem -keyout stunnel.pem

Rode o pop3 over ssl:

stunnel -p /etc/ssl/certs/stunnel.pem -d 995 -l "/usr/local/sbin/seudaemon_pop3"

Veja se esta rodando :

netstat -na | grep -i 995

tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN

Tudo OK, agora é só configurar nos seus clientes o uso de ssl em conexões pop3. Toda a comunicação esta sendo criptografada via ssl.

3.3 - Conclusão Criptografia:

Pessoal não entrarei em detalhes sobre utilização de criptografia em conexões text-plain, porem deixo meu incentivo ao uso, e é de suma importância para a integridade das senhas de seus usuários, abaixo deixarei diversos links sobre implementações de conexões over ssl em diversos tipos de serviços (mysqls, smtps, ftps, https, dentro outros ).

4.0 - Referencias:

http://www.openbsd.org/faq/index.html
http://www.benzedrine.cx/
http://www.unitednerds.org/thefallen/docs/index.php?area=Postfix
http://www.postfix.org/non-english.html
http://dev.mysql.com/doc/mysql/en/Secure_basics.html
http://www.modsecurity.org/documentation
http://www.modssl.org/docs/

5.0 - Conclusão Geral:

O objetivo desse artigo se resume a dicas e não a receita de configuração. Quem se interessou por esse artigo, já possui os serviços rodando e procuram por formas de lapidar o que já está pronto. Qualquer duvida, estou disposto a ajudar, abaixo deixarei as formas de contato.

6.0 - Autor:

Gleydson Soares

A menos que especificado de outra maneira, todos os documentos e textos são protegidos sob licença bsd - Veja a licença para mais detalhes