Сертификат на порте 25 при попытке защитить SMTP с ПОСТФИКСОМ

Фон

Я думаю, что я близко к получению моих ПОСТФИКСНЫХ настроек к моей симпатии. Я работал, некоторый SMTP онлайн проверяет, и мой SMTP проходит все основные тесты безопасности.

Я получаю предупреждение сертификата в Thunderbird. Я использую временный самоподписанный сертификат, таким образом, я знаю, почему исключение сертификата подходит. Это не моя проблема.

Цель

Я хочу отключить любую незашифрованную и неаутентифицируемую почту, отправляющую на сервере SMTP. Я хочу использовать только TLS.

Проблема

Я не уверен, что у меня есть проблема, но когда я соединяюсь с Thunderbird, я получаю предупреждение о сертификате на порте 25. Я получаю это предупреждение, независимо от которой безопасности соединения или порта я использую. Я попробовал SSL/TLS на порте 465, STARTTLS на 587 и ни один на порте 25. Я ожидал бы, что сертификат будет на порте 465 или 587.

Другой трудный вопрос для меня - то, почему я могу все еще установить Thunderbird для использования порта 25 без безопасности, и это исключение безопасности все еще обнаруживается после отправки.

Отправка этой электронной почты все еще шифруется?
У меня есть проблема, о которой я не знаю? Как я могу заставить свой сервер отвечать на порте 465 вместо этого?

postfix/master.cf

smtp      inet  n       -       -       -       -       smtpd
  -o smtpd_tls_auth_only=yes
  -o smtp_sasl_auth_enable=no
  -o smtp_tls_security_level=none

# SMTP with TLS on port 587. Currently commented.
submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_enforce_tls=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination,reject
  -o smtpd_sasl_tls_security_options=noanonymous
  -o smtpd_sasl_security_options=noanonymous,noplaintext

# SMTP over SSL on port 465.
smtps     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_auth_only=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination,reject
  -o smtpd_sasl_security_options=noanonymous,noplaintext
  -o smtpd_sasl_tls_security_options=noanonymous

postconf-n

append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
content_filter = amavis:[127.0.0.1]:10024
disable_vrfy_command = yes
dovecot_destination_recipient_limit = 1
enable_original_recipient = no
header_checks = regexp:/etc/postfix/header_checks
inet_interfaces = all
mailbox_size_limit = 0
maximal_backoff_time = 8000s
maximal_queue_lifetime = 7d
minimal_backoff_time = 1000s
mydestination =
myhostname = localbark.info
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mynetworks_style = host
myorigin = /etc/hostname
queue_directory = /var/spool/postfix
readme_directory = no
recipient_delimiter = +
smtp_helo_timeout = 60s
smtp_sasl_security_options = noplaintext, noanonymous
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = may
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org, reject_rbl_client blackholes.easynet.nl, reject_rbl_client dnsbl.njabl.org
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_delay_reject = yes
smtpd_hard_error_limit = 12
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_hostname, reject_invalid_hostname, permit
smtpd_recipient_limit = 16
smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023, permit
smtpd_relay_restrictions = reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023, permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, warn_if_reject reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining, permit
smtpd_soft_error_limit = 3
smtpd_tls_CAfile = /rootCA.pem
smtpd_tls_cert_file = /device.crt
smtpd_tls_key_file = /device.key
smtpd_tls_loglevel = 3
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
unknown_local_recipient_reject_code = 450
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/mysql_virtual_alias_domainaliases_maps.cf
virtual_gid_maps = static:8
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf, mysql:/etc/postfix/mysql_virtual_mailbox_domainaliases_maps.cf
virtual_transport = dovecot
virtual_uid_maps = static:150

Jan 27 обновления, 2015

Мой почтовый сервер использует STARTTLS, но только на порте 25. И почта отправляется успешно на порте 25. Когда я пытаюсь использовать STARTTLS на 587, мой почтовый клиент (Thunderbird) испытывает таймаут. Вот то, что находится в файле mail.log

Jan 27 11:55:21 mail2 postfix/submission/smtpd[2229]: initializing the server-side TLS engine
Jan 27 11:55:22 mail2 postfix/submission/smtpd[2229]: warning: hostname XXXXXXX.com does not resolve to address XX.XX.XX.XX: Name or service not known
Jan 27 11:55:22 mail2 postfix/submission/smtpd[2229]: connect from unknown[XX.XXX.XX.XX]
Jan 27 11:55:22 mail2 postfix/submission/smtpd[2229]: setting up TLS connection from unknown[XX.XXX.XX.XX]
Jan 27 11:55:22 mail2 postfix/submission/smtpd[2229]: unknown[XX.XXX.XX.XX]: TLS cipher list "aNULL:-aNULL:ALL:!EXPORT:!LOW:+RC4:@STRENGTH"
Jan 27 11:55:22 mail2 postfix/submission/smtpd[2229]: SSL_accept:before/accept initialization
Jan 27 11:55:22 mail2 postfix/submission/smtpd[2229]: read from 7F3F40B73C60 [7F3F40B86E70] (11 bytes => -1 (0xFFFFFFFFFFFFFFFF))
Jan 27 11:57:11 mail2 postfix/submission/smtpd[2229]: read from 7F3F40B73C60 [7F3F40B86E70] (11 bytes => 0 (0x0))
Jan 27 11:57:11 mail2 postfix/submission/smtpd[2229]: SSL_accept error from unknown[XX.XXX.XX.XX]: lost connection
Jan 27 11:57:11 mail2 postfix/submission/smtpd[2229]: lost connection after CONNECT from unknown[XX.XXX.XX.XX]
Jan 27 11:57:11 mail2 postfix/submission/smtpd[2229]: disconnect from unknown[XX.XXX.XX.XX]

И вот то, что удаленный компьютер получает для telnet к 587

telnet mail.example.com 587
Trying xxx.xxx.xxx.xx...
Connected to mail.example.com.
Escape character is '^]'.
ehlo testing
Connection closed by foreign host.
0
задан 27 January 2015 в 19:15
3 ответа

Похоже, вы путаете SMTPD с SMTP. Эти два зверя имеют разные цели в терминах постфикса. smtpd - это SMTP-сервер, используемый для получения электронной почты, он привязан к определенному порту (например, 25, 587, 465). smtp был SMTP-клиентом, который использовался для отправки электронной почты, он подключается к порту SMTP-сервера.

Еще одна путаница связана с STARTTLS, SMTPS и электронной почтой без шифрования. По умолчанию postfix будет отправлять и получать электронную почту без шифрования. Для метода шифрования SMTP имеет две схемы: STARTTLS и SMTPS. С STARTTLS клиент инициирует соединение с незашифрованной формой и обновит его до зашифрованного позже. Теперь SMTPS для SMTP был похож на HTTPS для HTTP. В отличие от STARTTLS, клиент инициирует соединение путем согласования TLS, а затем запускает чат SMTP поверх TLS. Обычно smtpd с возможностью STARTTLS прослушивает порт 587, а STMPS - порт 465. Для получения дополнительной информации см. Этот вопрос SO: В чем разница между портами 465 и 587?

Теперь мы поговорим о постфиксе. По умолчанию каждый процесс в postfix получает конфигурацию из main.cf (вы можете просмотреть изменения через postconf -n , как указано выше). Конечно, вы можете переопределить постфиксную службу через master.cf , как вы это делаете для трех процессов smtpd для разных портов. В этом случае вы хотите переопределить параметр, чтобы

  • порт 25 (smtp) не выдавал предупреждения о сертификате и не предлагал STARTTLS
  • порт 587 (отправка) должен предлагать STARTTLS и выдавать предупреждение о сертификате
  • порт 465 (smtps) должен взаимодействовать с SMTPS и выдает предупреждение о сертификате

Чтобы отключить предупреждение о сертификате на порту 25, просто укажите smtpd_tls_security_level = none как

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

Вы можете заметить, что я заменяю smtp_ параметр с smtpd_ . См. Официальную документацию о smtpd_tls_security_level .

Чтобы включить SMTPS для порта 465, используйте параметр smtpd_tls_wrappermode = yes . Ваша конфигурация выше выглядит нормально.

Теперь, поскольку нам нужен STARTTLS (не SMTPS) в порту 587, вам не нужно указывать smtpd_tls_wrappermode = yes в службе отправки. Удалите его.

Ошибка, возникающая при подключении к порту 587, была вызвана параметром smtpd_tls_wrappermode . Postfix ожидает, что вы будете разговаривать с зашифрованным трафиком, и вы укажете команду в виде обычного текста.

1
ответ дан 4 December 2019 в 13:53

] Параметр -o smtpd_tls_wrappermode = yes заставлял почтовый сервер не отвечать на протокол sumission . Как только я удалил этот параметр в master.cf, EHLO получил ответ на telnet на порт 587, и почтовый клиент Thunderbird успешно отправил почту на порт 587 вместо 25. Итак, вот мой фрагмент master.cf для отправки ( TLS) протокол:

submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_enforce_tls=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination,reject
  -o smtpd_sasl_tls_security_options=noanonymous
  -o smtpd_sasl_security_options=noanonymous,noplaintext
#  -o smtpd_tls_wrappermode=yes # This one was the issue*****

Мне интересно, не могу ли я просто не видеть, где это вызывает проблему. Я не нашел никаких ссылок в документации по postfix или при поиске через serverfault.com, Google и т. Д.

Надеюсь, это поможет некоторым несчастным неудачникам в будущем. : -)

1
ответ дан 4 December 2019 в 13:53

Помимо конфигурации постфикса, вы должны использовать такой инструмент, как https://www.wireshark.org/ , чтобы проверить, что на самом деле происходит во время передачи. Вы также должны увидеть STARTTLS и (не) зашифрованный трафик.

0
ответ дан 4 December 2019 в 13:53

Теги

Похожие вопросы