Postgrey

De Biblioteca Unix

Conteúdo

Postgrey

Debian Squeeze 6.0/Ubuntu Server 10.04 LTS

O Postgrey é um programa que realiza filtros por greylist muito interssante pela simplicidade de configuração e ativação com o Postfix. Vamos adicionar suporte a Greylist no nosso sistema de e-mail com o Postgrey.

Apenas para quem não sabe, Greylist é a técnica de segurar o e-mail, esperando por uma segunda/terceira tentativa ou por um tempo. Quando o servidor tentar enviar novamente, o greylist vai atualizar o estado do e-mail e de fato entregá-lo para envio.

Este procedimento tem filtrado muitos spams porque no geral spammers enviam muitos e-mails, mas não reenviam, pois não são servidores válidos e reais, por isso essa estratégia é interessante.

Instalando os Pacotes necessários

Basta instalar o pacote:

# apt-get install postgrey

simples assim. Agora vamos ativá-lo de fato.

Configurações Básicas

Para ativar o postgrey no sistema, precisamos editar seu arquivo de configurações default:

# vim /etc/default/postgrey
POSTGREY_OPTS="--auto-whitelist-clients=10 --listen-queue-size=5 --delay=60 --privacy --inet=127.0.0.1:60000"
POSTGREY_TEXT="Sorry, you cannot send mail for me before many minutes."

com estas duas linhas estamos permitindo que clientes sejam adicionados a uma lista branca depois de 10 envios com sucesso para nosso servidor, um atraso para a primeira tentativa de 60 segundos e com a porta de conexão local sendo 60000.

Pronto, podemos iniciar o postgrey:

# /etc/init.d/postgrey start

o serviço vai levantar corretamente, mas ainda não está filtrando nada. Para que o filtro seja de fato ativo devemos adicionar algumas entradas no arquivo main.cf do Postfix:

# vim /etc/postfix/main.cf
...
smtpd_helo_restrictions =
      ...
      check_policy_service inet:127.0.0.1:60000

smtpd_sender_restrictions =
      ...
      check_policy_service inet:127.0.0.1:60000

smtpd_recipient_restrictions =
      ...
      check_policy_service inet:127.0.0.1:60000

estes ... significam que podem ter outras regras definidas antes ou depois.

Pronto, basta reinicilizar o Postfix:

# /etc/init.d/postfix restart

que vocês vão passar a ver linhas de log parecidas com:

Nov 21 14:16:49 filtro postgrey[577]: action=greylist, reason=new, client_name=

e com isso nosso greylist está funcionando e ativo.


CentOS/RedHat 5.6

Instalando os Pacotes necessários

Basta instalar o pacote:

# yum install postgrey

depois de instalado, precisamos definir como ele vai funcionar.

Configurações Básicas

Basta editar o arquivo:

# vim /etc/sysconfig/postgrey
OPTIONS="--inet=127.0.0.1:10023 --delay=60"

Com esta configuração o atraso de espera para a restransmissão será de 60 segundos e o serviço estará executando na porta 10023. Não esqueça de ativar o Postgrey durante a inicialização:

# chkconfig --level 345 postgrey on

Agora para que o Postfix e o Postgrey trabalhem juntos é necessário algumas mudanças no arquivo main.cf:

# vim /etc/postfix/main.cf
...
smtpd_helo_restrictions =
      ...
      check_policy_service inet:127.0.0.1:10023

smtpd_sender_restrictions =
      ...
      check_policy_service inet:127.0.0.1:10023

smtpd_recipient_restrictions =
      ...
      check_policy_service inet:127.0.0.1:10023

estes ... significam que podem ter outras regras definidas antes ou depois. Pronto, basta reinicilizar o Postfix:

# service postfix restart

que vocês vão passar a ver linhas de log parecidas com:

Nov 21 14:16:49 filtro postgrey[577]: action=greylist, reason=new, client_name=

e com isso nosso greylist está funcionando e ativo.


--Brivaldo 02h36min de 16 de maio de 2011 (AMT)

Ferramentas pessoais