Ich habe zwei mögliche Methoden gefunden, aber vielleicht gibt es einen besseren Weg.
1. Methode:
smtpd_sender_restrictions =
reject_sender_login_mismatch,
permit_sasl_authenticated,
permit
Jetzt habe ich meine geändert smtpd_sender_login_maps
, um einen Eintrag zurückzugeben, admin
ob die Domäne in der Domänentabelle vorhanden ist. Auf diese Weise wird ein Datensatz zurückgegeben, auch wenn die E-Mail-Adresse nicht als Maibox / Alias vorhanden ist, jedoch nicht, wenn eine fremde Domain die Absenderadresse ist.
table = domain
query = SELECT username AS allowedUser FROM mailbox WHERE username="%s" AND deleted_at IS NULL \
UNION SELECT goto FROM alias WHERE address="%s" AND active = 1 \
UNION select 'admin' from domain where domain = '%d'
2. Methode:
Dieser Ansatz verwendet eine check_sender_access
Suche, die eine Ablehnungsaktion zurückgibt, wenn es sich bei der Domäne um eine virtuelle Domäne handelt und der Benutzer nicht sasl_authenticated
.
smtpd_sender_restrictions =
reject_sender_login_mismatch,
permit_sasl_authenticated,
check_sender_access proxy:mysql:$config_directory/mysql_reject_virtual_domains.cf,
permit
mysql_reject_virtual_domains.cf
::
table = domain
query = select 'Reject 530 SMTP authentication is required' from domain where domain = '%d'
3. Methode (danke an masegaloeh ):
smtpd_sender_restrictions =
reject_sender_login_mismatch,
permit_sasl_authenticated
reject_unlisted_sender,
permit
Ich weiß nicht, wie viele CPU-Lade- / SQL-Abfragen Ablehnung_unlisted_sender generiert, da es ziemlich viele Dinge überprüft:
Fordern Sie den Postfix SMTP-Server auf, E-Mails von unbekannten Absenderadressen abzulehnen, auch wenn keine explizite reject_unlisted_sender
Zugriffsbeschränkung angegeben ist. Dies kann eine Explosion gefälschter E-Mails von Würmern oder Viren verlangsamen.
Eine Adresse wird immer dann als "bekannt" betrachtet, wenn sie einem virtuellen (5) Alias oder einer kanonischen (5) Zuordnung entspricht.
- Die Absenderdomäne entspricht $ mydestination, $ inet_interfaces oder $ proxy_interfaces, aber der Absender ist nicht in $ local_recipient_maps aufgeführt, und $ local_recipient_maps ist nicht null.
- Die Absenderdomäne stimmt mit $ virtual_alias_domains überein, der Absender ist jedoch nicht in $ virtual_alias_maps aufgeführt.
- Die Absenderdomäne stimmt mit $ virtual_mailbox_domains überein, aber der Absender ist nicht in $ virtual_mailbox_maps aufgeführt, und $ virtual_mailbox_maps ist nicht null.
- Die Absenderdomäne stimmt mit $ Relay_Domains überein, aber der Absender ist nicht in $ Relay_recipient_maps aufgeführt, und $ Relay_recipient_maps ist nicht null.
reject_sender_login_mismatch
undreject_unlisted_sender
?