---
title: "Свой почтовый сервер на Debian 12 вместо Gmail: полное руководство. Часть 1 - Начало"
date: 2026-03-05
draft: false
description: "Зачем поднимать свой mail-сервер вместо Gmail. Анатомия почтового сервера: Postfix, Dovecot, антиспам, антивирус. Системные требования и чек-лист готовности."
summaty: "Зачем поднимать свой mail-сервер вместо Gmail. Анатомия почтового сервера: Postfix, Dovecot, антиспам, антивирус. Системные требования и чек-лист готовности."
tags: ["postfix", "dovecot", "smtp", "imap", "self-hosting"]
categories: ["Почтовые системы"]
series: ["Почтовый сервер на Debian 12"]
series_order: 1
---

Решил поднять свой почтовый сервер? Отлично. Сейчас объясню, почему это одновременно лучшее и худшее решение, которое ты можешь принять для своей инфраструктуры.

## Зачем вообще заморачиваться

> Что говорят в интернете:
> "Gmail бесплатный и работает отлично, зачем изобретать велосипед?"

### Как есть на самом деле:

**Gmail и прочие публичные сервисы - это хорошо до тех пор, пока:**
- Тебя не смущает, что твою переписку читают для таргетинга рекламы
- Ты не против того, что твой домен висит на чужой инфраструктуре
- Тебе не критично, когда Google решит внезапно заблокировать аккаунт без объяснений
- Ты готов платить за каждый ящик в корпоративном тарифе
- Тебе норм, что лимиты на размер ящика устанавливает кто-то другой

**Свой почтовый сервер дает:**
- **Полный контроль** - ты сам решаешь кто, что и как
- **Безлимитные ящики** - сколько нужно, столько и создашь
- **Любой размер** - ограничение только в железе
- **Свои правила** - никаких внезапных "обновлений политики"
- **Прозрачность** - ты знаешь где лежит твоя почта и кто к ней имеет доступ

Но есть нюанс.

## Реальность: во что ты ввязываешься

### Первые 48 часов после запуска:

`Час 1:` Сервер работает, письма ходят, ты доволен собой.

`Час 3:` Gmail отправляет твои письма в спам. Начинаешь разбираться с SPF.

`Час 6:` SPF настроен. Письма все равно в спаме. Погружаешься в DKIM.

`Час 12:` DKIM работает. Половина писем доходит. Открываешь документацию DMARC.

`Час 24:` Понимаешь, что твой IP попал в какой-то DNSBL. Гуглишь что это вообще такое.

`Час 48:` Письма наконец-то доходят до inbox. Пользователь жалуется: "Я не получил письмо от клиента". Начинаешь копаться в логах.

`Неделя 1:` Обнаруживаешь, что сервер стал источником спама. Как это получилось - вопрос другой.

`Месяц 1:` Осознаешь, что забыл настроить бэкапы. Молишься, чтобы диск не "помер".

### Это нормально

Я не пугаю. Я готовлю к реальности. Почтовый сервер - это не "поставил и забыл". Это инфраструктура, которая требует:
- Начальной настройки (4-8 часов чистого времени)
- Отладки репутации (первые 2-4 недели)
- Регулярного мониторинга (15-30 минут в день)
- Периодического обслуживания (2-4 часа в месяц)

Но когда оно работает - работает **как часы**.

## Что ты получишь в итоге

### Техническая часть:

```
ТВОЙ ПОЧТОВЫЙ СЕРВЕР
│
├─ Прием и отправка почты (Postfix)
├─ Доступ к ящикам через IMAP (Dovecot)
├─ Веб-интерфейс (RoundCube)
├─ Защита от вирусов (ClamAV)
├─ Защита от спама (SpamAssassin)
├─ Защита от взлома (Fail2ban)
├─ Шифрование (Let's Encrypt)
├─ Подписи писем (DKIM)
└─ Мониторинг и логи (Pflogsumm)
```

### Функциональная часть:

**Отправка почты:**
- С любого почтового клиента (Thunderbird, Outlook, Apple Mail, K-9)
- Через веб-интерфейс из любой точки мира
- С защищенным соединением (TLS)
- С цифровой подписью (твои письма не подделать)

**Прием почты:**
- От любых отправителей
- С проверкой на вирусы
- С фильтрацией спама
- С пользовательскими правилами (Sieve)

**Управление:**
- Неограниченное количество доменов
- Неограниченное количество ящиков
- Псевдонимы (алиасы)
- Пересылки
- Автоответчики
- Квоты на размер (если нужно)

**Безопасность:**
- Шифрование при передаче (никто не прочитает по пути)
- Защита от подбора паролей
- Блокировка спамеров
- Проверка отправителей

## Из чего это состоит: анатомия почтового сервера

Почтовый сервер - это не одна программа. Это экосистема из нескольких компонентов, каждый из которых делает свою работу.

### Postfix - почтальон

**Что делает:** Принимает письма от отправителей и доставляет их получателям.

**Как работает:**
1. Кто-то отправляет письмо на user@твой-домен.ru
2. Postfix принимает письмо на порт 25
3. Проверяет: "А должен ли я вообще принимать почту для этого домена?"
4. Проверяет отправителя через кучу правил
5. Если все ОК - передает письмо дальше (Dovecot или другому Postfix)
6. Если что-то не так - отклоняет с кодом ошибки

**Конфиг:** `/etc/postfix/main.cf` - туда ты будешь лезть чаще всего.

### Dovecot - хранитель ящиков

**Что делает:** Дает доступ к почтовым ящикам по протоколам IMAP/POP3.

**Как работает:**
1. Почтовый клиент подключается к Dovecot (порт 143/993)
2. Вводит логин и пароль
3. Dovecot проверяет учетные данные
4. Открывает доступ к почтовому ящику
5. Клиент качает письма

**Дополнительно:**
- Работает как LDA (Local Delivery Agent) - складывает письма в ящики
- Поддерживает Sieve - пользовательские фильтры
- Управляет квотами

**Конфиг:** `/etc/dovecot/dovecot.conf` и куча подфайлов в `/etc/dovecot/conf.d/`.

### Amavis + ClamAV - санитары

**Что делает Amavis:** Прослойка между Postfix и антивирусом/антиспамом.

**Что делает ClamAV:** Сканирует вложения на вирусы.

**Как работает:**
1. Postfix получает письмо
2. Отправляет его в Amavis (порт 10024)
3. Amavis передает в ClamAV
4. ClamAV сканирует
5. Если вирус найден - письмо в карантин
6. Если чисто - Amavis возвращает в Postfix (порт 10025)
7. Postfix доставляет получателю

**Конфиг:** `/etc/amavis/conf.d/50-user`

### SpamAssassin - фильтр

**Что делает:** Определяет спам по куче признаков.

**Как работает:**
1. Анализирует заголовки письма
2. Проверяет тело письма
3. Смотрит IP отправителя в черных списках (DNSBL)
4. Применяет эвристические правила
5. Использует Bayesian фильтр (обучаемый)
6. Выставляет баллы
7. Если баллов больше порога (обычно 5) - помечает как SPAM

**Обучение:**
- Показываешь примеры спама → он учится
- Показываешь примеры нормальной почты → он учится
- Со временем точность растет

**Конфиг:** `/etc/spamassassin/local.cf`

### Postgrey - вышибала

**Что делает:** Временно отклоняет письма от новых отправителей.

**Как работает:**
1. Письмо приходит от нового сервера
2. Postgrey: "Приходи через 5 минут"
3. Легальный почтовый сервер вернется через 5 минут
4. Спам-бот не вернется (ему некогда)
5. При повторной попытке - пропускает

**Эффективность:** Отсекает ~70% спама вообще без анализа.

**Конфиг:** `/etc/default/postgrey`

### Fail2ban - охрана

**Что делает:** Блокирует IP-адреса, которые брутфорсят(взламывают методом перебора парольных комбинаций) пароли.

**Как работает:**
1. Следит за логами
2. Видит неудачные попытки входа
3. Считает количество попыток
4. Если больше 3-5 за короткое время - бан IP через iptables
5. Через час-два-пять(как настроишь) разбанивает (если не повторится)

**Защищает:**
- SMTP AUTH (порт 25, 587)
- IMAP/POP3 (порт 143, 993, 110, 995)
- Веб-интерфейс RoundCube
- 
**Конфиг:** `/etc/fail2ban/jail.local`

### Let's Encrypt - замок

**Что делает:** Выдает бесплатные SSL-сертификаты.

**Зачем:** Шифрование соединений между клиентом и сервером.

**Как работает:**
1. Запускаешь Certbot
2. Он доказывает, что домен принадлежит тебе
3. Let's Encrypt выдает сертификат на 90 дней
4. Certbot автоматически продлевает каждые 60 дней

**Без этого:** Все пароли и письма идут открытым текстом по сети.

**Конфиг:** Автоматический, сертификаты в `/etc/letsencrypt/live/`

### OpenDKIM - печать

**Что делает:** Подписывает исходящие письма цифровой подписью.

**Зачем:** Доказывает, что письмо действительно от твоего домена.

**Как работает:**
1. Генеришь пару ключей (открытый + закрытый)
2. Открытый публикуешь в DNS
3. OpenDKIM подписывает каждое исходящее письмо закрытым ключом
4. Получатель проверяет подпись открытым ключом из DNS
5. Если подпись валидна - письмо не подделано

**Без этого:** Gmail/Outlook 100% отправят твои письма в спам.

**Конфиг:** `/etc/opendkim.conf`

### RoundCube - веб-морда

**Что делает:** Веб-интерфейс для работы с почтой.

**Зачем:** Читать/писать письма через браузер без настройки почтового клиента.

**Возможности:**
- Чтение/отправка писем
- Адресная книга
- Настройка фильтров (через плагин Sieve)
- Смена паролей
- Управление папками
- Поиск по почте

**Конфиг:** `/etc/roundcube/config.inc.php`

### PostgreSQL - база данных

**Что делает:** Хранит данные.

**Что хранит:**
- Базу RoundCube (сессии, адресная книга, кэш)
- Опционально: список пользователей и паролей
- Опционально: псевдонимы и пересылки

**Почему PostgreSQL, а не MySQL:**
- Строже к типам данных → меньше косяков
- Лучше работает с UTF-8
- Проще репликация
- В Debian 12 отличная интеграция

**Конфиг:** `/etc/postgresql/15/main/postgresql.conf`

### Apache + PHP

**Что делает:** Крутит RoundCube.

**Apache:** Веб-сервер, принимает HTTP-запросы.

**PHP:** Интерпретатор, выполняет код RoundCube.

**Альтернатива:** Nginx + PHP-FPM (быстрее, но сложнее, может в будущем рассмотрю и такой подход).

**Почему Apache:** Работает из коробки, тупо проще с той же эффективностью.

**Конфиг:** `/etc/apache2/sites-available/`

### Pflogsumm

**Что делает:** Анализирует логи Postfix и делает отчеты.

**Показывает:**
- Сколько писем отправлено/получено
- Сколько отклонено
- Топ отправителей/получателей
- Ошибки доставки
- Статистику по доменам

**Использование:**
```bash
pflogsumm /var/log/mail.log
```

**Автоматизация:** Настроишь cron - каждый день отчет на почту.


### Netdata - приборная панель

**Что делает:** Мониторинг в реальном времени.

**Показывает:**
- Загрузка CPU, RAM, Disk
- Очереди Postfix
- Соединения Dovecot
- Запросы к PostgreSQL
- Запросы к Apache
- Температура (если есть датчики)

**Интерфейс:** Веб на порту 19999.

**Потребление:** ~100MB RAM.


## Как все это работает вместе

### Сценарий 1: Получение письма

```
1. example.ru отправляет письмо на user@твой-домен.ru
            ↓
2. DNS: "MX-запись для твой-домен.ru → mail.твой-домен.ru"
            ↓
3. Письмо приходит на твой сервер (Postfix, порт 25)
            ↓
4. Postfix: "Проверю отправителя..."
   - SPF проверка
   - DNSBL проверка
   - Greylisting (Postgrey)
            ↓
5. Postfix: "Отправлю на проверку в Amavis"
            ↓
6. Amavis → ClamAV: "Есть вирусы?"
   ClamAV: "Чисто"
            ↓
7. Amavis → SpamAssassin: "Это спам?"
   SpamAssassin: "3 балла из 5, норм"
            ↓
8. Amavis возвращает в Postfix: "Все ок, доставляй"
            ↓
9. Postfix → Dovecot (LMTP): "Положи в ящик user@твой-домен.ru"
            ↓
10. Dovecot кладет в /var/spool/mail/твой-домен.ru/user/
            ↓
11. Пользователь открывает RoundCube или Thunderbird
            ↓
12. Dovecot (IMAP) отдает письмо клиенту
```

### Сценарий 2: Отправка письма

```
1. Пользователь пишет письмо в RoundCube
            ↓
2. RoundCube → Postfix (порт 587, SMTP Submission)
            ↓
3. Postfix: "Проверю авторизацию..."
   - SMTP AUTH через Dovecot
            ↓
4. Postfix: "Пользователь свой, подпишу письмо"
            ↓
5. OpenDKIM добавляет DKIM-подпись
            ↓
6. Postfix отправляет письмо на mail.example.ru
            ↓
7. example.ru получает и проверяет:
   - SPF (в DNS твоего домена)
   - DKIM (подпись валидна?)
   - DMARC (политика домена)
            ↓
8. example.ru: "Все проверки пройдены" → Inbox
```

## Терминология: что есть что

### MTA (Mail Transfer Agent)
**Что:** Программа, которая передает почту между серверами.
**Пример:** Postfix, Sendmail, Exim.

### MDA (Mail Delivery Agent)
**Что:** Программа, которая кладет письма в почтовые ящики.
**Пример:** Dovecot (в режиме LDA/LMTP).

### MUA (Mail User Agent)
**Что:** Почтовый клиент.
**Пример:** Thunderbird, Outlook, RoundCube, K-9 Mail.

### SMTP (Simple Mail Transfer Protocol)
**Что:** Протокол отправки почты.
**Порты:** 25 (сервер-сервер), 587 (клиент-сервер с авторизацией).

### IMAP (Internet Message Access Protocol)
**Что:** Протокол доступа к почте (с синхронизацией).
**Порты:** 143 (открытый), 993 (с TLS).
**Особенность:** Письма хранятся на сервере.

### POP3 (Post Office Protocol)
**Что:** Протокол доступа к почте (скачивание).
**Порты:** 110 (открытый), 995 (с TLS).
**Особенность:** Письма скачиваются и удаляются с сервера.
**Статус:** Устарел, не будем использовать.

### TLS/SSL
**Что:** Шифрование соединения.
**Зачем:** Чтобы пароли и письма не перехватили.
**Пример:** HTTPS для почты.

### SPF (Sender Policy Framework)
**Что:** DNS-запись, которая говорит "с этих IP можно слать почту от моего домена".
**Пример:** `v=spf1 ip4:1.2.3.4 ~all`
**Зачем:** Защита от подделки отправителя.

### DKIM (DomainKeys Identified Mail)
**Что:** Цифровая подпись письма.
**Как:** Закрытый ключ на сервере, открытый в DNS.
**Зачем:** Доказать, что письмо не подделано.

### DMARC (Domain-based Message Authentication)
**Что:** Политика домена: что делать, если SPF или DKIM не прошли.
**Варианты:** none (ничего), quarantine (в спам), reject (не принимать).
**Пример:** `v=DMARC1; p=quarantine; rua=mailto:dmarc@домен.ru`

### DNSBL (DNS-based Blackhole List)
**Что:** Черные списки IP-адресов спамеров.
**Примеры:** zen.spamhaus.org, bl.spamcop.net.
**Как работает:** Postfix спрашивает DNSBL: "Этот IP спамер?" → DNSBL отвечает.

### Greylisting
**Что:** Временная задержка писем от новых отправителей.
**Логика:** Спам-боты не повторяют попытки, легальные серверы - повторяют.
**Задержка:** 5 минут (обычно).

### Relay
**Что:** Пересылка почты через промежуточный сервер.
**Пример:** Твой сервер → SMTP провайдера → получатель.
**Зачем:** Если твой IP в блэклистах или нет белого IP.

### Open Relay
**Что:** Сервер, который пересылает почту от кого угодно.
**Статус:** **ЗЛО**. Мгновенно попадешь в блэклисты.
**Защита:** SMTP AUTH + правильные restrictions.

### Maildir vs Mbox
**Mbox:** Все письма в одном файле.
**Maildir:** Каждое письмо - отдельный файл.
**Используем:** Maildir (надежнее, быстрее).

### Sieve
**Что:** Язык для создания почтовых фильтров.
**Пример:** "Если тема содержит 'счет', переложить в папку 'Финансы'".
**Управление:** Через плагин managesieve в RoundCube.

### Quota
**Что:** Ограничение на размер почтового ящика.
**Пример:** 5GB на пользователя.
**Наш случай:** Без ограничений (или устанавливаешь сам).

## Системные требования

### Минимальная конфигурация (1-50 пользователей):

```
CPU:  2 ядра (любой современный процессор)
RAM:  2 GB
Disk: 20 GB (система) + объем почты
      SSD рекомендуется
Net:  Стабильное подключение
      Белый IP (желательно)
      Открытые порты: 25, 587, 143, 993, 80, 443
```

### Рекомендуемая конфигурация (50-200 пользователей):

```
CPU:  4 ядра
RAM:  4 GB
Disk: 50 GB (система) + объем почты
      SSD обязательно
Net:  100 Мбит/с
      Белый статический IP
```

### Оптимальная конфигурация (200-500 пользователей):

```
CPU:  8 ядер
RAM:  8 GB
Disk: 100 GB (система) + объем почты
      NVMe SSD
Net:  1 Гбит/с
      Резервный канал
```

### Расчет дискового пространства:

```
Средний пользователь: 1-5 GB в год
Активный пользователь: 10-20 GB в год
Очень активный: 50+ GB в год

Пример на 100 пользователей:
  100 × 5 GB = 500 GB
  + запас 20% = 600 GB
  + система 50 GB = 650 GB
  
Итого: диск на 1 TB с запасом
```

## Что нужно ДО начала установки

### 1. Домен
Зарегистрированный домен с доступом к управлению DNS.

**Пример:** `example.ru`

### 2. Сервер
VPS/Dedicated с Debian 12 и белым IP.

**Требования:**
- Root-доступ
- Чистая установка Debian 12
- Статический IP
- Обратная DNS (PTR) настроена на твое имя хоста

**Проверка PTR:**
```bash
host твой-IP
# Должно вернуть: mail.example.ru
```

### 3. DNS-записи (настроишь в процессе)

**A-запись:**
```
mail.example.ru.  IN  A  твой-IP
```

**MX-запись:**
```
example.ru.  IN  MX  10  mail.example.ru.
```

**SPF-запись:**
```
example.ru.  IN  TXT  "v=spf1 mx ~all"
```

**DKIM и DMARC** - настроим позже.

### 4. Открытые порты

**Обязательно:**
- `25 (SMTP)` - прием почты от других серверов
- `587 (Submission)` - отправка от клиентов
- `143 (IMAP)` - доступ к ящикам
- `993 (IMAPS)` - IMAP с TLS
- `80 (HTTP)` - для Let's Encrypt
- `443 (HTTPS)` - для RoundCube

**Опционально:**
- `22 (SSH)` - для администрирования
- `19999 (Netdata)` - для мониторинга

### 5. Время

**Реально необходимое:**
- Установка и базовая настройка: 4-6 часов
- Отладка доставки в Gmail/Outlook: 2-4 часа
- Настройка веб-интерфейса: 1-2 часа
- Тестирование и доработка: 2-4 часа

**Итого:** Закладывай полноценные выходные.

## Проверка готовности

Прежде чем начинать, убедись:

```
☐ Есть зарегистрированный домен
☐ Есть доступ к управлению DNS
☐ Есть VPS/Dedicated с Debian 12
☐ Есть root-доступ к серверу
☐ Настроен PTR для твоего IP
☐ Открыты необходимые порты
☐ Есть понимание, сколько времени займет
☐ Есть план резервного копирования
☐ Есть готовность разбираться в проблемах
☐ Прочитал эту статью до конца
```

Если все пункты отмечены - можешь начинать.

## Что дальше

В следующей части разберем установку и базовую настройку Postfix + Dovecot - сердца почтового сервера.

Ты получишь работающую систему приема и отправки почты. Без защиты, без веб-интерфейса, без красивостей - но работающую.

А потом будем навешивать остальное: антивирус, антиспам, шифрование, подписи и все остальное, что превращает голый сервер в production-ready решение.

Поехали.

---