Permitir enviar email apenas para utilizadores autenticados no Postfix
Na semana passada fui confrontado com um problema no meu servidor de email. Eu utilizo o Postfix como software de recepção e envio de email. As configurações que fiz na hora de instalação foram basicamente as que são aconselhadas por defeito. Bem o meu servidor está aberto ao mundo e é ele o responsável por receber o email para as minhas contas bem como por enviar todo o meu email. Eu por razões de facilidade e boa vontade para com outros permitia receber email de toda a gente. Isto para mim era importante pois era possível usar o meu serviço de email para testar se outras maquinas com serviços de email eram capazes de enviar email e outras coisas que vim facilitando a colegas e amigos.
Mas na semana passada deparei me com o servidor bastante lento. Claro que fui de imediato analisar o que se estava a passar. Foi quando me deparei com o servidor de email com uma fila com cerca de 30000 mensagens que estavam a ser enviados à velocidade da banda que reservei para este tipo de serviço.
Parei o serviço Postfix, fiz um backup para mais tarde poder analisar o email que estava em fila, limpei a fila toda para que voltasse a um estado normal, pois estava a tornar todo o sistema muito lento pelo acesso aos discos que fazia!
Depois parei para analisar os ficheiros de configuração do Postfix, pois tinha de perceber como é que estavam a conseguir enviar email para outras redes sem o meu consentimento.
O autor destas mensagens era claro um SPAMER que estava a aproveitar o facto de eu não forçar os utilizadores a se autenticarem antes de enviar as mensagens para fora da minha rede.
Apesar de ser algo que se configura de forma muito simples, é sempre mau saber que o nosso servidor foi usado para enviar mensagens que podem de certa forma prejudicar alguém, para além de mim.
O que optei por fazer foi obrigar todos os utilizadores a se autenticarem para poderem enviar email. Para isso coloquei a seguinte linha no final do ficheiro main.cf do Postfix.
smtpd_sender_restrictions = permit_sasl_authenticated,reject_authenticated_sender_login_mismatch
Desta forma apenas os utilizadores que se autenticarem podem enviar email para fora da minha rede, os outros são rejeitados.