Полный гид по развертыванию собственного почтового сервера
Чтобы настроить работающий почтовый сервер, необходимо подготовить выделенный сервер (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) и добавьте следующие записи.
| Тип записи | Имя хоста / Поддомен | Значение / Данные | Приоритет | Описание |
|---|---|---|---|---|
| A | mail | <ВашIPсервера> | — | Привязка поддомена почты к IP |
| MX | @ (или пустое) | mail.example.com | 10 | Указание сервера для приема почты |
| TXT | @ | v=spf1 a mx ip4:<Ваш_IP> ~all | — | SPF: разрешение отправлять с этого IP |
| TXT | _dmarc | v=DMARC1; p=quarantine; rua=mailto:[email protected] | — | DMARC: политика обработки спама |
| TXT | default._domainkey | v=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.pemsmtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
Перезапустите службу: sudo systemctl restart postfix.
Интеграция Dovecot (IMAP/POP3)
Dovecot отвечает за хранение почты и доступ пользователей к ящикам.
-
В файле
/etc/dovecot/dovecot.confраскомментируйте строку:!include conf.d/*.conf -
Настройте сокеты аутентификации в
/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.
Чек-лист проверки параметров
После настройки обязательно протестируйте сервер перед началом активной работы.
- Проверка портов: Убедитесь, что фаервол пропускает трафик.
sudo ufw allow 'Postfix'иsudo ufw allow 'Dovecot'. - Тест подключения: Используйте
telnet mail.example.com 25. Вы должны увидеть баннер с именем вашего хоста. - Валидация доставки: Отправьте тестовое письмо на внешний ящик (Gmail, Yandex). Проверьте заголовки письма (
Show original):- Наличие заголовка
Authentication-Resultsсо статусомpassдля SPF, DKIM и DMARC. - Отсутствие предупреждений о неподписанном соединении.
- Наличие заголовка
- Онлайн-сканеры: Воспользуйтесь сервисом 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.