Как лучше всего проверить, поддерживает ли SMTP-сервер SSL?
Последующий вопрос: как мне включить SSL, если он еще не включен.
ОС - CentOS.
Это зависит от того, имеете ли вы в виду SSL или TLS.
SSL имеет собственный выделенный порт TCP / 465. Лучший способ проверить его присутствие - это использовать замечательный s_client OpenSSL, который будет согласовывать за вас обман SSL.
openssl s_client -connect localhost:465
Если ваш сервер не привязан к localhost, тогда, очевидно, замените его IP-адресом или именем хоста.
TLS сначала выглядит как обычный SMTP. Шифрование согласовывается с протоколом открытого текста и поверх него. Вы можете проверить, доступен ли он, отправив серверу запрос EHLO. Для этого можно использовать клиентов Netcat или Telnet.
$ nc -v localhost 25
localhost [127.0.0.1] 25 (smtp) open
220 mail.example.com ESMTP Exim 4.69 Fri, 11 Sep 2009 09:25:20 +0100
ehlo test
250-mail.example.com Hello localhost [127.0.0.1]
250-SIZE 10485760
250-PIPELINING
250-STARTTLS
250 HELP
Вторая после последней важная строка объявляет о возможности STARTTLS.
Чтобы сообщить, как включить SSL / TLS для вашего почтового сервера, вам необходимо сообщить нам, какой почтовый пакет вы используете.
Для этого есть простой инструмент. Вы отправляете им электронное письмо, и они отвечают с кучей деталей:
Если вы используете CentOS, вы, вероятно, используете Sendmail. Установите пакет Sendmail-mc. Внутри /etc/mail/sendmail.mc есть несколько директив, которые вы можете использовать для TLS:
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl # cd /usr/share/ssl/certs; make sendmail.pem
dnl # Complete usage:
dnl # make -C /usr/share/ssl/certs usage
dnl #
dnl define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
dnl define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
dnl define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl
dnl define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.pem')dnl
После того, как вы все заработаете, вы можете включить Sendmail через SSL примерно так:
DAEMON_OPTIONS(`Addr=142.46.200.221, Port=465, Name=SSA, M=Eas')
О, и выделите кучу времени, чтобы поиграть с этим, прежде чем у вас все получится.
Когда я это делал, мне почти всегда приходилось запускать три экземпляра sendmail:
У каждого был отдельный файл конфигурации. Должен быть способ заставить первые два работать как один и тот же экземпляр, прослушивающий оба порта, но я никогда не мог заставить его работать правильно.
Если вы станете достаточно большим, эти разные экземпляры можно будет запускать на разных машинах.
На мой взгляд, ответы на этой странице просто неверны.
Причина в том, что SSL / TLS + SMTP может означать две разные вещи.
Один из них - обертывание сокета в SSL / TLS. Если сервер хочет обслуживать как незашифрованный, так и зашифрованный трафик, для этого ему нужны два порта, по одному для каждого типа трафика. По соглашению серверы SMTP обычно используют порт 25 для незашифрованного трафика и порт 465 для зашифрованного трафика. Используя внешние инструменты, такие как stunnel, это можно реализовать таким образом, чтобы и клиент, и сервер не знали, что фактический трафик проходит через зашифрованный сокет. Таким образом, вы можете реализовать этот подход, даже если ваш SMTP-сервер не поддерживает SSL / TLS ... но серверы, такие как sendmail и postfix, поддерживают его, поэтому нет необходимости во внешних инструментах.
Другой подход заключается в том, что STARTTLS используется. Это расширение протокола SMTP и, следовательно, требует, чтобы сервер и клиент поддерживали его. Используя STARTTLS, сервер может обслуживать как зашифрованный, так и незашифрованный трафик через один и тот же сокет, то есть вы можете использовать порт 25 для обоих. Вы можете увидеть, включен ли STARTTLS на SMTP-сервере, подключившись к нему через порт 25 и выполнив команду EHLO
команда, как Дэн объясняет в другом месте на этой странице.
И SSL, и TLS - это просто протоколы шифрования, а TLS является преемником SSL.
Я получил информацию от Вот.
Путаница между двумя подходами усугубляется терминологией, используемой серверами SMTP. Подумайте о параметрах Postfix smtpd_tls_security_level
и smtpd_use_tls
и связанная с ними документация. Эти параметры относятся к STARTTLS
, а не как таковой с TLS
. Другие серверы SMTP также отлично справляются с запутыванием терминологии.