ПримечаниеХотя все это ниже может быть познавательным, оказалось, что вся моя проблема была не в postfix, а в моем провайдере. На самом деле, я сменил провайдера в то время, о котором идет речь, и мой новый провайдер перехватывает и перезаписывает незашифрованный SMTP-трафик таким образом, что это явно нарушает STARTTLS. Я обошёл эту проблему, настроив соединение только TLS на порту 465.
STARTTLS работал с моей системой сегодня утром. Без каких-либо изменений с моей стороны система спонтанно сломалась. Я пытаюсь починить ее уже пару часов, но безуспешно.
При подключении к серверу вот что я получаю:
savanni@Orolo:~$ telnet apps.savannidgerinel.com 25
Trying 129.121.182.135...
Connected to apps.sasavanni@Orolo:~$ telnet apps.savannidgerinel.com 25
Trying 129.121.182.135...
Connected to apps.savannidgerinel.com.
Escape character is '^]'.
220 ***********************************************
ehlo dude
250-apps.savannidgerinel.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-XXXXXXXA
250-AUTH PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
^]close
telnet> close
Connection closed.
Ладно, очевидно, STARTTLS в этом списке нет. Поэтому я снова копался в своих файлах конфигурации и работал над руководствами, но это не дало мне вообще ничего. Вот моя конфигурация, связанная с tls:
smtp_tls_CAfile = /etc/ssl/certs/savannidgerinel_com_CA.pem
smtp_tls_cert_file = /etc/ssl/certs/apps.savannidgerinel.com.pem
smtp_tls_key_file = /etc/ssl/private/apps.savannidgerinel.com.key.pem
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_CAfile = /etc/ssl/certs/savannidgerinel_com_CA.pem
smtpd_tls_cert_file = /etc/ssl/certs/apps.savannidgerinel.com.pem
smtpd_tls_key_file = /etc/ssl/private/apps.savannidgerinel.com.key.pem
smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
tls_random_source = dev:/dev/urandom
Все файлы сертификатов присутствуют, закрытый ключ сервера присутствует, серверный CA присутствует, и файлы smtpd_scache.db и smtp_scache.db присутствуют. Все они доступны пользователю postfix. Кстати, вот запущенные процессы:
savanni@apps:/var/lib/postfix$ ps aux | grep postfix
root 3525 0.0 0.1 25112 1680 ? Ss 20:19 0:00 /usr/lib/postfix/master
postfix 3526 0.0 0.1 27176 1524 ? S 20:19 0:00 pickup -l -t fifo -u -c -o content_filter= -o receive_override_options=no_header_body_checks
postfix 3527 0.0 0.1 27228 1552 ? S 20:19 0:00 qmgr -l -t fifo -u
postfix 3528 0.0 0.4 46948 4144 ? S 20:19 0:00 smtpd -n smtp -t inet -u -c -o stress= -s 2
postfix 3529 0.0 0.1 27176 1628 ? S 20:19 0:00 proxymap -t unix -u
postfix 3530 0.0 0.3 38212 3176 ? S 20:19 0:00 tlsmgr -l -t unix -u -c
postfix 3531 0.0 0.1 27176 1516 ? S 20:19 0:00 anvil -l -t unix -u -c
postfix 3535 0.0 0.1 27188 1544 ? S 20:20 0:00 trivial-rewrite -n rewrite -t unix -u -c
В файлах журнала нет абсолютно ничего, связанного с TLS, за исключением следующего:
Nov 6 02:19:45 apps postfix/master[3525]: daemon started -- version 2.9.6, configuration /etc/postfix
Nov 6 02:19:49 apps postfix/smtpd[3528]: initializing the server-side TLS engine
Nov 6 02:19:49 apps postfix/tlsmgr[3530]: open smtpd TLS cache btree:/var/lib/postfix/smtpd_scache
Nov 6 02:19:49 apps postfix/tlsmgr[3530]: tlsmgr_cache_run_event: start TLS smtpd session cache cleanup
Nov 6 02:19:49 apps postfix/smtpd[3528]: connect from unknown[204.16.68.108]
Ни syslog, ни mail.err не показывают никаких признаков проблемы. Что касается всей системы, то все хорошо. Но нет STARTTLS, и поэтому я внезапно не могу отправитьлюбойэлектронная почта вообще.
Помощь???
решение1
из main.cf
Для получения дополнительной информации о протоколировании TLS:
smtp_tls_note_starttls_offer = yes
закомментируйте или удалите:
smtp_tls_CAfile = /etc/ssl/certs/savannidgerinel_com_CA.pem
smtp_tls_cert_file = /etc/ssl/certs/apps.savannidgerinel.com.pem
smtp_tls_key_file = /etc/ssl/private/apps.savannidgerinel.com.key.pem
«Не настраивайте клиентские сертификаты, если только вам не нужно предоставить клиентские сертификаты TLS одному или нескольким серверам. Клиентские сертификаты обычно не нужны и могут вызывать проблемы в конфигурациях, которые хорошо работают без них. Рекомендуемая настройка — оставить значения по умолчанию».
Перезагрузите конфигурацию или перезапустите Postfix.
Я протестировал ваш сервер:
EHLO apps.savannidgerinel.com
250-apps.savannidgerinel.com
250-PIPELINING
250-SIZE 10240000
250-VRFY 250-ETRN
250-STARTTLS
250-AUTH PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
Он предлагает 250-STARTTLS
. Так что что-то перехватывает ваш трафик на порту 25, как прокси. Это может быть любой вид брандмауэра или расширенного маршрутизатора с такой расширенной функциональностью, через которую подключается ваш локальный компьютер. Если у вас нет брандмауэра или расширенного маршрутизатора, скорее всего, это антиспамовая политика вашего провайдера, чтобы предотвратить спам с их диапазонов IP. В худшем случае кто-то делаетатака «человек посередине».