Современные реалии заставляют компании и разработчиков задумываться о собственных почтовых серверах. Ещё недавно многие пользовались бесплатными сервисами для почты на своём домене, но эти возможности постепенно исчезают. Вместе с тем аренда виртуальных серверов стала доступнее, и даже небольшой 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?