Як встановити та налаштувати поштовий сервер postfix з dovecot у Linux Ubuntu
Як встановити та налаштувати поштовий сервер postfix з dovecot, як налаштувати поштовий сервер щоб ваша пошта не потрапила до спаму, як додати DNS записи SPF, DKIM та DMARC, про все це читайте у нашій статті.

- Крок 1. Що потрібно для встановлення
- Крок 2. Введіть ім'я хоста і створіть записи DNS для домену
- Крок 3. Встановлення поштового сервера Postfix в Ubuntu
- Крок 4. Тестування поштового сервера Postfix на Ubuntu
- Крок 5. Встановлення Dovecot IMAP та POP в Ubuntu
- Питання та відповіді
- Коментарі
Створення поштового сервера на машинах під керуванням Linux може бути однією з найважливіших речей, яку має зробити кожен системний адміністратор. Якщо ви вперше налаштовуєте свій сервер, то зіткнетеся з безліччю моментів, які потрібно врахувати під час його налаштування. У цій статті ми розглянемо, як зробити первинне налаштування сервера, як встановити поштовий агент postfix, поштовий сервер dovecot, та як налаштувати їх для правильної роботи.
Postfix — це агент передачі пошти (MTA) з відкритим вихідним кодом, який можна використовувати для маршрутизації та доставки електронної пошти в Linux.
Dovecot — це агент доставки пошти, написаний насамперед з урахуванням вимог безпеки. Я покажу, як його налаштувати як сервер IMAP або POP3.
Крок | Етап | Опис |
---|---|---|
1 | Що потрібно для встановлення |
1. Доступ до сервера з Ubuntu. 2. Адміністративні права (root доступ) або доступ через sudo .3. Доменне ім’я або піддомен для поштового сервера. 4. Можливість створення записів DNS для вашого домену. |
2 | Введіть ім’я хоста і створіть записи DNS для домену |
1. Встановіть ім’я хоста командою:sudo hostnamectl set-hostname mail.example.com 2. Налаштуйте DNS-записи для домену: – A-запис: Вказує на IP-адресу вашого сервера. – MX-запис: Вказує на доменне ім’я поштового сервера (наприклад, mail.example.com). |
3 | Встановлення поштового сервера Postfix в Ubuntu |
1. Оновіть список пакетів: sudo apt update 2. Встановіть Postfix: sudo apt install postfix 3. Під час встановлення виберіть режим Internet Site і введіть домен. 4. Змініть конфігураційний файл Postfix: sudo nano /etc/postfix/main.cf 5. Додайте або змініть такі параметри:
myhostname = mail.example.com
|
4 | Тестування поштового сервера Postfix на Ubuntu |
1. Перезапустіть Postfix: sudo systemctl restart postfix 2. Відправте тестовий лист командою: echo "Тестовий лист" | mail -s "Test" user@example.com 3. Перевірте журнал Postfix: sudo tail -f /var/log/mail.log
|
5 | Встановлення Dovecot IMAP та POP в Ubuntu |
1. Встановіть Dovecot IMAP та POP3: sudo apt install dovecot-imapd dovecot-pop3d 2. Змініть конфігураційний файл Dovecot: sudo nano /etc/dovecot/dovecot.conf 3. Додайте або перевірте наступні параметри:
protocols = imap pop3 lmtp 4. Перезапустіть Dovecot: sudo systemctl restart dovecot
|

Встановлення та налаштування поштового сервера postfix з dovecot у Linix Ubuntu
Крок 1. Що потрібно для встановлення
Для початку установки вам знадобиться налаштований з повним доменним ім’ям (FQDN), сервер Linux Ubuntu. На сервері потрібно додати користувача без root повноважень, але із привілеями sudo. І відкрити відповідні порти у вашій мережі. Сервер з потрібними налаштуваннями я вже маю, а також налаштовані порти для нього. Залишилося додати користувача і приступати до встановлення поштових додатків.
Для додавання користувача відкрийте термінал (поєднанням клавіш Ctrl + Alt + T), та виконайте таку команду:
adduser demo

Задаємо йому новий пароль, решту значень залишаємо без змін, за бажання ви можете вказати будь-яку додаткову інформацію. Тепер у вас є новий обліковий запис користувача з правами звичайного облікового запису. Однак, іноді вам потрібно буде виконувати адміністративні завдання як користувача root.
Щоб уникнути виходу з вашого звичайного користувача та повторного входу в обліковий запис root, ви можете налаштувати так звані привілеї суперкористувача або root для звичайного облікового запису вашого користувача. Це дозволить запускати команди з адміністративними привілеями, поставивши слово sudo перед командою.
Для додавання привілеїв потрібно додати нового користувача до системної групи sudo, виконавши команду:
usermod -aG sudo demo

Крок 2. Введіть ім'я хоста і створіть записи DNS для домену
Наступне, що потрібно зробити, це встановити дійсне доменне ім'я для вашого сервера.
Для цього є спеціальна команда hostnamectl:
sudo hostnamectl set-hostname hetmansoftware.com

Потім, потрібно додати записи MX та A для домену в панель керування DNS. Ці записи будуть вказувати іншим поштовим агентам, що ваш домен відповідає за доставку електронної пошти.

Відкрийте панель керування DNS і додайте ці записи, потрібно вказати публічну IP-адресу вашого сервера.
Крок 3. Встановлення поштового сервера Postfix в Ubuntu
Тепер можна приступати до встановлення поштового агента Postfix.
Для його встановлення виконайте таку команду:
$ sudo apt-get install postfix

У вікні - Postfix Configuration, тиснемо - OK. Далі, система запропонує обрати тип налаштування пошти, тут потрібно виділити - «Internet Site» - Enter.

У наступному вікні потрібно ввести доменне ім'я, яке буде використовуватися для надсилання електронної пошти. Після встановлення Postfix він автоматично запуститься і створить конфігураційний файл у /etc/postfix/main.cf.

Ви можете перевірити версію Postfix та статус служби за допомогою наступних команд:
$ sudo systemctl status postfix

Якщо потрібно змінити конфігурацію, введіть команду:
sudo dpkg-reconfigure postfix
Тиснемо – ОК і потрібно виділити - «Internet Site» - Enter. У наступному вікні потрібно ввести доменне ім'я, яке буде використовуватися для надсилання електронної поти. Потім - отримувача пошти. Вказати інші напрямки для отримання пошти.

Примусово синхронізувати оновлення у поштовій черзі: Ні. Локальні мережі залишаємо без змін.

Обмеження розміру поштової скриньки: 0. Символ розширення локальної адреси: +. Інтернет-протоколи: Всі.

Крок 4. Тестування поштового сервера Postfix на Ubuntu
Тепер перевіримо, чи підключено наш поштовий сервер до порту 25, використовуючи наступну команду:
$ telnet gmail-smtp-in.l.google.com 25

Виведений системою результат вказує, що з'єднання успішно встановлено. Щоб закрити з'єднання, введіть quit.
Також, для перевірки пошти можна використовувати поштову програму, але спершу її потрібно встановити. Виконайте команду установки:
apt install mailutils
Для цього виконайте таку команду:
/usr/sbin/sendmail dmitriyzh23@gmail.com
Вкажіть поштову адресу для надсилання листа, теми та вмісту, а потім Сtrl + D для надсилання.

Пошта працює, лист дійшов, але потрапив до спаму. Далі ми розглянемо, які ще потрібно внести налаштування, щоб пошта не потрапляла до спаму.

Після надсилання першого листа в папці var/mail/, програма створить файл з ім'ям користувача. В цьому файлі буде записуватися вся вхідна та вихідна пошта.

Такий формат запису називається - mbox. Для використання формату maildir, який поділяє повідомлення на окремі файли, які потім переміщуються між каталогами в залежності від дій користувача, потрібно внести зміни до файлу конфігурації.
Sudo nano /etc/postfix/main.cf
Додаємо рядок home_mailbox= Maildir/:

Або виконаємо команду:
sudo postconf -e 'home_mailbox= Maildir/'
У такому разі пошта зберігатиметься в окремих файлах таким шляхом: home/demo/Maildir/new
Крок 5. Встановлення Dovecot IMAP та POP в Ubuntu
У результаті, поштовий сервер вже працює: можна надсилати та приймати пошту, але навряд чи він обійдеться без можливості надсилання пошти по SMTP. Підтримка цього протоколу вже є у Postfix, але за замовчуванням там немає авторизації. Для додавання підтримки авторизації слід використовувати Dovecot. Як бонус ви отримаєте можливість переглядати ваші листи за протоколами POP3 та IMAP. Спочатку потрібно встановити сам сервіс Dovecot для його встановлення, виконайте таку команду:
sudo apt-get install dovecot-imapd dovecot-pop3d
Після встановлення рекомендується перезапустити службу – dovecot:
sudo systemctl restart dovecot

Щоб налаштувати dovecot, вам потрібно відредагувати файл /etc/dovecot/dovecot.conf. Щоб відкрити його, виконайте наступну команду:
nano /etc/dovecot/dovecot.conf:
Ви можете обрати, який протокол використовувати. Це може бути pop3, pop3s (безпечний pop3), imap або imaps (безпечний imap). IMAPS та POP3S більш безпечні, ніж звичайні IMAP та POP3, оскільки використовують SSL шифрування для з'єднання. Як тільки ви оберете протокол, виправте наступний рядок у файлі dovecot.conf.
Щоб відкрити його, виконайте наступну команду:
nano /etc/dovecot/dovecot.conf:
Додайте (Змініть) цей рядок:
protocols = pop3 pop3s imap imaps
Ctrl + Х, та Yes для збереження - Enter.

Тепер перевіримо роботу POP3. Переходимо на сервіс перевірки, вводимо дані, start test та дивимося результат.

Отже, пошту ми налаштували, тепер потрібно зробити так, щоб вона не потрапляла до спаму. Для цього потрібно додати ще кілька DNS записів. Відкриваємо панель керування DNS. Додаємо записи SPF, DMARC та DKIM.
Як додати DKIM запис
Для роботи SPF та DMARC достатньо додати їх DNS записи. Для роботи DKIM потрібно його встановити на сервері.

«DKIM (DomainKeys Identified Mail)» — метод електронної пошти автентифікації, розроблений для виявлення підроблення повідомлень, що пересилаються по email. DKIM дає можливість одержувачу перевірити, що лист справді був відправлений із заявленого домену.
Для встановлення пакета виконайте таку команду:
apt-get install opendkim opendkim-tools

Потім запускаємо та додаємо в автозавантаження:
sudo systemctl start opendkim
sudo systemctl enable opendkim
Далі, потрібно створити сертифікат за допомогою opendkim-genkey.
Створюємо каталог для ключів, такою командою:
mkdir /etc/opendkim
І генеруємо ключ такою командою:
opendkim-genkey -D /etc/opendkim/ --domain hetmansoftware.com --selector mail
Тут потрібно вказати доменне ім'я вашого сервера.

У папці /etc/opendkim/ має з'явитися два файли з розширеннями .private (закритий ключ) та .txt (txt-запис). Далі налаштуємо DNS.
Дивимося вміст файлу txt:
cat /etc/opendkim/mail.txt

Копіюємо вміст, переходимо в панель керування DNS і створюємо TXT-запис:
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"вміст txt файлу"
mail - назва нашого селектора,
p= p=MIIBIjANB...IDAQAB - скорочений запис відкритого ключа.

sudo chown -R opendkim:opendkim /etc/opendkim
Тепер внесемо зміни до конфігураційного файлу:
sudo nano /etc/opendkim.conf
Тут потрібно розкоментувати та додати декілька рядків:
AutoRestart Yes
AutoRestartRate 10/1h
Umask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Mode sv
Canonicalization relaxed/simple
UserID opendkim:opendkim
Socket inet:8891@localhost
PidFile /var/run/opendkim/opendkim.pid
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
SignatureAlgorithm rsa-sha256

Додамо наш домен у довірені хости:
sudo nano /etc/opendkim/TrustedHosts
Додаємо домен, Сtrl + Х, Yes, Enter.

Потрібно вказати шлях до ключа:
sudo nano /etc/opendkim/KeyTable
mail._domainkey.hetmansoftware.com hetmansoftware.com:mail:/etc/opendkim/dkim.private
Сtrl + Х, Yes, Enter.

Шлях до підпису:
sudo nano /etc/opendkim/SigningTable
*@hetmansoftware.com mail._domainkey.hetmansoftware.com
Сtrl + Х, Yes, Enter.

Перезапускаємо сервіси:
sudo systemctl restart opendkim
sudo systemctl restart postfix
Отже, запис додали. Тепер, перевіримо його. Відкриваємо у браузері сервіс перевірки DKIM.
https://dmarcian.com/dkim-inspector/
Вводимо в поля домен та ім'я селектора. Сервіс знайшов мій запис DKIM.

Запис додано, для більш детального налаштування (додавання довірених хостів, доменів і т.д.) потрібно відкрити файл конфігурації та внести додаткові налаштування.
Тепер, іще раз перевіримо надсилання пошти:
/usr/sbin/sendmail dmitriyzh23@gmail.com
From: demo@hetmansoftware.com
Subject: test
Test send mail spf dkim dmarc
Ctrl + D
Лист дійшов, і цього разу не потрапив до спаму. Відправимо відповідь листа. Пошта працює.

Ми встановили та налаштували поштовий агент postfix та dovecot, перевірили роботу пошти та додали відповідні DNS записи. Для зручнішої роботи можна додати сервер зберігання MySql та поштовий клієнт, наприклад Roundcube.

Postfix.
Exim.
Qmail.
Dwarf Mail Server.
MailerQ.
Courier Mail Server.
Apache James Server.
"IMAP: шифроване підключення SSL – 993, без шифрування – 143.
SMTP: шифроване підключення SSL – 465, без шифрування – 587.
POP3: шифроване підключення SSL – 995, без шифрування – 110."