Puncte:3

Respingeți e-mailurile care nu reușesc rezoluția inversă a numelui de gazdă

drapel us

Serverul meu Postfix primește spam de la un set de nume de domenii în continuă schimbare, dar cu un model consistent în fișierul jurnal care începe cu linia avertisment: numele de gazdă X nu se rezolvă la adresa Y. Niciun e-mail legitim (ham) nu are acest model, așa că aș dori să blochez e-mailurile asociate cu acest mesaj.

Există vreo modalitate de a bloca aceste e-mailuri în întregime în configurația Postfix, cum ar fi fișierul main.cf?

Iată o secțiune a fișierului jurnal care arată modelul prezent când sosește spam-ul:

10 mai 21:47:46 localhost postfix/smtpd[313324]: avertisment: numele de gazdă trojan.kringeas.co.uk nu se rezolvă la adresa 104.129.30.93: Numele sau serviciul nu se cunoaște
10 mai 21:47:46 localhost postfix/smtpd[313324]: conectați de la necunoscut[104.129.30.93]
10 mai 21:47:46 localhost postfix/smtpd[313324]: 2AF1D101825: client=unknown[104.129.30.93]
10 mai 21:47:46 localhost postfix/cleanup[313331]: 2AF1D101825: message-id=<dO7GXAfoNocg1hEkeyqMfulg7RZ0aamifKqrB8JpUH8.ofI9TFu7lSCnGASA.mewicxT5
10 mai 21:47:46 localhost postfix/qmgr[294981]: 2AF1D101825: from=<[email protected]>, size=4241, nrcpt=1 (coada activă)
10 mai 21:47:46 localhost postfix/pipe[313333]: 2AF1D101825: to=<[email protected]>, orig_to=<[email protected]>, relay=dovecot, delay=0.11, delays=0.08/0.01 /0/0.02, dsn=2 .0.0, status=trimis (livrat prin serviciul porumbel)
10 mai 21:47:46 localhost postfix/qmgr[294981]: 2AF1D101825: eliminat
10 mai 21:47:46 localhost postfix/smtpd[313324]: deconectare de la necunoscut[104.129.30.93] ehlo=1 mail=1 rcpt=1 data=1 quit=1 comenzi=5

Iată fișierul meu main.cf: Rețineți că include: smtpd_client_restrictions = reject_unknown_reverse_client_hostname pe care l-am încercat după ce am citit acest post.

director_codă = /var/spool/postfix
director_comandă = /usr/sbin
daemon_directory = /usr/lib/postfix/sbin
directorul_date = /var/lib/postfix
mail_owner = postfix
inet_protocols = all
mydestination = localhost, localhost.localdomain
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail.postfix
calea_newaliases = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = nr
director_manpage = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES


myhostname = xxxx.net
rețelele mele = 127.0.0.0/8
mesaj_size_limit = 30720000
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf, hash:/etc/postfix/virtual
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_client_restrictions = reject_unknown_reverse_client_hostname
smtpd_sasl_type = porumbel
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = da
broken_sasl_auth_clients = da
smtpd_sasl_authenticated_header = da
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_use_tls = da
smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
virtual_create_maildirsize = da
virtual_maildir_extended = da
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_maps_maps_recipient_maps_recipient_works
virtual_transport = porumbel
dovecot_destination_recipient_limit = 1
inet_interfaces = all
smtp_tls_security_level = mai
disable_vrfy_command = da
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
Puncte:7
drapel za

Doar înlocuiți

smtpd_client_restrictions = reject_unknown_reverse_client_hostname

cu

smtpd_client_restrictions = reject_unknown_client_hostname .

De la Manual Postfix:

reject_unknown_client_hostname (cu Postfix < 2.3: reject_unknown_client)
    Respinge cererea când 
      1) maparea adresei IP a clientului->nume eșuează sau 
      2) maparea nume->adresă eșuează sau
      3) maparea nume->adresă nu se potrivește cu adresa IP a clientului.
    Aceasta este o restricție mai puternică decât reject_unknown_reverse_client_hostname 
    caracteristică, care se declanșează numai în condiția 1) de mai sus.
    Parametrul unknown_client_reject_code specifică codul de răspuns pentru
    cereri respinse (implicit: 450). Răspunsul este întotdeauna 450 în cazul în care
    adresă->nume sau nume->căutarea adresei a eșuat din cauza unei probleme temporare. 

Cu toate acestea, aceasta convingere este greșită:

Niciun e-mail legitim (ham) nu are acest model, așa că aș dori să blochez e-mailurile asociate cu acest mesaj.

Clienții mei se plâng din când în când și se întâmplă ca uneori numele de gazdă inversă să nu fie în conformitate cu adresa HELO, sau să se rezolve la altă adresă sau să nu se rezolve deloc, iar asta este e-mail perfect solicitat. Practic, RFC-urile actuale impun doar existenţă a înregistrării PTR a numelui de gazdă HELO, în timp ce nu spuneți nimic despre valoarea sau existența înregistrării A sub acel nume sau valoarea sa. Serverul legitim din punct de vedere tehnic poate omite orice altceva și poate respecta în continuare RFC-urile, în timp ce îl blocați cu această configurație. Pentru a remedia acest lucru, am pus toate acele verificări smtpd_recipient_restrictions, si adaugat check_sender_access hash://... imediat înaintea acesteia, astfel încât să pot exclude în mod selectiv unele e-mailuri din această verificare după numele de domeniu al expeditorului sau adresa de e-mail completă a expeditorului:

smtpd_client_restrictions = [implicit]
smtpd_recipient_restrictions = 
...
    check_sender_access hash:/etc/postfix/spam_exceptions,
    reject_unknown_client_hostname,
...

Nu poți folosi check_sender_access în smtpd_client_restrictions deoarece obțineți numai adresa plicului expeditorului pe care să o verificați în timpul MAIL de la: fază.

Acest spam_exceptions fișierul are structura simplă:

afectat.domeniu OK
...

Doar adaug domenii în acest fișier când rezolv reclamațiile. Și am deja o colecție destul de mare!

drapel cn
Da, RFC ar trebui să fie mai explicit în acest sens.
drapel us
Mulțumesc pentru această metodă.Un lucru de menționat este ca să fac asta să funcționeze, aveam nevoie pentru a rula „postmap /etc/postfix/spam_exceptions” și „systemctl reload postfix”. Acest lucru poate fi necesar după fiecare modificare a spam_exceptions.
Nikita Kipriyanov avatar
drapel za
Da. De asemenea, ar putea fi configurat pentru a utiliza date de ex. MySQL, PostgreSQL, SQLite, LDAP etc., caz în care orice actualizare a tabelului nu va necesita rularea și reîncărcarea postmap. // De asemenea, fiți foarte precauți cu această configurație. `reject_unauth_destination` ar trebui să apară **înainte de** acest `check_sender_access`.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.