Postfix smtp против smtpd -o параметры

Postfix smtp против smtpd -o параметры

В таблице ниже показано, какие протоколы/порты можно использовать на каждом этапе передачи электронной почты. В таблице также указано, какие протоколы/порты я хочу использовать в postfixнастройках своего сервера, отметив их ✘ или ✔.

н операция отправитель получатель возможные протоколы/порты
1 "отправка по почте" МУА МСА (✘) SMTP 25
(✘) SMTP 25и STARTTLS
(✘) SMTP 587и STARTTLS
(✔) SMTPS 465и неявный TLS
2 "внутренний сервер" МСА МТА /
3... "почтовая ретрансляция" МТА МТА (✘) SMTP 25
(✘) SMTP 25& STARTTLS
(✔) SMTP 25& STARTTLS& ДЭЙН
н-2 "внутренний сервер" МТА МДА /
н - 1 "внутренний сервер" МДА РС /
н "доступ к почтовому ящику" РС МУА (✘) POP3 110и STARTTLS
(✘) POP3S 995и неявный TLS
(✘) IMAP 143и STARTTLS
(✔) IMAPS 993и неявный TLS

Прежде чем продолжить, я бы попросил вас согласиться или не согласиться с двумя предположениями:

ПРЕДПОЛОЖЕНИЕ А:

Я предполагаю, что изэтотстарый ответ, что Postfixуслуга 465переименован в smtpsгде-то по пути. Поэтому я используюуслуга smtpsдля того, чтобы слушать"отправка по почте"SMTPS-порт 465.

ПРЕДПОЛОЖЕНИЕ Б:

Верхняя часть моего /etc/postfix/master.cfфайла выглядит так:

# ==========================================================================
# 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

  ...

Я читаюздесьчто:

postfix/smtpd- это процесс-демон SMTP для"входящие сообщения на почте"и направляет его в соответствующее внутреннее местоположение.

postfix/smtp- это процесс-демон SMTP для"исходящая корреспонденция"в мир.

Итак , теперь я предполагаю, что он postfix/smtpdпрослушивает порт465"входящее письмо"от локальных пользователей и в порту 25для"входящее письмо"отовсюду. Я также предполагаю, что это postfix/smtpиспользует порт 25, куда он отправляет"исходящая электронная почта".

ПРОБЛЕМА:

Когда я где-то настраивал Postfix, я отключил внутри целый раздел TLS, /etc/postfix/main.cfпотому что не хотел, чтобы глобальные настройки мешали моим настройкам для отдельных служб, которые я установил внутри /etc/postfix/master.cf.

Как вы видите, я не использовал ни -oодной опции для сервиса , хотя для сервиса smtpя использовал много опций . Больше всего меня смущает то, что в официальной документации я могу найти много почти дублирующихся опций, таких как:-osmtps/etc/postfix/main.cf

Согласно цитируемому тексту я должен использовать:

  • те, которые начинаются с smtp_for"исходящая корреспонденция"
  • те, которые начинаются с smtpd_for"входящая почта".

Если моя философия верна, то моя текущая настройка должна работать. Частично работает, потому что я могу добиться рукопожатия TLS 1.3 с помощью opensslкоманды на другом компьютере, например:

┌───┐
│ $ │ 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!"

Выше я использовал параметр -tls1_3, который должен работать, потому что мой параметр конфигурации -o smtpd_tls_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1должен запрещать любое рукопожатие, кроме TLS 1.2 и TLS 1.3. Но если изменить параметр -tls1_3на -tls1попытку рукопожатия TLS 1, то оно успешно!?

┌───┐
│ $ │ 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!"

Как это получилось? Что я делаю не так? В настоящее время в моей настройке есть только -o smtpd_опции. Должен ли я также использовать -o smtp_опции? Где мне их разместить?

Как видите, я в замешательстве...

Связанный контент