Postfix é um software livre e de código aberto popular que atua como um agente de transferência de correio (MTA). O trabalho do Postfix é rotear e entregar e-mails. Além do uso clássico, o Postfix também pode ser configurado para enviar e-mails apenas por aplicativos locais.
Esta aplicação do Postfix é um truque útil para implantar em várias situações. For exemplo, pode ser usada ao enviar notificações por e-mail regularmente, ao trabalhar com um provedor de serviços de e-mail de terceiros com tráfego de saída limitado, etc. Em comparação com qualquer servidor SMTP completo, o Postfix é uma alternativa mais leve que, ao mesmo tempo, mantém as funcionalidades necessárias.
Neste tutorial, confira como instalar e configurar o Postfix como um servidor SMTP de apenas envio no Ubuntu.
Pré-requisitos
Para seguir este guia, você precisa cumprir os seguintes pré-requisitos:
-
Você precisa ter um servidor Ubuntu configurado corretamente com acesso a um usuário sudo não-root.
-
Você também precisa de um nome de domínio totalmente registrado. Saiba mais sobre nomes de domínio no nosso post Instalando um Certificado SSL de uma Autoridade de Certificação Comercial .
-
Finalmente, você precisará de um registro DNS com o nome de domínio apontando para o endereço IP público do servidor.
Instalando o Postfix
Assim que as pré-condições forem atendidas, o servidor estará pronto para implantar o Postfix. A maneira mais simples de instalar o Postfix é instalar o pacote mailutils . Ele está diretamente disponível nos repositórios oficiais do Ubuntu.
Primeiro, abra um terminal e atualize o banco de dados de pacotes APT :
|
1 |
sudo apt update |

Depois, você pode instalar o Postfix:
|
1 |
sudo apt install mailutils |

Durante o processo de instalação, a seguinte janela de configuração será exibida. A opção padrão é Internet Site. Para confirmar a seleção, pressione TAB para mover o cursor para a próxima seção. Em seguida, pressione Enter:

A próxima etapa solicitará o nome de correio do sistema. Ele será o nome atribuído ao servidor no momento da criação. Conforme descrito no script, se o endereço de e-mail para o host local for “foo@example.org”, então o nome de correio do sistema seria example.org:

Observe que o script de configuração também pode ser acionado a qualquer momento posterior usando o seguinte comando:
|
1 |
sudo dpkg-reconfigure postfix |
Configurando o Postfix
Nesta etapa, o Postfix será configurado para enviar e receber e-mails apenas do localhost. Isso exige que o Postfix escute na interface loopback . É a interface de rede virtual que o servidor usa para comunicação interna. Em seguida, abra o arquivo de configuração do Postfix usando o editor de texto de sua escolha:
|
1 |
sudo nano /etc/postfix/main.cf |
Altere o valor de inet_interface para loopback-only:

Outra diretiva que você deve alterar é mydestination. Ela define a lista de domínios que são entregues por meio do transporte de entrega de correio local_transport . O valor padrão será algo parecido com isto:

Altere seu valor para o seguinte:
|
1 |
mydestination = localhost.$mydomain, localhost, $myhostname |

Caso seu domínio seja na verdade um subdomínio e você queira que os e-mails pareçam enviados do domínio principal, adicione a seguinte diretiva no final da configuração do Postfix. Ela removerá o subdomínio do endereço de e-mail:
|
1 |
masquerade_domains = <main_domain> |

Para que as alterações entrem em vigor, reinicie o Postfix:
|
1 |
sudo systemctl restart postfix |
Testando o servidor SMTP
Assumindo que o processo de configuração foi bem-sucedido, é hora de testá-lo. Para fazer isso, verifique se o Postfix pode enviar um e-mail para uma conta de e-mail externa usando o comando mail . Ele faz parte do pacote mailutils :
|
1 |
echo "Corpo do e-mail de teste" | mail -s "Linha de assunto" <email_address> |
A mensagem deve chegar ao endereço de e-mail especificado. Neste ponto, todos os e-mails enviados não estão criptografados. Os provedores de serviços geralmente marcarão esses e-mails como spam, portanto, certifique-se de verificar a seção de spam para a chegada do e-mail.
Se o mail comando relatar um erro ou o e-mail não chegar após um período prolongado de tempo, verifique novamente a configuração do Postfix e certifique-se de que o nome do servidor e o hostname estão definidos corretamente. Com esta configuração, os e-mails parecerão ser enviados do seguinte endereço:
|
1 |
<username>@<domain> |
Aqui, o username será o nome de usuário do usuário do servidor que executou o mail comando.
Encaminhando E-mails do Sistema
Verificamos com sucesso que o servidor de e-mail está configurado corretamente e funcional. Agora ele precisa ser configurado para encaminhar e-mails para root. Todas as mensagens geradas pelo sistema enviadas para o servidor serão encaminhadas para um endereço de e-mail externo. Para destinatários de e-mail, o arquivo /etc/aliases contém a lista de nomes alternativos. Abra-o usando o editor de texto de sua escolha:
|
1 |
sudo nano /etc/aliases |
Por padrão, ele será parecido com isto:

No final do arquivo, adicione a seguinte linha:
|
1 |
root: <email_address> |

Isso indica que os e-mails enviados para root serão encaminhados para um endereço de e-mail. Para que a alteração entre em vigor, execute o seguinte comando. Ele reconstruirá o banco de dados de aliases que o comando mail usa:
|
1 |
sudo newaliases |
![]()
Em seguida, você precisa testar se a alteração foi bem-sucedida. Envie um e-mail de teste para root:
|
1 |
echo "Test root email body" | mail -s "Subject line" root |
O e-mail deve chegar ao endereço de e-mail especificado. Não se esqueça de verificar a pasta de spam, pois ainda não há criptografia configurada.
Habilitando a Criptografia SMTP
Enviar e-mails em formato não criptografado é uma atitude arriscada. Para garantir a segurança, é necessário ter a criptografia SMTP habilitada. Para conseguir isso, solicitaremos um certificado TLS gratuito da Let’s Encrypt para o seu domínio.
Para o Ubuntu, é a ferramenta Certbot que faz o trabalho. Felizmente, ela está disponível diretamente no repositório oficial do Ubuntu. Instale o Certbot com o seguinte comando:
|
1 |
sudo apt install certbot |

Assumindo que o servidor tenha o UFW configurado, é necessário ter a porta 80 aberta para que a verificação do domínio possa ocorrer. Execute o seguinte comando para habilitá-la:
|
1 |
sudo ufw allow 80 |

Agora, execute o Certbot para gerar um certificado. Ele comanda o Certbot a emitir certificados com uma chave RSA de 4096 bits. A verificação ocorrerá através da porta 80 (HTTP):
|
1 |
sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d <domain> |
A saída será algo parecido com isto:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Salvando depuração log em /var/log/letsencrypt/letsencrypt.log Plugins selecionados: Authenticator standalone, Installer None Obtendo um novo certificado Realizando os seguintes desafios: http-01 desafio para '<domain>' Aguardando por verificação... Limpando os desafios NOTAS IMPORTANTES: - Parabéns! Seu certificado e cadeia foram salvos em at: /etc/letsencrypt/live/<domain>/fullchain.pem Seu arquivo de chave foi salvo em at: /etc/letsencrypt/live/<domain>/privkey.pem Seu certificado irá expirar em 2020-07-11. Para obter uma nova ou modificada versão deste certificado no futuro, basta executar , o run certbot novamente. Para renovar-de forma não interativa *todos* os seus certificados, , execute "certbot renew" - Se você gosta do Certbot, , por favor considere apoiar o nosso trabalho ao: Doar para a ISRG / Let's Encrypt: https://letsencrypt.org/donate Doar para a EFF: https://eff.org/donate-le |
A chave será armazenada no seguinte diretório:
|
1 |
/etc/letsencrypt/live/<domain> |
Agora que seu certificado foi gerado, abra o arquivo de configuração do Postfix em um editor de texto:
|
1 |
sudo nano /etc/postfix/main.cf |
Encontre a seção TLS parâmetros:

Depois disso, altere o valor das diretivas smtpd_tls_cert_file e smtpd_tls_key_file:

Em seguida, salve e feche o arquivo. Para que as alterações entrem em vigor, reinicie o Postfix:
|
1 |
sudo systemctl restart postfix |
Finalmente, envie um e-mail de teste novamente para um endereço de e-mail de destino:
|
1 |
echo "Este é o corpo do e-mail" | mail -s "Linha de assunto do e-mail" <email> |
O e-mail agora deve aparecer normalmente como os outros e-mails. Se você verificar as informações técnicas do e-mail, ele aparecerá criptografado.
Considerações Finais
Parabéns! Você configurou com sucesso um servidor de e-mail apenas de envio, desenvolvido pelo Postfix. As transações de e-mail também estão seguras usando uma chave de criptografia apropriada.
Para mais maneiras de otimizar a transferência de e-mail, confira este tutorial As Melhores Maneiras de Usar o Servidor SMTP do Google.
Boa computação!
Comentários
Nenhum comentário ainda. Seja o primeiro.