Как с помощью шифрования сделать почтовый сервер более безопаснымИсточник: 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), и могут быть сгенерированы с помощью таких утилит, как Включение шифрования 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 можно найти в их официальном описании Включение шифрования 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 |