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

Налаштування поштового сервера на базі Postfix, Dovecot та RoundCube. Зміст




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

Для шифрування використовуються 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. Зміст

Возврат к списку