Настройка почтового сервера на белорусском VPS: Postfix + Dovecot + DKIM/SPF

ГлавнаяНастройка почтового сервера на белорусском VPS: Postfix + Dovecot + DKIM/SPF

Содержание

Современные реалии заставляют компании и разработчиков задумываться о собственных почтовых серверах. Ещё недавно многие пользовались бесплатными сервисами для почты на своём домене, но эти возможности постепенно исчезают. Вместе с тем аренда виртуальных серверов стала доступнее, и даже небольшой VPS в Беларуси по цене в несколько сотен рублей в месяц способен справиться с задачами почтового сервера.

В материале рассказали, как самостоятельно настроить почтовый сервер на белорусском VPS от установки Postfix и Dovecot до добавления SPF- и DKIM-записей для повышения доверия к вашим письмам.

Зачем нужен собственный почтовый сервер на VPS

Собственная почта на вашем сервере даёт независимость от сторонних сервисов и полный контроль над корпоративной перепиской. Многие крупные компании исторически разворачивают почтовые сервера у себя, так данные остаются под контролем, а настройки можно тонко подогнать под нужды бизнеса. Теперь подобные возможности доступны каждому, достаточно арендовать VPS и подключить к нему доменное имя. Стоимость вопроса невелика. Экономия выходит ощутимой, если вам нужно много почтовых адресов. На своём сервере вы не платите за каждый ящик, в отличие от облачных почтовых услуг.

Со своим почтовым сервером вы можете интегрировать почтовую отправку с сайтами и приложениями. Например, сервер будет автоматически слать письма активации, уведомления с сайта-магазина или отчёты от систем мониторинга. Это незаменимо, когда ваш проект растёт. Без собственного почтового решения сделать рассылку таких писем сложно. Внешние SMTP-сервисы зачастую ограничивают количество отправленных сообщений и могут требовать оплаты. На VPS же вы сами хозяин: поставили почтовый движок, и он шлёт письма в любом объёме, хоть тысячу в день. Главное, чтобы сервер выдержал и письма не считались спамом. Кстати, Postfix, о котором пойдёт речь, не требователен к ресурсам и способен работать даже на слабом сервере, важно лишь правильно прописать SPF- и DKIM-записи в DNS для доверия к письмам.

Наконец, собственный почтовый сервер — это безопасность и репутация. Вы контролируете, где хранятся письма, что актуально для конфиденциальных данных, и не зависите от политик чужих сервисов. Если всё настроить верно, ваши письма будут доходить до клиентов и коллег в обход папки «Спам».

Подготовка: домен, DNS и VPS под почту

Почтовый сервер всегда начинается с домена. Именно то, что стоит после символа @, определяет, куда дойдут письма. Если домена ещё нет, зарегистрируйте его у любого надёжного регистратора. Обычно выбирают короткие и запоминающиеся имена в зоне, связанной с регионом, например, .ru для России или .by для Беларуси. Пусть для примера будет vashexample.by. После покупки проверьте, можете ли управлять DNS-записями, без этого не получится настроить ни MX, ни SPF, ни DKIM.

Далее настройте DNS. Создайте A-запись, она связывает домен с IP-адресом вашего VPS. Например, если адрес 203.0.113.42, пропишите A для vashexample.by или, если хотите разделить трафик, для поддомена mail.vashexample.by. Затем добавьте MX-запись, чтобы указать, куда принимать почту. Обычно это тот же хост, что и в A-записи, с приоритетом 10. Так вы сообщаете миру: «всю почту для @vashexample.by принимай на mail.vashexample.by». После сохранения подождите, обновление DNS занимает от 5 до 60 минут, иногда чуть больше.

Теперь перейдите к серверу. Подключитесь к нему по SSH через PuTTY на Windows или терминал в Linux/macOS и обновите систему, чтобы исключить конфликты пакетов:

sudo apt update && sudo apt upgrade -y

Дайте серверу корректное имя, совпадающее с доменом почты:

sudo hostnamectl set-hostname mail.vashexample.by

Это имя будет отображаться в заголовках писем и при приветствии SMTP, поэтому оно должно совпадать с DNS. Если ваш хостинг позволяет настроить PTR-запись, установите её на mail.vashexample.by. Когда сервер обращается к другим почтовикам, они сверяют IP и PTR, и если они совпадают, доверие выше. Если опция недоступна, обратитесь в поддержку провайдера, PTR влияет на репутацию отправителя.

Перед установкой почтовых компонентов проверьте брандмауэр. Почта использует несколько портов: 25 для SMTP-входящих, 587 для отправки клиентами, 143 и 993 для IMAP. На многих VPS-площадках 25-й порт закрыт по умолчанию, чтобы блокировать спам. Уточните у провайдера и, если нужно, запросите разблокировку. Разрешить нужные порты можно командой:

sudo ufw allow 25,587,143,993/tcp

Теперь всё готово к установке Postfix — основного SMTP-сервера, который принимает и отправляет почту. Его используют тысячи компаний от малых бизнесов до крупных порталов. Установите пакет:

sudo apt install postfix -y

Во время установки появится меню. Выберите тип Internet Site — это значит, что сервер будет напрямую работать с Интернетом, а не через чужие SMTP. Затем установщик спросит System mail name, введите ваш домен vashexample.by. Это имя Postfix будет подставлять в адреса отправителей и использовать как основное. Ошиблись — не страшно, всё можно изменить в /etc/postfix/main.cf.

После установки проверьте, активен ли сервис:

postconf mail_version

Если видите строку с номером версии, всё в порядке. Попробуйте отправить тестовое письмо:

echo "Это тестовое письмо" | mail -s "Проверка отправки" youremail@example.com

Замените адрес на реальный, например на вашу почту в Gmail или Яндексе. Если письмо пришло, значит, исходящая почта уже работает. Если нет, смотрите лог Postfix:

tail -f /var/log/mail.log

Там появятся строки о доставке. Если видите статусы deferred или bounced, письмо не принято. Зачастую это связано с тем, что почтовые гиганты не доверяют новым серверам без SPF и DKIM. Они считают такие письма подозрительными и отправляют в спам. Это нормально для свежего домена, позже мы настроим механизмы проверки и улучшим репутацию.

Проверьте входящую почту. По умолчанию Postfix уже готов принимать письма для доменов, перечисленных в параметре mydestination — обычно это localhost и тот домен, что вы указали при установке. То есть, письма на user@vashexample.by дойдут, но сохранятся в локальных Unix-почтовых файлах в /var/mail/. Работать с ними напрямую неудобно, нет папок, нет удалённого доступа, всё свалено в один файл. К тому же без аутентификации ваш сервер остаётся открытым, и кто угодно может попытаться отправить через него почту.

Поэтому следующим шагом будет установка Dovecot — сервера, который организует хранение писем по папкам в формате Maildir и включит проверку логина и пароля при отправке. Postfix и Dovecot работают в связке. Первый принимает и отправляет письма, второй хранит их и обслуживает клиентов по IMAP или POP3. После настройки Dovecot вы сможете подключать почтовые клиенты вроде Thunderbird или Outlook и получать письма как на обычном корпоративном сервере.

Подключение Dovecot: приём почты и авторизация пользователей

Dovecot — это сервер почтовых ящиков и система авторизации. В связке Postfix + Dovecot первый обрабатывает отправку по SMTP, второй хранит письма и отдаёт их клиентам по IMAP или POP3. Без Dovecot Postfix не требует пароль, и любой может попытаться слать письма через ваш сервер. Поэтому Dovecot нужен, чтобы пускать только авторизованных пользователей и управлять ящиками.

Установите пакеты:

sudo apt install dovecot-imapd dovecot-pop3d -y

После установки Dovecot уже запущен. Теперь укажите, где хранить почту и как пользователи будут входить.

Создайте для каждого адреса системного пользователя:

sudo adduser alice
sudo adduser bob

Почта будет храниться в формате Maildir, где каждое письмо — отдельный файл. В /etc/postfix/main.cf добавьте:

home_mailbox = Maildir/

Затем в /etc/dovecot/conf.d/10-mail.conf укажите:

mail_location = maildir:~/Maildir

Строка mail_privileged_group = mail не должна быть закомментирована.

Теперь нужно включить авторизацию. В Postfix добавьте:

smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous

Это активирует SMTP-логин через Dovecot. В файле /etc/dovecot/conf.d/10-master.conf найдите блок service auth и проверьте, указано ли в секции unix_listener /var/spool/postfix/private/auth:

mode = 0660
user = postfix
group = postfix

В /etc/dovecot/conf.d/10-auth.conf параметр auth_mechanisms = plain login не должен быть закомментирован. После этого перезапустите сервисы:

sudo systemctl restart dovecot
sudo systemctl reload postfix

Теперь Postfix требует пароль перед отправкой. Используются пароли системных пользователей, Dovecot сверяет их с /etc/shadow.

Проверьте работу через Thunderbird или Outlook. Создайте учётную запись:

  • адрес — alice@vashexample.by,
  • IMAP-сервер — mail.vashexample.by, порт 993 (TLS) или 143,
  • SMTP — тот же, порт 587 (TLS).

Отметьте «требует пароль». При первом подключении примите предупреждение о сертификате, если TLS пока не настроен. Отправьте тестовое письмо. Если всё в порядке, оно дойдёт, а ответ появится в /home/alice/Maildir.

Чтобы повысить безопасность, добавьте шифрование TLS. Выпустите бесплатный сертификат Let’s Encrypt и укажите пути к файлам:

  • в Postfix — smtpd_tls_cert_file, smtpd_tls_key_file,
  • в Dovecot — ssl_cert, ssl_key в /etc/dovecot/conf.d/10-ssl.conf.

После этого клиенты перестанут ругаться на самоподписанный сертификат, а пароли будут передаваться в зашифрованном виде. Даже без TLS сервер уже полностью рабочий — письма хранятся, авторизация включена, спамеры не пройдут.

SPF и DKIM: доверие письмам

Настало время настроить SPF и DKIM — механизмы, которые подтверждают, что письма действительно идут от вашего домена. Без них провайдеры часто отправляют письма в спам или не принимают вовсе.

SPF — это текстовая запись в DNS, где перечислены серверы, имеющие право отправлять почту от имени вашего домена. Почтовый сервер получателя сверяет IP-адрес отправителя с этим списком. Если адрес не совпадает, письмо помечается как подозрительное.

Чтобы настроить SPF, откройте управление DNS у регистратора и добавьте TXT-запись:

v=spf1 mx a ip4:203.0.113.42 ~all

Замените IP на свой. Параметры означают:

  • mx — разрешает отправку с серверов из MX-записей,
  • a — с основного IP домена,
  • ip4 — с конкретного адреса,
  • ~all — мягкий отказ для остальных.

Через 5–15 минут можно проверить результат. Отправьте письмо на Gmail и откройте «Показать оригинал». Если видите spf=pass, всё работает.

DKIM — это цифровая подпись писем. Сервер подписывает каждое письмо секретным ключом, а открытый ключ хранится в DNS. Получатель сверяет подпись и убеждается, что письмо подлинное и не изменено.

Установите OpenDKIM:

sudo apt install opendkim opendkim-tools -y

Создайте ключи:

sudo mkdir -p /etc/opendkim/keys/vashexample.by
cd /etc/opendkim/keys/vashexample.by
sudo opendkim-genkey -s default -d vashexample.by
sudo chown opendkim:opendkim default.private

Файл default.private — секретный ключ, default.txt — публичный. Теперь пропишите связи. В /etc/opendkim/KeyTable:

default._domainkey.vashexample.by
vashexample.by:default:/etc/opendkim/keys/vashexample.by/default.private

В /etc/opendkim/SigningTable:

*@vashexample.by default._domainkey.vashexample.by

В /etc/opendkim/TrustedHosts:

127.0.0.1
localhost
vashexample.by

Проверьте, есть ли в /etc/opendkim.conf строка:

Socket inet:12301@localhost

И добавьте в /etc/postfix/main.cf:

milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301

Перезапустите сервисы:

sudo systemctl restart opendkim
sudo systemctl reload postfix

Далее опубликуйте публичный ключ. Скопируйте содержимое default.txt и добавьте TXT-запись в DNS с именем default._domainkey.vashexample.by, а значением — строку, начинающуюся с v=DKIM1; k=rsa; p=. Через 10–60 минут подпись заработает. В письме в Gmail ищите dkim=pass.

Для полного комплекта добавьте DMARC — он задаёт политику обработки писем, не прошедших SPF/DKIM. Создайте TXT-запись _dmarc.vashexample.by со строкой:

v=DMARC1; p=quarantine; rua=mailto:postmaster@vashexample.by;

Эта защита не обязательна, но вместе с SPF и DKIM формирует репутацию надёжного отправителя.

Заключение

Вы проделали большой путь от чистого сервера до полностью функционирующей почтовой системы с собственным доменом. Да, настройка оказалась непростой, зато теперь у вас полный контроль над почтой. Вы сами администратор: можете создавать неограниченно ящиков, задавать любые правила, интегрировать почту с сайтами и приложениями. Письма, отправленные с вашего белорусского VPS, больше не выглядят сиротливо, к ним прикреплена цифровая подпись DKIM, а DNS заявляет всем: «этому домену можно доверять!».

Конечно, мир почтовых серверов огромен. Впереди возможны тонкие настройки, борьба со спамом, мониторинг репутации через специальные сервисы. Но первый и главный шаг уже сделан. У вас есть свой почтовый сервер, надёжный, профессионально настроенный и принадлежащий лично вам.

Делаем год чуть длиннее

365 дней VPS? А как насчёт 395?

Месяц в подарок
COPIED
NEWCOMM COPIED