Оппортунистический tls

Подробнее о протоколе TLS

В энциклопедии говорится, что TLS — это особый протокол защиты, который задействован при транспортировке данных по сети. У него был предшественник — SSL. Оба относятся к криптографическим протоколам. При передаче данных используется асимметричное шифрование. Для конфиденциальности используется симметричное шифрование. А для подтверждения целостности одного сообщения задействуются специальные коды.

TLS применяется сегодня практически во всех приложениях, связанных с передачей данных: интернет-браузер, мессенджер (VoIP), электронная почта. Первая версия протокола (SSL) была разработана компанией Netscape Communication. На данным момент более новой версией и её развитием занимается инженерный совет Интернета (IETF).

Версии протокола

  • TLS 1.2 — на данный момент эта версия протокола TLS встречается чаще прочих. К сожалению, имеет уязвимости: чтобы поддерживать старые компьютеры, TLS 1.2 разрешает использование устаревших техник шифрования, которые малонадежны. Протокол сильно уязвим к активному вмешательству в соединение, когда взломщик перехватывает данные посреди сессии, а отправляет их уже после прочтения или подмены. Большинство уязвимостей обнаружены за последние 2 года, что и послужило толчком для создания обновленной версии.
  • Статистика протокола TLS 1.3. В этой версии не поддерживаются устаревшие системы шифрования, благодаря чему протокол справляется с большинством уязвимостей. TLS 1.3 совместим с более старыми версиями: если одна из сторон не имеет возможности пользоваться новой системой шифрования, соединение откатится до версии 1.2. Если же во время атаки активного вмешательства взломщик попытается принудительным образом откатить версию протокола посреди сессии – такое действие будет замечено и сессия прервется.

Создание ключа и сертификата ЦС

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

Используйте программу certtool для создания закрытого ключа. Каталог /etc/ssl/private защищен от пользователей без прав root и является подходящим местом для хранения закрытых ключей. Можно сгенерировать закрытый ключ и записать его в файл ca_server.key в этом каталоге:

Теперь можно использовать закрытый ключ и файл шаблона для создания сертификата для ЦС. Запишите его в файл ca_server.pem в /etc/ssl/certs:

Теперь у вас есть пара из ключа и сертификата для центра сертификации. Вы можете использовать ее, чтобы подписать ключ, который будет применяться в шифровании LDAP.

Включение TLS шифрования для Postfix

Самоподписанный сертификат может быть создан следующей командой.

# openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/postfixcert.pem -keyout /etc/ssl/private/postfixkey.pem

Вышеприведённая команда затребует новый сертификат, тип которого X.509, и который будет валидным на протяжении 365 дней. Необязательный параметр -nodes определяет, что частный ключ не должен быть зашифрованным. Созданный файл сертификат будет сохранён как postfixcert.pem, а файл ключа как postfixkey.pem .

При создании сертификата будут запрошены данные:

Country Name (2 letter code) :TH
State or Province Name (full name) :Chonburi
Locality Name (eg, city) []:Pattaya
Organization Name (eg, company) :codeby.net
Organizational Unit Name (eg, section) []:Example.tst
Common Name (e.g. server FQDN or YOUR name) []:mail.example.tst
Email Address []:

Можно всё красиво и правильно ввести, но правда жизни такова, что эти данные ни на что не влияют. Их не смотрят ни люди, ни программы. Вместо ввода данных можно просто каждый раз нажимать .

Теперь, когда сертификаты готовы, необходимы внести нужные настройки в файл конфигурации postfix.

:~# vim /etc/postfix/main.cf
### STARTTLS включён ###
smtpd_tls_security_level = may

smtpd_tls_received_header = yes
smtpd_tls_auth_only = yes

### loglevel 3 может быть использован для решения проблем ###
smtpd_tls_loglevel = 1

### путь до сертификата и ключевого файла
smtpd_tls_cert_file = /etc/ssl/certs/postfixcert.pem
smtpd_tls_key_file = /etc/ssl/private/postfixkey.pem
smtpd_use_tls=yes

Перезапускаем postfix для включения TLS.

:~# service postfix restart

Уже сейчас postfix готов для шифрования данных при передачи их с/на сервер. Дополнительные подробности о поддержке Postfix TLS можно найти в официальном README.

Бесплатные сертификаты

Самоподписанные сертификаты

Самоподписанный (самоизданный, самозаверенный, self-signed) сертификат — тот, который вы сами создали для своего домена или IP-адреса. Многим владельцам сайтов может показаться, что это идеальный вариант:

  • Бесплатно.
  • Доступно. Такой SSL-сертификат может создать любой владелец домена.
  • Без обращения к поставщикам услуг. Не нужно ждать ответа от центра сертификации.
  • Быстро. Но только если вы знаете, что делать и как пользоваться специальными программами или библиотеками. Например, для Windows можно воспользоваться криптографическим хранилищем OpenSSL или консолью PowerShell. 
  • Можно создать сколько угодно сертификатов.

Вам уже кажется, что выбор сделан и читать дальше нет смысла? Всё не совсем так.

Минусы

  • Нет надёжной защиты. Браузеры не доверяют таким сертификатам, потому что заверяют их не специальные центры, а неизвестный им человек или юрлицо. 
  • Есть риск потерять данные. Причём как пользователей, так и ваши, с сайта компании.
  • Отпугивает посетителей сайта. Пользователи, заходя на страницу с самоподписанным сертификатом, видят предупреждение о небезопасности: в результате количество посетителей сайта, готовых совершать на нем действия, снижается. Мало ли что — вдруг сайт мошеннический.
  • Возможные ошибки в оформлении и отображении сертификата, если он был создан неправильно.

Если вам нужно провести тесты на внутренних ресурсах компании, а заморачиваться с доверенными сертификатами не хочется, можно сделать самоизданный SSL-сертификат. Но и здесь вы рискуете: если у вас крупная компания, понадобится много труда и времени, чтобы наладить работу и объяснить всем сотрудникам, что делать с этим страшным предупреждением об опасности. В целом же, на практике использовать такой сертификат точно не стоит.

Бесплатные доверенные сертификаты

Такие SSL-сертификаты можно оформить довольно быстро. Часто ими пользуются стартапы, чтобы понять, что вообще такое SSL и как это работает. Бывают только одного вида — DV SSL (Domain Validation). Это сертификаты, удостоверяющие доменное имя. 

Плюсы

  • Быстро. Такой сертификат могут выдать вам уже через несколько минут. Всё потому, что тип такого сертификата — DV (Domain Validation) SSL и для его оформления нужно только подтверждение владения доменом, как и у платных DV.
  • Просто получать и устанавливать.
  • Отлично подойдёт для теста с возможностью сэкономить в первые несколько месяцев.
  • Известные компании-поставщики. Те же Let’s Encrypt на рынке с 2012 года и поддерживаются Google, Facebook и другими крупными корпорациями.

Минусы

  • Небольшой срок действия. Например, сертификаты Let`s Encrypt необходимо перевыпускать каждые 3 месяца.
  • Сложности с продлением. Хостеры автоматически продлевают некоторые бесплатные сертификаты. Но здесь бывают проблемы. Перед выпуском сертификационный центр обращается к сайту за специальным файлом. Иногда он в системе не обнаруживается: не было места на диске и файл не записался, во время проверки почему-то закрылся доступ к сайту и пр. Итог один — сертификат не обновляется, а вы даже не узнаете об этом, если не решите вдруг проверить срок действия вручную.
  • Отсутствие поддержки. Для корректной работы SSL-сертификата важна грамотная полноценная поддержка (по телефону, по email, в чатах). Она недоступна для бесплатных SSL. На официальных сайтах удостоверяющих центров, как правило, размещены ответы на часто задаваемые вопросы, которые в основном описывают общие случаи и могут быть бесполезны для решения конкретной проблемы. Также есть неофициальная информация на тематических форумах, но среди неё ещё надо найти нужную.
  • Есть вероятность не заметить, что сертификат не работает. Как мы писали выше, посмотреть сроки действия сертификата можно вручную. Есть и другой способ: проверять даты с помощью специального скрипта, который не так просто создать. Поддержки нет. Если не проверять сроки, можно пропустить время продления, и сертификаты будут аннулированы. В безопасности сайта появятся дыры, посетители, увидев уведомление о ненадёжности сайта, станут покидать сайт и трафик снизится.

В 2017 году кредитное бюро Equifax сообщило о масштабном взломе: хакеры украли данные 143 млн человек — почти половины населения США. Это произошло отчасти из-за истечения срока действия сертификата, который был неактивным в течение 19 месяцев.

Как работает SSL?

SSL/TLS шифрование можно разделить на два этапа: handshake SSL/TLS и record layer SSL/TLS. Стоит углубится в них более подробно.

Что такое SSL handshake?

Это форма связи между клиентом и сервером, где оба решают, какая версия протокола будет использоваться для их дальнейшего взаимодействия. Как это работает на практике?

  1. Клиент посылает запрос «привет» на сервер, с которым он хочет связаться. Он включает в себя типы шифров (алгоритмы шифрования), которые может поддерживать клиент.
  2. Сервер отправляет’ привет ‘ обратно со своим сертификатом SSL и его открытым ключом. Клиент и сервер здесь используют асимметричную криптографию для обмена защищенными сообщениями. Это означает, что клиенту нужен открытый ключ сервера для шифрования сообщений, а серверу нужны два ключа – частный и открытый – для его расшифровки. Никто, шпионящий за трафиком, не может расшифровать их сообщения.
  3. Затем клиент использует открытый ключ сервера для создания предварительного pre-master и отправляет его на сервер. Это будет использоваться для создания ключей сеанса и повышения уровня связи до симметричного шифрования. Теперь оба конца будут использовать только закрытые ключи. Симметричная криптография сделает их связь намного быстрее и будет использовать меньше ресурсов.
  4. Сервер расшифровывает pre-master, использует его для создания симметричного ключа и обменивается им с клиентом. При установленном симметричном шифровании они теперь могут обмениваться зашифрованными сообщениями. Трафик защищен.

Уровень записи SSL/TLS

Именно здесь происходит шифрование. Данные отправляются из приложения пользователя и шифруются. В зависимости от шифра, он также может быть сжат. Затем он отправляется дальше на сетевой транспортный уровень, который определяет, как отправить данные на целевое устройство.

Протоколы SSL и TLS[править]

SSL (Secure Sockets Layer) и TLS (Transport Level Security) — криптографические протоколы, обеспечивающие защищенную передачу данных в компьютерной сети. Они широко используются в веб-браузерах, а также при работе с электронной почтой, обмене мгновенными сообщениями и в IP-телефонии.

Соединение, защищенное протоколом TLS, обладает одним или несколькими следующими свойствами:

  • Безопасность: симметричное шифрование защищает передаваемую информацию от прочтения посторонними лицами.
  • Аутентификация: «личность» участника соединения можно проверить с помощью асимметричного шифрования.
  • Целостность: каждое сообщение содержит код (Message Authentication Code, MAC), с помощью которого можно проверить, что данные не были изменены или потеряны в процессе передачи.

Так как большинство протоколов связи могут быть использованы как с TLS/SSL, так и без него, при установке соединения необходимо явно указать серверу, хочет ли клиент устанавливать TLS. Один способ добиться этого — использовать порт, по которому соединение всегда устанавливается с использованием TLS (например, 443 для HTTPS). Другой способ — использовать специальную команду серверу от клиента переключить соединение на TLS (например, STARTTLS для протоколов электронной почты).

История SSL[править]

Из-за невозможности гарантировать безопасность сети, через которую передается информация наилучшим способом защитить ее было выбрано шифрование и дешифрование на концах устанавливаемого соединения соответственно. Netscape могли бы встроить этот подход напрямую в свой браузер, но это бы не предоставило единого решения, которое другие приложения могли бы использовать. Требовалось получить более общный, независимый от приложения подход.

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

О самоподписанных сертификатах

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

Это примерно как позвонить в дверь и сказать «это я» – если непонятно кто это, то это «я» ни о чем не скажет. Браузер предупредит, что он не знает организацию, выдавшую сертификат, однако если пользователь согласится с тем, что доверяет этому сайту, подключение будет работать.

Почему, несмотря на шифрование, не стоит передавать информацию таким сайтам? Ответ простой: если с подтверждением сертификата возникают проблемы, шифрование довольно бессмысленно. В подобной ситуации данные действительно не смогут быть прочитаны третьими лицами, однако владельцу сертификата и возможному злоумышленнику они достаются в «явном» виде. Поэтому не стоит на таких сайтах оставлять персональные данные, вводить пароли и тем более предоставлять номера банковских карт.

Команды SMTP

Команды SMTP состоят из 4-х символов. Никакой особой причины для этого нет, просто разработчики протокола выбрали такую длину команд. Основные команды перечислены на картинке ниже, есть и другие команды, но они используются значительно реже. 

  • Команда HELO используется для установки соединения, при этом клиент должен указать свой домен и свой почтовый адрес (пример в таблице).
  • Команда MAIL используется для того, чтобы задать адрес отправителя. Полный формат команды в примере MAIL FROM и адрес отправителя. 
  • Команда RCPT используется для задания адреса получателя. Одно и то же письмо можно передать нескольким получателям для этого нужно использовать команду RCPT несколько раз. 
  • Команда DATA используется, чтобы сообщить принимающему серверу, что конверт закончился и дальше пойдет письмо. 
  • Команда QUIT служит для разрыва соединения с сервером, после того, как передача письма закончена. 

Установка SSL/TLS-сертификата на сервер с Apache

Установка SSL/TLS-сертификата на Apache выглядит примерно так же.

1) Скопировать файлы ключа и сертификата на сервер в соответствующие директории

2) Включить модуль ssl для Apache командой «a2enmod ssl», если он еще не включен

3) Создать виртуальный хост, который будет слушать 443 порт. Конфиг будет выглядеть примерно так:

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerAdmin [email protected]

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

        SSLEngine on

        SSLCertificateFile    /etc/ssl/certs/server.pem
        SSLCertificateKeyFile /etc/ssl/private/server.key

        # Эта директива добавляет файл, содержащий список
        # всех сертификатов, которыми подписан сертификат сервера
        #SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>

        BrowserMatch "MSIE " \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE " ssl-unclean-shutdown

</VirtualHost>
</IfModule>

При этом надо сделать еще кое-что. Найти в файле httpd.conf, или apache2.conf, или ports.conf, в зависимости от системы, такой участок конфига:

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

Если такого условия нет, его надо добавить в конфиг. И еще одно: Надо добавить строку

NameVirtualHost *:443

Эта строка может находиться в файле httpd.conf, apache2.conf или ports.conf

4) Перезапустить веб-сервер Apache

Как усилить безопасность SSL, TLS

Бывает так, что сертификат установлен, а тестирование ssllabs показывает не лучший грейд безопасности.
Чтобы добиться заветного , нужно правильно настроить NGINX.
Для этого, сначала запускаем следующую команду, которая сгенерирует нужные ключи для Forward Secrecy (прямая секретность означает, что если третья сторона узнает какой-либо сеансовый ключ, то она сможет получить доступ только к тем к данным, что защищены этим ключом, не более):

openssl dhparam -out /etc/letsencrypt/dhparam.pem 2048

Затем, необходимо присутствие следующих записей в конфигурации сервера:

server {
  server_name sheensay.ru www.sheensay.ru;

  ssl_session_cache   shared:SSL:10m; # Разделяемый между всеми процесами кеш сессий на 10 байт с названием SSL. 1 Мб вмещает около 4000 сессий
  ssl_session_timeout 10m; # 10 минут - максимальное время жизни сессии

  add_header Strict-Transport-Security "max-age=31536000;"; # Заголовок, принудительно включающий защищённое соединение, минуя небезопасный HTTP

  # Заголовок Content Security Policy - отвечает за то, что считать безопасным подгружаемым контентом на странице
  add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline' *.yandex.ru; style-src https: 'unsafe-inline' fonts.googleapis.com; img-src https: data:; font-src https: data: fonts.googleapis.com; child-src https: www.youtube.com; report-uri /csp-report";

  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_trusted_certificate /etc/letsencrypt/live/sheensay.ru/chain.pem; # домен меняете на свой
  resolver 8.8.4.4 8.8.8.8 valid=300s;
  resolver_timeout 10s;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!EXP:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
  ssl_prefer_server_ciphers on;

  ### Чтобы у нас заработал Forward Secrecy, сгенерируем ключ командой ниже:
  ## openssl dhparam -out /etc/letsencrypt/dhparam.pem 2048
  ### После генерации расскомментируем строку ниже
  ssl_dhparam /etc/letsencrypt/dhparam.pem;
  
  ### Дальше другие настройки сервера
  ### ...

После всех манипуляций, не забудьте перезагрузить NGINX

service nginx reload

SMTP-AUTH

Расширение SMTP-AUTH обеспечивает механизм контроля доступа. Он состоит из этапа аутентификации, посредством которого клиент фактически входит на почтовый сервер в процессе отправки почты. Серверы, поддерживающие SMTP-AUTH, обычно могут быть настроены таким образом, чтобы требовать от клиентов использования этого расширения, гарантируя, что истинная личность отправителя известна. Расширение SMTP-AUTH определено в RFC 4954.

SMTP-AUTH можно использовать, чтобы разрешить легитимным пользователям ретранслировать почту, в то же время запрещая ретрансляцию неавторизованным пользователям, например спамерам . Это не обязательно гарантирует подлинность отправителя SMTP- конверта или заголовка RFC 2822 «From:». Например, спуфинг , при котором один отправитель маскируется под кого-то другого, по-прежнему возможен с помощью SMTP-AUTH, если только сервер не настроен на ограничение адресов отправителя сообщений адресами, на которые авторизован этот авторизованный пользователь.

Расширение SMTP-AUTH также позволяет одному почтовому серверу указывать другому, что отправитель был аутентифицирован при пересылке почты. Как правило, это требует, чтобы сервер-получатель доверял серверу-отправителю, а это означает, что этот аспект SMTP-AUTH редко используется в Интернете.

Initial Setup

STARTTLSconfm4.mc

  1. Install one or more CA certs in confCACERT.
    Notice: do not list too many root CAs in that file, otherwise
    the TLS handshake may fail; e.g.,
    error:14094417:SSL routines:SSL3_READ_BYTES:
    sslv3 alert illegal parameter:s3_pkt.c:964:SSL alert number 47
    

    You should probably put only the CA cert into that file
    that signed your own cert(s).

  2. Install zero or more CA certs in confCACERT_PATH
    with (symbolic) links of their hashes pointing to them:
    C=FileName_of_CA_Certificate
    ln -s $C `openssl x509 -noout -hash < $C`.0
    

    (or sslc instead of openssl)

    These CA certificates are required to
    successfully authenticate
    another entity.
    The signature of the certificate presented by the other side is
    checked against these CAs.
    If one of them issued the certificate, the authentication
    is considered

    Moreover, during the TLS handshake, the

    of the CA certificates listed in confCACERT
    are sent to the client so it can properly select a
    certificate that is signed by one of those CAs.

  3. Get a cert
    (make sure the

    is the fully qualified name of your host)
    and install it as
    confSERVER_CERT
    and the private key as
    confSERVER_KEY
    (make sure the file is only readable by root or the
    trusted user).
    For simplicity, use the same filenames for
    confCLIENT_CERT
    and
    confCLIENT_KEY, respectively.
    Note: the private key must not be encrypted.
    This is required for unattended startup of
    sendmail.
    Otherwise someone/something would have to enter the passphrase
    each time sendmail is started as server or client.

  4. If you run
    sendmail 8.11 or later
    and your OS doesn’t have
    (4),
    then you need to setup a source to seed the pseudo random number generator.
    For Solaris 7 and 8, you may have a look at
    a kernel module for /dev/random
    (please check yourself whether it is ok to use!),
    or see whether
    Sun has a package called SUNWski
    for your OS.
    It is strongly advised to use at least EGD
    (Entropy Gathering Daemon)
    and compile
    sendmail
    with the flag
    EGD,
    and point
    confRAND_FILE
    to the socket used by EGD (use `egd:‘ as prefix!).
    If neither
    nor
    EGD
    are available, you have to make sure that useful random data
    is available all the time in
    confRAND_FILE (use `file:‘ as prefix).
    If the file hasn’t been modified in the last 10
    minutes before it is supposed to be used by
    sendmail
    the content is considered obsolete.
    In this case, the PRNG for TLS is only
    seeded with other random data if the DontBlameSendmail
    option InsufficientEntropy is set.
    This is almost always not sufficient for security.

Lutz JänickeGregory Neil ShapiroMartin Ouwehand

Extract from a .mc file:

define(`confCACERT_PATH', `/etc/mail/certs')dnl
define(`confCACERT', `/etc/mail/certs/CAcert.pem')dnl
define(`confSERVER_CERT', `/etc/mail/certs/MYcert.pem')dnl
define(`confSERVER_KEY', `/etc/mail/certs/MYkey.pem')dnl
define(`confCLIENT_CERT', `/etc/mail/certs/MYcert.pem')dnl
define(`confCLIENT_KEY', `/etc/mail/certs/MYkey.pem')dnl

Initial Test

sendmail

250-STARTTLS

EHLO

% telnet localhost 25
Trying 127.0.0.1...
Connected to localhost
Escape character is '^]'.
220 local.sendmail.org ESMTP Sendmail Sendmail 8.12.0/8.12.0; Sun, 30 Sep 2001 10:47:28 -0700 (PDT)
ehlo localhost
250-local.sendmail.org Hello localhost , pleased to meet you
250-ENHANCEDSTATUSCODES
250-DSN
250-STARTTLS
250 HELP
quit

LogLevel

Этап 2. Указание сертификата, используемого для шифрования клиентских SMTP-подключений с проверкой подлинности, с помощью командной консоли Exchange

Сертификат должен совпадать с полным доменным именем, указанным на предыдущем этапе, или содержать его, а клиенты POP3 и SMTP должны доверять сертификату. Как правило, это означает, что сертификат выдан коммерческим центром сертификации. Дополнительные сведения см. в разделе .

Кроме того, необходимо назначить сертификат службе smTP Exchange SMTP. Дополнительные сведения см. в справке Назначение сертификатов Exchange Server службам.

Чтобы указать сертификат, используемый для клиентских SMTP-подключений с проверкой подлинности, используйте следующий синтаксис:

В этом примере используется сертификат со значением отпечатка 434AC224C8459924B26521298CE8834C514856AB.

Как проверить, что шаг выполнен?

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

  1. Выполните следующую команду в Командная консоль Exchange:

  2. Выполните следующую команду в Командная консоль Exchange:

  3. Убедитесь, что поле Subject или CertificateDomains сертификата, указанное в соединителе получения, содержит значение Fqdn соединителя получения. При этом совпадение может быть полным или частичным (с применением подстановочных знаков).

Какие типы сертификатов бывают и как выбрать нужный?

Domain Validation (DV)

Это самый простой вариант подтверждения. При таком подтверждении сертификационный центр удостоверяет строго одну вещь: этот домен принадлежит заявителю. Плюс такого сертификата в том, что его можно выпустить очень быстро.

Organization Validation (OV)

Такой сертификат подтверждает организацию, владеющую сайтом. Выпускается такой сертификат в течение недели, +/- 3 дня

Важно: при таком способе сертификации для домена обязательно должны быть указаны данные о организации (отображаться в whois). Если же вы являетесь физлицом, то такой сертификат для вас получить попросту невозможно

Кому подойдут такие сертификаты — сказать сложно. Дело в том, что для конечного пользователя (посетителя сайта) разницы между OV и DV нет. Неплохо иметь такой тип сертификата в случае, если с сайта осуществляются платежи, а бюджета на EV нет. Но в подобной ситуации обычно используются интегрируемые решения (например, https://www.robokassa.ru), которые переводят посетителя на сайт сервиса (там обычно EV). Сертификаты OV, например, используются Яндексом и Google.

Extended Validation (EV)

Красиво, дорого, мощно! EV-сертификаты отличаются внешним видом для посетителя. В адресной строке такого сертификата будут отображаться данные о компании.

Оглавление

  • Краткая история вопроса – SSL
  • Версии и преимущества TLS
    • Про TLS 1.0
    • Про TLS 1.1
    • Про TLS 1.2
    • Про TLS 1.2 и Windows XP SP3
    • Про TLS 1.2 и Windows 2003 SP2
  • BEAST: как работает атака на SSL 2.0/3.0 и TLS 1.0
  • Включаем TLS на Windows-системе
  • Отключаем SSL на Windows-системе
  • Закручиваем гайки: Включаем безопасное пересогласование TLS на Windows-системе
  • Атака на SSL/TLS – THC-SSL-DOS
  • Закручиваем гайки: настройки криптоалгоритмов на хосте
  • Управляем настройками согласования SSL/TLS в браузерах
  • Проверяем работу TLS 1.1 и 1.2
  • Что делать, если у меня нет возможности включить TLS новых версий

Приступим.

Обновление сертификатов почтового сервера

В Centos 8 certbot почему-то не добавил себя в планировщики. Ни в cron, ни в systemd timers. Но нам мало обновить сертификаты, нужно еще перезапустить службы, которые его используют. Для этого идем в конфиг letsencrypt для каждого домена и добавляем в самый конец параметр.

post_hook = systemctl reload postfix dovecot httpd

Сделать это нужно в конфигурационных файлах в директории /etc/letsencrypt/renewal/. Там для каждого домена будет свой конфиг. После этого можете прогнать тест обновления, чтобы убедиться в том, что ошибок нет.

# certbot renew --dry-run

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

1 1 * * * root /usr/bin/certbot renew

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Administrator Linux. Professional» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

Что даст вам этот курс:

  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.

Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector