До основного вмісту

Postfix: налаштування поштового сервера на VPS

Хостинг та cPanel · 28.02.2025 · 5 хв читання
Ілюстрація до статті «Postfix: налаштування поштового сервера на VPS»
Важливо для серверів ZevsHost: вихідні SMTP-порти 25, 465 і 587 на VDS закриті за замовчуванням — це захист мережі від спам-розсилок. Описана нижче пряма доставка на новому сервері не працюватиме, як і зовнішні релеї через SMTP. Перевіреним клієнтам порти відкриваємо за заявкою в підтримку, кожен випадок розглядаємо окремо. Якщо листи потрібні одразу — надсилайте через HTTP API поштового сервісу: він працює на 443 і під обмеження не підпадає. На віртуальному хостингу та виділених серверах обмеження немає.

Встановлення Postfix

apt install postfix -y
# При встановленні виберіть: Internet Site
# System mail name: yourdomain.com

Основні параметри main.cf

# /etc/postfix/main.cf
myhostname = mail.yourdomain.com
mydomain = yourdomain.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, $mydomain

# TLS
smtpd_tls_cert_file = /etc/letsencrypt/live/yourdomain.com/fullchain.pem
smtpd_tls_key_file  = /etc/letsencrypt/live/yourdomain.com/privkey.pem
smtpd_use_tls = yes
smtpd_tls_security_level = may

# Обмеження ретрансляції
smtpd_relay_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination

Перевірка налаштування

# Тест відправлення
echo "Test email" | mail -s "Subject" test@example.com

# Перегляд черги
mailq

# Логи
tail -f /var/log/mail.log
⚠️ Не запускайте відкритий relay (open relay) — ваш сервер стане джерелом спаму і потрапить у блок-листи за кілька годин.
💡 Для продакшн-пошти розгляньте готові рішення: Mailcow, iRedMail або Modoboa — вони включають Postfix, Dovecot, Rspamd і веб-інтерфейс.

Часті помилки при налаштуванні Postfix

Більшість проблем з поштою на VPS видно одразу в логах — навчіться їх читати.

554 5.7.1 <user@example.com>: Relay access denied

Сервер відхиляє лист, тому що відправник не входить у mynetworks і не пройшов SASL-авторизацію, а отримувач — не локальний домен. Перевірте smtpd_relay_restrictions у main.cf: якщо застосунок надсилає листи з того самого сервера через localhost, додайте 127.0.0.1/32 до mynetworks.

connect to 127.0.0.1[127.0.0.1]:10024: Connection refused (port 10024)

Postfix налаштований передавати листи через контент-фільтр (Amavis, Rspamd) на порту 10024, але сам фільтр не запущений або не встановлений. Перевірте systemctl status rspamd або приберіть рядок content_filter з main.cf, якщо фільтрація не потрібна.

Received-SPF: fail (domain owner discourages use of this host)

Отримувач перевірив SPF-запис домену і не знайшов у ньому IP вашого сервера. Лист позначається як підозрілий або одразу відхиляється. Додайте IP-адресу VPS до SPF-запису домену — див. налаштування SPF, DKIM і DMARC.

Maildir і mbox: формати зберігання пошти

ПараметрMaildirmbox
ФорматКожен лист — окремий файлУсі листи в одному файлі
Блокування при доступіНе потрібніПотрібні (file locking)
Надійність при збоїВисокаРизик пошкодити всю скриньку
Підтримка IMAP-серверівDovecot, CourierЛише застарілі

За замовчуванням сучасний Postfix із Dovecot використовує Maildir — задається параметром home_mailbox = Maildir/ у main.cf. Переходити на mbox сьогодні немає причин.

Коли Postfix на VPS не підходить

Розгортати власний поштовий сервер заради 10–20 транзакційних листів на день — надлишково: простіше підключити SMTP-relay (SendGrid, Mailgun, Amazon SES) без турбот про репутацію IP та SPF/DKIM. Свіжа IP-адреса VPS не має історії надсилань — перші листи поштові провайдери масово відправляють у спам, поки IP не «прогріється» тижнями поступового зростання обсягу. Якщо PTR-запис для IP-адреси сервера не налаштований (див. зворотний DNS і PTR), великі поштові сервіси на кшталт Gmail відхиляють листи без пояснень — це перше, що варто перевірити перед розбором решти налаштувань.

Перевірка результату

Не покладайтеся лише на «лист дійшов» — перевірте чергу, шифрування і підпис окремо:

# Черга листів
mailq

# Тест TLS-з'єднання
openssl s_client -connect mail.example.com:587 -starttls smtp

# Перевірка DKIM-ключа
opendkim-testkey -d example.com -s mail -vvv

Найкращий зовнішній тест — mail-tester.com: надішліть лист на видану адресу і отримайте оцінку за SPF, DKIM, DMARC, чорними списками і вмістом листа. Оцінка нижче 8/10 зазвичай означає, що потрібно виправити хоча б один із пунктів вище.

Перед перезапуском служби завжди перевіряйте синтаксис конфігурації командою postfix check — одруківка в main.cf не завжди одразу зупиняє Postfix, але може призвести до тихої відмови приймати листи на нових з'єднаннях. Таку помилку легко пропустити, бо служба формально продовжує працювати, а в логах видно лише один рядок відмови на конкретне з'єднання, а не явну причину.

Часті питання

Скільки часу займає відкриття портів 25/465/587 після звернення в підтримку, і чи можна обійтися без них взагалі?

Точний термін залежить від конкретного випадку — заявку розглядають індивідуально, а не за шаблоном, перевіряючи репутацію клієнта і мету використання портів. Обійтися без відкриття портів можна, коли листи надсилають через HTTP API поштового сервісу: він працює на порту 443 і під обмеження не підпадає, тому для багатьох проєктів окрема заявка взагалі не потрібна.

Чи потрібно додатково встановлювати Dovecot, щоб читати пошту в поштовому клієнті, чи Postfix впорається з цим сам?

Так, Postfix лише приймає і надсилає пошту по SMTP, а для доступу до скриньки через поштовий клієнт по IMAP чи POP3 потрібен окремий сервіс — найчастіше Dovecot. Без нього листи технічно доставляються і зберігаються на сервері, але прочитати їх в Outlook, Thunderbird чи на телефоні не вийде.

Якщо переносити вже працюючий поштовий сервер на новий VPS, чи потрібно знову «прогрівати» IP-адресу?

Так, репутація прив'язана до конкретної IP-адреси, а не до домену чи історії листування, тому за зміни сервера прогрів починається знову. Щоб знизити ризик потрапляння в спам на новій адресі, збільшуйте обсяг надсилання поступово, стежте за SPF і DKIM і за можливості збережіть попередню IP-адресу, якщо провайдер підтримує таку міграцію.

Чи безпечно тримати Postfix і веб-сервер на одному й тому самому VPS?

Саме поєднання не є небезпечним: Postfix і веб-сервер — незалежні служби, які займають різні порти і зазвичай чудово працюють на одному VPS. Важливіше інше — ізолювати конфігурацію і журнали одне від одного і стежити, щоб вразливість у веб-застосунку не дозволила зловмиснику перетворити сервер на джерело спаму через той самий Postfix.

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці