HOW-TO Налаштування Postfix Dovecot Dovecot SASL віртуальні користувачі в LDAP, українська
Зміст
І так, у нас вже є налаштований LDAP сервер за цією статтею і вже є користувачі, хотілося б використовувати даних користувачів для поштового сервера. Сформуємо умови для нашого поштового сервера:
1. Користувачі є віртуальними та знаходяться в базі LDAP на іншому сервері
2. Аліаси користувачів також знаходяться в LDAP сервері
3. Домени серверів, що підтримуються, теж знаходяться в LDAP
4. Існує підтримка квот, значення квот беруться із LDAP
5. Як логін буде використовуватись email користувача
7. В якості поштового користувача на сервері, користувач vmail якого необхідно створити
8. Як поштова група на сервері, буде група mail яка присутня за умовчанням
9. Поштовий сервер буде працювати тільки за захищеними з'єднаннями, тобто. для надсилання пошти користувачами буде здійснюватися на 465 портах або на 25 портах з обов'язково включеною опцією starttls.
У розпорядженні є машина зі свіжовстановленою Ubuntu 10.04.
Усі дії цієї статті виконуються від користувача root.
Перш ніж розпочати налаштування самого поштового сервера, необхідно трохи підготувати LDAP сервер. І так, для початку нам необхідно додати ще одну схему в LDAP.
і в кінці файлу видаляємо все з structuralObjectClass: і до кінця файлу.
Додаємо цю схему до LDAP
Переходимо навкладку Services, тиснемо Дії → Створити → Service у полі Service to add вибираємо Mail smtp service(Postfix) і тиснемо продовжити. У сторінці, що відкрилася, в полі Domains to accept mail for додаємо домени які буде обслуговувати поштовий сервер, в даному випадку це example.com. Тиснемо Зберегти, потім Ок, в результаті повинен з'явиться новий сервер з назвою, яку ми вказали в Server name.
Переходимо до користувачів, створюємо нового або відкриваємо існуюче, переходимо на вкладку Пошта, тиснемо Add Пошта settings. Заповнюємо поля:
Розмір квоти - тут вказуємо розмір квоти (УВАГА. розмір квоти вказуємо в байтах. На жаль мені не вдалося знайти спосіб перетворювати Мб на байти при отриманні даних з LDAP ), якщо хочете щоб ящик не мав обмежень, то це поле залиште порожнім.
Alternative addresses – тут можна додати аліаси.
Далі тиснемо Ок, все поштовий користувач додано.
1. Базове налаштування postfix.
Налаштовуємо базову конфігурацію
Відповідаємо на запитання
Застосовуємо патч квоти Postfix
Ми повинні отримати вихідні Postfix, патч до нього, побудувати .deb пакети і встановити ці .deb пакети:
Встановлюємо необхідні пакети для збирання
Завантажуємо вихідні записи postfix
Завантажуємо та застосовуємо патч квоти
Збираємо пропатчений postfix
Перейдемо на один рівень вгору і подивимося які нові .deb пакети були створені:
Вибираємо пакети postfix та postfix-ldap та встановлюємо їх:
2. Створення сертифікатів для postfix та dovecot
Генеруємо Certificate Signing Request (CSR)
Створимо ключ для Certificate Signing Request (CSR)
тут необхідно буде вказати пароль для захищеного ключа
Тепер створимо незахищений ключ
тутнеобхідно буде вказати пароль від захищеного ключа
тут необхідно буде відповісти на низку питань
Встановимо ключ сервера
Створюємо внутрішній Certification Authority (CA) Для початку створимо директорії необхідні для СА сертифікатів
Створюємо необхідні файли
Редагуємо /etc/ssl/openssl.cnf у секції [CA_default] наступним чином
Створимо self-singed кореневий сертифікат
тут необхідно буде вказати пароль для ключа та відповісти на запитання
Встановимо кореневий сертифікат та ключ
Створимо сертифікати для postfix та dovecot Створюємо сертифікат для postfix
відповідаємо на запитання
Встановимо отриманий сертифікат
Для створення наступного сертифіката необхідно у файлі /etc/ssl/CA/index.txt.attr замінити значення unique_subject з yes на no
Створюємо сертифікат для dovecot
Встановлюємо отриманий сертифікат
3. Створення сертифікатів для зв'язку з LDAP
Створюємо ключ для поштового сервера
Створюємо файл mail.info наступного змісту
Перші п'ять значень змінюйте на свої.
Копіюємо СА сертифікат та перейменовуємо його
Тепер вміст папки mail-ssl необхідно скопіювати на поштовий сервер таким чином файли mail_server_ldap_ca.pem та mail_server_ldap_cert.pem необхідно покласти в папку /etc/ssl/certs на поштовому сервері файл mail_server_ldap_key.pem необхідно покласти в папку/sp сервер.
4. Налаштовуємо Dovecot
Встановлюємо пакет dovecot-postfix, який автоматично встановить dovecot і налаштує postfix на використання SASL. Також цей пакет налаштує dovecot для IMAP, IMAPS, POP3 і POP3S.
Приступаємо до налаштування dovecot.
Створимо користувача для пошти
Створимопапку для пошти та встановимо на неї права
Зайдемо в папку dovecot
На даний момент dovecot не налаштований на використання віртуальних користувачів з ldap, а так само пакет dovecot-postfix розділив конфігурацію dovecot на кілька файлів.
особисто мені це не зручно, тому я зробив копію поточного dovecot.conf
та створив свій dovecot.conf
Тепер необхідно налаштувати підключення до ldap, перейменовуємо файл налаштувань ldap
та створюємо свій dovecot-ldap.conf
Не знаю з чим це пов'язано але для того щоб dovecot зміг з'єднатися з ldap на іншому сервері по tls, потрібно щоб на сервері з dovecot був присутній файл /etc/ldap/ldap.conf в якому знаходиться рядок
в ubuntu 10.04 цей файл присутній, тому просто додаємо в нього вище вказаний рядок.
5. Налаштовуємо postfix
і додаємо в кінець файлу рядки
і postfix навідріз відмовляється приймати пошту. У зв'язку з цими файлами запитів з'єднуються з ldap через не захищене з'єднання. Якщо хтось вирішив цю проблему або знає з чим це пов'язано, поділіться будь ласка дуже вдячний. Особисто я перерив весь інет, але рішення так і не знайшов. І так створюємо файли запитів у папці /etc/postfix
Дозволимо групі mail писати логи у файли dovecot.log та dovecot_info.log, якщо цього не зробити postfix не прийматиме пошту
На цьому налаштування postfix і dovecot закінчено.
6. Тестування поштового сервера
Протестуємо працездатність, надіславши повідомлення через telnet користувачу test.
telnet localhost 25
helo example.com
data
Ставимо "." точку і тиснемо Enter щоб закінчити введення повідомлення
quit
openssl s_client -host localhost -port 995
наприкінці відповідіповинно бути
user [email protected]
pass secret
list
quit
Якщо помилок немає, то все працює нормально.
7. Відправлення листів із черги
і додаємо наступне
в результаті листи з черги вирушатимуть щохвилини.
Поштовий сервер готовий до використання.
P.S. Особисто мені не зручно використовувати як логін email користувача. Мій поштовий сервер обслуговує один домен, тому я трохи модифікував запит на отримання пароля з ldap в dovecot-ldap.conf, змінивши в ньому один рядок з
при такому варіанті як логін необхідно використовувати ім'я користувача (наприклад якщо email користувача [email protected] то як логін необхідно використовувати test).