Полный гид по развертыванию собственного почтового сервера

Иван Корнев·12.04.2026·5 мин

Чтобы настроить работающий почтовый сервер, необходимо подготовить выделенный сервер (VPS) со статическим IP, установить связку Postfix (SMTP) и Dovecot (IMAP/POP3), а также корректно прописать в DNS домена записи MX, SPF, DKIM и DMARC. Без этих шагов письма будут попадать в спам или не доставляться вовсе. Ниже приведена подробная инструкция для ОС Ubuntu 24.04 LTS, охватывающая установку, конфигурацию и критически важные проверки параметров.

Собственный сервер дает полный контроль над данными и независимость от крупных провайдеров, но требует внимательного отношения к безопасности и репутации IP-адреса. Время на базовую настройку составляет 2–4 часа.

Минимальные требования:

  • ОС: Ubuntu 24.04 LTS или Debian 12.
  • Ресурсы: от 2 ГБ ОЗУ, 2 ядра CPU, 20 ГБ SSD.
  • Сеть: Статический IPv4 адрес, открытые порты 25, 465, 587, 993, 995.
  • Домен: Собственный домен с возможностью редактирования DNS-зоны.

Выбор программного стека и подготовка системы

Для новичков оптимальным балансом между гибкостью и сложностью является классическая связка Postfix + Dovecot. Она бесплатна, стабильна и имеет огромную базу документации. Альтернативы вроде Mail-in-a-Box проще в установке (скрипт «все в одном»), но сложнее в тонкой отладке при возникновении проблем.

Начните с обновления системы и установки базовых пакетов:

sudo apt update && sudo apt upgrade -y
sudo apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd openssl ca-certificates

В процессе установки Postfix мастер предложит выбрать тип конфигурации. Выберите «Internet Site» и введите ваш домен (FQDN), например, mail.example.com. Это имя сервера будет использоваться в заголовках писем.

Настройка обязательных DNS-записей

Почтовый сервер не будет функционировать без правильной настройки доменной зоны. Зайдите в панель управления вашим регистратором домена или DNS-хостингом (например, Cloudflare) и добавьте следующие записи.

Тип записиИмя хоста / ПоддоменЗначение / ДанныеПриоритетОписание
Amail<ВашIPсервера>Привязка поддомена почты к IP
MX@ (или пустое)mail.example.com10Указание сервера для приема почты
TXT@v=spf1 a mx ip4:<Ваш_IP> ~allSPF: разрешение отправлять с этого IP
TXT_dmarcv=DMARC1; p=quarantine; rua=mailto:[email protected]DMARC: политика обработки спама
TXTdefault._domainkeyv=DKIM1; k=rsa; p=<Публичный_ключ>DKIM: цифровая подпись (генерируется позже)

Критично важно: Запись SPF должна включать ваш текущий IP. Если вы используете сторонние сервисы рассылки (например, SendGrid) параллельно с своим сервером, их механизмы также нужно добавить в SPF через include:. Отсутствие записей SPF и DKIM гарантирует попадание писем в папку «Спам» у получателей на Gmail и Outlook.

Проверить применение записей можно командой dig MX example.com или через онлайн-инструменты вроде MXToolbox. Полное обновление DNS может занять от 15 минут до 48 часов.

Конфигурация Postfix (SMTP)

Основной файл конфигурации находится по пути /etc/postfix/main.cf. Отредактируйте его, убедившись, что следующие параметры установлены корректно:

myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

# Настройки TLS (шифрование)
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
smtp_tls_security_level = may

# Аутентификация
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname

# Ограничения ретрансляции
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

Установка действительного SSL-сертификата

Сертификаты «snakeoil» (самоподписанные), идущие по умолчанию, вызовут ошибки в почтовых клиентах. Установите бесплатный сертификат Let's Encrypt:

sudo apt install certbot
sudo certbot certonly --standalone -d mail.example.com

После получения сертификатов обновите пути в main.cf:

  • smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
  • smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem

Перезапустите службу: sudo systemctl restart postfix.

Интеграция Dovecot (IMAP/POP3)

Dovecot отвечает за хранение почты и доступ пользователей к ящикам.

  1. В файле /etc/dovecot/dovecot.conf раскомментируйте строку: !include conf.d/*.conf

  2. Настройте сокеты аутентификации в /etc/dovecot/conf.d/10-master.conf, чтобы Postfix мог использовать Dovecot для проверки паролей:

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

3.  Включите обязательное шифрование в `/etc/dovecot/conf.d/10-ssl.conf`:
    
```conf
    ssl = required
    ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
    ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
    ```

4.  В файле `/etc/dovecot/conf.d/10-auth.conf` убедитесь, что включены механизмы `plain` и `login`, и раскомментирована строка `!include auth-system.conf.ext` (для системных пользователей) или настройте виртуальных пользователей через SQL, если планируется масштабирование.

Завершите настройку перезапуском: `sudo systemctl restart dovecot`.

## Настройка цифровой подписи (DKIM)

Для генерации ключей DKIM установите пакет `opendkim`:


```bash
sudo apt install opendkim opendkim-tools
sudo usermod -aG postfix opendkim

Создайте директорию для ключей и сгенерируйте их:

sudo mkdir -p /etc/opendkim/keys/example.com
cd /etc/opendkim/keys/example.com
opendkim-genkey -b 2048 -d example.com -s default -v
sudo chown opendkim:opendkim default.private

Добавьте содержимое файла default.txt (без кавычек и заголовков) в вашу DNS-зону как TXT-запись для селектора default._domainkey.

Настройте интеграцию с Postfix, добавив в /etc/postfix/main.cf:

smtpd_milters = inet:localhost:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

Перезапустите обе службы: systemctl restart opendkim postfix.

Чек-лист проверки параметров

После настройки обязательно протестируйте сервер перед началом активной работы.

  1. Проверка портов: Убедитесь, что фаервол пропускает трафик. sudo ufw allow 'Postfix' и sudo ufw allow 'Dovecot'.
  2. Тест подключения: Используйте telnet mail.example.com 25. Вы должны увидеть баннер с именем вашего хоста.
  3. Валидация доставки: Отправьте тестовое письмо на внешний ящик (Gmail, Yandex). Проверьте заголовки письма (Show original):
    • Наличие заголовка Authentication-Results со статусом pass для SPF, DKIM и DMARC.
    • Отсутствие предупреждений о неподписанном соединении.
  4. Онлайн-сканеры: Воспользуйтесь сервисом mail-tester.com. Отправьте письмо на указанный там уникальный адрес. Оценка должна быть выше 9/10. Сервис подсветит проблемы с черными списками (RBL) или настройками DNS.

Автоматизация обновлений: Не забудьте настроить автоматическое продление SSL-сертификатов. Добавьте задачу в cron: 0 0 1 * * certbot renew --quiet.

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

  • Обратный DNS (PTR): Многие провайдеры VPS не настраивают PTR-запись по умолчанию. Свяжитесь с поддержкой хостинга и попросите установить PTR для вашего IP равным mail.example.com. Без PTR крупные почтовые сервисы часто блокируют входящие соединения.
  • Порт 25 заблокирован: Некоторые облачные провайдеры (AWS, Google Cloud, Oracle) блокируют исходящий порт 25 по умолчанию для борьбы со спамом. Требуется запрос на разблокировку через тикет поддержки.
  • Неверный hostname: Если myhostname в конфиге не совпадает с именем, на которое выдан SSL-сертификат, клиенты будут выдавать ошибку безопасности.
  • Открытый релей: Никогда не оставляйте параметр relayhost пустым без ограничений smtpd_relay_restrictions, иначе ваш сервер станут использовать спамеры, и его IP мгновенно попадет в глобальные черные списки.

FAQ

Как создать нового почтового пользователя? Если вы используете системную аутентификацию, просто создайте пользователя в Linux: sudo adduser newuser. Пароль от этого аккаунта будет использоваться для входа в почту. Ящик создастся автоматически при первом письме.

Почему письма уходят в спам, хотя все настройки верны? Репутация нового IP-адреса изначально нейтральна или низка. Начните с малых объемов рассылок. Также проверьте, не находится ли ваш IP в блэклистах (Spamhaus, Barracuda) через mxtoolbox.com/blacklists.

Нужен ли веб-интерфейс? В данной инструкции рассмотрена только серверная часть. Для доступа через браузер потребуется установка веб-клиента, например, Roundcube или SnappyMail, которые подключаются к настроенному Dovecot.