Postfix - Dicas, comandos e indicações de manterial para consulta.

Atualizado em: 23/07/2006



Sobre este documento

Alguns comandos e dicas utilizados na configuração e manutenção do servidor de e-mail, especialmente comandos e diretivas de configuração do Postfix.

Indicações de tutoriais e manterial de consulta.

Os comandos e dicas podem não atender as suas necessidades ou não ser compatível com sua instalação, tente adaptar ao seu ambiente.

Acesso a todos os FAQ deste diretório:
http://www.zago.eti.br/email/

Acesse a página principal em
http://www.zago.eti.br/A-menu.html


Postfix - o que é?, como funciona?

O Postfix é um MTA (Mail Transfer Agent) responsável pelo envio e recebimento das mensagens entre servidores, quando de cara para internet e configurado para resonder por um domínio, não entrega as mensagens aos clientes de e-mail (POP3), não baixa as mensagens de outros servidores, recebe quando enviadas diretamente a ele mas não vai buscar em outros servidores, não tem anti-viruse outros filtros utilizados em servidores de e-mail, precisa de outros pacotes que se integram ao Postfix para configurar o que chamamos de servidor de e-mail.

Um servidor de e-mail com Postfix precisa de outros pacotes, ele é altamente configuravel para trabalhar com diversos pacotes, para algumas tarefas tem diversas opções, fica por sua conta a escolha do pacote, por exemplo o serviço de POP3, tem diversas opções, precisa de somente uma, quando o servidor não está de cara para o mundo e precisa autenticar em outro servidor, pode integrar com o SASL para autenticar o envio de mensagens em outro servidor (fazer relay), Fetchmail para buscar as mensagens em outro servidor, quando respondendo por um domínio e cara para o mundo não precisa do SASL nem Fetchamil mas pode requerer outros pacotes, tudo depende dos serviços atribuidos ao servidor, são muitos serviços que podem ser agregadas ao servidor de e-mail para tratar as mensagens recebidas e enviadas, como antivirus, antispam, diversos filtros e etc..

Não tem um rpm ou pacote pronto pra tudo, isto confunde algumas pessoas, vamos aos passos necessários para instalar um servidor de e-mail.

Primeiro instale e configure um programa pra receber e enviar as mensagens, existem diversos, prefira o Postfix, embora exista varios programas pra isto, como sendmail, qmail e muitos outros, deverá instalar somente um pra evitar problemas, nunca tente rodar simultaneamente dois servidores, prefira instalar o pacote da sua distro, pode até baixar os fontes, compilar e fazer a seu modo, na maioiria das distros já vem com o pacote do Postfix, uma simples linha de comando ou alguns cliques são o suficiente para instalar, depois editar o main.cf para acertar o IP e nome do dominio ou da maquina que ele já recebe e-mail das demais maquinas, lembre que o Postfix é somente um servidor SMTP, portanto ele não resolve tudo sozinho, enviar e receber e-mail vai precisar de outros pacotes para completar as tarefas do que chamamos de servidor de e-mail.

POP3 (servidor POP3) As estações enviam mensagem diretamente ao Postfix, mas quando vão baixar as mensagens recebidas, o cliente de e-mail se conectam ao servidor POP3, serviço não suportado pelo Postfix, portanto vai precisar de mais um pacote para compor este servidor de e-mail, existem varios pacotes pra esta tarefa, prefira o que já vem na sua distro, procure pelo IMAP que é muito simples de configurar e pega as mensagens no mesmo local que o postfix salva, se integram perfeitamente.

FETCHMAIL Quem tem site e servidor de e-mail hospedados em provedores externos também pode transferir as mensagens pro servidor interno, não é utilizado em maquinas que recebem as mensagens diretamente da internet, serve somente para buscar as mensagens em outro servidor e salvar na maquina local, integra perfeitamente com Postfix, as mensagens baixadas pelo fetchmail são repassadas ao Postfix que chama outros aplicativos para aplicar filtros, tratar a mensagem e salvar em disco, onde ficam disponiveis aos demais serviços como webmail interno, ou acesso pelos clientes de e-mail.

SASL O SASL funciona com um plugin do postfix, fazer autenticação no provedor, o termo usado é fazer relay, em resumo é uma validação do e-mail em outro servidor, no envio da mensagem o postfix chama o SASL para fazer esta autenticação no servidor externo que hospeda as contas de e-mail.

Até aqui já temos 4 pacotes diferentes instalados, Postfix como servidor de e-mail, poderia ser qualquer outro servidor, mas note que precisou de outros pacotes como o SASL, Fetchmail, IMAP. Eles não estão em um mesmo pacote, em lugar de IMAP pode usar um outro qualquer, podem nem fazer parte da distro, igualmente acontece com pacotes para outros controles com spam, anti-virus que tem varias opções, deu pra entender que não basta instalar um pacote, precisa garimpar o que vai instalar e configurar para ter o seu servidor de e-mail.

Não precisa ser necessariamente estes, precisa entender que servidor de e-mail é um termo genérico, tem até distribuiçõs Linux especificas para servidor de e-mail, algumas distros tem até um perfil de instalação para servidor de e-mail, ambas vão ajudar muito, instalam automaticamente os principais pacotes facilitando muito, mesmo assim pode não atender suas necessidades, como tem muitas opções e cada pacote executa tarefas especificas, muitas vezes tem mais de um pacote com a mesma função e já estão ou não na tua distro, precisa definir quais os serviços vai utilizar para instalar o pacote correspondente a cada tarefa, pode armazenar as mensagens em banco de dados ou integrar com outros aplicativos, não se assuste, não é nada complicado, basta uma linha de chamada no main.cf e configurar o serviço desejado, nada melhor que montar um ambiente de testes para tirar suas conclusões.

Consulte alguns tutoriais para entender melhor, observe os pacotes utilizados e a tarefa de cada um, neste diretório tem varios tutoriais e arquivos em formato texto com mensagens da Linux-br que serve como um excelente FAQ, observe que o nome do arquivo estã associado ao pacote ou serviço, inicie consultando estes tutoriais;
http://www.zago.eti.br/email/serv-intra-cl10upd1.html

Criar ambiente de testes e backup da instalação

Considere criar um ambiente de testes, não adianta reclamar que não tem "verba" ou não tem maquina, não custa nada, o pouco tempo que investir agora vai lhe poupar muito mais no futuro além de evitar muitos problemas, considere um bom investimento de tempo, pode instalar diversos Postfix e servidores de e-mail pela rede sem problema algum.

Veja dicas de como fazer duas instalações Linux no mesmo HD, utilize estações para testes, evite em servidores embora seja possivel, acidentes sempre acontecem, pode até fazer outra instalação em partição separada para testes fora do horario de expediente, passo a passo em
http://www.zago.eti.br/boot_div.txt

Dual boot Linux e windows - Aproveite e veja a dica sobre backup da instalação completa do windows na partição Linux, quando algum virus comer o windows ou precisar reinstalar, vai poupar muito tempo, basta uma simples cópia de volta para recuperar a instalação do windows, passo a passo em.
http://www.zago.eti.br/boot-dual-win-e-linux.html

Nesta estação (instalação) de testes, vai consumir somente parte do espaço do HD e nada mais, utilizando maquina que está atrás de firewall não precisa de mais uma placa de rede, funciona com somente uma placa, configure a nova instalação como uma estação para acessar à internet, basta instalar e configurar o servidor, pode usar a mesma instalação também como cliente para testes, facilita o entendimento usar outra estação como cliente para envio e recebimeto de e-mail.

ADSL e DNS - solução simples. Quem usa ADSL precisa do provedor externo ou redirecionar o MX do dominio para o IP do ADSL, fica praticamente impossivel manter um servidor de e-mail em conexões ADSL sem hospedagem externa ou redirecionamento, neste documento tem mais detalhes sobre ADSL.

Nesta estação atrás de firewall não tem como testar DNS e outros serviços que requer a maquina de cara para internet, tente optar por soluções alternativas como;

A - registrar um dominio para testes, mesmo quem usa ADSL pode manter o servidor de e-mail interno, para isto precisa pedir para o provedor redirecionar o MX para seu IP, considere que o registro de um dominio custa R$ 30,00 ano, a manutenção mensal custa muito pouco para redirecionar para seu IP, pesquise na internet que acha quem faz este redirecionamento por menos de R$ 10,00 por mes, com isto tem um ambiente perfeito para fazer todos os testes e avaliações em um servidor de e-mail de cara para internet, solução ideal para quem usa servidor de e-mail externo e pretende migrar para instalação interna.

B - Soluções complicadas e arriscadas, dependendo do ambiente é possível usar outras opções para criar um ambiente de testes, instalar outro HD no servidor, fazer outra instalação em partição especifica para testes, usar outra maquina em lugar do servidor, instalar o servidor de e-mail na mesma maquina que faz o firewall, enfim, tem muitas soluções, a questão é avaliar os prós e contras....

Firewall, precisa liberar algumas portas e serviços, a principio o proxy não interfere mas facilita bastante deixar a estação com acesso livre à internet, não é obrigatório mas ajuda na eliminação de problemas, regra de iptables para excluir um IP do redirecionamento, no meu firewall para excluir a maquina de testes, utilizo esta regra.

  /usr/sbin/iptables -t nat -A PREROUTING -i eth1 -s \! 192.168.1.53 -p tcp -m multiport  --dport 80,443 -j
   REDIRECT --to-ports 3128
  /usr/sbin/iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE

Neste exemplo a estação com IP 192.168.1.53 acessa internet sem passar pelo proxy, claro que depende de outras regras do firewall, procure liberar a maquina de todas as regras para rodar qualquer serviço com acesso à internet, entre eles, servidores de e-mail, proxy e etc... ambiente perfeito para testes.

Além de testes ou para backup, serve também como um segundo servidor e-mail, dependendo do trafego pode ser uma maneira de descentralizar serviços, é possivel manter diversos servidores na mesma rede, rodando independente e com regras diferentes.

Em ambiente de testes vale usar um modem discado nesta maquina, esta opção também é indicada para testar firewall, regras de squid e outros serviços de rede, pode até ser usado quando cai o link ou ADSL, embora muito mais lento permite acesso à internet, envio e recebimento de e-mail enquanto o ADSL não volta, claro que para pequeno volume.

Com o servidor de e-mail configurado na maquina de testes (clone do principal), utilize qualquer estação da rede, configure no cliente de e-mail mais uma conta apontando para o servidor de testes, prontinho, tem tudo que precisa para testar envio e recebimento de e-mail passando pelo servidor interno, quando concluir a configuração, basta repetir o processo no principal, ou simplificando, copiar os arquivos de configuração.

Considere manter esta instalação como backup, em casos de emergencia, nunca se sabe quando vai ocorrer acidentes, queimar a maquina, HD ou uma pane na configuração que pare tudo, nestas situações basta pequenas modificações para substituir o servidor.

Porque não pensei nisso antes!

Dicas - Solução de problemas

Tente instalar e configurar por partes, tente isolar o problema, facilita na localização solução do problema, na manutenção ou instalação tente seguir esta ordem.

Passo 1 - Procure identificar qual o serviço de cada pacote, como ativar, interpretar os logs, testar o funcionamento, comandos auxiliares no diagnostico, considere que são varios programas rodando ao mesmo tempo, cada um responsavel por tarefas distintas, quando um falha, fatalmetne reflete nos demais, procure entender o papel de cada um e como lidar com as configurações dele.

Passo 2 - Considere que não basta instalar, a configuração padrão não funciona, precisa de alguns ajustes na configuração. Explicando, precisa de um ajuste minimo, diretivas como classe de IP da rede, nome da maquina, dominio e outros detalhes, dependendo do controle desejado precisa criar as configurações apropriadas, usuários, senhas e outros detalhes. Tente fazer uma configuração sem controle algum, pelo menos para entender o funcionamento, subir o Postfix e testar o envio e recebimento local, no FAQ tem varios modelos prontinhos para copiar e colar, não deve servir para o seu proposito, mas são instalações testadas e que funcionam, utilize uma delas pelo menos para entender como funciona e testar, depois faça a sua configuração a partir de zero, para trocar a configuração, basta substituir o main.cf, não precisa remover ou reinstalar nada, somente alterar o dominio e algumas diretivas.

Passo 3 - Configurar estações para usar o servidor interno, no cliente de e-mail, crie uma nova conta apontando para o servidor local e teste o envio e recebimento, de qualquer forma vai obter alguma resposta, funciona ou retorna alguma mensagem de erro, de qualquer forma tem os registros nos logs, no servidor abra um console e execute a linha de comando.

tail -f /var/log/maillog

Alguns pacotes tem seu próprio arquivo de log, exemplo o Fetchmail, para acompanhar os logs deste, execute;

tail -f /var/log/fetchmaillog

O comando tail exibe no console as mensagens de log do arquivo indicado, exibe em tempo real, no momento em que estão sendo formadas, tente o envio e recebimento de mensagens a partir da estação e veja os resultados no console, até aqui fica fácil isolar o problema, sempre vai ter registros nos logs, mesmo quando OK consta algum registro, quando falhar, já sabe, consultar a documentação do pacote, pegue a mensagem de erro e coloque na caixa de pesquisa do Google.

Procure também nas mensagens de outros arquivos de log do sistema, qualquer dúvida volte ao inicio e vá testando passo a passo, quando Ok, configure o firewall.

Passo 4 - Segurança e Firewall, maquinas de cara para a internet precisa de um firewall minimo, portanto precisa criar seu firewall, considere que firewall não são somente regras de iptables, envolve muito mais, diretivas de configuração de cada pacote, atualizações dos pacotes e muito mais, mesmo depois de funcionar de forma que atenda as suas necessidades, precisa rever e implementar normas de segurança.

= Sites, tutoriais, documentação e outras indicações.

Postfix - receitas, documentação, links, faq, etc..
http://br.postfix.org/
http://br.postfix.org/LinksUteis

Documentação Oficial - em Inglês - clique em: Documentation Howtos and FAQs
http://www.postfix.org/
http://www.postfix.org/docs.html

Exemplos e sugestão de configuração do Postfix (em inglês)
http://jimsun.linxnet.com/misc/postfix-anti-UCE.txt

Site em ingles sobre configuração do Postfix.
http://www.securitysage.com/guides/postfix_uce.html

Documentação em Português;
http://www.postfix.org/non-english.html#brazilian

Tutorial em portugues detalhando os parametros de configuração do postfix. por: Deives Michellis "thefallen"
http://www.linuxchix.org.br/evento/2004/palestras/postfix.html#toc10

Tutorial com exemplos pra baixar, entre as configurações estão; Instalação PCRE, Instalação Postfix, Configuração Básica, Configuração de envio e recebimento, Bloqueio através do Cabeçalho e Corpo, Restrição de envio por usuários
http://web.onda.com.br/humberto/postfix.html
Conectiva
http://www.conectiva.com/doc/livros/online/10.0/servidor/pt_BR/ch11s02.html
http://www.conectiva.com/doc/livros/online/9.0/servidor/correioeletronico.html#POSTFIX
http://www.conectiva.com.br/cpub/pt/incConectiva/suporte/pr/servidores.postfix.html
http://www.conectiva.com.br/doc/livros/online/7.0/servidor/implementacaopostfix.html
http://www.conectiva.com.br/doc/livros/online/7.0/servidor/postfix.html.
http://www.conectiva.com.br/cpub/pt/incConectiva/suporte/pr/servidores.postfix.loopsback.html
http://www.g2ctech.com/artigos/amavis-perl+postfix.html
Tutorial como objetivo de auxiliar a migrar um servidor rodando sendmail para o Postfix, demonstrando como fazer a configuração do MTA, através de exemplos.
http://brlinux.linuxsecurity.com.br/artigos/dicas_postfix.htm?redirected=1

script em perl que monitora de forma pro-ativa as caixas postais dos usuários, tem vários recursos configuraveis. Postfix Mailbox Monitor e Postmmon = POSTfix Mailbox MONitor
http://brlinux.linuxsecurity.com.br/noticias/000678.html
http://www.prestech.net/projetos/postmmon/
bloquear relay pra outras redes
http://www.stahl.bau.tu-bs.de/~hildeb/postfix/postfix_incoming.shtml
Filtros no Postfix - Excelente tutorial pra configuar o Postfix pra filtrar mensagens de virus, contendo virus, RBL e muito mais.
http://www.linuxman.pro.br/postfix/

Tecnicas Anti-SPAM com o Postfix
http://www.linuxnews.com.br/artigosmail/mail11.php
Configurar quota - caixa de mensagens - mailbox ou maildir
http://web.onda.com.br/nadal/