Как поднять собственную почту на Arch Linux с Postfix, Dovecot и Let's Encrypt
Self-hosted почта - хороший учебный проект для тех, кто хочет разобраться в устройстве электронной почты, DNS, TLS и Linux-сервисах. В этом материале описан практический вариант: сервер на Arch Linux, локальные системные пользователи, хранение писем в каталогах `~/Maildir`, отсутствие веб-интерфейса и использование связки Postfix и Dovecot.
Сразу стоит обозначить ограничения. Для работы понадобится сервер с белым IP-адресом, зарегистрированное доменное имя, возможность управлять DNS-записями и желательно настроенный reverse DNS. Теоретически подобную конфигурацию можно развернуть на разных дистрибутивах, однако далее рассматривается именно Arch Linux, поэтому названия пакетов, пути и команды приведены с учётом его особенностей.
Что потребуется заранее
Минимальный набор выглядит так:
- сервер под управлением Arch Linux;
- статический внешний IP;
- домен или поддомен для почты;
- доступ к настройкам DNS;
- возможность установить обратную DNS-запись;
- сертификат Let's Encrypt;
- открытые порты SMTP, Submission, IMAP и IMAPS.
Reverse DNS связывает IP-адрес с доменным именем. Например, при подключении к удалённым почтовым системам сервер может проверять, соответствует ли обратная запись имени отправителя. Это не гарантирует доставку, но повышает доверие и снижает вероятность автоматического попадания в спам. Настроить reverse DNS обычно можно в панели хостинга или через службу поддержки провайдера.
До полноценного запуска не стоит отправлять тестовые письма на реальные адреса крупных почтовых сервисов. Сначала используйте локальную доставку, тестовые ящики и диагностические инструменты. Новый сервер без репутации может быстро попасть под фильтры, особенно если DNS, SPF, DKIM и DMARC настроены неполно.
Также важно сохранять резервные копии конфигураций. В Arch Linux обновления происходят регулярно, а изменения в Postfix или Dovecot иногда нарушают совместимость. Полезно архивировать `/etc/postfix`, `/etc/dovecot`, настройки TLS и DNS-параметры. При необходимости старые пакеты можно найти в `/var/cache/pacman/pkg/`.
Установка Dovecot
Dovecot отвечает за доступ пользователей к почтовым ящикам по IMAP. Установка Postfix и Dovecot на Arch Linux выполняется стандартными средствами пакетного менеджера:
```bash
sudo pacman -S dovecot
```
В рассматриваемой схеме письма будут храниться в формате Maildir внутри домашнего каталога пользователя:
```text
/home/user/Maildir/
```
Такой формат удобен тем, что каждое письмо представляет собой отдельный файл. Это упрощает резервное копирование и снижает риск повреждения всей почтовой базы при проблемах с одним сообщением.
Для IMAP-сервиса обычно настраиваются каталоги почты, отключается лишняя функциональность и задаётся путь к сертификатам. В зависимости от версии Dovecot параметры могут находиться в разных файлах внутри `/etc/dovecot`. Поэтому после установки стоит просмотреть структуру конфигурации и найти активные секции командой:
```bash
grep -R "mail_location|ssl|auth" /etc/dovecot
```
В конфигурации необходимо указать Maildir, включить SSL и определить методы аутентификации. Для локальных пользователей логином будет имя системной учётной записи, а паролем - пароль этого пользователя в ОС. Если требуется, чтобы Dovecot обращался к почте от имени отдельного системного пользователя, такого пользователя добавляют в группу `mail`:
```bash
sudo usermod -aG mail dovecot
```
После изменения групп сервис необходимо перезапустить.
Сертификаты Let's Encrypt
Самоподписанный сертификат подходит для лабораторной среды, но неудобен в повседневной работе: почтовые клиенты будут показывать предупреждения, а проверка подлинности станет менее прозрачной. Для публичного сервера лучше использовать Let's Encrypt.
Практическая схема, описанная в руководстве о [защищённой почте с Let's Encrypt, Postfix и Dovecot](https://habr.com/ru/articles/1070196/?utm_campaign=1070196&utm_source=habrahabr&utm_medium=rss), предполагает выпуск сертификата для почтового имени, например `mail.example.org`. После получения сертификата Postfix и Dovecot должны использовать файлы `fullchain.pem` и `privkey.pem`.
Доступ к закрытому ключу следует ограничить. При этом сервисы должны иметь возможность прочитать его во время запуска. Конкретные права зависят от выбранной схемы запуска, но оставлять ключ доступным всем пользователям системы нельзя. Не забудьте настроить автоматическое продление сертификата и перезапуск почтовых служб после обновления.
Настройка Postfix
Postfix принимает и отправляет сообщения по SMTP. Установка выполняется так:
```bash
sudo pacman -S postfix
```
В базовой конфигурации задаются имя хоста, домен, сетевые интерфейсы и разрешённые сети. Почтовый сервер с доменной почтой своими руками не должен превращаться в открытый relay: любой внешний пользователь не должен иметь возможности отправлять через него письма на произвольные адреса.
Для локальных пользователей можно использовать системные алиасы. Например, сообщения для `root`, `postmaster` и других служебных адресов перенаправляются на обычный пользовательский ящик. После изменения файла алиасов выполняется:
```bash
sudo newaliases
```
Для домена обычно добавляют MX-запись, указывающую на почтовый хост:
```text
example.org. MX 10 mail.example.org.
mail.example.org. A 203.0.113.10
```
Если требуется принимать письма для любых адресов домена, применяется catch-all-маршрутизация. Однако использовать её без необходимости не стоит: она увеличивает объём мусора и может привести к приёму большого количества писем на несуществующие адреса.
Submission и аутентификация
Порт 25 предназначен прежде всего для межсерверного SMTP-обмена. Почтовые клиенты должны отправлять сообщения через Submission - обычно порт 587 - с обязательной аутентификацией и шифрованием. В качестве альтернативы используется SMTPS на порту 465.
Postfix необходимо связать с Dovecot через UNIX-сокет аутентификации. Тогда клиент проходит проверку через Dovecot, а Postfix получает подтверждение, что пользователь имеет право отправлять почту. При этом желательно запретить анонимную отправку через Submission и разрешить relay только аутентифицированным пользователям.
Шифрование должно применяться не только для входящей почты. Настройка собственного почтового сервера Linux включает защиту соединений между клиентом и сервером, а также корректное объявление TLS-параметров для SMTP. Старые протоколы и слабые наборы шифров лучше отключить, ориентируясь на актуальные рекомендации используемой версии OpenSSL.
DNS: SPF, DKIM и DMARC
Одной настройки Postfix недостаточно для хорошей доставляемости. В DNS добавляют TXT-запись SPF, которая сообщает, какие серверы имеют право отправлять письма от имени домена. Пример:
```text
@ TXT "v=spf1 mx -all"
```
DKIM подписывает исходящие сообщения криптографическим ключом. Закрытая часть ключа хранится на сервере, а открытая публикуется в DNS через TXT-запись селектора. Для интеграции с Postfix обычно применяют отдельный DKIM-сервис, например OpenDKIM или Rspamd. Он подписывает письма до передачи внешнему серверу.
DMARC объединяет SPF и DKIM, задавая политику обработки сообщений, которые не прошли проверку. Начинать лучше с режима мониторинга:
```text
_dmarc.example.org. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.org"
```
После анализа отчётов политику можно ужесточить до `quarantine` или `reject`. Это помогает злоумышленникам сложнее выдавать себя за отправителя вашего домена.
Проверка через Thunderbird
В Thunderbird создаётся учётная запись с адресом вида `user@example.org`. Для входящей почты указываются:
- протокол IMAP;
- сервер `mail.example.org`;
- порт 993;
- SSL/TLS;
- обычный пароль;
- имя пользователя системной учётной записи.
Для исходящей почты выбирается сервер Submission:
- порт 587;
- STARTTLS;
- обязательная аутентификация;
- те же учётные данные, что и для IMAP.
После подключения проверьте локальную доставку, отправку между двумя пользователями сервера, получение письма извне и обратный сценарий. Диагностика выполняется через журналы `journalctl`, а также средствами вроде `openssl s_client`, `dig` и `swaks`.
Что важно учесть после запуска
Почтовый сервер требует постоянного сопровождения. Следите за свободным местом, размером логов, сроком действия сертификата и обновлениями пакетов. Полезно настроить ротацию журналов и регулярное резервное копирование Maildir.
Если сервер находится дома, убедитесь, что провайдер не блокирует исходящий порт 25 и действительно позволяет настроить reverse DNS. Для тестовой среды можно использовать отдельный домен или поддомен, чтобы ошибки не повлияли на основную деловую переписку.
Наконец, безопасность должна быть приоритетом: используйте сложные пароли, ограничьте доступ к SSH, включите firewall, запретите ненужные порты и регулярно проверяйте конфигурацию на наличие открытого relay. Именно последовательная настройка DNS, TLS, аутентификации и почтовых политик превращает экспериментальную установку в работающую и относительно надёжную систему.


