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.