Postfix é um MTA, que apresenta-se como alternativa ao Sendmail, tendo como objetivo ser mais rápido, seguro e fácil de configurar que o Sendmail, além de tentar manter a compatibilidade com ele. Pode ser encontrado em http://www.postfix.org
Esse tutorial tem como objetivo auxiliar os administradores de sistema a instalar Postfix e auxiliar a migrar um servidor rodando sendmail para o Postfix, demonstrando como fazer a configuração do MTA, através de exemplos.
Inicialmente, vamos começar com o download do programa. O source pode ser obtido no próprio site do Postfix: http://www.postfix.org/ftp-sites.html
Existe ainda as opções de pagar pacotes RPM em: http://www.ext.ea4els.ampr.org/~sjmudd/postfix/
E pacotes para o Debian em: http://packages.debian.org/postfix
Você pode escolher a forma de instalação que se adequar as suas necessidades.
Antes de iniciar a instalação é recomendável você fazer um backup dos arquivos de configuração do sendmail e remover os seus pacotes . Se não for remove-lo do sistema, é aconselhável desativa-lo e mover os seus arquivos.
# mv /usr/sbin/sendmail /usr/sbin/sendmail.OFF # mv /usr/bin/newaliases /usr/bin/newaliases.OFF # mv /usr/bin/mailq /usr/bin/mailq.OFF # chmod 755 /usr/sbin/sendmail.OFF /usr/bin/newaliases.OFF \ /usr/bin/mailq.OFF
Descompactando o postfix:
# tar xvfz postfix-release.tar.gz
O arquivo INSTALL que encontra-se que acompanha os sources do postfix explica detalhadamente o processo de instalação. Nesse documento vão ser demonstrados os principais passos.
Adicionando um usuário para o postfix:
# adduser postfix -s /bin/false
Ou adicionar uma entrada no passwd como essa:
postfix:*:12345:12345:postfix:/no/where:/bin/false
Adicionar alias para o usuário postfix no arquivo /etc/aliases:
postfix: root
Compilando o postfix:
# cd postfix-release # make
# make install
Em seguida o programa de instalação vai fazer diversas perguntas sobre a localização dos arquivos e alguns parâmetros. Vão serem seguidas as sugestões do programa, pode-se altera-las de acordo com a sua necessidade.
O postfix contém um arquivo chamado main.cf, no qual estão as configurações gerais do daemon, localizado no diretório "/etc/postfix", pela instalação padrão. Abaixo, serão demonstrados os principais parâmetros de configuração para ter-se um servidor de e-mail funcional. Nos exemplos abaixo, vai ser utilizado o nome do servidor como "mail.dominio.com.br" e o dominio "dominio.com.br", favor substitui-los de acordo com a sua necessidade.
myhostname = mail.dominio.com.br
mydomain = dominio.com.br
Parâmetro "mydestination", substituir pelos domínios que o seu servidor de e-mail é responsável. Por exemplo, mail.dominio.com.br, ftp.dominio.com.br, www.dominio.com.br, dominio2.com.br, etc. Exemplo:
mydestination = $myhostname, localhost.$mydomain, $mydomain, \ mail.$mydomain, www.$mydomain, dominio2.com.br
Caso você tenha diversos domínios, pode se informar um arquivo com a listagem de domínios que você possui:
mydestination = $myhostname, localhost.$mydomain, /etc/postfix/dominios
Exemplo do arquivo /etc/postfix/dominios:
# /etc/postfix/dominios dominio2.com.br, dominio3.com.br, www.dominio2.com.br
Esse arquivo funciona de forma semelhante ao sendmail.cw
Observação: Se você for utilizar o estilo de domínios virtuais do postfix, você não deve incluir nesse arquivo de domínios os domínios virtuais que você pretende utilizar.
Qual a diferença entre o estilo de domínios virtuais do postfix e do sendmail ?
Através dos domínios virtuais do postfix, somente os usuários cadastrados no domínio virtual receberam e-mail, caso seja enviado um e-mail para um usuário que não consta no mapa de usuários virtuais retornará uma mensagem dizendo que o usuário não existe. Com os domínios virtuais do sendmail, se existir um usuário no sistema ele será visível para o dominio virtual.
Como fazer para utilizar o sistema de domínios virtuais do postfix ?
Como foi explicado anteriormente, o dominio não deve estar incluído no parâmetro "mydestination", e devera ser incluído a seguinte linha no arquivo de configuração:
virtual_maps = hash:/etc/postfix/virtual
Para criar o mapa de dominio virtuais utiliza-se o comando:
# postmap /etc/postfix/virtual
Exemplo de um arquivo de domínios virtuais do postfix:
# /etc/postfix/virtual dominio2.com.br E-mails do dominio2.com.br luizinho@dominio2.com.br luizinho zezinho@dominio2.com.br zezinho@outrodominio.com.br galera@dominio2.com.br guinho, zezinho, luizinho
A primeira linha informa o nome do domínio virtual e a seguir tem um comentário sobre o domínio, deve-se escrever qualquer coisa após o nome do dominio.
O primeiro exemplo mostra o redirecionamento do e-mail luizinho@dominio2.com.br para o usuário local luizinho. O segundo exemplo demonstra o e-mail zezinho@dominio2.com.br sendo redirecionado para zezinho@outrodominio.com.br. O ultimo exemplo demonstra galera@dominio2.com.br sendo redirecionado para os usuários guinho, zezinho e luizinho.
Como utilizar o sistema de domínios virtuais do sendmail ?
Colocar os domínios virtuais no parâmetro "mydestination".
Inserir o parâmetro:
virtual_maps = hash:/etc/postfix/virtual
Exemplo de um arquivo de domínios virtuais do sendmail:
# /etc/postfix/virtual luizinho@dominio2.com.br luizinho zezinho@dominio2.com.br zezinho@outrodominio.com.br galera@dominio2.com.br guinho, zezinho, luizinho
Parâmetro "mynetworks", nesse parâmetro você deve determinar as redes do seu provedor:
mynetworks = 192.168.0.0/16, 127.0.0.0/8
Também pode se informar os domínios em um arquivo como:
mynetworks = /etc/postfix/mynetworks
Pela configuração default do postfix, ele permite relay de e-mails das suas redes e de seus domínios. Caso você tenha clientes que não fazem parte da sua rede e que necessitam utilizar o seu servidor de e-mail para o envio de mensagens, você pode criar um arquivo com a lista de clientes e através do parâmetro "smtpd_recipient_restrictions" habilitar o envio de mensagens. Como no exemplo abaixo:
smtpd_recipient_restrictions = permit_mynetworks check_client_access hash:/etc/postfix/client_access check_relay_domains
Exemplo do arquivo /etc/postfix/client_access
dial.amigos.com.br OK 10.0.0 OK lamers.com.br REJECT
Esse parâmetro não consta na configuração default do postfix e você pode inclui-lo no final do arquivo de configuração main.cf
Para criar o mapa de clientes que possam acessar o servidor de e-mail basta digitar:
# postmap /etc/postfix/client_access
Esse procedimento é bem comum em grandes servidores de e-mail, o administrador do sistema designa um ou mais MX secundários para o seu servidor de e-mail, caso o MX primário esteja fora do ar, os MX's secundários recebem os e-mails destinados aquele servidor de e-mail.
Como foi visto, o Postfix, por padrão, permite o relay de e-mails que estão cadastrados como destino final, para permitir relay de outros domínios, basta você adicionar o seguinte parâmetro:
relay_domains = $mydestination, /etc/postfix/relay-domains
Exemplo do arquivo "/etc/postfix/relay-domains":
# /etc/postfix/relay-domains outro-dominio.com.br dominio-10.com.br
Existem dois tipos de configuração do sistema de aliases. Uma através dos mapas do postfix e outra através de um banco de dados semelhante ao sendmail.
Para utilizar o sistema de mapas do postfix, utiliza-se o seguinte parâmetro:
alias_maps = hash:/etc/aliases
Através do comando "postalias /etc/aliases", voce atualizará o mapa de aliases.
Para utilizar o sistema de banco de dados semelhante ao do sendmail, utiliza-se o seguinte parâmetro:
alias_database = hash:/etc/aliases
O comando "newaliases" ou "sendmail -bi" atualiza o banco de dados dos aliases.
No subdiretório "conf" pode ser encontrado um exemplo do arquivo "aliases".
A entrega de e-mails no postfix pode ser feita de diversas formas, utilizando a forma tradicional, enviando os e-mails para "/var/spool/mail/user", no formato "Maildir/", utilizado pelo qmail, entre outros. Se você esta migrando sendmail para o postfix, ou tem pouca experiência recomenda-se utilizar o formato "/var/spool/mail/user", que é o padrão do postfix.
mail_spool_directory = /var/spool/mail
O banner padrão do postfix é:
220 mail.dominio.com.br ESMTP Postfix
Alguns administradores de sistema alteram o banner do servidor de e-mail para esconder a versão do sistema. Esse procedimento pode ser feito através do parâmetro "smtpd_banner", como no exemplo abaixo:
smtpd_banner = $myhostname ESMTP
Com esse procedimento o banner do servidor de e-mail seria:
220 mail.dominio.com.br ESMTP
Finalizada a configuração do servidor de e-mail o próximo passo é iniciar o servidor de e-mail e testar se ele funciona corretamente.
Iniciando o servidor de E-mail:
# postfix start
Caso seja feita alguma alteração na configuração do servidor de e-mail, para atualiza-lo, basta digitar o comando:
# postfix reload
Para desativar o servidor de e-mail:
# postfix stop
Esse tutorial demonstrou através de exemplos a configuração básica de um servidor de e-mail utilizando o postfix. O Postfix suporta diversos recursos, como base de usuários em um banco de dados Mysql, LDAP, entre outros. Para configurações avançadas do postfix recomenda-se a leitura dos documentos que encontram-se em http://www.postfix.org
Caso você encontre algum erro nesse documento favor notificar o autor.
Obrigado pela leitura e Boa Sorte!
O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.