Postfix SMTP vs SMTPD -o Optionen

Postfix SMTP vs SMTPD -o Optionen

Die folgende Tabelle zeigt, welche Protokolle/Ports in jedem Schritt der E-Mail-Übertragung verwendet werden können. Die Tabelle gibt auch an, welche Protokolle/Ports ich in meinem Server-Setup verwenden möchte, postfixindem ich sie mit ✘ oder ✔ markiere.

N Betrieb Absender Empfänger mögliche Protokolle/Ports
1 "Mail-Übermittlung" MUA MSA (✘) SMTP 25
(✘) SMTP 25& STARTTLS
(✘) SMTP 587& STARTTLS
(✔) SMTPS 465& implizites TLS
2 "Server intern" MSA MTA /
3... "Mail-Relay" MTA MTA (✘) SMTP 25
(✘) SMTP 25& STARTTLS
(✔) SMTP 25& STARTTLS& DANE
n -2 "Server intern" MTA MDA /
n - 1 "Server intern" MDA MS /
N "Mailbox-Zugriff" MS MUA (✘) POP3 110& STARTTLS
(✘) POP3S 995& implizites TLS
(✘) IMAP 143& STARTTLS
(✔) IMAPS 993& implizites TLS

Bevor ich fortfahre, möchte ich Sie bitten, zwei meiner Annahmen zuzustimmen oder nicht:

ANNAHME A:

Ich nehme an, vonDasalte Antwort, dass PostfixService 465wurde smtpsirgendwo auf dem Weg umbenannt. Daher verwende ichService smtpsum zuzuhören"Mail-Übermittlung"SMTPS-Port 465.

ANNAHME B:

Der Anfang meiner /etc/postfix/master.cfDatei sieht folgendermaßen aus:

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (no)    (never) (100)
# ==========================================================================
smtp      inet  n       -       y       -       -       smtpd
smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_security_level=encrypt
  -o smtpd_use_tls=yes
  -o smtpd_tls_wrappermode=yes
  -o smtpd_tls_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
  -o smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
  -o smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

  ...

ich leseHierDas:

postfix/smtpd- ist SMTP-Daemon-Prozess für"eingehende Post"und leiten Sie es an den entsprechenden internen Speicherort weiter.

postfix/smtp- ist SMTP-Daemon-Prozess für"ausgehende Mail"in die Welt hinaus.

Ich gehe jetzt davon aus, dass postfix/smtpdauf Port lauscht 465für"eingehende E-Mail"von lokalen Benutzern und auf Port 25für"eingehende E-Mail"von überall sonst. Ich gehe auch davon aus, dass postfix/smtpder Port verwendet wird 25, an den gesendet wird"ausgehende E-Mail".

PROBLEM:

Als ich Postfix konfigurierte, habe ich irgendwo im Laufe der Zeit einen gesamten TLS-Abschnitt darin deaktiviert, /etc/postfix/main.cfweil ich nicht wollte, dass globale Einstellungen meine Einstellungen für einzelne Dienste, die ich darin festgelegt habe, durcheinanderbringen /etc/postfix/master.cf.

Wie Sie sehen, habe ich -ofür den Dienst keine Optionen verwendet, obwohl ich für den Dienst smtpviele Optionen verwendet habe . Was mich am meisten verwirrt, ist, dass ich in der offiziellen Dokumentation viele fast duplizierte Optionen finden kann, wie:-osmtps/etc/postfix/main.cf

Laut dem zitierten Text müsste ich verwenden:

  • diejenigen, die mit smtp_für beginnen"ausgehende Mail"
  • diejenigen, die mit smtpd_für beginnen"eingehende Post".

Wenn meine Philosophie richtig ist, sollte mein aktuelles Setup funktionieren. Teilweise funktioniert es, weil ich mit einem opensslBefehl auf einem anderen Computer wie diesem einen TLS 1.3-Handshake erreichen kann:

┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘
  └─> openssl s_client -connect pis.eu:465 -tls1_3

CONNECTED(00000003)
depth=0 CN = tek-eu
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = tekpi-eu
verify return:1
---
Certificate chain
 0 s:CN = tek-eu
   i:CN = tek-eu
---
Server certificate
-----BEGIN CERTIFICATE-----

  < REMOVED FOR CLARITY >

-----END CERTIFICATE-----
subject=CN = tek-eu

issuer=CN = tek-eu

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 1286 bytes and written 313 bytes
Verification error: self signed certificate
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 18 (self signed certificate)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384
    Session-ID: 45F832A32F5F27CEAA41B271F28545ECA98DC1AC61F51A484123DD28B2535C30
    Session-ID-ctx: 
    Resumption PSK: 3175AD1641D8D77511FD5C76508D339D01F5D1CE02DBF90F33FEBD334A7E76FD44B52808A846C281616469143977B6F1
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:

    < REMOVED FOR CLARITY >

    Start Time: 1607602078
    Timeout   : 7200 (sec)
    Verify return code: 18 (self signed certificate)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
220 mail.pis.eu -------> "HELLO!"

Oben habe ich einen Parameter verwendet -tls1_3, der funktionieren sollte, da mein Konfigurationsparameter -o smtpd_tls_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1jeden anderen Handshake als TLS 1.2 und TLS 1.3 verbieten sollte. Aber wenn ich den Parameter ändere, -tls1_3um -tls1einen TLS 1-Handshake auszuprobieren, funktioniert es!?

┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘
  └─> openssl s_client -connect pis.eu:465 -tls1
CONNECTED(00000003)
depth=0 CN = tek-eu
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = tek-eu
verify return:1
---
Certificate chain
 0 s:CN = tek-eu
   i:CN = tek-eu
---
Server certificate
-----BEGIN CERTIFICATE-----

  < REMOVED FOR CLARITY >

-----END CERTIFICATE-----
subject=CN = tek-eu

issuer=CN = tek-eu

---
No client certificate CA names sent
Peer signing digest: MD5-SHA1
Peer signature type: RSA
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 1385 bytes and written 227 bytes
Verification error: self signed certificate
---
New, TLSv1.0, Cipher is ECDHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1
    Cipher    : ECDHE-RSA-AES256-SHA
    Session-ID: C1E39786A475DA48ED222EAB5247CCE57D49875AE9A442A73027FBE1F9BB7C4D
    Session-ID-ctx: 
    Master-Key: 5900F37B79A7949871008A827904F2BA907F42EE8BBC73328CD49DF7E37AF2687C06B316922D7D76DDC36FA1DF912E7A
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:

    < REMOVED FOR CLARITY >
    
    Start Time: 1607602884
    Timeout   : 7200 (sec)
    Verify return code: 18 (self signed certificate)
    Extended master secret: yes
---
220 mail.pis.eu -------> "HELLO!"

Wie kommt es, dass das klappt? Was mache ich falsch? Momentan hat mein Setup nur -o smtpd_Optionen. Sollte ich auch -o smtp_Optionen verwenden? Wo sollte ich diese platzieren?

Wie Sie sehen, bin ich verwirrt ...

verwandte Informationen