Как с помощью шифрования сделать почтовый сервер более безопасным

Источник: rus-linux
Sarmed Rahman

SSL (Secure Sockets Layer) и его потомок TLS (Transport Layer Security) являются наиболее широко используемыми протоколами шифрования данных, когда происходит обмен данными почтовым сервером и клиентом. В этих протоколах часто используются сертификаты X.509 и ассимметричная криптография.

Протокол STARTTTLS является еще одним способом повышения безопасности при использовании открытого текста. Этот протокол также шифрует данные с помощью SSL или TLS, но с тем же портом, что и обычные текстовые протоколы вместо того, чтобы использовать отдельные порты для обмена данными, зашифрованными с помощью SSL/TLS. Например, в протоколе IMAP с STARTTLS используется тот же самый порт, что и в IMAP (143), тогда как в протоколе IMAPS (IMAP с SSL) использует отдельный порт 993.

В данном руководстве будет рассказано, как улучшить безопасность почтового сервера при помощи шифрования TLS/SSL.

Сертификаты, необходимые для TLS/SSL, могут быть самостоятельно подписанными, подписанными с использованием свободного сертификата (например, CAcert) или подписанными коммерческим центром (например, VeriSign), и могут быть сгенерированы с помощью таких утилит, как OpenSSL. В данном руководстве мы собираемся использовать собственный сертификат.

Включение шифрования 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) [AU]:BD State or Province Name (full name) [Some-State]:Dhaka Locality Name (eg, city) []:Dhaka Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []:Example.tst Common Name (e.g. server FQDN or YOUR name) []:mail.example.tst Email Address []:sarmed@example.tst

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

root@mail:~# vim /etc/postfix/main.cf ### STARTTLS is enabled ### smtpd_tls_security_level = may smtpd_tls_received_header = yes smtpd_tls_auth_only = yes ### loglevel 3 should be used while troubleshooting ### smtpd_tls_loglevel = 1 ### path to certificate and key file smtpd_tls_cert_file = /etc/ssl/certs/postfixcert.pem smtpd_tls_key_file = /etc/ssl/private/postfixkey.pem smtpd_use_tls=yes

Перезапустите postfix для того, чтобы включить TLS.

root@mail:~# service postfix restart

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

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

Конфигурирование dovecot для использования шифрования выполняется аналогично конфигурированию postfix.

Прежде всего с помощью openssl создается самостоятельно подписанный сертификат:

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

Приведенная выше команда запрашивает новый сертификат X.509, который действителен в течение 365 дней. Параметр -nodes является необязательным параметром, который определяет, что хранимый секретный ключ не должен быть зашифрован. Результирующим файлом сертификата будет файл dovecotcert.pem, а выходным файлом с ключом будет файл dovecotkey.pem.

В сертификате должны быть указаны все необходимые параметры:

Country Name (2 letter code) [AU]:BD State or Province Name (full name) [Some-State]:Dhaka Locality Name (eg, city) []:Dhaka Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []:Example.tst Common Name (e.g. server FQDN or YOUR name) []:mail.example.tst Email Address []:sarmed@example.tst

Затем в конфигурацию dovecot добавляется путь к сертификату.

root@mail:~# vim /etc/dovecot/conf.d/10-ssl.conf ssl_cert = </etc/ssl/certs/dovecotcert.pem ssl_key = </etc/ssl/private/dovecotkey.pem

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

root@mail:~# service dovecot restart

Конфигурирование почтового клиента Thunderbird

Ниже приведен скриншот настройки учетной записи в почтовом клиенте Mozilla Thunderbird.

Если возникли проблемы

Прежде всего, убедитесь, что в брандмауэре открыты все необходимые порты.

Во-вторых, попробуйте через telnet получить доступ на почтовый сервер. У вас должна быть возможность доступа. Ниже для справки приведены некоторые примеры.

Подключение к серверу IMAPS

$ telnet mail.example.tst 993 Trying mail.example.tst... Connected to mail.example.tst. Escape character is '^]'. exit exit Connection closed by foreign host.

Подключение к серверу POP3S

$ telnet mail.example.tst 995 Trying mail.example.tst... Connected to mail.example.tst. Escape character is '^]'. exit exit Connection closed by foreign host.

Подключение к серверу SMTP

$ telnet mail.example.tst 25 Trying mail.example.tst... Connected to mail.example.tst. Escape character is '^]'. 220 mail.example.tst ESMTP Postfix (Ubuntu) ### Command ### ehlo mail.example.tst 250-mail.example.tst 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=36293