Частина 9. Шифрування поштового трафіку.

 До переліку статей циклу

 

Не шифрувати трафік на поштовому сервері досить небезпечно. Пов'язано це не з перехопленням листів, а, перш за все, з тим, що зловмисник може перехопити логін та пароль одного з користувачів і використати цю інформацію для розсилання спаму.

Для шифрування використовуються SSL-сертифікати. Якщо в нас є можливість купити сертифікат від якогось центру сертифікації — то купуємо, якщо ж ні, то згенеруємо самопідписаний сертифікат. Це робиться командою:

openssl req -new -nodes -x509 -out smtpd.pem -keyout smtpd.pem -days 3650

Команда req змушує OpenSSL створити сертифікат.

Параметри цієї команди:

-new - створення запиту на сертифікат,

-nodes - не шифрувати закритий ключ,

-x509 (спільно з -new) - створити самоподпісаний сертифікат,

-keyout - задає місцезнаходження закритого ключа,

-out - задає місцезнаходження самоподпісаного сертифіката,

-days - задає час дії сертифіката (365x10 днів, що приблизно дорівнює десяти рокам).

 

В процесі виконання команди на екран будуть видані запити про введення таких параметрів як: Country Name, State or Province Name; Locality Name; Organization Name; Organizational Unit Name; Common Name; Email Address. Найважливішим параметром є значення Common Name. У нашому випадку воно повинно збігатися з FQDN-ім'ям сервера, по якому клієнти звертатимуться до сервера для відправлення та отримання пошти.

 

Шифрування трафіку в Postfix

Тепер налаштуємо роботу Postfix з сертифікатами

В файл /etc/postfix/main.cf додамо рядки

 

smtpd_tls_auth_only = yes

smtp_use_tls = yes

smtpd_use_tls = yes

smtpd_tls_cert_file=/etc/postfix/smtpd.pem

smtpd_tls_key_file=/etc/postfix/smtpd.pem

smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache

smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_scache

smtp_tls_note_starttls_offer = yes

 

Якщо при купівлі сертифікату вам видали кореневий довірений сертифікат, до у файл main.cf дописуємо рядок:

smtpd_tls_CAfile = /etc/postfix/root.crt

 

Пояснення параметрів

smtp_use_tls використовувати TLS, якщо віддалений сервер повідомляє про підтримку TLS,

smtpd_use_tls повідомляти клієнтам про підтримку TLS,

smtpd_tls_auth_only використовувати аутентифікацію SMTP тільки для TLS-з'єднань,
smtpd_tls_key_file місцезнаходження закритого ключа сервера,

smtpd_tls_cert_file місцезнаходження сертифіката сервера,

smtpd_tls_session_cache_database файл в якому зберігається кеш tls-сесії

smtp_tls_note_starttls_offer фіксувати в логах імена серверів, що видають повідомлення STARTTLS, підтримка TLS для яких не ввімкнена.

smtpd_tls_CAfile місцезнаходження довіреного сертифікату

 

Вмикаємо SMTP submission

У файлі /etc/postfix/master.cf допишемо (або розкоментуємо) наступні рядки:

 

submission inet n - - - - smtpd

-o syslog_name=postfix/submission

-o smtpd_tls_security_level=encrypt

-o smtpd_sasl_auth_enable=yes

-o smtpd_relay_restrictions=permit_sasl_authenticated,reject

 

 

Адміністратори сервера обирають самі, який порт використовуватимуть клієнти для ретрансляції вихідної пошти -— 25 або 587. Специфікації та багато серверів підтримують і той, і інший порти. Хоча деякі сервера підтримують порт 465 для безпечного SMTP, але краще використовувати стандартні порти та ESMTP-команди, у випадку коли необхідно встановити захищену сесія між клієнтом і сервером.

Відмінності портів 25, 465, 587. На 465 порті з'єднання відразу повинно відкриватися з шифруванням TLS/SSL. З портом 587 працюють так само як і з 25: з'єднання у відкритому вигляді, а для включення шифрування подається команда STARTTLS, якщо сервер заявив про таку можливість у відповідь на EHLO від клієнта. SMTPS (465 порт) більш старий стандарт, STARTTLS -— новіший і, зрозуміло, більш гнучкий.

 

 

Налаштування роботи Dovecot.

Для Dovecot можемо згенерувати свій сертифікат і ключ, а можемо використовувати той самий, що і для Postfix. У випадку купівлі сертифікатів, скоріш за все сертифікати будуть однаковими.

У файлі /etc/dovecot/conf.d/10-ssl.conf прописуємо параметри

 

#Вмикаємо підтримку шифрування

ssl = yes

#Вказуємо шлях до файлів з закритим ключем та сертифікатом

ssl_cert = </etc/postfix/smtpd.pem

ssl_key = </etc/postfix/smtpd.pem

 

Після цих дій треба перезапустити Postfix та Dovecot

service postfix restart

service dovecot restart

 

Тепер наш поштовий сервер підтримує шифровані з'єднання і для клієнтів доступний порт 587 для відправлення електронних листів та порт 993 для шифрованого IMAP.

 До переліку статей циклу

 

Підтримайте, будь ласка автора

та придбайте книгу

"Налаштування поштового

сервера на базі Postfix, Dovecot

та RoundCube"

В електронному вигляді

Придбати

 

Додати коментар

Захисний код
Оновити