Traduções: English - Português (Brasil)
Autenticação SASL no servidor SMTP Postfix
Camada Simples de Autenticação e Segurança (Simple Authentication and Security Layer - SASL) com o SMTP do pt_BR/Postfix.
Implementação usando SASL Cyrus
Uso do saslauthd com PAM
Configura o Postfix com SMTP-AUTH sobre SASL2 com autenticação PAM em um ambiente chroot().
- Nota: Os seguintes passos foram realizados e verificados em um sistema Debian 7.1 (jan. 2015).
Nota: O SASL2 (saslauthd) cria um socket no seu diretório de atual. O postfix (smtpd) precisa de acesso a este socket. Se o smtpd está rodando enjaulado (chroot()) (o que é padrão no Debian) o saslauthd deve rodar neste ambiente também (apesar de não se enjaular junto). Enquanto isto não atrapalha o smtpd existem outros serviços (Cyrus imapd por exemplo) que esperam o socket do 'saslauthd' na sua localização "comum" (/var/run/saslauthd).
A maneira recomendada de resolver isso é executar processos saslauthd separados para o Postfix e para outros. O Debian está preparado para isso. Alternativamente, um truque de link simbólico pode ser usado. Ver abaixo. Ou você pode desativar o chroot() editando as colunas chroot em /etc/postfix/master.cf.
Instale libsasl2-modules, postfix, sasl2-bin
Crie um arquivo /etc/postfix/sasl/smtpd.conf:
pwcheck_method: saslauthd mech_list: PLAIN LOGIN
- Configure um processo separado saslauthd para ser usado pelo Postfix:
Crie uma cópia do arquivo de configuração saslauthd
~# cp /etc/default/saslauthd /etc/default/saslauthd-postfix
e edite-a
START=yes DESC="SASL Auth. Daemon for Postfix" NAME="saslauthd-postf" # max. 15 char. # Option -m sets working dir for saslauthd (contains socket) OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd" # postfix/smtp in chroot()
(Veja /usr/share/doc/sasl2-bin/README.Debian.gz)
Alternativamente, você pode substituir o diretório /run/saslauthd por um link simbólico para /var/spool/postfix/var/run/saslauthd
~# rm -rf /run/saslauthd ~# ln -s /var/spool/postfix/var/run/saslauthd /run/saslauthd
- Este é um hack rápido e grosseiro, útil apenas para fins de teste. Após a próxima reinicialização, o conteúdo de /run será redefinido.
Crie subdiretórios requeridos no diretório enjaulado do postfix:
dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd
Adicione o usuário "postfix" ao grupo "sasl":
adduser postfix sasl
Reinicie o saslauthd:
~# service saslauthd restart [ ok ] Stopping SASL Auth. Daemon: saslauthd. [ ok ] Stopping SASL Auth. Daemon for Postfix: saslauthd-postf. [ ok ] Starting SASL Auth. Daemon: saslauthd. [ ok ] Starting SASL Auth. Daemon for Postfix: saslauthd-postf.
Edite a configuração do Postfix:
~# postconf -e 'smtpd_sasl_local_domain = $myhostname' ~# postconf -e 'smtpd_sasl_auth_enable = yes' ~# postconf -e 'broken_sasl_auth_clients = yes' ~# postconf -e 'smtpd_sasl_security_options = noanonymous' ~# postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination'
(Opcional) Crie um novo fragmento PAM e ajuste-o de acordo com suas necessidades:
~# cd /etc/pam.d ~# cp other smtp ~# editor /etc/pam.d/smtp
Reinicie (recarregar não é suficiente) o postfix:
~# service postfix restart
É isso aí, está feito, tudo deve funcionar agora.
Usando auxprop com sasldb
Configuração do Postfix com SMTP-AUTH sobre SASL2 com autenticação com sasldb em um ambiente chroot ()
- Nota: Os seguintes passos foram realizados e verificados em um sistema Debian 8.3 (fevereiro de 2016).
Instale o libsasl2-modules e o sasl2-bin
Crie um arquivo /etc/postfix/sasl/smtpd.conf:
pwcheck_method: auxprop auxprop_plugin: sasldb mech_list: plain login
Adicione um usuário para o sasldb2
~# saslpasswd2 -c -u domain user ~# sasldblistusers2
- O postfix precisa do /etc/sasldb2 em seu ambiente enjaulado. Uma solução é alterar o script init para copiar o sasldb2 na inicialização.
Em /etc/init.d/postfix, adicione etc/sasldb2 na variável FILES:
FILES="etc/localtime etc/services etc/resolv.conf etc/hosts \ etc/host.conf etc/nsswitch.conf etc/nss_mdns.config etc/sasldb2"
Edite a configuração do Postfix:
~# postconf -e 'smtpd_sasl_local_domain = $myhostname' ~# postconf -e 'smtpd_sasl_auth_enable = yes' ~# postconf -e 'smtpd_sasl_security_options = noanonymous'
Reinicie (recarregar não é suficiente) o postfix:
~# service postfix restart ~# systemctl daemon-reload
Isso é aí, você terminou, tudo deve estar funcionando agora.
Dicas de Resolução de Problemas
Verifique sua configuração com o saslfinger:
~# saslfinger -s
Se algo der errado (não conseguir se conectar ao servidor, a autenticação falhar), tente ver o que está acontecendo nos bastidores. Tente se conectar ao seu servidor de email via
~# telnet server 25
Pode se conectar através do smtpd? Se sim, digite o comando "ehlo dummy". Veja o que o smtpd responde? Para mais informações, consulte Verifique se há suporte SMTP AUTH
Implementação usando Dovecot SASL
Veja também: http://wiki.dovecot.org/HowTo/PostfixAndDovecotSASL
Autenticação SASL no cliente SMTP Postfix
Postfix e sbcglobal/yahoo/att
- A SBC bloqueia globalmente a porta 25 nos seus usuários DSL:
http://help.sbcglobal.net/article.php?item=4640
- Vamos usar o servidor sbc smtp via autenticação para enviar e-mails. Faça isso:
apt-get install libsasl2-modules
ADICIONE ao main.cf usando o postconf. Apenas digite (smtp.att.yahoo.com requer a porta 587 caso contrário não é necessário):
postconf -e "relayhost = [smtp.sbcglobal.yahoo.com]:587" postconf -e "smtp_sasl_auth_enable = yes" postconf -e "smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd" postconf -e "smtp_sasl_security_options = noanonymous"
Crie um arquivo chamado sasl_passwd em /etc/postfix/sasl_passwd. Dentro digite
[smtp.sbcglobal.yahoo.com]:587 username@sbcglobal.net:mypassword
- Agora altere as permissões para que outros não possam lê-lo:
chmod 600 /etc/postfix/sasl_passwd
- Agora postmap ele. (Cria um arquivo do tipo banco de dados para que o postfix possa lê-lo.)
postmap /etc/postfix/sasl_passwd
- Reinicie o postfix
postfix reload
Feito. Você pode usar o "mutt" para enviar e-mails para fora. Verifique /var/log/mail.log para ver se tudo está funcionando.
- Depois de mudar de sbcglobal para att, você precisa verificar seu endereço de e-mail nas opções de e-mail do yahoo. Se você tiver centenas de listas de discussão, precisará desbloquear sua porta 25, já que é impossível usar os servidores de smtp do yahoo sem verificar cada endereço de email.
Para tirar a função na sua porta 25 (obtê-la sem filtro), deixe uma solicitação aqui: Unfilter port 25 on smtp.att.yahoo.com