Postfix check_policy_service - apenas verificando as mensagens recebidas, ignorando as mensagens internas e de saída

1

Estou tentando configurar um servidor policyd no Centos x64 (selinux desativado), o que me permitirá limitar o número de mensagens recebidas de diferentes servidores e (mais importante) a saída de diferentes contas de usuário. No momento, eu acredito que eu tenho uma configuração de trabalho para limitar o recebimento de mensagens (por exemplo, do google), mas eu não posso fazer o postfix fazer as mesmas verificações de política para o correio interno e de saída.

Aqui está o problema (no momento eu estou apenas tentando fazer o postfix usar 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 desabilitado policyd (para testes)

Ao enviar e-mails de outro host (do gmail para ex) para esta máquina, nos logs do postfix há um erro que o servidor policyd 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

que significa que o postfix tenta acessar o servidor policyd (que funciona como esperado)

No entanto, quando eu tento enviar e-mail do console (com mailx) para o usuário root (conta local) ou em outro lugar (gmail), não são feitas tais pesquisas - o email 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 o check_policy_service não funciona? (eu acredito que isso é um problema de postfix)

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

    
por gds.jerry 10.09.2013 / 10:45

1 resposta

1

Você definiu a verificação de política em smtpd_*_restrictions , portanto, ela nunca será consultada para emails gerados localmente, porque esse tipo de email é injetado na fila do Postfix usando o serviço pickup(8) . Para contornar isso, você precisará modificar master.cf e adicionar uma content_filter instance ao serviço pickup(8) (e, claro, você também precisará adicionar essa instância de filtragem de conteúdo, dê uma olhada em Content Filtering .

FWIW, não acho que valha a pena fazer isso. Ninguém deve ser capaz de gerar e-mails locais em um gateway de e-mail, e não é o gateway de e-mail central, então você está limitando no lugar errado, de qualquer maneira.

    
por 11.09.2013 / 10:31