Postfix é o Mail Transfer Agent (MTA) padrão do Ubuntu. Ele tenta ser rápido, fácil de administrar e seguro. É compatível com o MTA sendmail. Esta seção explica como instalar e configurar o postfix. Também explica como configurá-lo como um servidor SMTP usando uma conexão segura (para enviar emails de forma segura).
Para instalar o postfix com SMTP-AUTH e Transport Layer Security (TLS), execute o seguinte comando:
sudo apt-get install postfix
Simplesmente pressione enter para a perguntas durante o processo de instalação, a configuração será feita em detalhes no próximo passo.
Para configurar o postfix, execute o seguinte comando:
sudo dpkg-reconfigure postfix
A interface do usuário será mostrada. Em cada tela, selecione os seguintes valores:
Ok
Site de Internet
NENHUM
email.exemplo.com
email.exemplo.com, localhost,localdomain, localhost
Não
127.0.0.0/8
Sim
0
+
all
![]() |
|
Substitua mail.example.com pelo nome do seu servidor de email. |
Os próximos passos são configurar o postfix para usar SASL para SMTP AUTH. Ao invés de editar o arquivo de configuração diretamente, você pode usar o comando postconf para configurar todos os parâmetros do postfix. Os parâmetros de configuração serão armanzenados no arquivo /etc/postfix/main.cf
. Depois se você desejar reconfigurar um parâmetro em particular, você pode executar o comando ou mudá-lo manualmente no arquivo.
Configure o Postfix para fazer SMTP AUTH usando SASL (saslauthd):
postconf -e 'smtpd_sasl_local_domain =' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'smtpd_sasl_security_options = noanonymous' postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' postconf -e 'inet_interfaces = all'
Open the /etc/postfix/sasl/smtpd.conf
file and add the following lines to end of the file:
pwcheck_method: saslauthd mech_list: plain login
Next, configure the digital certificate for TLS. When asked questions, follow the instructions and answer appropriately.
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 chmod 600 smtpd.key openssl req -new -key smtpd.key -out smtpd.csr openssl x509 -req -days 365 -in smtpd.csr -signkey smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted mv -f smtpd.key.unencrypted smtpd.key openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 sudo mv smtpd.key /etc/ssl/private/ sudo mv smtpd.crt /etc/ssl/certs/ sudo mv cakey.pem /etc/ssl/private/ sudo mv cacert.pem /etc/ssl/certs/
![]() |
|
You can get the digital certificate from a certificate authority. Alternatively, you can create the certificate yourself. Refer to Creating a self Signed Certification sub-section for more details. |
Configure o Postfix para fazer encriptação TLS para entrada e saida de email:
postconf -e 'smtpd_tls_auth_only = no' postconf -e 'smtp_use_tls = yes' postconf -e 'smtpd_use_tls = yes' postconf -e 'smtp_tls_note_starttls_offer = yes' postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key' postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt' postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem' postconf -e 'smtpd_tls_loglevel = 1' postconf -e 'smtpd_tls_received_header = yes' postconf -e 'smtpd_tls_session_cache_timeout = 3600s' postconf -e 'tls_random_source = dev:/dev/urandom' postconf -e 'myhostname = mail.example.com'
![]() |
|
Depois que você executar todos os comandos, o SMTP AUTH é configurado com o postfix. O cerficado auto-assinado é criado para o TLS e é configurado com o postfix. |
Agora, o arquivo /etc/postfix/main.cf
parecerá com este.
A configuração inicial do postfix está completa. Execute o seguinte comando para iniciar o daemon do postfix:
sudo /etc/init.d/postfix start
Agora o postfix daemon está instalado, configurado e executando com sucesso. O Postfix suporta o SMTP AUTH como definido na RFC2554. É baseado no SASL. Entretanto é necessário configurar a autenticação SASL antes de usar o SMTP.
Os libsasl2, sasl2-bin e libsasl2-modules são necessários para habilitar o SMTP AUTH usando SASL. Você deve instalar essas aplicações se você ainda não os tiver instalados.
sudo apt-get install libsasl2 sasl2-bin
Algumas modificações são necessárias para fazê-lo funcionar corretamente. Devido ao Postfix rodar sob chroot em /var/spool/postfix
, a SASL precisa ser configurada para rodar na falsa raíz (/var/run/saslauthd
se torna /var/spool/postfix/var/run/saslauthd
):
mkdir -p /var/spool/postfix/var/run/saslauthd rm -rf /var/run/saslauthd
Para ativar o saslauthd, edite o arquivo /etc/default/saslauthd
e modifique ou adicione a variável START. Para configurar o saslauthd para rodar na raíz falsa, adicione as variáveis PWDIR, PIDFILE e PARAMS. Finalmente, configure a variável MECHANISMS à sua maneira. O arquivo deve se parecer com isso:
# Isso deve ser descomentado antes que o saslauthd rode # automaticamente # automatically START=yes PWDIR="/var/spool/postfix/var/run/saslauthd" PARAMS="-m ${PWDIR}" PIDFILE="${PWDIR}/saslauthd.pid" # Você deve especificar os mecanismos de autenticação que você # deseja usar. O valor padrão é "pam" para suporte PAM, mas você # pode também incluir "shadow" ou "sasldb", assim: # MECHANISMS="pam shadow" MECHANISMS="pam"
![]() |
|
Se preferir, você pode utilizar shadow ao invés de pam. Ele irá usar transferência encriptada de senha MD5 e isso é perfeitamente seguro. O nome do usuário e a senha necessários para a autenticação serão aqueles mesmos dos usuários do sistema que você está usando no servidor. |
Em seguida, atualize o "estado" do dpkg do /var/spool/portfix/var/run/saslauthd
. Os scripts de inicialização do saslauthd usam essa configuração para criar o diretório que falta com as permissões e posses necessárias:
dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd
A configuração da Autenticação do SMTP está completa. Agora é hora de iniciar e testar a configuração. Você pode rodar o seguinte comando para iniciar o daemon SASL:
sudo /etc/init.d/saslauthd start
Para ver se o SMTP-AUTH e o TLS estão funcionando normalmente, rode o seguinte comando:
telnet mail.example.com 25
Depois que tiver estabelecido uma conexão com o servidor de e-mail postfix, digite:
ehlo mail.example.com
Se você vir as seguintes linhas entre outras, então tudo estará funcionando perfeitamente. Digite quit para sair.
250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME