domingo, 23 de dezembro de 2007

Postfix + Policyd-weight

Há muita controvérsia no uso de blacklist em servidores de correio, eu particularmente sou favorável se esta for uma lista séria. O problema é que cada dia surge uma lista dessas nova. Deixando esse problema de lado vamos ao que importa. Implementar blacklists direto no postfix tem os seguintes inconvenientes:
  • Cada lista age separadamente
  • Aumento de carga no postfix
  • Cache de DNS ineficiente
Em geral você teria linhas da seguinte forma no seu main.cf

smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated,
check_client_access hash:/etc/postfix/access,
...
reject_unknown_client,
reject_rbl_client combined.njabl.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net,

Então se algum host estiver listado em uma ele é barrado, o que pode não ser muito justo... Dai vem a idéia de colocar pesos nas respostas de cada lista, com essa idéia nasceu o policyd-weight, ele aplica pesos as respostas das consultas as blacklists, checagem de reverso etc, com isso a probabilidade de ocorrer um falso positivo é bem menor, pois uma maquina listada em uma blacklist mas que possua reverso e se anuncie seu nome corretamente no comando HELO terá a chance de não ser bloqueada. Vale a pena olhar o site do projeto e ler a documentação http://www.policyd-weight.org

# apt-get install policyd-weight

# policyd-weight defaults > /etc/policyd-weight.conf

Acerte os pesos e as mensagens em /etc/policyd-weight.conf

#/etc/init.d/policyd-weight restart

coloque no seu /etc/postfix/main.cf

smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/access,
permit_mynetworks,
...
reject_unauth_pipelining,
reject_unknown_recipient_domain,
reject_unauth_destination,
check_policy_service inet:127.0.0.1:12525

# postfix reload