By Marcos Oliveira,

Servidor Postfix

O Postfix é um agente de transferência de emails (MTA), um software livre para envio e entrega de emails. Rápido e fácil de administrar, é uma alternativa segura ao Sendmail, muito utilizado em servidores UNIX.

Ele é uma espécie de meio termo entre a simplicidade do Qmail e a fartura de recursos do Exim. Entre os três, ele é o mais rápido e o mais simples de configurar, o que faz com que ele seja atualmente o mais popular e o que possui mais documentação disponível. O Postfix também possui um excelente histórico de segurança, sendo considerado por muitos tão seguro quanto o Qmail.

Existem fortes motivos para não usar o Sendmai__l ou o __Qmail em novas instalações, mas temos uma boa briga entre o Postfix e o Exim. Escolhi abordar o Postfix aqui simplesmente por que, entre os dois, ele é mais popular, o que torna mais simples encontrar documentação e conseguir ajuda quando tiver dúvidas.

Instalando o Postfix

Durante a Instalação ele deverá perguntar: Qual o tipo geral de configuração, marque o item Internet Site

apt-get install postfix

Blog Linux

e o nome/endereço do Servidor, digite o nome que você deseja

Blog Linux

Para as demais perguntas, deixe as opções defaults como já vêm pré-marcadas.

Obs.:Na pergunta: força atualizações síncronas na fila de email ? Marque como não

Blog Linux

Configuração Inicial

Edite o arquivo

vi /etc/postfix/main.cf

Inclua as configurações abaixo:

mydomain = SEU-HOST.com.br
myhostname = host.$mydomain
myorigin = $mydomain
mydestination = $myhostname, $mydomain
mynetworks = 127.0.0.0/8 192.168.1.1/24
home_mailbox = Maildir/
  • mydomain: O nome do domínio do servidor de e-mail.
  • myhostname: O nome da máquina do servidor de e-mail.
  • myorigin: Especifica como ficará a terminação do e-mail após o @.
  • mydestination: Os nomes dos domínios que o servidor de e-mail é responsável.
  • mynetworks: Especifica a qual rede que o servidor de e-mail irá trabalhar.
  • home_mailbox: Especifica o diretório onde ficará as mensagens de e-mail.

Após isso recarregue as informações no Postfix

/etc/init.d/postfix reload

Testando o Envio de E-mails

No meu PC existe um usuario com o nome [marcos] e outro com o nome [eric], teste com os usuarios da sua máquina, se não houver crie-os com useradd, neste exemplo abaixo o usuário [marcos] enviou um e-mail para o usuário [eric], lógico que estou logado como root, mas usei o comando [MAIL from:] e especifiquei o usuário que envia o e-mail, para critério de teste.

telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 host.SEU-HOST.com.br ESMTP Postfix
HELO smtp.SEU-HOST.com.br
250 host.SEU-HOST.com.br
MAIL from: marcos
250 2.1.0 Ok
RCPT to: eric
250 2.1.5 Ok
DATA
354 End data with .
Este post sobre Postfix no blog é loucooooo!
.
250 2.0.0 Ok: queued as A8F958F5DE
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

Instalar o pacote SASL Este recurso é importante hoje em dia, pois sem encriptação, seus e-mails (incluindo o login e senha) são transmitidos em texto plano pela rede e podem ser Sniffados. Uma vez ativo o recurso no servidor, basta marcar a opção no cliente de e-mails.

apt-get install sasl2-bin

Agora abra novamente o arquivo main.cf e inclua as linhas abaixo nele

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_helo_required = yes
smtpd_recipient_restrictions = 
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination

Depois ative ele abrindo o arquivo de configuração

vi /etc/default/saslauthd

Inclua o código abaixo no arquivo, na verdade essa linhas já existirão, mas você deve alterá-las para ficar assim

Obs.:As linhas não estão uma abaixo da outra, procure-as e altere

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

Salve e feche o arquivo. Agora rode esse comando no terminal para verificar se o usuário postfix existe:

groups postfix

Se retornar postfix : postfix , rode esse comando:

usermod -G sasl postfix

Se verificar novamente com o comando groups postfix, agora retornará postfix : postfix sasl , caso não ocorra, dê um reload no postfix (/etc/init.d/postfix reload).

Crie o arquivo smtpd.conf no diretório “/etc/postfix/sasl” e adicione as seguintes linhas abaixo

pwcheck_method: saslauthd
mech_list: plain login

Terminado as configurações, reinicie o Postfix e o serviço de autenticação

/etc/init.d/postfix restart
/etc/init.d/saslauthd restart

Você pode ainda implementar uma criptogrfia TLS e criar o certificado, dá uma pesquisada na Internet.

Lendo os e-mails

Para poder ler as mensagens de e-mail recebidas, será usado o Servidor POP3

apt-get install courier-pop-ssl

Testando o Servidor POP3

Para verificar se o Servidor POP3 está funcionando, use o Telnet para ler as mensagens de e-mail recebidas:lembra que o [marcos] enviou mensagem para o usuário [eric] ? Agora o [eric] irá ler.

telnet localhost 110
Trying ::1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
USER eric
+OK Password required.
PASS informe_aqui_a_senha
+OK logged in.
LIST
+OK POP3 clients that break here, they violate STD53.
1 517
.
RETR 1
+OK 517 octets follow.
Return-Path: 
X-Original-To: eric
Delivered-To: eric@SEU-HOST.com.br
Received: from smtp.SEU-HOST.com.br (localhost [127.0.0.1])
by host.SEU-HOST.com.br (Postfix) with SMTP id A8F958F5DE
for ; Wed,  4 Jan 2012 12:01:31 -0200 (BRST)
Message-Id: 
Date: Wed,  4 Jan 2012 12:01:31 -0200 (BRST)
From: marcos@SEU-HOST.com.br
To: undisclosed-recipients:;
Este post sobre Postfix no blog é loucooooo!
.
QUIT
+OK Bye-bye.
Connection closed by foreign host.

Obs.: Percebam que as mensagem são arquivos e ficam nas pasta Maildir/cur dos usuários (/home/usuario/Maildir/cur).

Pronto! Espero que gostem e comentem!

Curso Extremamente Avançado em Shell Script Bash

Você irá descobrir técnicas avançadas de escrever em Shell Script. Como criar instaladores para distribuições Linux, Animações, Documentações, além de tudo sobre Processos em sistemas tipo UNIX, detalhes sobre Comandos Avançados e Muito Mais !