Postfix - Relay agent

Neste artigo, vou apresentar um servidor local Postfix como Relay Agent, com autenticação SASL, sem suporte à criptografia (Plain Login) e montar tabelas do tipo hash DB, para o cadastro dos usuários da rede local utilizando diferentes serviços de e-mail.

[ Hits: 37.262 ]

Por: Perfil removido em 19/03/2013


Autenticação SASL



O Postfix determina os clientes que estão autorizados a enviar e-mails através do seu servidor, de acordo com a configuração da linha "mynetworks" no arquivo "main.cf".

Como já foi dito, usando o endereço 127.0.0.0/8 ou 127.0.0.1, o Postfix aceita apenas e-mails enviados do próprio servidor. No caso de um servidor local, você pode permitir o envio a partir de qualquer micro da rede local como "mynetworks = 192.168.10.0/24".

Mas, quando você precisa permitir o envio de mensagens para usuários da Web, utilizando cable modens, ou qualquer outro tipo de conexão, com IP dinâmico. A saída neste caso, é autenticar os usuários da rede local da mesma forma como fazem os provedores e-mail.

Vamos utilizar então o SASL, que no Debian Squeeze pode ser instalado via apt-get:

# apt-get install libsasl2-2 sasl2-bin procmail

Após a instalação dos pacotes, vamos à configuração do autenticador SASL, que se encontra no arquivo: /etc/default/saslauthd

Troque a linha:

START = " no "
Por:
START = " yes "

Adicione, ou configure a linha:

MECHANISMS = "pam"

Isto permite que ele aceite a autenticação dos usuários.

Crie, ou edite, o arquivo /etc/postfix/sasl/smtpd.conf, para que fique assim:

pwcheck_method: saslauth
mech_list: plain login


O Postfix, ao ser instalado no Debian (e outras distribuições derivadas), roda dentro de uma "jaula" (chroot): "/var/spool/postfix", que faz com que elimine qualquer problema ligado à segurança, ou falha nos arquivos que possa prejudicar o resto do sistema operacional.

Mas existe um porém, o fato do Postfix possuir o seu próprio chroot ele não tem acesso ao daemon "saslauthd", prejudicando a autenticação dos usuários no Postfix.

A solução seria criar um diretório dentro do chroot do Postfix para o "saslauthd", e configura-lo para ser utilizado no lugar do diretório padrão.

Vamos, então, criar o diretório: /var/spool/postfix/var/run/saslauthd:

# mkdir -p /var/spool/postfix/var/run/saslauthd

Configure novamente o arquivo: /etc/default/saslauthd

Em:
OPTIONS = "-c"

Altere para:

OPTIONS = " -c -m /var/spool/postfix/var/run/saslauthd  -r "


Assim, o SASL passa a utilizar o chroot do Postfix e o Postfix passa a ter acesso ao "saslauthd" para autenticar os clientes.

Para assegurarmos nossa modificação, adicione o usuário postfix ao grupo "sasl":

# adduser postfix sasl

O último passo, é adicionar as linhas a seguir ao final do arquivo: /etc/postfix/main.cf

smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broke_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,
    permit_mynetworks,
    reject_unauth_destination
smtpd_tls_auth_only = no


Reinicie o Postfix para que as alterações entre em vigor:

# /etc/init.d/postfix restart

Nesta configuração, o servidor suporta apenas autenticação em texto puro, sem encriptação ao enviar as mensagens da rede local para o servidor.

Para configurar um cliente de e-mails, utilize o endereço do servidor como SMTP e nas opções de autenticação para o servidor SMTP, escolha "PLAIN", e envie um e-mail de teste para ver se está "rodando".

Nas opções do POP3, utilize o POP do seu serviço de e-mail, e nas opções de autenticação, utilize as chaves TLS, ou ambas TLS/SSL, e sua respectiva porta de configuração: 995.

Após adicionarmos as linhas do serviço de autenticação SASL, o arquivo "main.cf" passará a ficar assim:

# Postfix - Agente Relay com suporte SASL

smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/saslpass

myhostname = localhost
mydomain = localdomain
relayhost = smtp.googlemail.com:587
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
mydestination = localhost, localhost.localdomain
mynetworks = 127.0.0.0/8, 192.168.10.0/24
inet_interfaces = all
inet_protocols = all

# Autenticaçao SASL
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options =
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,
    permit_mynetworks,
    reject_unauth_destination
smtpd_tls_auth_only = no


Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Conceitos básicos
   3. Postfix / Usuário
   4. Configurando o relay agent
   5. Autenticação SASL
   6. Conclusão
Outros artigos deste autor

Novidades do Kernel 2.6.35

Plugin MSofficeKey para OCS Inventory

Usando o gerenciador de arquivos XFE para administrar as tarefas no Linux

Formatando texto no Open Office

As novidades do Java 1.5

Leitura recomendada

Postfix fazendo relay SMTP do Gmail/Google Apps

MailScanner - Email Gateway Virus Scanner

Conversão da base de dados do Cyrus IMAP no Debian

Importando e-mails do MS Outlook para o Evolution ou Kmail

Servidor de email com SMTP, POP, IMAP, quota e MySQL

  
Comentários
[1] Comentário enviado por dolivervl em 21/03/2013 - 13:52h

Parabéns pelo artigo, contribuiu muito com a comunidade !!!

[2] Comentário enviado por rotaviano em 25/03/2013 - 17:56h

estou trabalhando justamente com isso...

e terei duvidas...:)

parabens e vlw por contribuir.


Rodney

[3] Comentário enviado por removido em 25/03/2013 - 18:37h


[1] Comentário enviado por dolivervl em 21/03/2013 - 13:52h:

Parabéns pelo artigo, contribuiu muito com a comunidade !!!


muito obrigado.

[4] Comentário enviado por removido em 25/03/2013 - 18:39h

okkkkkkkkkkkkk,

obrigado.

[5] Comentário enviado por removido em 25/03/2013 - 18:53h


[2] Comentário enviado por rotaviano em 25/03/2013 - 17:56h:

estou trabalhando justamente com isso...

e terei duvidas...:)

parabens e vlw por contribuir.


Rodney


muito obrigado.

[6] Comentário enviado por rotaviano em 26/03/2013 - 14:13h


rulios....é o seguinte cara.... estou tentando agora configurar o postfix com o meu hotmail.com ou gmail.com

e nao estou conseguindo...

junto com o postfix estou utilizando o mutt . . . creio que nao precisa configurar nada nele... mas quando visualizo o log da mensagem que estou enviando ocorrem erros...

voce poderia me ajudar ?

vlw



[5] Comentário enviado por rulios em 25/03/2013 - 18:53h:


[2] Comentário enviado por rotaviano em 25/03/2013 - 17:56h:

estou trabalhando justamente com isso...

e terei duvidas...:)

parabens e vlw por contribuir.


Rodney

muito obrigado.



[7] Comentário enviado por rodrigo as em 26/03/2013 - 16:32h

Boas ruilos, estou configurando um servidor de email que está atrás de um adsl com ip dinamico, vi o seu tópico e me enteressei, fiz algumas pesquisas mas não consigo ter uma visão clara de como funciona o relay.
Acaso poderia me dar algumas explicações.

T+

[8] Comentário enviado por removido em 26/03/2013 - 16:40h


[6] Comentário enviado por rotaviano em 26/03/2013 - 14:13h:


rulios....é o seguinte cara.... estou tentando agora configurar o postfix com o meu hotmail.com ou gmail.com

e nao estou conseguindo...

junto com o postfix estou utilizando o mutt . . . creio que nao precisa configurar nada nele... mas quando visualizo o log da mensagem que estou enviando ocorrem erros...

voce poderia me ajudar ?

vlw



[5] Comentário enviado por rulios em 25/03/2013 - 18:53h:


[2] Comentário enviado por rotaviano em 25/03/2013 - 17:56h:

estou trabalhando justamente com isso...

e terei duvidas...:)

parabens e vlw por contribuir.


Rodney

muito obrigado.



alô rotaviano,

quanto a configuração do mutt não há qualquer problema, vc não precisa alterá-lo,

e pode utilizar também em modo terminal o comando mail adicionando através do pacote mailutils.

exemplo: $/usr/bin/mail to fulano@hotmail.com
title:
cc:
a mensagem .


vc deve prestar atenção que este modelo de relay-agent permite utilizar vários smtps através dos

diferentes usuários cadastrados sem ficar atrelado a apenas um smtp na opção relay host por

isso não necessidade de configurar o parâmetro relayhost e sim as opções:

smtp_sender_dependent_authentication = yes

sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay

smtp_sasl_password_maps = hash:/etc/postfix/saslpass

com os seus respectivos hashes DB. uma boa dica com exemplos para esses parâmetros está

em: http://www.postfix.org/SOHO_README.html

site com a documentação oficial do Postfix

qualquer dúvida é só falar


até.


[9] Comentário enviado por removido em 26/03/2013 - 16:51h


[7] Comentário enviado por rodrigo as em 26/03/2013 - 16:32h:

Boas ruilos, estou configurando um servidor de email que está atrás de um adsl com ip dinamico, vi o seu tópico e me enteressei, fiz algumas pesquisas mas não consigo ter uma visão clara de como funciona o relay.
Acaso poderia me dar algumas explicações.

T+


vou passar a configuração básica de um relay apenas para um usuário utilizando uma conta do

gmail, caso queira utilizá-lo numa rede local ai vc terá que configurá-lo de acordo com as dicas do

artigo:

# Cliente SMTP
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/saslpass

#Suporte a TLS
smtp_use_tls = yes

# Relay Agent
myhostname = localhost
mydomain = localdomain
relayhost = smtp.google.com:587
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
mydestination = localhost, localhost.localdomain
mynetworks = 127.0.0.0/8, 192.168.10.0/24
inet_interfaces = all
inet_protocols = all

# /etc/postfix/saslpass

smtp.google.com:587 fulano@gmail.com:senha

não esqueça de criar o hash

postmap /etc/postfix/saslpass

qualquer problema mande o log do arquivo:/var/log/mail.log

T+s

[10] Comentário enviado por santosrh3080 em 07/11/2016 - 16:10h

Boa tarde e parabens pelo tutorial..excelente qualidade !
Instalei o ispconfig , configurei os dns e servidor de email normalmente..usando postfix
Acesso uma conta pelo Squirremail e mando email normalmente e o mesmo chega. Envio dele pra ele mesmo e chega tambem
Acabei de mandar de uma conta exter ( gmail ) chegou normalmente.
Agora o problema : Tenho uma aplicacao web que usa essa conta para enviar emails aos usuarios quando solicitam troca de senha , manda logs de erro e outras coisas....Segue um trecho do mail.log , onde o mesmo mostra que o erro poder ser TLS ou SSL
A aplicacao ta configurada com email e senha de uma conta resgistrada no ispconfig.

SSL_accept error from unknown[10.0.0.8]: Connection timed out
Oct 31 14:10:15 ispconfig postfix/smtps/smtpd[18786]: lost connection after CONNECT from unknown[10.0.0.8]
Oct 31 14:10:15 ispconfig postfix/smtps/smtpd[18786]: disconnect from unknown[10.0.0.8]
Oct 31 14:11:45 ispconfig dovecot: imap-login: Login: user=<system@meudominio.com.br

A maquina da aplicacao so tem configurado o ip do servidor de email
a conta e a senha , que inclusive esta registrada no ispconfig desse servidor de email
Acredito que seja autenticacao que a aplicacao precisa fazer no servidor email...copiar certificado pra maqunia da aplicacao para liberar a conexao ou talvez por esse metodo SASL
O que vc acha ?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts