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/

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!