Pesquisar neste blog

sexta-feira, 13 de fevereiro de 2009

Postfix - Como evitar o envio de emails falsos de dominios válidos

Olá pessoal, estava com a seguinte situação em meu servidor de emails, quando uma pessoa mal intencionada que possui um domínio válido na internet, com reverso e tudo descobre um endereço de email válido de meu domínio, o mesmo consegue por meio desse email se passar por um usuário válido de meu domínio e madar emails a vontade para todos os outros usuários do meu domínio.

Segue um exemplo abaixo, uma simulação do que ocorre na realidade:

[root@mail ~]# telnet
mail.meumailserver.edu.br 25
Trying 200.198.111.111...
Connected to
mail.meumailserver.edu.br (200.198.111.111).
Escape character is '^]'.
220
mail.meumailserver.edu.br ESMTP Postfix (2.2.10)
helo dominiodocara.com.br
250
mail.meumailserver.edu.br
MAIL FROM:
meumailserver.edu.br
250 Ok
RCPT TO:
meumailserver.edu.br
250 Ok
data
354 End data with .
teste de envio
.
250 Ok: queued as C4B4D10E000F


Como vimos acima o email foi tranquilamente, sem checar relay, autenticação, nada.

Então pesquisando na internet e ajuda de alguns membros da comunidade livre consegui encontrar uma solução para esse problema.

Vou mostrar-lhes abaixo como fica a solução implementada e seu teste:

##################### CONFIGURAÇÕES ##############################
editar o arquivo main.cf do postfix e adicione os seguintes parametros:

# Segue fonte para maiores informações
# http://www.postfix.org/uce.html

# Como uso ldap
smtpd_sender_login_maps = ldap:ldapmaps


# Restriça aplicada no MAIL FROM
smtpd_sender_restrictions = reject_unknown_client,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_sender_login_mismatch, (Essa linha em conjunto com a regra smtpd_sender_login_maps)
permit_sasl_authenticated,
reject_unauthenticated_sender_
login_mismatch,
permit_mynetworks,
reject_unauth_pipelining


### mapeamento virtual ###

ldapmaps_server_host = ldapsrv.dominio.net
ldapmaps_server_port = 389
ldapmaps_search_base = dc=dominio,dc=edu,dc=br
ldapmaps_version = 3
ldapmaps_query_filter = (|(mail=%s)(
mailAlternateAddress=%s))
ldapmaps_result_attribute = mail
ldapmaps_bind = no

Agora vem o teste

[root@mail ~]# telnet mail.meumailserver.edu.br 25
Trying 200.198.111.111...
Connected to
mail.meumailserver.edu.br (200.198.111.111).
Escape character is '^]'.
220
mail.meumailserver.edu.br ESMTP Postfix (2.2.10)
helo dominiodocara.com.br
250
mail.meumailserver.edu.br
MAIL FROM:marcos.abadi@
meumailserver.edu.br
250 Ok
RCPT TO:marcos.abadi@
meumailserver.edu.br
553 marcos.abadi@
meumailserver.edu.br: Sender address rejected: not logged in
data
554 Error: no valid recipients



######################### LOGS ##############################
Feb 13 12:45:09 mail postfix/smtpd[3800]: connect from mail.dominiodocara.com.br[201.22.222.222]
Feb 13 12:45:24 mail postfix/smtpd[3800]: NOQUEUE: reject: RCPT from mail.dominiodocara.com.br[201.22.222.222]: 553 marcos.abadi@
meumailserver.edu.br: Sender address rejected: not logged in; from=marcos.abadi@meumailserver.edu.br to=marcos.abadi@meumailserver.edu.br proto=SMTP helo=dominiodocara.com.br



Nenhum comentário: