Свой почтовый сервер на Linux: установка по шагам

Свой почтовый сервер на Linux: установка за 6 шагов

Марина
Марина
📅 8 сентября 2026
Свой почтовый сервер на Linux: установка за 6 шагов

Свой почтовый сервер на Linux собирается из двух программ: Postfix принимает и отправляет письма, Dovecot отдаёт их почтовому клиенту по IMAP. На чистой Ubuntu связка ставится за 40–60 минут, но заработает она только после того, как вы пропишете в DNS четыре записи и получите PTR у хостера. Минимум под такую задачу — 1 ядро и 1–2 ГБ оперативной памяти, от 59 ₽ в месяц; подобрать конфигурацию можно в разделе VPS под почтовый сервер.

Материал написан для тех, кто раньше не администрировал почту: каждая команда разобрана по частям, у каждой DNS-записи показано готовое значение, а в конце собраны ошибки, из-за которых письма улетают в спам. Отдельный раздел посвящён 25-му порту — его блокировка ломает схему ещё до установки первого пакета.

Зачем поднимать почтовый сервер на своём VPS

Собственный сервер даёт три вещи, которых нет у бесплатных ящиков: неограниченное число адресов на домене, доступ к логам доставки и хранение переписки на своём диске. Для компании из 10–30 человек это ещё и предсказуемая цена: сервис с оплатой за пользователя обойдётся в 200–400 ₽ на сотрудника, а VPS за 200 ₽ обслуживает всех сразу.

Обратная сторона — вы становитесь администратором. Никто не починит за вас упавший Postfix в субботу. На поддержку уходит 1–2 часа в месяц в спокойном режиме и целый вечер, когда IP попадает в чёрный список.

Схема оправдана при объёме до 500–1000 писем в сутки: уведомления сайта, счета, внутренняя переписка. Для рассылок на десятки тысяч адресов репутацию одиночного IP не вытянуть.

Что подготовить до установки: домен, IP и доступ

Перед первой командой закройте четыре пункта. Домен второго уровня с доступом к DNS-зоне: без права добавлять TXT-записи настройка не поедет. Выделенный IPv4-адрес. Возможность заказать у провайдера PTR-запись. И открытый исходящий 25-й порт.

Операционная система — Ubuntu 22.04 LTS или 24.04 LTS. Обе поддерживаются до 2027 и 2029 года, обе несут Postfix 3.7 и новее в штатном репозитории, так что собирать что-то из исходников не придётся. Тарифы с готовым образом ищутся в подборке VPS с Ubuntu 24.04.

Диска почта ест немного: система с пакетами занимает 4–6 ГБ, остальное уходит под письма. Для 20 ящиков с активной перепиской 20–30 ГБ хватает на 2–3 года. Бэкап настраивают в тот же день, что и сервер.

Установка почтового сервера в консоли
Postfix и Dovecot ставятся одной командой (иллюстрация интерфейса)

Сколько памяти нужно почтовому серверу и сколько стоит VPS

Postfix укладывается в 40–80 МБ памяти, Dovecot — в 60–120 МБ. Проблема начинается с антиспам-фильтра: Rspamd просит 400–600 МБ, а SpamAssassin на пике съедает до 500 МБ. Отсюда минимум в 1 ГБ для голой связки и 2 ГБ для конфигурации с фильтрацией и веб-интерфейсом.

На 512 МБ сервер запустится, но при двух-трёх одновременных подключениях ядро начнёт убивать процессы по нехватке памяти. Компромисс — 1 ГБ RAM плюс swap-файл на 2 ГБ.

Провайдер Стартовая цена Базовая конфигурация Рейтинг Тарифов в каталоге
Cloudcore от 59 ₽ / мес 1 ядро, 1 ГБ RAM, 10 ГБ NVMe 3.3 12
RuVDS от 139 ₽ / мес 1 ядро, 0.5 ГБ RAM, 10 ГБ HDD 4.3 440
Timeweb от 180 ₽ / мес 15 ГБ NVMe 4.3 77
Selectel от 200 ₽ / мес 1 ядро, 1 ГБ RAM, 10 ГБ NVMe 4.5 69
Beget от 330 ₽ / мес 1 ядро, 1 ГБ RAM, 10 ГБ NVMe 4.5 7
IQHost от 350 ₽ / мес 1 ядро, 2 ГБ RAM, 15 ГБ SSD 4.0 17

Данные проверены 02.09.2026.

Тарифы за 59–150 ₽ подходят для теста, но у бюджетных провайдеров чаще встречаются «грязные» подсети, из которых письма хуже доходят. Цены есть в подборке недорогих VPS, а вся линейка систем на ядре Linux — в разделе VPS на Linux.

Порты почтового сервера и главная проблема — закрытый 25-й

Почта живёт на шести портах, и путать их нельзя: 25-й отвечает за обмен между серверами, 587-й — за отправку писем из почтового клиента. Закроете 25-й — чужие серверы не доставят вам входящие. Оставите 587-й без обязательной авторизации — сервер за сутки станет открытым релеем для спамеров.

Порт Протокол Назначение Шифрование
25 SMTP Обмен письмами между почтовыми серверами STARTTLS, опционально
587 Submission Отправка письма из почтовой программы STARTTLS, обязательно
465 SMTPS Устаревший, но живой вариант отправки TLS сразу
143 IMAP Чтение почты без шифрования STARTTLS
993 IMAPS Основной порт для чтения почты TLS сразу
995 POP3S Скачивание писем на устройство TLS сразу

У части провайдеров исходящий 25-й порт закрыт по умолчанию — так борются со спамом с угнанных виртуалок. Открывают его по заявке в поддержку: где-то за 10 минут, где-то через 1–2 рабочих дня. Спрашивать надо до оплаты, иначе сервер будет принимать письма, но не отправит ни одного. Проверяется блокировка одной командой:

nc -zv smtp.yandex.ru 25

Утилита nc пробует открыть TCP-соединение с чужим почтовым сервером по 25-му порту. Ответ succeeded означает, что порт свободен; зависание на 20–30 секунд и timed out — что провайдер режет трафик.

Подготовка Ubuntu: hostname, обновления и файрвол

Почтовые серверы сверяют с DNS имя хоста, которым машина представляется при соединении. Задайте серверу полное доменное имя вида mail.example.ru — оно обязано совпадать с A-записью и будущей PTR-записью.

sudo hostnamectl set-hostname mail.example.ru
sudo apt update && sudo apt upgrade -y

Первая команда прописывает имя хоста так, чтобы оно пережило перезагрузку. Вторая обновляет пакеты: на чистом образе это обычно 30–80 обновлений. Дальше открываем порты — файрвол ufw идёт в Ubuntu из коробки и прячет синтаксис iptables за понятными командами.

sudo ufw allow 22/tcp
sudo ufw allow 25,80,443,587,993,995/tcp
sudo ufw enable

Порт 22 — это SSH, и открыть его нужно первой строкой: включите файрвол раньше, и потеряете доступ к серверу. Порты 80 и 443 понадобятся сертификату. Разбор правил есть в гайде о том, как настроить файрвол на Linux-сервере.

Установка Postfix: пошаговая инструкция

Postfix — это MTA, агент передачи почты: он слушает 25-й и 587-й порты и либо кладёт письмо в локальный ящик, либо передаёт дальше по цепочке. Установка занимает 5–7 минут, половина уходит на ответы мастеру настройки.

  1. Установите пакеты: sudo apt install -y postfix postfix-pcre dovecot-imapd dovecot-pop3d opendkim opendkim-tools. Флаг -y отвечает «да» на все вопросы apt.
  2. В окне мастера выберите тип «Internet Site» и укажите системное почтовое имя example.ru — это домен в адресах отправителя.
  3. Пропишите базовые параметры через postconf -e: утилита правит файл /etc/postfix/main.cf без ручного редактирования.
  4. Включите приём на 587-м порту — раскомментируйте блок submission inet n - y - - smtpd в файле /etc/postfix/master.cf.
  5. Создайте пользователя под ящик: sudo adduser marina, его логин и пароль станут учётными данными почты.
  6. Перезапустите службу: sudo systemctl restart postfix и проверьте статус active (running).
sudo postconf -e "myhostname = mail.example.ru"
sudo postconf -e "mydomain = example.ru"
sudo postconf -e "home_mailbox = Maildir/"
sudo postconf -e "smtpd_sasl_type = dovecot"
sudo postconf -e "smtpd_sasl_path = private/auth"
sudo postconf -e "smtpd_sasl_auth_enable = yes"
sudo postconf -e "smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination"

Параметр home_mailbox складывает письма в формат Maildir — каждое письмо отдельным файлом, что безопаснее при сбоях, чем общий mbox. Строка smtpd_recipient_restrictions закрывает сервер от посторонних: отправлять смогут только авторизованные пользователи. Без неё вас найдут спам-боты в первые сутки.

DNS-записи для доставляемости писем
Без SPF, DKIM и PTR письма уходят в спам

Настройка Dovecot: ящики, IMAP и POP3

Dovecot — вторая половина связки. Postfix письма принимает и раскладывает, а Dovecot отдаёт их наружу по IMAP на порт 993 или по POP3 на 995 и заодно проверяет пароли при отправке. Конфигурация разнесена по файлам в каталоге /etc/dovecot/conf.d/.

В файле 10-mail.conf строкой mail_location = maildir:~/Maildir укажите, где лежат письма, — путь обязан совпадать с заданным в Postfix. В 10-auth.conf добавьте disable_plaintext_auth = yes: директива не даёт клиенту авторизоваться по незашифрованному каналу.

Самое важное — связать две программы. В конец файла 10-master.conf добавьте сокет, через который Postfix спрашивает у Dovecot, верен ли пароль:

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
}

Права 0660 означают, что читать и писать в сокет могут владелец и группа, а посторонние — нет. После правок выполните sudo systemctl restart dovecot.

Сертификат Let’s Encrypt: бесплатно и на 90 дней

Без TLS-сертификата почтовый клиент будет ругаться на каждое подключение, а часть серверов-получателей понизит доверие к письмам. Сертификат от Let’s Encrypt выдаётся бесплатно, действует 90 дней и продлевается автоматически.

sudo apt install -y certbot
sudo certbot certonly --standalone -d mail.example.ru

Режим --standalone поднимает на 80-м порту временный веб-сервер, через который центр сертификации проверяет, что домен ваш. Проверка идёт 10–20 секунд, файлы окажутся в каталоге /etc/letsencrypt/live/mail.example.ru/. Осталось указать их Postfix:

sudo postconf -e "smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.ru/fullchain.pem"
sudo postconf -e "smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.ru/privkey.pem"
sudo postconf -e "smtpd_tls_security_level = may"

Файл fullchain.pem содержит сертификат с цепочкой промежуточных, privkey.pem — закрытый ключ. Те же пути пропишите в 10-ssl.conf у Dovecot. Автопродление настроено таймером systemd и срабатывает за 30 дней до истечения; проверяется командой sudo certbot renew --dry-run. Подробности — в гайде как установить SSL от Let’s Encrypt.

DNS-записи MX, SPF, DKIM, DMARC и PTR с примерами

Программы установлены, но почта пока никуда не идёт: чужие серверы не знают, куда доставлять письма для вашего домена, и не могут проверить, что отправитель — это вы. За это отвечают пять записей в DNS плюс PTR у провайдера. Значения для домена example.ru с сервером на адресе 203.0.113.10.

Тип Имя Значение Что делает
A mail 203.0.113.10 Связывает имя mail.example.ru с IP сервера
MX @ 10 mail.example.ru. Указывает хост, принимающий почту домена; 10 — приоритет
TXT (SPF) @ v=spf1 mx a:mail.example.ru -all Перечисляет серверы, которым разрешено отправлять от имени домена
TXT (DKIM) mail._domainkey v=DKIM1; k=rsa; p=MIIBIjANBgkq… Публичный ключ для проверки подписи письма
TXT (DMARC) _dmarc v=DMARC1; p=quarantine; rua=mailto:dmarc@example.ru Говорит получателю, что делать с непрошедшими проверку письмами
PTR обратная зона mail.example.ru Возвращает имя хоста по IP; ставится только у провайдера

Значение -all в SPF означает жёсткий запрет: письма с других адресов получатель вправе отклонить. Мягкий вариант ~all ставят на первые 2–3 недели. Политика p=quarantine отправляет подозрительные письма в спам, а не удаляет их; начинать лучше с p=none.

Сами вы PTR-запись не добавите: обратную зону держит владелец IP-адреса. Заявку оформляют через панель или тикет, выполняют за 15 минут — сутки. Приоритет в MX-записи имеет значение только при нескольких серверах: меньшее число — выше приоритет.

Генерация ключа DKIM через OpenDKIM

DKIM подписывает каждое исходящее письмо закрытым ключом, а получатель сверяет подпись с публичным ключом из DNS. Без подписи Gmail и Mail.ru почти гарантированно положат письмо в спам. Ключ генерируется тремя командами:

sudo mkdir -p /etc/opendkim/keys/example.ru
sudo opendkim-genkey -b 2048 -d example.ru -D /etc/opendkim/keys/example.ru -s mail -v
sudo chown -R opendkim:opendkim /etc/opendkim/keys

Параметр -b 2048 задаёт длину ключа в битах: 1024 уже считается слабым, 2048 — текущая норма. Флаг -s mail — это селектор, произвольное имя, которое станет частью DNS-записи mail._domainkey. Последняя команда передаёт файлы ключей служебному пользователю, иначе OpenDKIM не запустится из-за прав доступа.

В каталоге появятся два файла: mail.private с закрытым ключом, который не покидает сервер, и mail.txt с готовой DNS-записью. Содержимое второго копируется в панель домена — из значения убирают переносы строк и кавычки.

Проверка доставляемости писем

После правки DNS подождите, пока записи разойдутся по кэшам: обычно 15–60 минут, но при TTL 3600 и выше — до 4 часов. Затем проверьте каждую запись отдельно, не полагаясь на панель регистратора.

dig +short MX example.ru
dig +short TXT mail._domainkey.example.ru
dig -x 203.0.113.10 +short

Утилита dig спрашивает DNS напрямую и показывает то, что реально видят чужие серверы. Флаг +short убирает служебные строки, -x запускает обратный запрос и показывает, есть ли PTR-запись. Если вывод пуст, пишите в поддержку хостера. Больше приёмов диагностики — в гайде о том, как проверить DNS.

Дальше отправьте тестовое письмо на публичный сервис оценки доставляемости: он вернёт балл от 0 до 10 и покажет непройденные проверки. Цель — 9–10 баллов, при 7 и ниже письма попадают в спам у части получателей. Результат сверьте с журналом:

sudo tail -n 50 /var/log/mail.log

Команда показывает последние 50 строк лога. Строка со status=sent означает, что письмо принято сервером получателя; status=deferred — доставка отложена и будет повторяться до 5 дней; status=bounced — отказ, и рядом будет причина.

Частые ошибки при настройке почтового сервера

Почти все проблемы с самостоятельным почтовым сервером сводятся к шести сценариям. Каждый диагностируется за 5–10 минут, если знать, куда смотреть.

  • Письма уходят в спам. Причина в 8 случаях из 10 — отсутствие или ошибка в DKIM и SPF.
  • Закрыт 25-й порт. Исходящие висят в очереди со статусом deferred, входящие не приходят вовсе.
  • Нет PTR-записи. Крупные почтовые системы отклоняют письма с адресов без обратной зоны.
  • Самоподписанный сертификат. Клиенты показывают предупреждение, часть серверов откажется от TLS.
  • Открытый релей. Забытая строка reject_unauth_destination — и за сутки ваш IP в чёрных списках.
  • Две SPF-записи в зоне. Стандарт допускает одну; при двух проверка проваливается целиком.

Отдельная история — новый IP без истории отправки. Даже при идеальных записях первые 100–200 писем могут попадать в спам: почтовые системы наблюдают за адресом 2–4 недели. Наращивайте объём постепенно.

Частые вопросы

Сколько оперативной памяти реально нужно почтовому серверу? Связка Postfix и Dovecot без антиспама работает на 1 ГБ и занимает 150–200 МБ в покое. Планируете Rspamd и веб-интерфейс — берите 2 ГБ.

Что делать, если провайдер не открывает 25-й порт? Входящую почту вы получите в любом случае, ограничение касается исходящих соединений. Вариантов два: сменить хостера или отправлять письма через внешний SMTP-релей, указав его в параметре relayhost Postfix.

Обязателен ли выделенный IP-адрес? Да. На общем адресе PTR-запись указывает на чужое имя, а репутация зависит от соседей: одна спам-рассылка с той же машины — и ваши письма перестают доходить.

Можно ли поставить почту на тот же сервер, где крутится сайт? На VPS с 2 ГБ RAM это допустимо, если сайт не нагруженный. Но перезагрузка ради обновления сайта на 2–3 минуты останавливает и приём почты.

Что делать, если IP попал в чёрный список? Найдите, какой именно список вас отклоняет, — причина будет в строке bounced почтового лога. Затем подайте заявку на исключение: типовое рассмотрение занимает от 24 часов до 7 дней.

Насколько сложно поддерживать такой сервер? В спокойном режиме 1–2 часа в месяц: обновления пакетов, проверка сертификата, просмотр отчётов DMARC. Копирование каталога Maildir раз в сутки обязательно, иначе переписку после сбоя диска не восстановить.

Postfix или готовая сборка вроде iRedMail? Сборка ставит те же Postfix, Dovecot и антиспам одним скриптом за 20–30 минут, но прячет настройки. Для первого сервера полезнее пройти шаги вручную: когда письма начнут теряться, вы будете знать, какой файл открывать.

Итог

Свой почтовый сервер на Linux — это Postfix, Dovecot с доступом по IMAP на 993-м порту, бесплатный сертификат на 90 дней и пять DNS-записей: A, MX, SPF, DKIM и DMARC плюс PTR от провайдера. Из железа хватит 1 ядра и 1–2 ГБ памяти, из бюджета — от 59 до 350 ₽ в месяц.

Выяснить до оплаты нужно две вещи: открыт ли исходящий 25-й порт и дают ли PTR-запись. Без них связка не заработает. Подходящие тарифы собраны в разделе VPS для почтового сервера — там видно цену, объём памяти и локацию.

Поделиться:
👁 51 просмотров
Марина
Редактор · FREEHOSTING
Главный редактор FREEHOSTING. С 2020 года тестирует VDS, VPS и хостинг-провайдеров — арендует серверы, нагружает их реальными проектами и пишет честные обзоры по итогам. Помогает читателям выбирать хостинг под свои задачи: от Telegram-бота до production-сайта.