De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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:
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:
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
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
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
acl benvio sender fulano@dominio.com.br action bemail REJECT nao pode enviar!!! access benvio bemailBem, 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
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.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários