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).