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.952 ]

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

Montando uma rede GSM

Avaliando as dicas de segurança do Banco do Brasil

PLC no Linux alguém já pensou nisso?

Vírus em Linux?

Anthares, um sistema voltado para o usuário final

Leitura recomendada

Servidor de emails com Dovecot e MTA Sceo (projeto brasileiro)

Instalando um servidor de news com INN

PHPXmail - um front-end web para o XMail

Qmail + Patches + Performance Tuning, the Debian AMD64 way

Post-la - Gerador de relatórios para o Postfix

  
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