Назад | Перейти на главную страницу

Postfix STARTTLS шифрование перед аутентификацией

Я изо всех сил стараюсь настроить Postfix с STARTTLS, используя порт 25. Теперь проблема в том, что STARTTLS не работает на порту 25.

250-VRFY
250-ETRN
250-XXXXXXXA
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH LOGIN
334 xxxxxxxxxx
334 xxxxxxxxxxxxx
235 2.7.0 Authentication successful
RSET
250 2.0.0 Ok
MAIL FROM: <user1@domain.com>
250 2.1.0 Ok
RCPT TO: <user2@domain.com>

При использовании порта 587 есть функция STARTTLS, но я не вижу «220 2.0.0 Готов к запуску TLS».

STARTTLS должен запускаться перед аутентификацией. Если устройство / клиент не поддерживает STARTTLS, аутентификация должна быть отклонена автоматически.

Так должно быть и с портом 25.

250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
220 2.0.0 Ready to start TLS
250-AUTH PLAIN LOGIN
AUTH PLAIN am9obkBleGFtcGxlLm9yZwBqb2huQGV4YW1wbGUub3JnAHN1bW1lcnN1bg==

Посоветуйте, пожалуйста, где ошибка? Я что-то упустил?

Можно ли использовать STARTTLS с портом 25?

main.cf

smtp_tls_security_level = may
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/postfix/certs/key.key
smtpd_tls_cert_file = /etc/postfix/certs/crt.crt
smtpd_tls_CAfile = /etc/postfix/certs/mcabundle.ca-bundle
smtp_tls_key_file = /etc/postfix/certs/key.key
smtp_tls_cert_file = /etc/postfix/certs/crt.crt
smtp_tls_CAfile = /etc/postfix/certs/ca-bundle
tls_random_source = dev:/dev/urandom
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = cyrus
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
smtpd_delay_reject = yes
smtpd_client_restrictions = permit_sasl_authenticated, reject

master.cf

smtp      inet  n       -       n     -       -       smtpd
#smtp      inet  n       -       n       -       1       postscreen
#smtpd     pass  -       -       n       -       -       smtpd
#dnsblog   unix  -       -       n       -       0       dnsblog
#tlsproxy  unix  -       -       n       -       0       tlsproxy
#submission inet n       -       n       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes

Чтобы получить TLS на порт 25, поместите smtpd_tls_security_level = may в main.cf.
Вы также должны разместить smtpd_tls_auth_only = yes в main.cf, так что невозможно выполнить аутентификацию без предварительного шифрования соединений.


Дополнительно рекомендую настроить свой master.cf кому:

smtp      inet  n       -       n     -       -       smtpd
#smtp      inet  n       -       n       -       1       postscreen
#smtpd     pass  -       -       n       -       -       smtpd
#dnsblog   unix  -       -       n       -       0       dnsblog
#tlsproxy  unix  -       -       n       -       0       tlsproxy
submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes

После этого изменения порт отправки (587 / tcp) будет активен и потребует шифрования. Так же будет легче отличить в журналах.