Accesso negato quando implementa le politiche in (postfix + policyd2)

Sto cercando di utilizzare postfix + policyd2 per limitare la quantità di email in output. Ma quando implemento le politiche del policyd2 ottengo l'accesso negato – nessun mater che cosa faccio mi viene negato.

  • Postfix versione 2.11.4
  • PolicyD2 (cluebringer) versione 2.0.14-1

Casella di errore dal client di posta elettronica:

  • Come determinare quale utente ha inviato una specifica email con postfix?
  • Come posso get postfix per submit posta a diversi host di relè?
  • 554 5.7.1 <mail_addr>: l'accesso di accesso ha negato il postfix di centos
  • Come posso configurare Postfix per submit tramite IP basato sul dominio di origine?
  • Evitare di creare backscatter su un server di inoltro Postfix
  • Come ho configurato il postfix e l'utilizzo di SES e sono comunque in grado di inoltrare email da indirizzi esterni non verificati?
  • Si è verificato un errore durante l'invio della posta. Il server di posta elettronica ha risposto: 4.7.1 <22222@gmail.com>: indirizzo destinatario rifiutato: Accesso negato. Controllare il destinatario del messaggio 22222@gmail.com e riprovare.

    Quando disattivo polycyd2 in postfix /etc/postfix/main.cf tutto funziona:

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

    Se lo riaccico, questo è quello che ottieni /var/log/maillog :

     postfix/smtpd[3228]: >>> START Helo command RESTRICTIONS <<< postfix/smtpd[3228]: generic_checks: name=reject_invalid_helo_hostname postfix/smtpd[3228]: reject_invalid_hostaddr: [192.168.0.10] postfix/smtpd[3228]: generic_checks: name=reject_invalid_helo_hostname status=0 postfix/smtpd[3228]: >>> END Helo command RESTRICTIONS <<< postfix/smtpd[3228]: >>> START Recipient address RESTRICTIONS <<< postfix/smtpd[3228]: generic_checks: name=check_policy_service postfix/smtpd[3228]: trying... [127.0.0.1] postfix/smtpd[3228]: auto_clnt_open: connected to 127.0.0.1:10031 postfix/smtpd[3228]: send attr request = smtpd_access_policy postfix/smtpd[3228]: send attr protocol_state = RCPT postfix/smtpd[3228]: send attr protocol_name = ESMTP postfix/smtpd[3228]: send attr client_address = 88.88.88.88 postfix/smtpd[3228]: send attr client_name = example.pl postfix/smtpd[3228]: send attr reverse_client_name = example.pl postfix/smtpd[3228]: send attr helo_name = [192.168.0.10] postfix/smtpd[3228]: send attr sender = guest@example.pl postfix/smtpd[3228]: send attr recipient = 22222@gmail.com postfix/smtpd[3228]: send attr recipient_count = 0 postfix/smtpd[3228]: send attr queue_id = postfix/smtpd[3228]: send attr instance = c9c.5584b989.ab0c0.0 postfix/smtpd[3228]: send attr size = 368 postfix/smtpd[3228]: send attr etrn_domain = postfix/smtpd[3228]: send attr stress = postfix/smtpd[3228]: send attr sasl_method = PLAIN postfix/smtpd[3228]: send attr sasl_username = guest@example.pl postfix/smtpd[3228]: send attr sasl_sender = postfix/smtpd[3228]: send attr ccert_subject = postfix/smtpd[3228]: send attr ccert_issuer = postfix/smtpd[3228]: send attr ccert_fingerprint = postfix/smtpd[3228]: send attr ccert_pubkey_fingerprint = postfix/smtpd[3228]: send attr encryption_protocol = TLSv1 postfix/smtpd[3228]: send attr encryption_cipher = ECDHE-RSA-AES256-SHA postfix/smtpd[3228]: send attr encryption_keysize = 256 postfix/smtpd[3228]: 127.0.0.1:10031: wanted attribute: action postfix/smtpd[3228]: input attribute name: action postfix/smtpd[3228]: input attribute value: DEFER postfix/smtpd[3228]: 127.0.0.1:10031: wanted attribute: (list terminator) postfix/smtpd[3228]: input attribute name: (end) postfix/smtpd[3228]: check_table_result: inet:127.0.0.1:10031 DEFER policy query postfix/smtpd[3228]: NOQUEUE: reject: RCPT from example.pl[88.88.88.88]: 450 4.7.1 <22222@gmail.com>: Recipient address rejected: Access denied; from=<guest@example.pl> to=<22222@gmail.com> proto=ESMTP helo=<[192.168.0.10]> postfix/smtpd[3228]: generic_checks: name=check_policy_service status=2 postfix/smtpd[3228]: >>> END Recipient address RESTRICTIONS <<< postfix/smtpd[3228]: > example.pl[88.88.88.88]: 450 4.7.1 <22222@gmail.com>: Recipient address rejected: Access denied postfix/smtpd[3228]: watchdog_pat: 0x83b23a8 

    Esempio di politica.

    Crea criteri:

     INSERT INTO policies VALUES (1, 'In Out', 10, 'In Out Policy', 0); INSERT INTO policy_members VALUES (1, 1, 'any', 'any', '' ,0); 

    Aggiungi quote – azioni:

     INSERT INTO quotas (PolicyID,Name,Track,Period,Verdict,Data) VALUES (1,'Sender:user@domain', 'Sender:user@domain', 60, 'DEFER', 'Deferring: To many messages from sender in last 60s.'); INSERT INTO quotas (PolicyID,Name,Track,Period,Verdict,Data) VALUES (1,'Recipient:@domain', 'Recipient:@domain', 60, 'REJECT', 'Quota limit reached.'); 

    Aggiungi limiti di quota:

     INSERT INTO quotas_limits (QuotasID, Type, CounterLimit) VALUES (1,'MessageCount', 12); INSERT INTO quotas_limits (QuotasID, Type, CounterLimit) VALUES (2,'MessageCount', 20); 

    Non è ansible utilizzare gui web (no PHP) – quindi non so se sia corretto. Stava cercando e provando diversi esempi di criteri, ma l'errore rimane esattamente lo stesso.

    One Solution collect form web for “Accesso negato quando implementa le politiche in (postfix + policyd2)”

    Le autorizzazioni sul file di database sqlite3 di policyd2 erano sbagliate.

    PolicyD2 ha la capacità di eseguire daemon come utente specifico, nel mio caso:

     /etc/policyd.conf # User to run this daemon as user=policyd group=policyd 

    Le autorizzazioni del database erano root: root.

     -rw-r--r-- root root policyd2.db 

    Dopo aver cambiato a policyd: ho potuto mandare e-mail.

     -rw-r--r-- policyd policyd policyd2.db 

    Ora l'errore negato di Acces ha senso.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.