Postfix check_policy_service - verifica apenas e-mails recebidos, ignorando internos e enviados

Postfix check_policy_service - verifica apenas e-mails recebidos, ignorando internos e enviados

Estou tentando configurar um servidor político no Centos x64 (selinux desabilitado), o que me permitirá limitar o número de mensagens recebidas de diferentes servidores e (mais importante) enviadas de diferentes contas de usuários. No momento, acredito que tenho uma configuração funcional para limitar e-mails recebidos (por exemplo, do Google), mas não consigo fazer com que o postfix faça as mesmas verificações de política para e-mails internos e de saída.

Aqui está o problema (no momento estou apenas tentando fazer com que o postfix use o serviço de política)

Eu adicionei as seguintes linhas ao main.cf

smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10031,   reject_unauth_destination
smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10031

E política desativada (para teste)

Ao enviar e-mail de outro host (do gmail por ex) para esta máquina, nos logs do postfix há um erro informando que o servidor político não pode ser acessado

Sep 10 10:40:23 centosvbox1 postfix/smtpd[9378]: connect from unknown[IP_ADDRESS]
Sep 10 10:40:23 centosvbox1 postfix/smtpd[9378]: warning: connect to 127.0.0.1:10031: Connection refused
Sep 10 10:40:23 centosvbox1 postfix/smtpd[9378]: warning: problem talking to server 127.0.0.1:10031: Connection refused
Sep 10 10:40:24 centosvbox1 postfix/smtpd[9378]: warning: connect to 127.0.0.1:10031: Connection refused
Sep 10 10:40:24 centosvbox1 postfix/smtpd[9378]: warning: problem talking to server 127.0.0.1:10031: Connection refused

o que significa que o postfix tenta acessar o servidor político (que funciona conforme o esperado)

No entanto, quando tento enviar e-mails do console (com mailx) para o usuário root (conta local) ou para outro lugar (gmail), nenhuma pesquisa é feita - o e-mail simplesmente desliza, sem sequer tentar acessar o Policyd

echo "ksfdhjksf" | mail -s "kjfhkjsfkjsfd" root

Sep 10 10:42:03 centosvbox1 postfix/cleanup[9386]: 9B606417D9: message-id=<20130910084203.9B606417D9@domain>
Sep 10 10:42:03 centosvbox1 postfix/qmgr[9342]: 9B606417D9: from=<root@domain>, size=458, nrcpt=1 (queue active)
Sep 10 10:42:03 centosvbox1 postfix/local[9388]: 9B606417D9: to=<root@domain>, orig_to=<root>, relay=local, delay=0.04, delays=0.03/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)
Sep 10 10:42:03 centosvbox1 postfix/qmgr[9342]: 9B606417D9: removed

O que me faz pensar: por que check_policy_service não funciona? (acredito que este seja um problema do postfix)

Alguém tem alguma idéia de como fazer com que os usuários do sistema limitem a política (por exemplo, webapp) no envio de e-mails?

Responder1

Você definiu a política check in smtpd_*_restrictions, portanto ela nunca será consultada por e-mails gerados localmente, pois esse tipo de e-mail é injetado na fila do Postfix usando o pickup(8)serviço. Para contornar isso, você precisará modificar master.cfe adicionar uma content_filterinstância ao pickup(8)serviço (e, claro, também precisará adicionar a referida instância de filtragem de conteúdo, dê uma olhada emFiltragem de conteúdo.

FWIW, não acho que valha a pena o esforço para fazer isso. Ninguém deveria ser capaz de gerar correio local em um gateway de correio, e énãoo gateway de correio central, então você está limitando no lugar errado, de qualquer maneira.

informação relacionada