Neste artigo, vamos mostrar como configurar uma instalação do servidor de email Postfix para fazer relay (retransmitir) emails através de outro servidor de correio com autenticação.
Essa configuração é útil para os seguintes cenários:
-
Você já possui um servidor de email e deseja que suas aplicações Web enviem email pelo servidor Postfix local em vez de se conectarem diretamente a um servidor de email remoto. Isso reduz a latência para a aplicação e também torna a entrega mais confiável (o Postfix tentará enviar a mensagem várias vezes).
- Você deseja retransmitir os emails pelo Gmail ou outro serviço semelhante, como o Email Corporativo da CentralServer.
Instalando o Postfix
O primeiro passo é, obviamente, instalar o servidor de email Postfix.
NOTA: Se o seu servidor foi instalado a partir de um template padrão de servidor cloud da CentralServer, o Postfix já foi instalado. Neste caso, pode pular esta etapa.
Os comando para instalação variam conforme o “sabor” (“flavor”) do Linux que você estiver usando: “rpm” no Fedora, RHEL e CentOS, “yum” no Alma Linux e “apt-get” nos sistemas Debian, Ubuntu, como mostrado abaixo:
sudo apt-get install postfix
O instalador solicitará que você selecione um modelo para o arquivo de configuração. Se todos os emails serão retransmitidos, selecione “Sistema Satélite”; em seguida, digite o servidor SMTP para o qual irá encaminhar os emails no próximo prompt. Por exemplo:
[smtp.gmail.com]:465
Observação: você precisa colocar colchetes ao redor do nome do host, como “[exemplo.com]” ou “[exemplo.com]:465”, para garantir que a autenticação ocorra com este servidor de correio. Se simplesmente usássemos “exemplo.com”, o Postfix faria uma consulta de DNS para achar o servidor de email do domínio e poderia achar um servidor de entrada (MX) ao invés do SMTP que aceita autenticação.
Configurando a Autenticação
Agora, queremos que o Postfix se autentique com o servidor SMTP. Se você deseja fazer realay por meio de seu servidor dedicado de email, uma alternativa seria atualizar a configuração de “mynetworks” no servidor de email de destino para aceitar email sem autenticação (ou seja, autorizar somente por endereço IP). Aqui, porém, usaremos autenticação baseada em nome de usuário/senha.
Primeiro, edite o arquivo: /etc/postfix/main.cf
Você deverá encontrar a linha abaixo se você selecionou “Sistema Satélite” na instalação do Postfix. Caso contrário, você precisa adicioná-la ou modificá-la agora:
relayhost = [smtp.seudomínio.com.br]:465
NOTA: Substitua seudomínio.com.br pelo nome de domínio do seu servidor de email.
Abaixo dessa linha, adicione as seguintes opções adicionais para habilitar a autenticação:
smtp_sasl_type = cyrus
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_wrappermode = yes
Aqui, estamos dizendo ao Postfix para usar a autenticação SASL e também habilitar o TLS para comunicação segura. Também informamos os caminhos para os arquivos: um com o certificado de autenticação confiável (CRT) e outro com as credenciais de login (sasl_passwd).
O arquivo /etc/ssl/certs/ca-certificates.crt já deve existir no seu servidor. Já o arquivo com as credenciais de autenticação precisa ser criado.
Então, use o editor “nano” ou o “vim” para criar o arquivo /etc/postfx/sasl_passwd e insira o nome do relayhost (entre colchetes) e também o nome de usuário e senha da conta a ser usada para autenticação, no formato:
[smtp.seudomínio.com.br]:465 conta@seudomínio.com.br:senha
Em seguida, salve o arquivo.
O próximo passo é atualizar as permissões do arquivo para torná-lo legível apenas pelo usuário root:
chmod 600 /etc/postfix/sasl_passwd
E, agora, precisamos criar o arquivo adicional sasl_passwd.db contendo um pequeno banco de dados com o “hash” das credenciais (esse é o arquivo que será de fato usado pelo Postfix):
sudo postmap /etc/postfix/sasl_passwd
Por fim, recarregue o serviço do Postfix e tente enviar um email de teste:
systemctl reload postfix
echo ‘teste’ | mail -s ‘teste’ you@example.com
echo “Mensagem de teste” | mail -s “Mensagem enviada via Postfix” email_do_destinatario@domínio.com.br
Se as configurações foram feitas corretamente, a mensagem será entregue com sucesso. Para depurar alguma falha, verifique os arquivos de log do Postfix (/var/log/mail.log ou /var/log/maillog).
AVISO LEGAL: Os procedimentos descritos neste documento devem ser executados de acordo com o contexto de cada sistema, de forma a evitar impactos negativos à segurança, disponibilidade, integridade e privacidade de dados. A CentralServer se reserva o direito de modificar a qualquer tempo e sem aviso prévio as informações aqui apresentadas a fim de refletir o lançamento de novos serviços, atualizações físicas e operacionais, e evolução do estado-da-arte da tecnologia.