Postfix: Deaktivieren Sie die Authentifizierung über Port 25

12

Bei Verwendung Postfixund IMAPauf einem Mailserver werden normalerweise mindestens 3 Ports geöffnet

25 smtp   : incoming emails from anybody (whole internet)
465 smtps : outgoing emails from authorized users (to the whole intenet)
993 imap  : imap for authorized users

Ich möchte Postfix so konfigurieren, dass autorisierte Benutzer nur E-Mails über 465 senden können. Standardmäßig ist dies nicht der Fall. Benutzer können STARTTLS auch über Port 25 verwenden. Ich möchte das deaktivieren.

Mein Plan ist es, Port 25 für die Öffentlichkeit zu verwenden, die mir E-Mails sendet

Verwenden Sie Port 465 für meine Benutzer (ich kann die Firewall verwenden, um bestimmte IP-Bereiche zuzulassen, oder einen benutzerdefinierten Port verwenden).

Dies würde verhindern, dass Port 25 von Brute-Force-Angriffen ausgenutzt werden kann, bei denen Hacker versuchen, Benutzer / Passwort zu erraten. Port 25 würde Benutzer / Passwort einfach nicht akzeptieren, selbst wenn es gültig wäre. Und da Port 465 durch eine Firewall eingeschränkt ist, können Hacker 465 auch nicht ausnutzen.

Ist das in Postfix möglich?

Ich verwende Postfix 2.9.6-2 auf Debian Wheezy

Martin Vegter
quelle
1
Ich weiß, dass dies alt ist, aber Sie sollten immer Port 587 (Übermittlung) zulassen, da dies der richtige Port ist.
lbutlr

Antworten:

13

WARNUNG:
Die Anforderung entspricht nicht den bewährten Sicherheitsmethoden, da Sie TLS (Verschlüsselung) an Ihrem Haupt-Mail-Relay-Port deaktivieren und über diesen Port gesendete Daten für Listener von Drittanbietern und / oder Änderungen während des Flugs verfügbar machen. Die folgende Antwort erfüllt die Anforderung, aber für die beste Vorgehensweise sind STARTTLS auch für die Port 25-Verbindung erforderlich.

Die master.cfDatei /etc/postfix/master.cfsteuert (normalerweise ) den Start und die Konfiguration bestimmter Postfix-Dienste. Eine Konfiguration wie diese in dieser Datei macht laut Dokumentation das, was Sie wollen:

smtp  inet  n  -  -  -  -  smtpd
  -o smtpd_tls_security_level=none
  -o smtpd_sasl_auth_enable=no

smtps inet  n  -  -  -  -  smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

Diese Konfiguration deaktiviert die Authentifizierung und die STARTTLS-Option an Port 25. Sie aktiviert die STARTTLS-Option an Port 465, erfordert die Verwendung von STARTTLS, aktiviert die Authentifizierung und ermöglicht Clients nur dann eine Verbindung, wenn sie authentifiziert sind.

Sie können auch die smtpd_tls_wrappermodeOption prüfen, echte TLS-Verbindungen (und keine STARTTLS-Verbindungen) zu erzwingen.

Beachten Sie, dass diese Art der Konfiguration die Verfolgung der Postfix-Konfiguration etwas erschweren kann (Optionen können in festgelegt main.cfund dann überschrieben werden master.cf). Die andere Option besteht darin, mehrere Postfix-Instanzen mit jeweils eigenen main.cfKonfigurationsdateien auszuführen, in denen diese Optionen angegeben sind.

Jagd
quelle
1
Wenn widersprüchliche Optionen festgelegt würden main.cf, welche würden bevorzugt? Nach dem, was Sie sagen, scheint es, dass dies master.cfaußer Kraft gesetzt wird main.cf. Ist das richtig?
Martin Vegter
1
Die -oOptionen überschreiben die in den Konfigurationsdateien. Die master.cfDatei koordiniert den Start von Prozessen. Wenn Sie die Prozesse von Hand mit den -oOptionen starten, überschreiben sie alle angegebenen Konfigurationsdateien.
Jagd
Wird -o smtpd_tls_security_level=noneTLS nicht beendet / alles wird einfach, wenn ein Server versucht, E-Mails oder eine andere Server-zu-Server-SMTP-Verbindung an Port 25 weiterzuleiten?
TCB13
Das -o smtpd_tls_security_level=nonewird in der Tat verhindert STARTTLS von der Arbeit an Port 25 und damit die gesamte Kommunikation in Klartext machen. Das hat die Frage gestellt.
Jagd
Ich stimme dies aus dem oben genannten Grund immer noch ab. Die Erfüllung der Anforderung von OP ist in Ordnung, aber Sie sollten eine Großbuchstabenwarnung hinzufügen, die eine sehr schlechte Idee ist. (Bitte lassen Sie mich Sie stattdessen abstimmen, indem Sie das hinzufügen. ;-))
ntninja