Встановлення і налаштування поштового сервера iRedMail

В певний момент ви можете дійти до висновку, що вашій компанії терміново знадобився поштовий сервер – простір зі збором та управлінням електронними листами. Тільки от невдача: займатися повною установкою і налаштуванням немає можливості і бажання, що тоді? На допомогу приходить готова збірка iRedMail для організації поштового сервера. Головна перевага – швидкий і простий процес установки.

Поштовий сервер “з коробки” оптимально налаштований для зручного управління та користування електронною поштою. Всі листи надійно зберігатимуться на сервері, і вам не варто турбуватися про приватності листування, як в разі, якби ви використовували підписні сервіси по типу Outlook або GSuite.

У даній статті ми розглянемо як встановити поштовий сервер iRedMail на VPS. Для установки буде потрібно сервер з чистою операційною системою і доступом по SSH з правами суперкористувача root. Підтримується CentOS, Debian, Ubuntu, FreeBSD, OpenBSD.

iredmail OS support

Встановлення iRedmail на CentOS 7

Системні вимоги

iRedMail призначений для установки на чистий сервер, що означає, що на вашому сервері НЕ встановлено жодних компонентів, пов’язаних із поштою, наприклад, MySQL, OpenLDAP, Postfix, Dovecot, Amavisd і т. д. Скрипт установки iRedMail автоматично встановить і налаштує їх для вас . Якщо що-небудь із зазначених компонентів вже встановлено, ваші конфігураційні файли будуть перезаписані, а iRedMail надалі може працювати не так, як очікувалося.

Рекомендується хоча б 2ГБ оперативної пам’яті для мало навантажених систем. У разі використання антиспаму і антивірусу буде використовуватися велика частина ресурсів.

Підготовка до встановлення

Налаштуйте правильне ім’я вашого сервера

Ім’я сервера (hostname) має бути повністю певним доменним іменем (FQDN), неважливо, налаштовуєте ви робочий або тестовий сервер. Перевірити ім’я сервера можна, виконавши команду:

$ hostname -f
mx.site.com

Якщо отримане в результаті команди ім’я сервера не є FQDN, то його потрібно змінити. Ім’я сервера для Centos 7 задається у файлі /etc/hostname. Відкрийте файл вашим улюбленим текстовим редактором і вкажіть туди потрібне ім’я сервера.

А також додайте ім’я сервера в файлі /etc/hosts, щоб воно було на початку рядка, відразу після IP-адреси, приблизно так:

127.0.0.1 mx.site.com mx localhost localhost.localdomain

Перевірте ім’я сервера командою hostname -f знову. Якщо воно не змінилося на нове значення – перезавантажте сервер для застосування налаштувань.

Вимкнення SELinux

iRedMail не працює з SELinux, тому вимкніть його, встановивши таке значення в своєму файлі конфігурації /etc/selinux/config. Після перезавантаження сервера SELinux буде повністю відключений.

SELINUX=disabled

Щоб відключити SELinux для поточної сесії без перезавантаження запустіть команду з правами суперкористувача:

# setenforce 0

Вимкнення сторонніх репозиторіїв

Для CentOS увімкніть офіційні репозиторії yum CentOS-Base і ВІДКЛЮЧІТЬ все сторонні репозиторії yum, щоб уникнути конфлікту пакетів.

Завантаження останнього актуального релізу iRedmail

Перейдіть на сторінку завантаження останнього стабільного релизу iRedmail и скопіюйте посилання на інсталятор:

download iredmail

Отримане посилання завантажте на ваш сервер за допомогою wget. Може знадобитися встановлення пакета wget, якщо він не встановлений:

~# yum install wget -y

Завантажуємо інсталятор:

~# wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.9.tar.bz2

Встановлюємо архіватор bzip2 для розпакування архіва:

~# yum install bzip2 -y

Розпаковуємо архів:

~# tar xjf iRedMail-0.9.9.tar.bz2

Припускаємо, що ви завантажили архів в папку /root/ (ви потрапляєте в неї за замовчуванням одразу після підключення до сервера по SSH від імені root). Тоді розпакований архів буде в папці /root/iRedMail-0.9.9/ (цифри номера версії можуть відрізнятися, в залежності від номера актуального релізу, замініть їх на свої за необхідності).

Процес встановлення iRedMail

Для початку установки потрібно перейти в папку з розпакованим архівом і запустити скрипт iRedMail.sh

~# cd /root/iRedMail-x.y.z/
~# bash iRedMail.sh

Початковий екран:

iredmail welcome install

Для переходу до наступного кроку потрібно натиснути клавішу Enter. На другому кроці потрібно вибрати директорію для зберігання пошти. Можна залишити значення за замовчуванням або вказати потрібну. Для переходу на наступний крок натисніть Tab для перемикання курсору на кнопку Next, а потім – Enter.

iredmail mail directory

Тут можна вибрати спосіб зберігання облікових даних користувачів. Ми рекомендуємо MySQL (MariaDB). Для перемикання за допомогою клавіш стрілок, для вибору варіанту клавішу Пробіл. Для переходу до наступного кроку – Tab і Enter.

iredmail choose backend

Вкажіть пароль адміністратора сервера баз даних. Це повинен бути довгий набір символів з букв, цифр і розділових знаків. Надалі вам, швидше за все, не буде потрібно його використовувати, тому його можна не запам’ятовувати. А також вся необхідна інформація, в тому числі і паролі, буде записана в одному документі, який буде доступний адміністратору.

iredmail setup mysql password

Вкажіть ім’я домену, з якого ви будете відправляти пошту. Після установки можна буде додати інші домени при необхідності. Зверніть увагу, потрібно прописати ім’я домену, на якому надалі будуть створюватися email-адреси, а не hostname сервера.

iredmail configure main domain

Далі потрібно встановити пароль на обліковий запис адміністратора поштового сервера, вона ж ваша email-адреса за замовчуванням, куди після установки буде відправлена вся інформація по подальшому налаштуванню сервера. Пароль повинен бути довгим і складним (від 12 символів) і містити латинські букви різного регістра і цифри. Для цього пароля не можна використовувати спец-символи і знаки пунктуації. Цей пароль вам потрібно запам’ятати або зберегти в надійному місці, оскільки він буде постійно використовуватися для входу в веб-інтерфейс iRedAdmin.

iredmail postmaster password setup

На наступному кроці потрібно вибрати компоненти, які будуть встановлені. Можна вибрати все, або виключити деякі. Обов’язково встановіть iRedAdmin – інтерфейс управління обліковими записами.

iredmail components choose

Це був останній крок налаштувань. Після цього потрібно підтвердити установку компонентів (натиснути клавішу Y і Enter) і дочекатися завершення установки всіх необхідних пакетів. В кінці на екрані терміналу буде такий текст:

iredmail end of setup

На екран будуть виведені всі основні посилання для переходу в веб-інтерфейс і дані доступу облікового запису адміністратора.

Отримання безкоштовного SSL-сертифікату від Let’s Encrypt для iRedMail

Що потрібно з’ясувати перед отриманням сертифіката

Для яких доменних імен потрібні сертифікати?

  1. Ім’я сервера (hostname) – це ім’я зазвичай використовується при налаштуванні з’єднання з поштовими клієнтами (Outlook, Thunderbird та ін.) У нашому прикладі – iredmail.mytestsite.co.ua
  2. Імена, за якими буде здійснюватися веб-доступ до панелей адміністрування (https://iredmail.mytestsite.co.ua/iredadmin/, https://iredmail.mytestsite.co.ua/mail/)
  3. Для домену, на якому будуть створюватися поштові скриньки (mytestsite.co.ua), сертифікат не потрібен, якщо він не використовується для веб-інтерфейсів.

Один сертифікат для всіх доменних імен або декілька сертифікатів?

Nginx і Dovecot можуть використовувати різні сертифікати для різних доменних імен (SNI), але Postfix – ні. Тому ми рекомендуємо використовувати один SSL-сертифікат, який покриває відразу всі необхідні імена.

Перевірте DNS-записи для ваших доменних імен

Переконайтеся, що всі використовувані домени (субдомени) спрямовані А-записами на IP-адресу вашого сервера. Можна перевірити це за допомогою команди dig:

~$ dig +short iredmail.mytestsite.co.ua
194.28.87.18

Якщо у відповідь на команду ви отримаєте IP-адресу сервера – все налаштовано правильно.

Отримання сертифікату Let’s Encrypt SSL

Спочатку встановимо пакет certbot, призначений для випуску і автоматичного оновлення сертифікатів від Let’s Encrypt:

~# yum install certbot

Далі запускаємо отримання SSL-сертифіката:

~# certbot certonly --webroot -w /var/www/html -d iredmail.mytestsite.co.ua 
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): postmaster@mytestsite.co.ua
Starting new HTTPS connection (1): acme-staging-v02.api.letsencrypt.org

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-staging-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for iredmail.mytestsite.co.ua
Using the webroot path /var/www/html for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Resetting dropped connection: acme-staging-v02.api.letsencrypt.
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/iredmail.mytestsite.co.ua/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/iredmail.mytestsite.co.ua/privkey.pem
   Your cert will expire on 2019-05-08. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

В процесі вводимо email-адресу для реєстрації в сервісі і підтверджуємо згоду з умовами використання.

Сертифікат був отриманий і його файли збережені в папці /etc/letsencrypt/live/iredmail.mytestsite.co.ua/. Якщо ви хочете отримати сертифікати для кількох доменів одночасно, то потрібно перерахувати їх в команді випуску сертифіката через опцію -d:

~# certbot certonly --webroot -w /var/www/html -d site1.com -d site2.com ...

Змінюємо права доступу на папку з сертифікатами, щоб інші користувачі системи мали право читання:

~# chmod 0644 /etc/letsencrypt/{live,archive}

Для автоматичного оновлення сертифікатів налаштовуємо cron-завдання:

~# crontab -e

і додаємо в редакторі, що відкрився, текст:

1 3 * * 0 certbot renew --post-hook 'service postfix restart; service nginx restart; service dovecot restart'

За цієї задачею щотижня в 3:01 буде запускатися скрипт поновлення сертифікатів, який оновить всі сертифікати, термін дії яких закінчується менш, ніж через 30 днів.

Підключення сертифікатів Let’s Encrypt

Під час установки iRedMail були створені самоподпісані сертифікати, які були підключені до всіх сервісів (dovecot, postfix, nginx). Для підключення сертифікатів Let’s Encrypt замість них найпростіше буде створити символічні посилання з папки сертифікатів Let’s Encrypt в папку сертифікатів iRedMail. При цьому не потрібно редагувати будь-які конфігураційні файли служб.

Створюємо символьні посилання, попередньо перейменувавши оригінальні файли сертифікатів:

~# mv /etc/pki/tls/certs/iRedMail.crt{,.bak} # Backup. Rename iRedMail.crt to iRedMail.crt.bak
~# mv /etc/pki/tls/private/iRedMail.key{,.bak} # Backup. Rename iRedMail.key to iRedMail.key.bak
~# ln -s /etc/letsencrypt/live/iredmail.mytestsite.co.ua/fullchain.pem /etc/pki/tls/certs/iRedMail.crt
~# ln -s /etc/letsencrypt/live/iredmail.mytestsite.co.ua/privkey.pem /etc/pki/tls/private/iRedMail.key

Перезавантажуємо служби:

~# service postfix restart
~# service dovecot restart
~# service nginx restart
~# service mariadb restart

Початкові налаштування iRedMail

Відкрийте в браузері посилання виду https://mail.site.com/mail/ (адреса, за якою ви задали розташування веб-інтерфейсу пошти), авторизуйтесь з вашим обліковим записом адміністратора – postmaster@site.com. Ви побачите в папці вхідних листів кілька листів з інформацією про розташування важливих файлів конфігурації в системі, ключ DKIM, який потрібно додати в DNS-зону, посилання на всі веб-інтерфейси, рекомендації по налаштуванню поштових клієнтів і іншу важливу інформацію. Також вся ця інформація розташовується на сервері у файлі /root/iRedMail-0.9.9/iRedMail.tips.

configuration mail iredmail

Для створення і налаштування поштових скриньок потрібно перейти в панель iRedAdmin, розташовану за посиланням виду https://mail.site.com/iredadmin. Для входу використовуємо email адміністратора (postmaster@site.com) і його пароль.

iredadmin login page

Для створення поштового аккаунта потрібно натиснути Додати – Користувач

Для створення доменів, з яких буде відправлятися пошта, потрібно натиснути Додати – Домен.

Переглянути список доменів і поштових скриньок можна в розділі Домени.

iredadmin list users and domains

Ось і все, на цьому основні налаштування завершені. Якщо виникнуть будь-які питання по налаштуванню iRedMail і не тільки – сміливо звертайтеся в нашу підтримку.