Falsificação de mensagens de email
Colaboração: Carlos F. A. Paniago
Data de Publicação: 27 de Julho de 2004
Eu estava procurando uma solucao para os mails que vem de fora
do meu dominio e sao assinadas por pessoas de dentro do nosso
dominio (o que faz o subordinado acreditar que o chefe mandou
o mail, quando na verdade é um SPAM ou um virus que falsifica
o from: do mail). Como o exemplo abaixo:
Date: Sex 23 Jul 2004 15:25:39 BRT
From: "Chefe" <chefe@unicamp.br>
To: queiroz@unicamp.br
Subj: Para sua informacao
Received: from lfit_84.org (jcocker.uenf.br [200.20.228.56])
Que é um suposto mail do Chefe para o Queiroz, mas veio de uma
maquina (real) que manda virus toda hora para todo mundo de
outra universidade. A gente que conhece email olha o Received
é sabe que é forjada, mas esse header nem aparece para os
usuarios normais, que rapidamente clicam nos virus achando
que realmente foi o seu superior que mandou o mail. (-; (-;
Depois de meses de procura (ate mudei de mail pois achava que
o sendmail ja estava na sola, mas isso não me arrependo), indo
para o postfix. Achei uma solucao para todos eles no endereco:
http://tmda.net/faq.cgi?req=show&file=faq04.010.htp
A solucao do problema no postfix, é so acrescentar no arquivo
de configuracao main.cf
smtpd_recipient_restrictions =
[...],
permit_mynetworks,
check_sender_access pcre:/etc/mail/sender_checks,
[...]
e o arquivo /etc/mail/sender_checks com a seguinte configuracao:
/\@seu\.dominio\.br/
DISCARD
/\@suamaquina\.seu\.dominio\.br/
DISCARD
/\@localhost\.seu\.dominio\.br/
DISCARD
Veja que se usa o DISCARD e não o REJECT senao o mail acaba indo para
quem não o mandou. Agora isso so funciona se voce não permite que seus
usuarios mandem mail de outro lugar como se fosse dai (uma pratica que
deveria ser abolida da internet). Para quem esta remoto, e quer mandar
email como funcionario, use o webmail que esta dentro do https na nossa
home page (e o mail sai realmente do nosso escritorio).
Para finalizar aqui esta a linha que estou usando agora para fazer
essas restricoes no main.cf
smtpd_recipient_restrictions =
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
permit_mynetworks,
reject_unauth_destination,
check_sender_access pcre:/etc/mail/sender_checks,
check_helo_access hash:/etc/mail/helo_access,
check_client_access hash:/etc/mail/access,
reject_rbl_client relays.ordb.org,
reject_rbl_client opm.blitzed.org,
reject_rbl_client list.dsbl.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client dul.dnsbl.sorbs.net,
permit
Nessa configuracao tenho mais 2 arquivos o /etc/mail/helo_access
seu.dominio.br REJECT You are not me
localhost.seu.dominio.br REJECT You are not me
localhost REJECT You are not me
Para rejeitar maquinas que usem o HELO/EHLO dizendo que sao nossas, quando
elas na verdade sao maquinas externas. E finalmente o arquivo de acesso
que esta em /etc/mail/access, aonde uso uma lista branca ou negra para
nao ficar sendo acessado por maquinas com virus e com provedores, no exemplo
aqui vai um que eu estou usando agora:
# aqui vao os acessos indesejados
200.141.192.218 REJECT You are a virus sender.
200.148.142.98 REJECT You are a virus sender.
200.161.142.201 REJECT You are a virus sender.
200.162.114.194 REJECT You are a virus sender.
200.164.88.34 REJECT You are a virus sender.
201.2.52.146 REJECT You are a virus sender.
#
#
#
dsl.brasiltelecom.net.br REJECT Use your provider to send a email.
dial.brasiltelecom.net.br REJECT Use your provider to send a email.
e.brasiltelecom.net.br REJECT Use your provider to send a email.
dsl.telesp.net.br REJECT Use your provider to send a email.
dialup.gvt.net.br REJECT Use your provider to send a email.
xdsl-fixo.ctbcnetsuper.com.br REJECT Use your provider to send a email.
Normalmente os virus senders depois de um tempo eu libero. Se uma maquina
comeca a mandar muito virus eu incluo nessa lista.
Boa solucao, isso vai ajudar muita gente a não receber mail dos
falsarios e virus (so pelo header sem ter de receber o mail e passar
por um antivirus ou um procurador de SPAM). Mas isso é so uma ajuda. Seu
sistema de email pode e deve fazer tambem algumas acoes defensivas:
Se voce tem um firewall ou um router, configure-o de forma a deixar so
seu servidor de email mandar mail para fora e receber mail de fora. Isso
é muito facil de fazer, e caso algum usuario de sua rede pegue virus,
pelo menos o virus fica contido na sua instalacao, ja que esses filtros
impedem as maquinas dos usarios de mandar mail diretamente (eles mandam
mail para o servidor de email que manda isso para fora e so o servidor
de email recebe os mails de fora. Esse servidor pode ser unico, ou pode
ser varios). Se voce fizer um log dessa regra, voce descobre pelo log
que tem usuario com virus na sua rede interna.
Afinal não é feio para a sua empresa (qualquer que seja ela) estar
associada ao fato de mandar virus para os outros? Seja uma empresa que
pelo menos contenha seus virus dentro de suas paredes. Se voce tem um
antivirus bem atualizado (ou mais de um) para todo mail que entra e sai,
voce fica com menos chance de atrapalhar os outros e ajudar a internet
que esta "dura de roer" nesses dias de muito virus e SPAM.