SMTP Auth com Postfix e SASL (sem domínios virtuais)
Dica publicada em Linux / Correio Eletrônico
SMTP Auth com Postfix e SASL (sem domínios virtuais)
1 - Instalar os pacotes necessários:
# apt-get update
# apt-get install sasl2-bin libgsasl7 libauthen-sasl-cyrus-perl libauthen-sasl-perl libsasl2 libsasl2-modules
2 - Configurar o SASL:
No nosso caso, vamos remover o smtpd do ambiente chrootado, caso você precise manter esta opção, copie o diretório /var/run/saslauthd para a jaula do Postfix (em /var/spool/postfix/var/run/saslauthd), para isso, vamos editar o arquivo /etc/postfix/master.cf e na linha:
smtp inet n - - - - smtpd
Vamos trocar para:
smtp inet n - n - - smtpd
Após isto vamos criar o arquivo /etc/postfix/sasl/smtpd.conf, que dirá quais os mecanismos de autenticação serão permitidos e como o serviço deve rodar:
# vi /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: pam plain login
mech_list: pam plain login
Depois iremos configurar o arquivo default do SASL para que o serviço seja iniciado normalmente durante o processo de boot do servidor:
# vi /etc/default/saslauthd
# This needs to be uncommented before saslauthd will be run automatically
START=yes
# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"
MECHANISMS="pam"
START=yes
# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"
MECHANISMS="pam"
Depois disto iremos adicionar as linhas sobre a autenticação smtp no arquivo de configuração do Postfix, o bloco do smtp auth ficará assim:
# SASL smtp-auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain =
smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, permit
# POP Before SMTP
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination,check_client_access hash:/etc/postfix/pop-before-smtp
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain =
smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, permit
# POP Before SMTP
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination,check_client_access hash:/etc/postfix/pop-before-smtp
Uma última alteração necessária é adicionar o usuário postfix ao grupo sasl, para que ele possa se conectar ao diretório /var/run/saslauthd, no arquivo de socket (mux é o nome do arquivo) para realizar a autenticação, isto é feito com o comando:
# adduser postfix sasl
Feito isto reinicie o Postfix e o saslauthd e seu sistema já possuirá smtp autenticado.
Para testar se a autenticação está funcionando, utilize o comando:
testsaslauthd -u <usuário> -p <senha> -s smtp
O resultado deve ser:
0: OK "Success."
Outras dicas deste autor
Monitorando o uso de processador de servidores (locais e remotos) com o Nagios + NRPE
Leitura recomendada
Compilando o Cyrus Imap 2.4.8 no Debian, sem Kerberos
Teste de autenticação em servidor IMAP
Resolvendo erro de "Erro! Conexão recusada" ao baixar emails do Yahoo pelo Evolution
Comentários
olá amigo bom tutorial configurei o meu tbm. vc fez um teste simples e funcionou como eu posso ta configurando isso em um cliente outlook.. a ficha nao caiu :(
Basta configurar a conta de e-mail normalmente, e marcar a opção "meu servidor requer autenticação" e "usar as mesmas credenciais do servidor de recepção de e-mail", após isto, já deve funcionar.
Colega eu configurei e no meu LOG dá o seguinte erro, poderia dar uma dica ?
SASL LOGIN authentication failed: generic failure
SASL LOGIN authentication failed: generic failure
Muito bom cara!
Tava com problemas fazia uns dias e resolveu tudo!
Obrigado! :)
Tava com problemas fazia uns dias e resolveu tudo!
Obrigado! :)