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

Por: Perfil removido em 19/03/2013


Postfix / Usuário



Instalando Postfix

O Postfix pode ser instalado usando o gerenciador de pacotes nas principais distribuições. Nas distribuições derivadas do Debian, você pode instalá-lo usando o apt-get:

# apt-get install postfix

Mais três pacotes adicionam funcionalidades importantes:

# apt-get install postfix-ldap

Configure o servidor Postfix para obter a lista de logins e senhas a partir de um servidor LDAP.

# apt-get install postfix-mysql
# apt-get install postfix-pgsql


Permite utilizar um servidor MySQL ou Postgres para armazenar a lista de usuários e senhas.

O pacote Postfix no Debian possui um Wizard de configuração, durante a instalação. Ele faz algumas perguntas e se encarrega de gerar uma configuração básica para o funcionamento do servidor.

A 1ª pergunta, é sobre a função do servidor de e-mails que você está configurando. As opções são:
  • "Internet Site" - A mais usada, onde você instala um servidor completo que envia e recebe os e-mails diretamente.
  • "With smarthost" - Seu servidor recebe as mensagens, mas o envio fica a cargo de outra máquina.
  • "Satélite System" - Seu servidor envia através de outra máquina (SMTP) e não recebe mensagens.
  • "Local only" - É usada apenas em redes de terminais leves, permite que apenas usuários logados no servidor troquem mensagens entre si.

A 2ª pergunta, diz: "Qual conta de usuário você gostaria de armazenar as mensagens enviadas ao root@seu-servidor?"

A resposta é o nome da conta normal de usuário que utilizando su ou sudo, permite ganhar privilégios de root.

A 3ª pergunta, é sobre o domínio do servidor, que será incluído nas mensagens enviadas. Se você está configurando um servidor dedicado (completo), utilize seu domínio registrado. Caso esteja apenas configurando um servidor de testes, pode simplesmente usar o nome da máquina, como: "localhost".

A 4ª pergunta é a mais difícil, pois deve definir os destinos que serão aceitos pelo seu servidor, ou seja, os endereços que colocados no destinatário da mensagem fazem entender que o e-mail é para ele, tanto as mensagens que devem ser salvas e encaminhadas para usuários cadastrados como mensagens que devem ser encaminhadas à outros servidores.

Este campo deve conter o nome da máquina, o domínio registrado (no caso de um servidor real), seguido de "localhost.localdomain" e "localhost" todos separados por vírgula e espaço.

A última pergunta é: "Forçar a opção 'synchronous updates'?"

Isto faz desativar as otimizações no envio das mensagens, fazendo com que os e-mails sejam enviados conforme são recebidos e em ordem. Essa opção aumenta a confiança do servidor, pois reduz a possibilidade de perdas de mensagens ainda não enviadas em caso de travamentos ou quedas de energia.

Mas por outro lado, reduz o desempenho do servidor, por isso não deve ser utilizada em servidores de grande disponibilidade.

Adaptado de:
  • Morimoto, Carlos Eduardo - Servidores Linux, guia prático, 1ª Reimpressão, Sul Editores, 2009.

Cadastrando usuários

Acompanhando a documentação do Postfix, parece ser um pouco complicado cadastrar usuários no servidor de e-mails. Devido à questão da segurança, a forma mais simples é criar um novo usuário no sistema usando o comando adduser, assim:

# adduser fulano

Esta conta "fulano" estará acessível tanto localmente, quanto remotamente, desde que o servidor de e-mails esteja instalado e configurado como "Internet Site".

O perigo neste tipo de cadastro é que o usuário passa a conseguir logar-se na máquina de outras formas, via SSH, Telnet, e compartilhamentos de rede.

Para um servidor interno como o nosso relay agent, onde os usuários são conhecidos ou funcionários da mesma empresa, não há perigo, mas para um grande servidor ligado à Internet, com inúmeras contas de e-mails de usuários desconhecidos, não é a forma mais adequada para o cadastro de usuários.

Uma forma mais segura de cadastrar usuários diretamente no servidor, mas sem permitir o seu acesso remoto, é utilizando o comando adduser da seguinte forma:

# adduser --shell /bin/false --no-create-home fulano

Assim, o usuário "fulano" não terá acesso direto ao servidor localmente e muito menos remotamente. Em distribuições derivadas do Debian, você vai precisar adicionar a linha "/bin/false" no final do arquivo /etc/shells, para que ele possa ser usado:

# echo "/bin/false" >> /etc/shells

Atualmente, uma boa opção para cadastrar contas no servidor de e-mails, sem precisar criar logins válidos no sistema, seria armazenar as contas em um servidor MySQL, PostgreSQL ou, até mesmo, em um servidor LDAP. Para isso, são necessários os pacotes já vistos anteriormente.

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

Newsbeuter Feed Reader - Instalação e configuração

Instalação de softwares no Debian Linux e derivados

Criar um Servidor TeamSpeak no Ubuntu Server

Linux + Rails + Ruby + Mongrel + PostgreSQL + NetBeans 6 Preview

Anthares, um sistema voltado para o usuário final

Leitura recomendada

Gmail com POP e SMTP no Thunderbird

A importância do DNS reverso

Integrando o Amavisd-new, SpamAssassin e ClamAV com o Postfix no SuSE 9.3

Servidor de e-mail Postfix com Fetchmail, Procmail, Blockmail e antispam

Instalando Postfix e Dovecot no SLES 11 e autenticando em um diretório da Novell (Edir)

  
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