feat: 3 статьи о почтовом сервере + замена картинок
|
|
@ -5,7 +5,6 @@ draft: false
|
|||
description: "Универсальная шпаргалка по работе с Hugo блогом через Git с двумя окружениями. Префиксы коммитов, откаты, типичные ошибки и решения."
|
||||
tags: ["git", "workflow", "hugo", "cheatsheet"]
|
||||
categories: ["Шпаргалки"]
|
||||
showComments: true
|
||||
---
|
||||
|
||||
## Структура проекта
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1008 KiB After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 777 KiB |
|
|
@ -0,0 +1,623 @@
|
|||
---
|
||||
title: "Почтовый сервер на Debian 12: полное руководство от установки до production. Часть 1 - Начало"
|
||||
date: 2026-03-05
|
||||
draft: false
|
||||
description: "Зачем поднимать свой 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 решение.
|
||||
|
||||
Поехали.
|
||||
|
||||
---
|
||||
|
After Width: | Height: | Size: 632 KiB |
|
After Width: | Height: | Size: 994 KiB |
|
Before Width: | Height: | Size: 4.5 MiB After Width: | Height: | Size: 611 KiB |
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: "Безопасный production-сервер на Debian 12: пошаговая настройка"
|
||||
date: 2026-03-12
|
||||
date: 2026-03-07
|
||||
draft: false
|
||||
description: "Пошаговое руководство по защите Debian 12 с нуля: настройка SSH, ufw, Fail2ban, sysctl, автообновлений и мониторинга. Базовая безопасность production-сервера за один час."
|
||||
tags: ["debian", "linux", "security", "безопасность", "ssh", "ufw", "fail2ban", "sysctl", "linux-admin"]
|
||||
|
|
@ -441,22 +441,6 @@ sudo ufw allow 2222/tcp comment 'SSH'
|
|||
|
||||
**Замени 2222** на свой порт из `sshd_config`.
|
||||
|
||||
Разрешаем базовые сервисы (добавь те, что нужны):
|
||||
|
||||
```bash
|
||||
# HTTP/HTTPS (если будет веб)
|
||||
sudo ufw allow 80/tcp comment 'HTTP'
|
||||
sudo ufw allow 443/tcp comment 'HTTPS'
|
||||
|
||||
# SMTP (если будет почта)
|
||||
sudo ufw allow 25/tcp comment 'SMTP'
|
||||
sudo ufw allow 587/tcp comment 'SMTP Submission'
|
||||
|
||||
# IMAP (если будет почта)
|
||||
sudo ufw allow 143/tcp comment 'IMAP'
|
||||
sudo ufw allow 993/tcp comment 'IMAPS'
|
||||
```
|
||||
|
||||
**Не открывай порты, которые не нужны!** Добавишь потом по мере необходимости.
|
||||
|
||||
### Rate limiting для SSH
|
||||
|
|
@ -481,9 +465,6 @@ sudo ufw show added
|
|||
|
||||
```
|
||||
ufw allow 2222/tcp
|
||||
ufw allow 80/tcp
|
||||
ufw allow 443/tcp
|
||||
...
|
||||
```
|
||||
|
||||
Включаем:
|
||||
|
|
@ -514,8 +495,6 @@ Default: deny (incoming), allow (outgoing), disabled (routed)
|
|||
To Action From
|
||||
-- ------ ----
|
||||
2222/tcp LIMIT Anywhere
|
||||
80/tcp ALLOW Anywhere
|
||||
443/tcp ALLOW Anywhere
|
||||
```
|
||||
|
||||
Включи автозапуск:
|
||||
|
|
|
|||