Dar... ai descoperit deja aproape totul!
Ai un suplimentar smtpd
serviciu care este de obicei configurat în maestru.cf
ca aceasta:
smtp:10025 inet n - n - - smtpd
...
Amavis este configurat să reinjecteze e-mailurile înapoi 127.0.0.1:10025
(sau orice port utilizați). Ideea este următoarea: rulați un serviciu privat special pe un port firewall care nu este implicit pentru a accepta numai corespondența procesată.
Acest tip de configurație funcționează astfel:
- Unul din Postfix
smtpd
cazuri, schimbător de corespondență sau trimitere, primește corespondență din exterior și îl înregistrează pentru prima dată (și serviciul de politici de apeluri)
- Apoi, conform unei configurații, îl împinge în Amavis
- Amavis, după procesare, reinjectează e-mailul înapoi la Postfix, dar îi dă la special
smtpd
instanță pentru care este configurată nu dați e-mailul înapoi lui Amavis, deoarece se așteaptă ca toate e-mailurile să vină în el de la Amavis
- Acest suplimentar
smtpd
înregistrează din nou acel e-mail (și apelează serviciul de politici) și apoi îl redirecționează conform regulilor obișnuite.
Nu există nicio modalitate de a remedia înregistrarea dublă într-o astfel de configurare, deoarece este cauzată de acest mod inerent inferior de a introduce Amavis în procesare prin SMTP. Dar mai aveți o modalitate de a reduce cel puțin impactul acestei înregistrări duble. Puteți oferi suplimentar smtpd
instanță prefix de jurnal distinct, creând astfel o modalitate de a distinge care dintre ele procesează e-mailul de data aceasta. După linia în care suplimentar smtpd
serviciul este definit în maestru.cf
, adăugați linia:
-o syslog_name=postfix/reinject
(sau orice veți folosi pentru a o deosebi de altele smtpd
instanțe, schimbător de corespondență și transmitere).
De asemenea, puteți dezactiva procesarea serviciului de politici pentru această instanță, astfel încât postfwd
nu va număra corespondența de două ori. Trebuie să-ți replici totul smtpd_*_restricții
în maestru.cf
pentru acest serviciu unde, neincluzând acest serviciu de politică:
...
-o smtpd_recipient_restrictions=...,reject_unauth_destination
...
nu puneți niciodată spații maestru.cf
-o parametri!
Dezordonat, știu. Acest lucru se datorează faptului că toată această configurație cu reinjecție este dezordonată.
Este posibil să aveți deja alți parametri acolo; e ok, tot sunt necesare. Observați, de asemenea, acest lucru se schimbă doar smtpd
comportament de înregistrare; apoi plasează e-mailul în coada comună de unde alți demoni le preiau și le procesează și, deoarece nu am creat o configurație specială de logare pentru ei, nu veți putea distinge cu ușurință dacă procesează e-mailurile inițiale sau procesate de data aceasta (indiciu: ID-ul cozii de e-mail este util pentru asta). Deci aceasta este doar o remediere parțială, dar totuși este foarte utilă.
Pentru a remedia complet acea înregistrare dublă, trebuie să vă reproiectați sistemul de e-mail, astfel încât niciun mesaj să nu treacă prin el de două ori. Deci, fiecare e-mail va fi contabilizat o dată, ca prin magie. Postfix are o modalitate specială dedicată de a procesa corespondența, numită milter („filtru de e-mail”), pe care vi se recomandă să îl utilizați în loc de SMTP și reinjectare. Puteți conecta Amavis sau orice altă aplicație care acceptă milter (există o mulțime de ele) prin această interfață și veți obține o cale de rutare a corespondenței mult mai curată în sistemul de e-mail și mai puține bătăi de cap cu jurnalele și alte probleme. Postfix va respinge imediat e-mailurile spam în loc să stea la coadă, să verifice și apoi să renunțe. Citiți manualul perfect al Postfix despre Suport pentru Milter Postfix înainte de coadă