História do Postfix

29/10/2008 14:43

Postfix

 

História do Postfix

Postfix é um MTA (Mail Transport Agent) desenvolvido por Wietse Zweitze Venema em conjunto com a IBM. Wietse é desenvolvedor de inumeras outras ferramentas de seguranca utilizadas na internet.

Originalmente, o projeto seria chamado de VMailer. Com alguma pesquisa, os advogados da IBM recomendaram a utilizacão de outro nome para o aplicativo a fim de evitar complicacões judiciais com uma outra marca registrada de nome parecido.

O intuito do postfix é o de ser um servidor de e-mail rápido, seguro e simples de ser configurado.

A fim de não decepcionar os atuais utilizadores do sendmail, o postfix tem como objetivo manter a compatibilidade com seu concorrente.

 

Para que serve?

Um MTA (Mail Transport Agent ou Agente de transporte de mensagens) tem como objetivo o envio e recebimento de e-mails pela internet. Esta “simples” tarefa envolve inúmeros processos, que garantem a autenticidade, envio, recebimento e seguranca da informacão.

O MTA trata também de facilitar algumas outras tarefas, como o fornecimento de apelidos para usuários, aviso de retorno de e-mail (e-mail que não consegue alcancar seu destino é reenviado para o remetente com uma mensagem explicando por que motivo a mensagem não conseguiu alcancar seu destino), limitacão de tamanho de e-mail, roteamento de mensagens, etc.

 

 

Vantagens do Postfix

O postfix tem como objetivo ser disseminado pela internet, aumentando a performance nos sistemas de e-mail e a seguranca neste meio. Por este motivo, o postfix é livremente distribuído sem nenhuma restricão de uso (O postfix está sob a IBM public license – https://www.opensource.org/licenses/ibmpl.html ).

Um dos maiores problemas do sendmail em relacão à seguranca, é a utilizacão do usuário root para rodar o servico de mensagens. Caso seja encontrada alguma falha no servidor de e-mail, qualquer invasor ganha acesso de root facilmente na máquina servidora. Uma outra desvantagem do sendmail é a sua estrutura engessada que dificulta sua administracão.

Um outro objetivo do postfix é evitar estes deslizes cometidos pelo sendmail, utilizando um usuário sem privilégios no sistema (com nome de postfix) para rodar seus servicos. Uma outra vantagem do postfix em relacão ao sendmail é a sua administracão facilitada.

Segundo estatísticas do site www.postfix.org , o servico, rodando em um PC desktop comum, pode enviar milhões de mensagens diferentes por dia para a internet e chega a ser três vezes mais rápido que seu concorrente mais próximo.

No que diz respeito à compatibilidade com o sendmail, postfix consegue cumprir perfeitamente sua tarefa, sendo simplificada a transicão de todo um servidor sendmail para o postfix, sem prejudicar os usuários do sistema durante a transicão.

Alguns benchmarks (benchmarks são medicões realizadas no programa diante de extremo stress, e a comparacão dos valores obtidos com o software concorrente) apontam que o postfix seria o segundo servidor de e-mail mais rápido, perdendo apenas para o qmail. Outros benchmarks menos confiáveis apontam para o sendmail como o segundo servidor mais rápido, ganhando do postfix que estaria na terceira posicão.

Em https://www.benchmarks.dmz.ro/article.php?story=2002081221400018 , a avaliacão coloca o postfix em última posicão em termos de velocidade de envio de e-mails, tendo qmail e sendmail com primeira e segunda posicão respectivamente. Porém, na maioria dos benchmarks o postfix tem se sobressaindo em relacão a seus concorrentes.

Comparando-se com o sendmail, é certo que os resultados obtidos com um servidor postfix é muito superior aos alcancados com o sendmail, tanto em termos de seguranca quanto facilidade de manuseio e rapidez de envio.

 

Agentes

O envio, recebimento, entrega e visualizacão dos e-mails são etapas definidas. Cada agente tem como papel a realizacão de pelo menos uma destas estapas. O postfix é um Agente de transporte de mensagem (MTA). Sua tarefa é tratar a mensagem que está sendo enviada a outro MTA, entregando-a e certificando-se desta entrega. Caso um MTA receba uma mensagem, ele poderá redirecioná-la para o servidor de destino (caso o e-mail não seja destinado à ela) ou entregar diretamente ao Agente de entrega de mensagens (MDA) local.

O MDA mais conhecido é o procmail, e sua tarefa como entregador de mensagens, é entregar ao próximo agente a mensagem recebida, armazenando-a na caixa de entrada do destinatário da mensagem. Normalmente, o MDA desempenha funcões extras como a filtragem de e-mails indesejáveis, o redirecionamento automático de mensagens recebidas ou até mesmo responder automaticamente ao remetente da mensagem com alguma mensagem pré-definida.

Por fim, temos o MUA, ou agente de mensagem de usuário, que tem como funcão administrar a conta de e-mail, permitindo a composicão, leitura e envio de mensagens de maneira facilitada. Dentre os MUA mais conhecidos, podemos citar o Microsoft Outlook, Evolution e o Eudora.

 

Protocolos

 

  • SMTP – O protocolo simples de transferencia de correio (ou Simple Mail Transport Protocol, de acordo com a sigla e sua língua original) é um protocolo provido por redes TCP/IP. Este protocolo é um conjunto de regras para a transferencia de dados usados por vários agentes de transferência de correio. Toda a comunicacão entre os agentes de transporte é feita através deste protocolo. Maiores informacões à respeito do protocolo de transporte de mensagens SMTP, vide RFC 1123 no site https://www.ietf.org/rfc.html.

 

  • POP – Post Office Protocol. É o protocolo utilizado pelo usuário para receber seus e-mails sem a necessidade de estabelecer uma conexão remota com a máquina servidora de e-mails. O protocolo POP normalmente é utilizado por MUAs como o Evolution e o Eudora. Maiores informacões, procure pela RFC 1957 em https://www.ietf.org/rfc.html.

 

  • IMAP – O intuito do IMAP é o mesmo do servico POP. A diferenca, é que o IMAP manipula as mensagens no próprio servidor, realizando todas as tarefas requeridas pelo usuário (criacão de pastas, remocão de mensagens, etc) diretamente no servidor. A vantagem do IMAP sobre o POP, é que as mensagens são mantidas no servidor, e caso, dentre as mensagens, haja alguma com conteúdo malicioso, não será baixada para a máquina. A maioria dos vírus de e-mail se aproveitam de falhas dos MUAs atuais. Outra vantagem é que para manipular sua conta de e-mail não se faz mais necessária a instalacão de um cliente de e-mail. Ele pode ser acessado através de um webmail, utilizando qualquer browser de qualquer parte do planeta. Maiores informacões em: https://www.ietf.org/rfc/rfc3348.txt?number=3348 .

 

 

A estrutura do Postfix

 

Estrutura do Postfix
Este diagrama foi obtido na página oficial do postfix ( www.postfix.org/receiving.html ).

Quando o e-mail é enviado localmente, o utilitário sendmail (responsável pela compatibilidade entre a interface do postfix com o sendmail) invoca o programa postdrop, que deposita a mensagem no diretório do maildrop.

Por medidas de serguranca, é chamado o programa pickup que realiza inúmeros testes nesta mensagem a fim de evitar danos ao restante do sistema do postfix. Este programa não interage com o meio, ele simplesmente é encarregado de tratar as mensagens que chegar ao diretório do maildrop. O pickup roda com um usuário de poucos privilégios, e funciona normalmente em um ambiente chrooted (enjaulado).

Sua tarefa é verificar os arquivos de usuários potencialmente hostis. O programa pickup é, também , cuidadoso ao ler arquivos e não faz alteracão alguma nos arquivos. Após o processo, a mensagem é repassada para o servico cleanup.

O daemon cleanup processa a mensagem recebida, encaminha-a para para a fila de envio de mensagem. Após o processo, ele informa ao administrador da fila a chegada da mesma.

Algumas das tarefas realizadas neste processo de tratamento do cleanup são;

  • Preencher cabecalhos vazios da mensagem
  • Elimina enderecos de e-mail duplicados
  • Trata cabecalhos e enderecos de destinatários e remetentes da mensagem

Após o tratamento, a mensagem finalmente pode ser enviada ao(s) seu(s) destinatário(s) através do programa responsável.

 

 

Arquivos de configuracão

Todos os arquivos de configuracão do postfix sem encontram no diretório /etc/postfix. Uma simples listagem neste diretório revela os seguintes arquivos:

[root@desk postfix]# ls
access   canonical        master.cf      postfix-script  relocated
aliases  main.cf          pcre_table     post-install    transport
aliases.db  main.cf.default  postfix-files  regexp_table  virtual

Com base na listagem, veremos uma breve descricão dos principais arquivos desta pasta: access – este arquivo é lido pelo servidor smtp do postfix. Sua funcão é definir quais remetentes devem ser rejeitados. Existe uma documentacão bem completa sobre este arquivo dentro dele mesmo em forma de comentário. O formato desta documentacão é o mesmo das páginas de manuais do comando man.

  • aliases – contém apelidos pelos quais e-mails são direcionados para usuários pré-definidos. Um exemplo seria as mensagens que o sistema envia para o usuário root. Como, por padrão, o postfix não envia e-mails como usuário root, é preciso indicar o nome de algum usuário que possa receber estas mensagens para avaliacão. Este tipo de redirecionamento é feito neste arquivo através de aliases.
  • canonical – este arquivo especifica um mapeamento de enderecos locais e externos para a utilizacão do daemon cleanup. A funcão deste arquivo não deve ser confundida com a funcão do arquivo aliases.
  • main.cf – Este é o arquivo de configuracão global do postfix. Este arquivo possui mais de 250 diretivas diferentes. Arquivos de exemplo contendo estas diretivas podem ser encontrados no diretório: /usr/share/doc/postfix-2.0.11/samples.
  • main.cf.default – Este arquivo contém as configuracões padrões do postfix. Pode-se utilizar estas configuracões para colocar um servidor de mensagem funcionando rapidamente (embora ainda seja crucial a configuracão de algumas diretivas contidas neste arquivo)
  • master.cf – Arquivo de configuracão do daemons master (daemon do postfix). Este arquivo define como o daemon do postfix deve se comportar.
  • pcre_table – Tabela utilizada para re-escrita de enderecos ou roteamento das mesmas.
  • postfix-files – Este arquivo controla os scripts de instalacão e configuracão do postfix. Um exemplo de script controlado por este arquivo é o post-install, ou o postfix-install.
  • postfix-script – Script que inicializa os comandos administrativos do servico de mensagens postfix.
  • post-install – Apos a finalizacão da instalacão do postfix, quando todos os executáveis e arquivos de configuracão foram devidamente instalados na máquina, o script /etc/postfix/post-install é executado para definir as configuracões finais destes arquivos recém-instalados. Dentre estas configuracões, podemos citar a definicão de permissões para arquivos e diretórios do sistema postfix e outros.
  • regexp_table – Tabela de expressões regulares utilizadas pelo postfix.
  • relocated – É a tabela utilizada pelo postfix ao enviar mensagens que não alcancaram seu destino de volta ao remetente. Este arquivo, na verdade, especifica o endereco de um usuario que foi movido para outro endereco conhecido, como por exemplo: conta usuario foi movida para usuario2.
  • transport – A tabela de transporte utilizada pelo postfix é definida neste arquivo. Esta tabela tem como funcão especificar o mapeamento dos enderecos de e-mail aos MDAs.
  • virtual – Os aliases virtuais servem como opcionais caso o administrador queira definir aliases para enderecos locais e nao locais. Estes aliases servem também para redirecionar uma mensagem enviada para um ou mais enderecos, conforme configuracão do aliase.

 

 

Instalacão do postfix

A instalacão do postfix pode ser feita pelos dois meios mais tradicionais no mundo linux: Via binário com pacotes RPM, ou através do código fonte que pode ser baixado diretamente do site oficial do projeto. Como a segunda opcão é a mais complicada, estaremos lidando com este tipo de instalacão.

Para baixar o código fonte, podemos nos direcionar para o site www.postfix.org , e lá na secão de downloads, escolher o mirror mais próximo de nossa localizacão e baixar a versão mais recente do postfix. Após o download, copie o arquivo postfix-x.y.z.tar.gz para o diretório /usr/src para podermos manipular seu conteúdo em um diretório mais adequado. Desempacote o arquivo com o comando:

   # tar -xzvf postfix.x.y.z.tar.gz

Entre na pasta criada após o desempacotamento. Devemos executar todos os comandos seguintes dentro desta pasta:

   # make tidy

(para limpar as configuracões do make)

   # make -f Makefile.init makefiles 

(Este comando é equivalente ao ./configure e cria os arquivos Makefile que serão utilizados na compilacão dos programas do postfix)

 

   # make 

(Inicia a compilacão do postfix)

 

   # groupadd postdrop 

(Cria grupo postdrop, que serve para fazer a separacão de privilégios dos programas do Postfix – Lembra que o sendmail roda como usuário root?)

 

   # useradd -g daemon postfix 

(Cria usuário postfix utilizado para rodar o servico de mensagem)

 

 

 

 

 

 

 

 

   # sh postfix-install

(Realiza as configuracões finais necessárias para o correto funcionamento do postfix)

Neste script, responda com enter a todas as perguntas (a menos que deseje setar outras configuracões para seu servidor). Fique atento apenas para o nome do usuário e nome do grupo que o postfix passará a usar a partir deste momento. O nome do usuário deverá ser postfix (usuário criado anteriormente) e o grupo deverá ser o postdrop (também criado anteriormente). Com a instalacão via código fonte, os arquivos samples citados anteriormente se encontram no mesmo diretório dos arquivos de configuracão do postfix (/etc/postfix). Podemos, então, verificar o conteúdo da pasta /etc/postfix e verificar os arquivos de configuracão de ele utiliza.

 

Comandos do postfix:

O postfix possue algumas ferramentas de terminal que controlam o sistema do servidor de mensagens.

  • postfix - por este comando, podemos controlar o serviço do postfix, inicializando-o, parando-o ou recarregando seus arquivos de configuração.
  • postalias - Comando que serve para atualizar e manter o banco de dados de aliases utilizados pelo postfix.
  • postcat - Este comando mostra no terminal o conteúdo dos arquivos que estão na fila de envio do postfix.
  • postconf - Este comando mostra todas as configurações que estão sendo utilizadas pelo postfix. Configurações que foram definidas, possuem valor padrão ou que não foram configuradas são listadas com este comando. Este comando é útil se utilizado com algum outro comando, como o grep, por exemplo, para verificar a configuração que está sendo utilizada por uma determinada diretiva no postfix.
  • postdrop - postdrop é o agente que deposita mensagens recebidas no diretório do maildrop . Este comando escreve um arquivo diretamente neste diretório.
  • postkick - Comando que torna possível a comunicação interna entre o servidor de mensagem e outros programas, como por exemplo, um shell script.
  • postlock - Tranca a pasta de e-mail e executa um comando
  • postlog - Interface a ser utilizada para gerar logs provenientes do serviço de mensagens através de scripts shell. Este comando envia os logs ao daemon syslogd , para que então, ele decida onde o log deverá ser armazenado.
  • postmap - Cria e atualiza a base de dados de resolução de nomes e apelidos, que é utilizada pelo postfix no tratamento de mensagens. Um exemplo, seria a base de dados criada a partir dos arquivos canonical e virtual, que se encontram no diretório do postfix.
  • postsuper - O comando postsuper controla as filas de espera do postfix, podendo realizar tarefas administrativas como, por exemplo, remover mensagens. Este comando só pode ser usado pelo usuário root. Outras tarefas básicas podem ser realizadas por usuários com menos privilégio no sistema através do comando postqueue.
  • postqueue - Este comando serve como alternativa a usuários com menos privilégios no sistema que precisam verificar as filas de espera do postfix.

 

 

Configuracão básica do postfix: /etc/postfix/main.cf

 

O main.cf é o principal arquivo de configuracão do postfix. Nele podemos definir as principais opcões do postfix, definir o nome de nosso domínio e estabelecer outras diretivas que deverão ser seguidas pelo nosso servidor de mensagens ao tratar os processos por ele realizado. Normalmente, a maioria das diretivas utilizadas pelo postfix e que devem ser definidas neste arquivo possuem valores pré-definidos, e, portanto, para deixar seu servidor de mensagens funcionando se faz necessárias modificacões mínimas neste arquivo. Estaremos tratando neste material as diretivas de configuracão mais úteis do postfix.

  • myorigin – Esta diretiva especifica o domínio que aparece nos enderecos de e-mail enviados por este servidor. As duas variáveis mais comumente utilizadas nesta diretiva é $myhostname e $mydomain. Caso o domínio que você deseja que apareca em seus enderecos de e-mail seja o nome completo da sua máquina (do tipo hostname.domínio). Portanto, os e-mail enviados por este servidor terão a seguinte aparência: fulano@hostname.dominio. Execute o comando hostname no terminal, e verifique o nome completo da sua máquina. Este é exatamente o nome que aparecerá em seus enderecos de e-mail.
      [root@desk config]# hostname
      desk.canopo
    • Neste caso, o endereco seria do tipo: fulano@desk.canopo.
    • Caso utilize a variável $mydomain nesta diretiva, os seus enderecos serao do tipo fulano@dominio.hostname.Para verificar como seria o formato do seu novo e-mail com esta opcão, execute o seguinte comando no shell:
      [root@desk config]# hostname -d
      canopo
  • mydestination - esta diretiva especifica quais enderecos de e-mail o servidor de mensagens deve entregar localmente. Neste caso, o postfix verifica apenas o nome após o '@'. O nome do usuário não importa nesta tarefa. A parte do endereco de e-mail qe vem depois do '@' é o domínio do endereco de e-mail, e é esta parte que o postfix irá avaliar para decidir se entrega a mensagem localmente, a ignora ou a repassa para o servidor responsável. A configuracão desta diretiva depende dos dominios que voc&e deseja liberar em seu servidor. Os domínios a serem definidos nesta diretiva devem ser separados por vírgula. Ex:
    • mydestination=$myhostname, localhost.$mydomain, $mydomain
  • mynetwork - A diretiva mynetwork especifica os enderecos de rede que o postfix pode confiar. Esta diretiva deve ser configurada para que o servico de e-mail funcione corretamente. Você deve permitir aqui a rede em que seu servidor se conecta na internet (para enviar e receber e-mails por ela), a interface de loopback (127.0.0.0/8 - para receber e-mails locais) e outras redes internas que enviam e-mail para sua máquina. Para definir as redes em que o postfix deve confiar, utiliza-se o seguinte formato:
    • mynetworks = 10.0.0.0/8, 127.0.0.0/8
      • endereço de rede/máscara de rede. Endereços devem ser separados por vírgula
    • Porém, este não é o único meio de se definir esta diretiva. Existem outros formatos para se definir redes confiáveis ao postfix com esta mesma diretiva. O formato de configuração desta diretiva é especificada por mynetworks_style.
  • mynetworks_style - Aqui você deve dizer ao postfix qual o tipo de rede que ele deve confiar ao tratar mensagens. Existem três opções para esta diretiva:
    • class - Diz ao postfix que ele pode confiar em redes classe A/B/C que estejam conectadas a ele. Não recomendado caso você esteja se conectando diretamente à internet, pois isso diria ao postfix que ele pode confiar em toda a rede do seu provedor . Use esta diretiva com cuidado.
    • subnet - Configura o postfix para confiar somente em IP que estejam na mesma subrede em que ele se encontra. Esta opção é a mais utilizada.
    • host - Especifica que o postfix só deve confiar no seu próprio IP, e deve rejeitar qualquer outra requisição vinda de outro IP que não seja o dele próprio.
  • inet_interfaces - Especifica quais interfaces de rede o postfix deve escutar. A configuração padrão para esta diretiva é all , mas caso esteja usando domínios virtuais na máquina, devem ser utilizadas outras opções para especificar os endereços.
  • queue_directory - Nesta diretiva, podemos especificar qual diretório de filas de espera o postfix deverá utilizar. É neste diretório que se encontram os diretórios maildrop e incoming , dentre outros. O diretório padrão é o /var/spool/postfix.
  • command_directory - Endereço em que se encontram os comandos do postfix que foram listados alteriormente (postdrop, postqueue, postsuper, postkick, etc). O diretório padrão é o /usr/sbin .
  • daemon_directory - Fica definido nesta diretiva o diretório que contém os daemons listados no arquivo master.cf, como por exemplo, o smtpd , o pickup e o próprio master. Por padrão, este local é definido no diretório /usr/libexec/postfix .
  • mail_owner - O postfix deve rodar utilizando um usuário sem privilégios. Outra restrição, é, que o grupo em que este usuário se encontra não deve ser compartilhado por nenhum outro usuário. Este grupo deve ser definido somente para uso do postfix, e nenhum outro usuário deve fazer parte dele por motivos de segurança. E, é nesta diretiva que fica definido o nome do usuário que o postfix utilizará para rodar seus processos e realizar suas tarefas administrativas.
  • default_priv - Este parametro define os direitos utilizados pelo serviço de e-mail ao entregar mensagens locais a servidores externos. Por padrão, esta diretiva contém o valor nobody, e está comentada. Ela não deve ser modificada, e não deve ser utilizado o usuário dono dos processos do postfix (usuário postfix). Por padrão, esta linha se encontra comentada, e ela deve ser descomentada.
  • myhostname - Diretiva que deve armazenar o endereço completamente qualificado do seu servidor de mensagens. É com este nome de domínio que os endereços de e-mail deste servidor deverá ter. Este parametro é utilizado por outras diretivas.
  • relayhost - Especifica qual a máquina padrão que deverá ser utilizada para enviar mensagens. Caso esta diretiva não esteja definida, o servidor local envia a mensagem diretamente para o destino.
  • alias_maps - Define qual arquivo o postfix deve buscar pelas referencias de aliases. Você pode especificar aqui, um arquivo jah convertido em banco de dados. O arquivo padrão é o /etc/aliases
  • alias_database - Função similar à diretiva alias_maps , porém a diretiva anterior pode estar utilizando uma base de dados que está fora do domínio do postfix. A diretiva alias_database define, portanto, bases de dado de aliases que pertencem ao domínio do postfix, como o arquivo /etc/postfix/aliases.
  • mail_spool_directory - Com esta diretiva podemos definir em qual diretório serão armazenadas as mailbox (caixa de mensagens) de todos os usuários.
  • mailbox_command - Aqui você deve definir o endereço em que se encontra a aplicação que deverá entregar suas mensagens ( seu MDA ). A Red Hat utiliza por padrão o procmail como MDA .
  • luser_relay - Esta diretiva define para onde devem ir os e-mail que chegaram com destinatário desconhecido para o sistema. Por padrão, todos estes e-mails retornam com alguma mensagem de erro para o remetente da mensagem. Caso você querira especificar um destino para estas mensagens, você deve especificar o novo destino neste parametro. Não é recomendável mexer nesta parte da configuração do postfix, já que não é muito agradável ( e muito menos recomendável ) receber milhares de mensagens de erro e armazená-las em seu servidor. Mensagem ocupa espaço. Se decidir utilizar esta diretiva, seja cauteloso.
  • ** -

 

Controle de SPAM básico com postfix: </ br>

O postfix possue algumas diretivas que impedem o envio e recebimento de mensagens com este intuito. Atualmente, a quantidade de mensagens que circulam pela internet com este objetivo é realmente expressiva (quem nunca recebeu em seu e-mail uma mensagem indesejada?), e uma enorme quantidade de vírus têm sido veiculados utilizando-se técnicas de SPAM. O exemplo mais comum seria o vírus My.Doom que promoveu um ataque de DDoS? aos servidores da SCO e Microsoft. Nosso papel como administrador de redes é evitar que os usuários de nossos sistemas recebam este tipo de mensagem, garantindo a qualidade dos serviços prestados e a segurança dos dados que trafegam em seu ambiente. </ br> Todas as diretivas tratadas neste capítulo pertencem ao arquivo main.cf. </ br>

 

  • smtpd_client_restrictions - Especifica quais domínios ou endereços o serviço de smtp deve rejeitar conexões. Nesta diretiva, os endereços a serem rejeitados devem ser separados por vírgula. A verificação é feita linearmente, e caso exista duas restrições semelhantes para o mesmo cliente, irá valer a que o postfix encontrar primeiro (ou que vier primeiro nas definições desta diretiva). Para dizer ao postfix que ele não deve rejeitar nenhuma conexão, pode-se utilizar a seguinte sintaxe: " smtpd_client_restrictions = " .
    • Como precisamos especificar domínios que o postfix deve rejeitar por motivos de segurança (evitar mensagens indesejáveis), veremos a seguir como definir estes endereços:
      • reject_unknown_client - Rejeita a conexão quando o endereço IP do solicitante não é conhecido, ou não se encontra nos registros de seu DNS.
      • permit_mynetworks - Permite a conexão de endereços IP que pertencem às redes definidas na diretiva mynetwork.
      • reject_rbl_client domínio.contra.spam - Rejeita conexões de endereços cuja rede pertença aos registros de domínio.contra.spam. Existem alguns sites na INTERNET, preocupados com a constante ameaça do SPAM e os vírus que se utilizam destas técnicas para se proliferar, que armazenam endereços de redes que enviam este tipo de mensagem. Utilizando esta diretiva em conjunto com estes domínios, temos mais uma camada de proteção contra SPAMs. Mas não se deve confiar somente nestes domínios. Milhares de máquinas entram diariamente na INTERNET somente para enviar mensagens deste tipo, e não há tempo para que todas as bases de dados contra este mal sejam atualizadas. Um exemplo de domínio que aramazena endereços de redes de SPAM é o https://ordb.org . Alguns destes servidores registrados podem ser servidores que permitem relay e por este motivo acabam sendo vítimas do SPAM, por repassarem as mensagens para outros e-mails sem originar as mensagens em seu domínio. * Existem outras opções que podem ser utilizadas nesta diretiva, mas que fogem o escopo desta obra. Para saber mais, procure a documentação do postfix em seu site oficial.
  • smtpd_sender_restrictions - Por padrão, o postfix recebe mensagens de qualquer endereço. Caso deseje rejeitar o recebimento de mensagens de endereços específicos, deve-se configurar esta diretiva com as mesmas opções utilizadas no smtpd_client_restrictions . A função desta diretiva é similar à anterior, porém deve ser fixada a diferença entre as duas diretivas: a primeira bloqueia conexões provenientes de clientes pertencentes à uma rede proibida (proibida pela configuração definida localmente), enquanto que a segunda, bloqueia o envio de mensagens de um determinado domínio ou endereço proibido. Esta diretiva analisa o endereço no campo de remetente.
  • header_checks - Restringe conteúdo do cabeçalho da mensagem. O postfix se baseia em expressões regulares para controlar o conteúdo proibido dos cabeçalhos. Para definir estas expressões, podemos utilizar um arquivo extra com os conteúdos que deverão ser proibidos. Um exemplo de expressão seria: "/^to: teste@teste\.com$/ REJECT " . Esta linha proibiria qualquer mensagem destinado à algum e-mail que contenha teste no nome de usuário, e que, tenha como domínio teste.com. Você pode restringir expressões em remetente, destinatário, título, etc.

 

Controles internos:

  • Controle de processos - No postfix, podemos controlar a quantidade máxima de processos por ele utilizado em todos os seus programas (processos do smtpd, processos de entrega de mensagem, processos de recebimento, etc). Este controle serve para evitar que seu serviço de e-mail comprometa todo o seu sistema e outros serviços. Caso a quantidade de tarefa a ser realizada exceda seu limite de processos, ela são colocadas em uma fila de espera para serem realizadas assim que o tráfego for reduzido e o sistema permitir seu processamento. A configuração padrão desta diretiva define que o limite é de 100 processos. Especificar valores nesta diretiva impede alguns tipos de ataques DoS?.
    • default_process_limit - Esta diretiva define a quantide máxima de processos que o postfix pode iniciar. Esta quantidade é geral, ou seja, engloba todos os aplicativos controlados pelo postfix.
    • Controle por aplicativos - Este controle é realizado individualmente, e especifica a quantidade de vezes que um determinado aplicativo do postfix pode ser inicializado no sistema. O controle individual é feito no arquivo master.cf. Segue um exemplo do conteúdo deste arquivo:
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       n       -       -       smtpd
#628      inet  n       -       n       -       -       qmqpd
pickup    fifo  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
  .         .   .       .       .        .      .         .  
  .         .   .       .       .        .      .         .  
  .         .   .       .       .        .      .         .  
(continua)
    • Neste pedaço extraído do arquivo master.cf , podemos verificar o controle individual de quantidade de processos na coluna maxproc .É nesta coluna que devemos especificar esta quantidade individual. O pickup por exemplo, tem o limite de 1 processo. Ou seja: o sistema só pode rodar o aplicativo pickup individualmente. Caso o valor fosse 5, ele poderia ser executado em 5 processos separados simultaneamente.
  • Controle de mensagens enviadas à um mesmo destino - Para evitar o envio em massa de mensagens à um mesmo servidor, utilizamos a diretiva default_destination_recipient_limit . Quando um usuário de seu serviço envia uma mensagem endereçada a vários usuários de um mesmo servidor, ocorre um tráfego muito intenso entre o servidor de origem e destino. Este tráfego pode ser barrado pelo outro servidor, pois a mensagem pode ser interpretada como uma tentativa de spam. Para evitar este problema, utilizamos esta diretiva para controlar a quantidade máxima de mensagens que é enviada ao mesmo tempo para um determinado servidor destino. Quando um remetente excede este limite, a mensagem é enviada para os primeiros destinatários, e depois ela é reenviada para os destinatários restantes sempre respeitando o limite. Por padrão o postfix define que este limite é de 50 destinatários para um mesmo servidor.
    • Controle por aplicativo - Você pode controlar o envio destas mensagens por aplicativos do postfix. Por exemplo: o uucp só deve enviar mensagens a 10 destinatários de um servidor por vez. Para especificar esta opção, podemos utilizar o uucp_destination_recipient_limit .
  • line_length_limit - Limita o tamanho máximo de linha que uma mensagem poderá ter. Se o limite é ultrapassado, a linha é quebrada. Caso isso ocorra, no momento da entrega as linhas são reconstituídas.
  • header_size_limit - Controla o tamanho máximo de um cabeçalho. Caso você queira restringir o tamanho de cabeçalho, deve-se utilizar esta diretiva. Quando a mensagem passa pelo programa cleanup , o cabeçalho é verificado, e o programa elimina o que estiver excedendo. O limite padrão é de 102400 bytes.
  • message_size_limit - Limita o tamanho do arquivo de mensagem. Incluindo anexos, cabeçalho e corpo da mensagem. Por padrão, este limite é de 10240000 bytes. Muito útil quando você precisa limitar o fluxo de dados em seu servidor de mensagens. Principalmente se ele for público e abrigue muitos usuários. Um limite deve ser fixado para que o tráfego de sua rede não sofra uma grande perda ao enviar ou receber mensagens que ocupam muito espaço e levam tempo para serem descarregadas.
  • bounce_size_limit - Seu servidor acaba de receber uma mensagem com o tamanho de 10MB... levou um tempo considerável para baixar esta mensagem e no final, descobre que a mensagem não pode ser entregue por algum motivo e deve ser devolvida. Mais 10 MB passando na sua rede, consumindo sua banda e congestionando mensagens mais importantes. No final, você estaria re-enviando um conteúdo que o remetente já tem. Provavelmente, ao receber a mensagem o remetente irá até mesma removê-la, e muitas das vezes, removê-la sem ler! (ainda mais com esta onda de vírus que trafegam pelo e-mail como mensagem de retorno). Com esta diretiva, podemos definir qual o tamanho da mensagem de retorno, ou quanto dela deve ser enviada de volta para o remetente. Este limite agiliza a entrega de mensagens e evita o consumo desnecessário de sua banda. O valor padrão utilizado pelo postfix, quando não especificado contrário, é retornar no máximo 50000 bytes da mensagem ao remetente.
Voltar