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

Соединение сервера с сервером не будет использовать TLS, но SMTPD будет

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

В postfix main.cf - при принудительном внутреннем шифровании установкой:

smtpd_tls_security_level = encrypt

Все работает с внутренними соединениями TLS, и электронные письма доставляются в Gmail, Yahoo и т. Д. Но когда я пытаюсь принудительно межсерверное шифрование установив:

smtp_tls_security_level = encrypt

Письма не доставляются. Они отправляются обычным провайдерам электронной почты TLS, таким как Gmail, Yahoo и т. Д. Оба имеют одинаковый сертификат.

smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.example.com/chain.pem

smtp_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtp_tls_cert_file = /etc/letsencrypt/live/mail.example.com/cert.pem
smtp_tls_CAfile = /etc/letsencrypt/live/mail.example.com/chain.pem

В чем может быть проблема?

Я куплю сертификат получше, если это необходимо, но я не читал, что это будет. Я пробовал использовать самозаверяющие сертификаты, сертификаты Cloudflare TLS и Let's Encrypt, и все они дают одинаковые результаты.

Может что-то не так с master.cf? или main.cf?

При отправке сервера на сервер ваш сервер становится клиентом (smtp_ params).

Вы можете обратиться к полному Документация по SMTP-клиенту Postfix здесь.

Что касается вашей конфигурации, smtp_tls_CAfile должен указывать на ваше доверенное хранилище сертификатов (используется для проверки сертификата удаленных серверов) и не должен быть сертификатом вашего сервера. Хранилище доверенных сертификатов может находиться в другом месте / в другом файле в зависимости от используемого дистрибутива.

smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt

Кроме того, я бы не стал настраивать какой-либо клиентский сертификат, если удаленный сервер не использует его для аутентификации отправлений почты. Так удалил бы smtp_tls_key_file и smtp_tls_cert_file записи. Неправильная настройка может привести к тому, что вы не сможете отправлять почту.

По крайней мере, я бы добавил в конфигурацию клиента TLS сервера:

smtp_tls_security_level = may
smtp_tls_loglevel = 1

Активируйте TLS для SMTP-клиента postfix (с помощью may value будет использовать TLS, если удаленный сервер поддерживает его, encrypt будет обеспечивать это).

Установите уровень ведения журнала равным 1, что позволит вам определить, используется ли TLS, путем создания таких записей журнала, как:

postfix/smtp[7867]: Trusted TLS connection established to someserver.domain.net[0.0.0.0]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)

Не забудьте перезагрузить или перезапустить postfix.