O Postfix é o Agente de Transporte de Correio (MTA) pré-definido no Ubuntu. Este tenta ser rápido e fácil de administrar e seguro. É compativel com o MTA sendmail. Esta secção explica como instalar e configurar o postfix. Também explica como configurá-lo como servidor SMTP utilizando uma ligação segura (para envio de email de forma segura).
Para instalar postfix com SMTP-AUTH e Transport Layer Security (TLS), execute o comando seguinte:
sudo apt-get install postfix
Pressione enter quando o processo de instalação lhe colocar questões, a configuração será feita com mais detalhe posteriormente.
Para configurar o postfix, execute o seguinte comando:
sudo dpkg-reconfigure postfix
A interface do utilizador será mostrada. Em cada ecrã, seleccione os valores seguintes:
Ok
Internet Site
NONE
mail.example.com
mail.example.com, localhost.localdomain, localhost
No
127.0.0.0/8
Yes
0
+
all
![]() |
|
Substitua mail.example.com com o nome do seu servidor de correio electrónico. |
Now is a good time to decide which mailbox format you want to use. By default
Postifx will use mbox for the mailbox format.
Rather than editing the configuration file directly,
you can use the postconf command to configure
all postfix parameters. The
configuration parameters will be stored in
/etc/postfix/main.cf
file. Later if you
wish to re-configure a particular parameter, you can either
run the command or change it manually in the file.
To configure the mailbox format for Maildir:
sudo postconf -e 'home_mailbox = Maildir/'
![]() |
|
This will place new mail in /home/username/Maildir so you'll need to configure your Mail Delivery Agent to use the same path. |
The next steps are to configure postfix to use SASL for SMTP AUTH.
Configure Postfix to do SMTP AUTH using SASL (saslauthd):
sudo postconf -e 'smtpd_sasl_local_domain =' sudo postconf -e 'smtpd_sasl_auth_enable = yes' sudo postconf -e 'smtpd_sasl_security_options = noanonymous' sudo postconf -e 'broken_sasl_auth_clients = yes' sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' sudo 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 Postfix to do TLS encryption for both incoming and outgoing mail:
sudo postconf -e 'smtpd_tls_auth_only = no' sudo postconf -e 'smtp_use_tls = yes' sudo postconf -e 'smtpd_use_tls = yes' sudo postconf -e 'smtp_tls_note_starttls_offer = yes' sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key' sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt' sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem' sudo postconf -e 'smtpd_tls_loglevel = 1' sudo postconf -e 'smtpd_tls_received_header = yes' sudo postconf -e 'smtpd_tls_session_cache_timeout = 3600s' sudo postconf -e 'tls_random_source = dev:/dev/urandom' sudo postconf -e 'myhostname = mail.example.com'
Turn off the chroot operation for SMTP server. Locate
for the following line in
/etc/postfix/master.cf
file:
smtp inet n - - - - smtpd
and modify it as follows:
smtp inet n - n - - smtpd
![]() |
|
Após ter executado todos os comandos, o SMTP AUTH está configurado no postfix. O certificado auto-assinado é criado para TLS e configurado no postfix. |
Agora, o ficheiro /etc/postfix/main.cf
deverá ser semelhante a este.
A configuração inicial do postfix está completa. Execute o comando seguinte para iniciar o controlador postfix:
sudo /etc/init.d/postfix start
Agora o controlador postfix está instalado, configurado e é executado com sucesso. Postfix suporta SMTP AUTH como definido em RFC2554. É baseado em SASL. Contudo ainda é necessário configurar autenticação SASL antes de poder utilizar SMTP.
The libsasl2-2, sasl2-bin and libsasl2-modules are necessary to enable SMTP AUTH using SASL. You can install these applications if you have not installed them already.
sudo apt-get install libsasl2-2 sasl2-bin
A few changes are necessary to make it work properly. Because Postfix runs chrooted in /var/spool/postfix
, SASL needs to be configured to run in the false root (/var/run/saslauthd
becomes /var/spool/postfix/var/run/saslauthd
):
sudo mkdir -p /var/spool/postfix/var/run/saslauthd sudo rm -rf /var/run/saslauthd
Para activar saslauthd, edite o ficheiro /etc/default/saslauthd
, e altere ou adicione a variável START. De forma a configurar saslauthd para correr em root falso, adicione as variáveis PWDIR, PIDFILE e PARAMS. Finalmente, configure a variável MECHANISMS conforme pretender. O ficheiro deverá parecer-se com:
# Isto necessita reconfigurado antes que o saslauthd funcione # automaticamente START=yes PWDIR="/var/spool/postfix/var/run/saslauthd" PARAMS="-m ${PWDIR}" PIDFILE="${PWDIR}/saslauthd.pid" # Necessita especificar o mecanismo de autenticação que deseja utilizar # O pré-definido é o "pam" para suportar o PAM, mas também pode incluir # "shadow" ou "sasldb", assim: # MECHANISMS="pam shadow" MECHANISMS="pam"
![]() |
|
Se preferir, pode usar shadow em vez de pam. Isto usará a transferência de senha MD5 hashed e é perfeitamente segura. O nome de utilizador e senha que precisam de autenticação serão os mesmos que os utilizadores do sistema onde executa o servidor. |
Next, update the dpkg "state" of /var/spool/portfix/var/run/saslauthd
. The saslauthd init script uses this setting to create the missing directory with the appropriate permissions and ownership:
sudo dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd
A configuração de SMTP AUTH está completa. Agora está na hora de iniciar e testar a configuração. Pode executar o seguinte comando para iniciar o serviço SASL:
sudo /etc/init.d/saslauthd start
Para verificar se o SMTP-AUTH e o TLS trabalham correctamente, execute o comando seguinte:
telnet mail.example.com 25
Após ter estabelecido a ligação ao servidor de correio postfix, escreva:
ehlo mail.example.com
Se obtiver as linhas seguintes entre outras, então tudo estará a funcionar perfeitamente. Escreva quit para sair.
250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME