exim
ist leistungsfähig und flexibel genug, um in jeder gewünschten Rolle zu agieren. Für normale SMTP-Vorgänge ist das einzige Szenario, das für die Authentifizierung erforderlich ist, "jemand möchte die Nachricht über mich senden oder weiterleiten". Einreichung und Weiterleitung sollten stark eingeschränkt sein, um eine Exkommunikation durch DNSBLs zu verhindern. Wenn exim
ein Subnetz verwendet wird, ist s & r normalerweise auf dieses Subnetz beschränkt. Wenn Client-Hosts jedoch mit dynamisch geänderten IPs aus verschiedenen Subnetzen über das Internet wandern, besteht die einzige Möglichkeit, Clients zu beschränken, in der Authentifizierung.
Zunächst müssen Sie die SMTP-Verschlüsselung mit SSL / TLS aktivieren
daemon_smtp_ports = 25 : 465 : 587 tls_on_connect_ports = 465 tls_certificate = /path/exim.crt tls_privatekey = /path/exim.key
Selbstsigniertes Paar, das von generiert openssl
wird, reicht aus. Die Verschlüsselung ist eine Option für einfaches SMTP an Port 25 oder MSA an 587 und obligatorisch für SMTPS an 465.
Die Authentifizierung ist nur für verschlüsselte Clients möglich, um zu verhindern, dass der Anmeldepass über eine nicht verschlüsselte Verbindung geleitet wird:
auth_advertise_hosts = ${}{}{*}}
Jeder Nicht-Emtpy $tls_cipher
, der beim Einrichten von TLS generiert wird, ist ein gutes Zeichen, um die Authentifizierung zu beginnen.
Jetzt können wir die ACL verwenden:
acl_smtp_connect = acl_conn acl_smtp_rcpt = acl_rcpt acl_smtp_data = acl_data begin acl ..... acl_rcpt: accept authenticated = * accept hosts = : +relay_from_hosts require domains = +relay_to_domains : +local_domains deny
Hier akzeptieren wir die Nachricht für s & r in drei Fällen:
- wenn der Client authentifiziert ist
- wenn der Client aus der Liste der bekannten Hosts / Subnetze stammt
- Wenn die Nachricht eine eingehende Nachricht für eine unserer Domains ist.
- Letzteres
deny
ist nicht unbedingt erforderlich, da die dritte Regel diesdeny
implizit tut, aber zum besseren Verständnis möchte ich in allen Fällen die ausdrückliche endgültige Annahme / Ablehnung platzieren.
Die anderen MTAs werden im Allgemeinen durch eine dritte Regel übergeben, unabhängig davon, ob sie authentifiziert sind oder nicht. Wir können keine Authentifizierung von den anderen MTAs anfordern, da dies von RFCs nicht vorgeschrieben ist. Wir beschränken jedoch alle äußeren MTAs ausschließlich auf die Nachrichten für unsere Domänen. Wir leiten ihre Nachrichten unter keinen Umständen an die anderen Domains weiter.