Настройка собственного почтового сервера: безопасность и SMTP

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

  1. Обнови систему:
    sudo apt update && sudo apt upgrade
  2. Установи нужные пакеты:
    sudo apt install postfix dovecot-core dovecot-imapd opendkim opendkim-tools spamassassin

    Во время установки postfix выбери «Internet Site».

  3. Настрой PTR-запись (rDNS) на IP!

    Это делается у хостера или в панели управления VPS — без этого письма часто попадают в спам.

  4. Добавь SPF-запись в DNS:
    v=spf1 mx a ip4:ТВОЙ_IP -all
  5. Генерируй 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-запись.

  6. Настрой /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"

  7. Включи интеграцию 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"
    
  8. Включи 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
    
  9. Добавь пользователей для почты:
    
    sudo adduser mailuser
    sudo passwd mailuser
    

    Для виртуальных ящиков лучше использовать dovecot-virtual users, но это отдельная тема.

  10. Перезапусти сервисы:
    
    sudo systemctl restart opendkim
    sudo systemctl restart postfix
    sudo systemctl restart dovecot
    
  11. Проверь порты:
    sudo netstat -tulpn | grep -E '25|465|587|993'
  12. Проверь работу:
    • Отправь письмо с сервера на внешнюю почту (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

Хотите прочитать больше про Администрирование?
Отзывов нет.

Ваш отзыв

Пожалуйста, заполните поля снизу и добавьте отзыв!.
Имя *
E-mail *
Сайт
Сообщение *