postfix

Configuração do Postfix MTA p/ Linux e FreeBSD

Antes era o sendmail, bom, funcional e muito complexo, complexo até demais. Tanto que muitos dedicavam toda a sua vida a configuração dele, sendo muito complexo, gerou muitas falhas.
Então veio o seu concorrente mais antigo, o EXIM, padrão no Debian e antes no Ubuntu que permite vc ter um belo MTA entregando mensagens administrativas para os seus usuarios e ate mesmo para funcionamento com outros softwares que dependem do uso de um MTA para se corresponder com o administrador. O QMAIL, esquece esse, eu não gosto mas ele eh bastente seguro tento um grupo de usuarios mantendo a sua segurança constante. Existem outros que utilizam bases open e muito conhecidos como o Zimbra, que possui um excelente webmail em ajax e veio para ser uma solução alternativa ao Exchange (daquela empresa lá), e o zarafa que por certo veio com as mesmas características e o poderoro Zarafa Collaboration Platform – ZCP, que permite a sincronização de public folders como no “concorrente do mal” e entre outras compatibilidade com diversos clientes de email. Mas e o postfix?

O Postfix
Ele possui uma simplicidade na configuração e a fatura de complexidade do exim, sendo assim o mais robusto atualmente e o mais simples de configurar com toda a segurança de outros MTA como o qmail.

Voce pode instalar o postfix com o comando (no debian/Ubuntu), apt-get install postfix -y e no FreeBSD voce nao pode esquecer de desabilitar o sendmail_enable= para parar o sendmail (MTA padrao), e compilar pelo ports (ou source),no diretório /usr/ports/mail/postfix-current e compilar o source e dependências com o comando make install. No Red Hat ou CentOS vc pode usar o yum, depois que remover o sendmail digitando yum install postfix.

Vale lembrar que no Debian e Ubuntu os dialogs que vão ser apresentados para a configuração do pacote pelo debconf, manda vc selecionar as opções internet site (que permite vc usar o daemon do postfix para um verdadeiro servidor de email, disparando para onde vc quiser), smarthost (que define um servidor de email mas que depende de outro host para entregar), Sattelite System (deixa isso pra la, mas essa opcao permitia vc somente enviar somente de outro host sem poder receber mensagens), e Local Only que permite somente usuarios locais trocarem envio de mensagens e muito utilizado por aplicações em loopback. Apos instalar, faça um teste com o telnet para ver se esta tudo ok, se conectando na porta 25 (SMTP), no seu próprio servidor com IP local.

Apos a instalação o daemon que gerencia o postfix é o /etc/init.d/postfix e o seu arquivo de configuração fica em /etc/postfix/main.cf e os demais. Os arquivos de logs que serão utilizados no Debian e Ubuntu é o /var/log/mail.log e no RHEL /var/log/maillog.

O postfix instalado é necessário se pensar em uma completa solução de email, para que o mesmo não apenas envie mensagens e armazene o email dos usuarios somente no seu Maildir de forma localmente, você pode utilizar de outros pacotes como o dovecot,Cyrus e courier para usar protocolos de acesso ao mailbox como o POP3 e o IMAP. O POP apenas transporta as mensagens copiando para o seu mailbox, ja o IMAP sincroniza o seu mailbox com o servidor e o cliente de email, mantendo as mensagens sempre estruturadas no servidor e o cabeçalho de informações para o seu cliente MTA, como thunderbird, blerg e evolution ou mutt (PODER). Vale lembrar que como os emails enviados são transportados em simples arquivos de texto que o seu querido cliente de email entende,  é muito importante a instalação e configuração de um pacote do mesmo baseado em ssl.

Para instala os pacotes acima, instale o courier-pop e courier-pop-ssl para ssl OU caso venha usar o IMAP, como eu, instale o pacote courier-imap e courier-imap-ssl se for o seu caso. Lembrando que para utilizar o ssl vc precisa gerar um certificado .pem para trabalhar com SSL no courier.
Gosto muito de usar o dovecot, é só instalar os pacotes dovecot-imapd dovecot-pop3d e o seu arquivo de configuração fica em /etc/dovecot/dovecot.conf . Ja no FreeBSD o arquivo de configuração fica em /usr/local/etc/dovecot.conf e o padrão é o mesmo.
O arquivo de configuração do dovecot que vai ser reponsável para receber as suas mensagens basea-se praticamente nesta linha: protocols = pop3 pop3s imap imaps, que define a demanda de protocolos de recebimento de emails remotamente vc vai usar. Geralmente crentralizamos em cima do pop3 e imap (apesar de eu prefirir o imap).

O arquivo de configuração do postfix é muito simples de ser editado:

# /etc/postfix/main.cf
myhostname = hostname.dominio.com
mydomain = dominio.com
append_dot_mydomain = no
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = hostname.dominio.com, dominio.com, localhost
relayhost =
mynetworks = 127.0.0.0/8
home_mailbox = Maildir/
mailbox_command =
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
message_size_limit = 0
mailbox_size_limit = 0

Vamos entender os parâmetros do postfix:

myhostname e mydomain -> indicam o nome da maquina e o domínio, caso vc nao tenha um dominio registrado no registro.br e configurado no bind apontado para o seu MTA, então é possível usar o localdomain mesmo ou IP. É claro que muitos links ADSL e cable de serviços de banda larga, bloqueiam as portas 143 do IMAP, 110 do POP3 e 25 do SMTP. Muitos dos servidores possuem banda larga para isso, e isso é um problema devido a grande demanda de blacklists com DNS de ISPs de banda larga. É muito importante que vc configure o seu DNS reverso para evitar futuros problemas com SPAM no futuro, então serão consultados antes para se certificar de que realmente pertencem ao seu dominio antes da entrega do mail.

mydestination -> é importante para que o servidor saiba exatamente a que maildomain será endereçados ao email enviado. Tanto hostname.dominio.com como dominio.com e todos os endereçamentos disponibilizados.

mynetworks -> É atraves deste parâmetro que podemos restringir com segurança todas as redes que serão suportadas pelo seu servidor MTA postfix. Por exemplo, manter o loopback configurado em 127.0.0.1 faz com que voce centralize mensagens apenas locais no seu servidor. O importante desse parâmetro é fazer com que vc possa definir quais as redes que respondem no seu MTA, impossibilitando de outros usarem o mesmo indevidamente como SPAMs. Vc pode adcionar o parametro inet_interfaces para definir em qual adaptador de rede ele vai funcionar e em qual rede. Exemplo, inet_interfaces = all, define todas as interfaces, seja ela, eth0, eth1, xl0, rl0 (bsd), e outros.

relayhost -> é possível especificar um servidor SMTP externo de uma forma bem simples, essa opção é muito imporante quando temos mais de um MTA na empresa e queremos encaminhar para outro servidor. Ja usei muito isso! Mas, mantendo o parâmetro nulo, o seu próprio servidor responderá.

home_mailbox -> define o diretório onde as mensagens dos usuários serão armazenadas. Como padrão vc pode usar o diretório $HOME com o subdiretório Maildir, mas vc pode criar manualmente com o comando maildirmake ~/Maildir ou qualquer outro nome. Lembrando que vc pode especificar isso no diretorio /etc/skel para que futuros usuários ja recebam o diretório criado e funcional. Para que os seus usuários não reclame da demora do recebimento de mensagens e nem vc com o seu servidor postfix, vc pode configurar o parametro mailbox_size_limit = xxxxxxx, mas é muito importante lembrar que usando o Maildir, cada mensagem é recebida em arquivo separado e por isso a opção não ajuda muito ao contrario do /var/spool/mail, vale a pena desativar a opcção com mailbox_size_limit = 0 e configurar a quota.

Para se certificar que o seu arquivo esteja bem configurado, podemos usar o comando postconf -n e o comando mailq para verificar como esta a lista de mensagens entregues em tempo real. Nunca se esqueça de verificar os seus emails em /var/log/mail.log e /var/log/mail.err

Apos este passo para que vc deixe o seu servidor de email funcional, é importante configurar o webmail e SSL/TLS para deixarmos tudo bastante seguro, como a autenticação SNMP.

Na próxima matéria vamos continuar a configuração, se não o post vai ficar muito grande ;))

Abraços galera, linux eh o poder.

Aprigio Simoes
aprigio@linuxstudent.com.br