Arquivos históricos do BR-Linux.org apresenta:

Linux in Brazil (Postfix )

Instalando e configurando o Postfix como MTA

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.

Movendo os arquivos do sendmail:

# 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

Iniciando o processo de compilação e instalação

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

Instalando o postfix:

# 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.

Configurando o sistema:

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.

Parâmetro "myhostname", substituir pelo nome da maquina/host:

myhostname = mail.dominio.com.br

Parâmetro "mydomain", substituir pelo seu domínio:

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

Relay de e-mails de outros domínios que o seu servidor de e-mail não é o destino final

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

Aliases

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".

Entrega de e-mails

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

Alterando o banner do seu servidor de e-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

Operação

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

Considerações finais

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.