Частина 9. Шифрування поштового трафіку.
- Деталі
- Категорія: Поштовий сервер
- Опубліковано: Четвер, 04 липня 2019, 13:05
- Автор: Super User
- Перегляди: 4393
Не шифрувати трафік на поштовому сервері досить небезпечно. Пов'язано це не з перехопленням листів, а, перш за все, з тим, що зловмисник може перехопити логін та пароль одного з користувачів і використати цю інформацію для розсилання спаму.
Для шифрування використовуються 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"
В електронному вигляді