Если ты когда-нибудь задумывался, зачем вообще поднимать свой почтовый сервер, то, скорее всего, уже сталкивался с ограничениями сторонних сервисов. Gmail, Яндекс, Outlook — у всех свои приколы: лимиты, фильтры, подозрительность к массовым рассылкам, а иногда и банальное отсутствие нужной гибкости. Свой сервер — это про независимость, кастомизацию и полный контроль над почтой. Но, как и с любым серьезным инструментом, тут есть нюансы. Особенно когда речь заходит о безопасности и правильной настройке SMTP.
Возможности
- Полная автономия: никто не диктует правила, не смотрит твои логи, не банит за «подозрительную активность».
- Гибкая интеграция: можно прикрутить к своим сервисам, бэкапить как хочешь, делать любые алиасы и фильтры.
- Эксперименты: хочешь SPF, DKIM, DMARC, greylisting, антиспам на свой вкус — пожалуйста!
- Обучение: разберёшься, как реально работает почта, а не только на уровне «нажал — отправилось».
Что требуется
- Железо/Виртуалка: хватит даже VPS с 1 CPU и 1-2 ГБ RAM (например, обычный Ubuntu сервер).
- Домен: без этого никак, иначе письма будут улетать в спам (или вообще не доходить).
- Белый IP: желательно статический, иначе попадаешь в блэклисты или вообще не принимают письма.
- ОС: Ubuntu 22.04 LTS или Debian 12 — самые популярные и поддерживаемые.
- Базовые знания Linux: консоль, sudo, vim/nano, базовые команды.
Установка — пошаговая инструкция
Я покажу на примере Postfix (MTA) + Dovecot (IMAP/POP3), с поддержкой TLS, SPF, DKIM и базовой антиспам-защитой. Всё это — бесплатные, опенсорсные проекты.
- Обнови систему:
sudo apt update && sudo apt upgrade
- Установи нужные пакеты:
sudo apt install postfix dovecot-core dovecot-imapd opendkim opendkim-tools spamassassin
Во время установки postfix выбери «Internet Site».
- Настрой PTR-запись (rDNS) на IP!
Это делается у хостера или в панели управления VPS — без этого письма часто попадают в спам.
- Добавь SPF-запись в DNS:
v=spf1 mx a ip4:ТВОЙ_IP -all
- Генерируй DKIM-ключи:
sudo mkdir -p /etc/opendkim/keys/yourdomain.com cd /etc/opendkim/keys/yourdomain.com sudo opendkim-genkey -s mail -d yourdomain.com sudo chown opendkim:opendkim mail.private
Добавь содержимое
mail.txt
в DNS как TXT-запись. - Настрой
/etc/opendkim.conf
:AutoRestart Yes AutoRestartRate 10/1h Syslog Yes UMask 002 Canonicalization relaxed/simple Mode sv SubDomains no KeyFile /etc/opendkim/keys/yourdomain.com/mail.private Selector mail Socket inet:12301@localhost UserID opendkim
Добавь в
/etc/default/opendkim
строку:SOCKET="inet:12301@localhost"
- Включи интеграцию opendkim в Postfix:
sudo postconf -e "milter_default_action = accept" sudo postconf -e "milter_protocol = 2" sudo postconf -e "smtpd_milters = inet:localhost:12301" sudo postconf -e "non_smtpd_milters = inet:localhost:12301"
- Включи TLS (SSL):
sudo openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/mailserver.pem -keyout /etc/ssl/private/mailserver.key sudo chmod 600 /etc/ssl/private/mailserver.key
В
/etc/postfix/main.cf
добавь:smtpd_tls_cert_file=/etc/ssl/certs/mailserver.pem smtpd_tls_key_file=/etc/ssl/private/mailserver.key smtpd_use_tls=yes
- Добавь пользователей для почты:
sudo adduser mailuser sudo passwd mailuser
Для виртуальных ящиков лучше использовать dovecot-virtual users, но это отдельная тема.
- Перезапусти сервисы:
sudo systemctl restart opendkim sudo systemctl restart postfix sudo systemctl restart dovecot
- Проверь порты:
sudo netstat -tulpn | grep -E '25|465|587|993'
- Проверь работу:
- Отправь письмо с сервера на внешнюю почту (Gmail, Яндекс) и смотри, не улетает ли в спам.
- Проверь SPF, DKIM, rDNS на mail-tester.com.
Использование — команды и варианты
- Отправить тестовое письмо:
echo "Test mail from server" | mail -s "Test" yourmail@gmail.com
- Проверить очередь:
mailq postqueue -p
- Удалить все зависшие письма:
postsuper -d ALL
- Логи:
tail -f /var/log/mail.log tail -f /var/log/mail.err
- Проверить статус сервисов:
sudo systemctl status postfix sudo systemctl status dovecot sudo systemctl status opendkim
- Проверить TLS:
openssl s_client -connect yourdomain.com:465 -crlf
Ошибки, как делать не надо
- Не игнорируй PTR-запись и SPF/DKIM — без них письма будут улетать в спам или не доходить вовсе.
- Не открывай сервер для релея (open relay) — иначе станешь бесплатным SMTP для спамеров и быстро попадёшь в блэклисты.
- Не используй дефолтные порты без TLS — это просто подарок для снифферов и взломщиков.
- Не забывай про fail2ban или подобную защиту от перебора паролей.
- Не запускай всё от root, не храни приватные ключи в доступных для чтения местах.
Пример реального использования
На одном из проектов нужно было автоматизировать рассылку системных уведомлений (алерты, отчёты, логи) на корпоративную почту. Внешние SMTP не подходили — ограничения, лимиты, да и данные чувствительные. Поднял связку Postfix+Dovecot+Opendkim на отдельной виртуалке, прикрутил fail2ban и greylisting, сделал SPF/DKIM/DMARC, завёл отдельный поддомен для почты (mail.project.local
), и всё работает уже больше года без нареканий. Из спама письма быстро вышли, после правильной настройки DNS и реверса. Веб-интерфейс не ставил — пользуемся только IMAP через Thunderbird и автоматизацию через скрипты.
Заключение
Настроить свой почтовый сервер — не ракетостроение, но и не «поставил пакет — всё работает». Это классная штука, если нужна независимость и гибкость, но требует внимания к деталям, особенно в части безопасности и DNS. Не забывай держать софт в актуальном состоянии, следить за логами и не ленись тестировать отправку на внешние ящики. Если хочется автоматизации — посмотри в сторону Mail-in-a-Box или Modoboa — они сильно упрощают жизнь, но ручная настройка даст больше понимания и контроля.
Официальные доки:
Postfix Documentation
Dovecot Wiki
OpenDKIM Docs
SpamAssassin Docs
Ваш отзыв