Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Curso de Inglês Online

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Reforçando a segurança do MTA Postfix com APOLICY

Colaboração: Ederson Carlos

Data de Publicação: 02 de dezembro de 2011

ACL Policy Daemon é uma ferramenta livre que se comunica com o MTA Postfix usando Protocolo de Delegação de política, implementando sistema de ACL (Access Control List), para criar e melhorar o controle do trafego do email.

O que pode ser feito com ACL Policy Daemon:

  • Greylisting
  • SPF validação
  • Controle de Mensagens por dia/hora
  • Limites de tamanho de mensagem variável por domínio ou e-mail
  • Verificar múltiplas RBL
  • Rejeitar mensagem somente se IP do cliente está listado em mais de uma RBL, ao mesmo tempo
  • Pequena curva de aprendizagem
  • Sintaxe inspirado no sistema de ACL do proxy HTTP Squid
  • Várias ACLs para usar e combinar

Instalando e configurando o apolicy

Primeiro vamos começar com as dependências, lembrando que eu estou usando a distro CentOS 5.5.

  yum install python-twisted-core python-devel

Estes 2 pacotes (python-pyspf python-pydns) eu tive que instalar "na mão."

Baixe o pacote da última versão do apolicy aqui:

  wget http://download.gna.org/apolicy/apolicy-0.73.tar.gz

Baixado o pacote do apolicy, siga os passos exatamente como abaixo:

  wget http://www.apolicy.org/gpg/miguelfilho.gpg -O- -q | gpg --import
  wget http://download.gna.org/apolicy/apolicy-0.73.tar.gz
  wget http://download.gna.org/apolicy/apolicy-0.73.tar.gz.sig
  gpg --verify apolicy-0.73.tar.gz.sig

Descompacte o pacote e entre no seu diretório descompactado

  tar zxf apolicy-0.73.tar.gz

Para instalar, execute o comando:

  python setup.py install

Você verá as seguintes linhas no momento da instalação:

  running install
  running build
  running build_py
  creating build
  creating build/lib
  creating build/lib/apolicy
  copying src/apolicy/parser.py -> build/lib/apolicy
  copying src/apolicy/__init__.py -> build/lib/apolicy
  copying src/apolicy/base.py -> build/lib/apolicy
  copying src/apolicy/config.py -> build/lib/apolicy
  copying src/apolicy/server.py -> build/lib/apolicy
  running install_lib
  creating /usr/lib/python2.4/site-packages/apolicy
  copying build/lib/apolicy/parser.py -> /usr/lib/python2.4/site-packages/apolicy
  copying build/lib/apolicy/__init__.py -> /usr/lib/python2.4/site-packages/apolicy
  copying build/lib/apolicy/base.py -> /usr/lib/python2.4/site-packages/apolicy
  copying build/lib/apolicy/config.py -> /usr/lib/python2.4/site-packages/apolicy
  copying build/lib/apolicy/server.py -> /usr/lib/python2.4/site-packages/apolicy
  byte-compiling /usr/lib/python2.4/site-packages/apolicy/parser.py to parser.pyc
  byte-compiling /usr/lib/python2.4/site-packages/apolicy/__init__.py to __init__.pyc
  byte-compiling /usr/lib/python2.4/site-packages/apolicy/base.py to base.pyc
  byte-compiling /usr/lib/python2.4/site-packages/apolicy/config.py to config.pyc
  byte-compiling /usr/lib/python2.4/site-packages/apolicy/server.py to server.pyc
  running install_data
  creating /etc/apolicy
  copying main.conf -> /etc/apolicy
  copying policy.conf -> /etc/apolicy

Se estiver da forma como acima é porque a instalação executou com sucesso. Caso deseje criar o init script, siga o procedimento a seguir:

Copie o arquivo apolicy.init para o diretório /etc/init.d com o nome apolicy:

Execute o comando:

  chkconfig --add apolicy

Feito isso é só adicionar na inicialização do sistema como o comando

  chkconfig --level 234 apolicy on

O próximo passo é configurar o Postfix.

Edite, com cuidado, o arquivo /etc/main.cf, do Postfix:

Na diretiva smtpd_recipient_restrictions coloque a linha referente ao apolicy (check_policy_service inet:127.0.0.1:10001) logo abaixo do reject_unauth_destination.

Detalhe, pode ser em qualquer posição abaixo de reject_unauth_destination.

Exemplo de como deve ficar:

  smtpd_recipient_restrictions ...,
  ...,
  reject_unauth_destination,
  check_policy_service inet:127.0.0.1:10001,
  ...

Também pode colocar em smtpd_client_restrictions, nesse caso você pode colocar em qualquer posição.

Configurando o Postfix, devemos observar os arquivos de configuração do apolicy, primeiro vamos editar o arquivo de configuração do próprio apolicy.

Entre no diretório /etc/apolicy e dentro dele você encontrará 2 arquivos: main.conf e policy.conf.

Primeiro vamos editar o main.conf. Você pode alterar a porta em que o apolicy escuta. O padrão é a porta 10001. Eu mudei minha configuração para 50001. Você também pode definir o usuário que vai rodar com o apolicy, definições de log e outras.

Agora, vamos ao que interessa, no arquivo policy.conf, esse é o cara que vai dar um "up" na segurança do MTA, adicionando ACL's.

Edite este arquivo.

Vou deixar aqui alguns exemplos da minha configuração:

  • apolicy configurado para checar greylist, com exceção dos ips que estiverem definidos no arquivo local.txt
      acl email client_address /etc/apolicy/local.txt
      acl grey_all greylisting time=1,lifetime=14400,backend=disk,root=/var/cache/apolicy/
      action to_greyslist DEFER_IF_PERMIT Greylisting, Espere 1 minuto...
      access grey_all !email to_greyslist
    
  • Checando rbl - o arquivo rbl.txt contem as listas que serão checadas e o arquivo local.txt contem os ips que serão ignorados na checagem

      acl rblmail client_address /etc/apolicy/local.txt
      acl rbl1 rbl /etc/apolicy/rbl.txt
      action brbl REJECT nao aceitamos spammers!!!!
      access rbl1 !rblmail brbl
    
  • Neste exemplo eu configurei que o email <fulano (a) dominio com br> pode somente enviar para
      beltrano@dominio.com.br
      acl pdest sender fulano@dominio.com.br
      acl penviar recipient beltrano@dominio.com.br
      action pemail OK
      access pdest penviar pemail
    
  • Você precisa que um determinado email não envie mas que somente receba emails.
      acl benvio sender fulano@dominio.com.br
      action bemail REJECT nao pode enviar!!!
      access benvio bemail
    
    Bem, tentei demostrar um uso básico, essa ferramenta é poderosa e com ela você pode criar muitas regras para reforçar a segurança do seu MTA.

Blog do Autor: http://linuxplue.blogspot.com

Doações para o CDI Campinas podem ser descontadas do Imposto de Renda

O CDI Campinas é uma organização não-governamental sem fins lucrativos que, desde 2000, desenvolve o trabalho pioneiro de promover a inclusão digital visando à inclusão social.

Veja a relação completa dos artigos de Ederson Carlos

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.00/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (455 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

PDF Explicado