From 9ac7453951f403064970010d5681f5c5707ae4a2 Mon Sep 17 00:00:00 2001 From: zailon Date: Thu, 16 Apr 2026 15:59:57 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20docs/services/lxc212-mail/mailcow.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/services/lxc212-mail/mailcow.md | 424 +++++++++++++-------------- 1 file changed, 209 insertions(+), 215 deletions(-) diff --git a/docs/services/lxc212-mail/mailcow.md b/docs/services/lxc212-mail/mailcow.md index 047c59b..6e34a1e 100644 --- a/docs/services/lxc212-mail/mailcow.md +++ b/docs/services/lxc212-mail/mailcow.md @@ -24,12 +24,14 @@ 10. [Полезные команды](#10-полезные-команды) 11. [Решение проблем](#11-решение-проблем) 12. [Безопасность и обслуживание](#12-безопасность-и-обслуживание) -13. [Настройка Nginx Proxy Manager](#13-настройка-nginx-proxy-manager) -14. [Создание почтового ящика](#14-создание-почтового-ящика) +13. [Создание почтового ящика](#13-создание-почтового-ящика) +14. [Проверка после настройки](#14-проверка-после-настройки) +15. [Если что-то не работает](#15-если-что-то-не-работает) --- ## 1. Описание и архитектура +[🔼 Наверх](#-содержание) Mailcow — это готовый почтовый сервер на базе Docker, включающий: @@ -52,6 +54,7 @@ Mailcow — это готовый почтовый сервер на базе Do --- ## 2. Требования к ресурсам +[🔼 Наверх](#-содержание) ### Минимальные требования | Ресурс | Значение | @@ -71,6 +74,7 @@ pct set 212 -features nesting=1,fuse=1 --- ## 3. Подготовка контейнера +[🔼 Наверх](#-содержание) ### 3.1 Проверка конфигурации > **Выполняется на хосте Proxmox**: @@ -102,6 +106,7 @@ systemctl disable postfix --- ## 4. Установка Mailcow +[🔼 Наверх](#-содержание) ### 4.1 Клонирование репозитория ```bash @@ -131,6 +136,7 @@ sed -i 's/^ netfilter:/ #netfilter:/g' docker-compose.yml --- ## 5. Запуск и первичная настройка +[🔼 Наверх](#-содержание) ### 5.1 Загрузка образов и запуск ```bash @@ -171,6 +177,7 @@ docker compose ps --- ## 6. Настройка DNS +[🔼 Наверх](#-содержание) ### 6.1 Получение записей из Mailcow В админке: **Configuration** → **Mail Setup** → **Domains** → кнопка **DNS** @@ -196,216 +203,7 @@ _autodiscover._tcp IN SRV 0 0 443 mail.zailon.ru. --- ## 7. Настройка Nginx Proxy Manager - -### 7.1 Создание Proxy Host -В админке NPM (LXC 201): - -| Параметр | Значение | -|----------|----------| -| **Domain Names** | `mail.zailon.ru` | -| **Scheme** | `https` | -| **Forward Hostname/IP** | `192.168.1.212` | -| **Forward Port** | `443` | -| **SSL Certificate** | Request a new SSL Certificate | -| **Force SSL** | ✅ ON | -| **Block Common Exploits** | ✅ ON | - -### 7.2 Advanced: Custom Nginx Configuration -```nginx -proxy_ssl_verify off; -proxy_ssl_server_name on; -``` - -Это необходимо, так как Mailcow использует самоподписанный сертификат внутри сети. - ---- - -## 8. Проброс портов на роутере - -| Имя | Внешний порт | Внутренний порт | Протокол | Назначение | -|-----|-------------|----------------|----------|-----------| -| mail_smtp | 25 | 25 | TCP | Приём почты от внешних серверов | -| mail_imap | 993 | 993 | TCP | Безопасный доступ к ящику (IMAP) | -| mail_smtp_ssl | 465 | 465 | TCP | Отправка почты (SMTP SSL) | -| mail_smtp_tls | 587 | 587 | TCP | Отправка почты (SMTP STARTTLS) | - -**IP устройства**: `192.168.1.212` - ---- - -## 9. Настройка почтовых клиентов - -### Параметры подключения -| Параметр | Значение | -|----------|----------| -| **Email** | `olimp@zailon.ru` | -| **Пароль** | пароль от ящика | - -### Входящая почта (IMAP) -- **Сервер**: `mail.zailon.ru` -- **Порт**: `993` -- **Безопасность**: SSL/TLS - -### Исходящая почта (SMTP) -- **Сервер**: `mail.zailon.ru` -- **Порт**: `465` (SSL/TLS) или `587` (STARTTLS) -- **Аутентификация**: Да, логин = email - -### Рекомендуемые клиенты -- **Android**: K-9 Mail (бесплатно, open source) или Aqua Mail (платно, красивый интерфейс) -- **iOS**: Родной клиент Почта или Spark -- **Desktop**: Thunderbird, Outlook - ---- - -## 10. Полезные команды - -### Переход в директорию Mailcow -```bash -cd /mnt/mailcow/mailcow-dockerized -``` - -### Проверка статуса сервисов -```bash -docker compose ps -``` - -### Просмотр логов -```bash -# Все сервисы -docker compose logs -f - -# Только postfix -docker compose logs -f postfix-mailcow - -# Только последние 50 строк -docker compose logs --tail=50 postfix-mailcow -``` - -### Перезапуск сервисов -```bash -# Один сервис -docker compose restart postfix-mailcow - -# Все сервисы -docker compose restart -``` - -### Полная перезагрузка -```bash -docker compose down -docker compose up -d -``` - -### Обновление Mailcow -```bash -./update.sh -``` - -### Проверка DNS -```bash -nslookup -type=MX zailon.ru -nslookup -type=TXT zailon.ru -``` - -### Проверка открытых портов -```bash -ss -tlnp | grep -E ':25|:443|:993' -``` - ---- - -## 11. Решение проблем - -### Письма не приходят извне -1. Проверь проброс портов на роутере (25, 993, 465) -2. Проверь DNS-записи: `nslookup -type=MX zailon.ru` -3. Проверь логи postfix: -```bash -cd /mnt/mailcow/mailcow-dockerized -docker compose logs --tail=100 postfix-mailcow | grep -E 'connect|NOQUEUE|reject' -``` - -### Ошибка "Waiting for DNS..." в Postfix -Проблема с Docker-сетью в LXC. Решение: -```bash -cd /mnt/mailcow/mailcow-dockerized -docker compose down -docker network rm mailcowdockerized_mailcow-network -docker compose up -d -``` - -### SOGo: "not allowed in state 1" -1. Очисти куки браузера -2. Или перезапусти SOGo: -```bash -cd /mnt/mailcow/mailcow-dockerized -docker compose restart sogo-mailcow -``` - -### Письма попадают в спам -1. Проверь наличие и корректность записей SPF, DKIM, DMARC -2. Убедись, что настроена PTR-запись у провайдера -3. Не отправляй массовые рассылки с нового домена - -### Не могу зайти по https://mail.zailon.ru -1. Проверь, что в NPM настроен прокси на `192.168.1.212:443` -2. Убедись, что в Custom Config добавлено `proxy_ssl_verify off;` -3. Проверь, что сертификат Let's Encrypt выпущен (статус в NPM) - -### ClamAV не обновляет базы (ошибка 403) -Известная проблема CDN ClamAV. Антивирус продолжит работать на локальных сигнатурах. Для обновления можно: -1. Подождать 24 часа (кулдаун) -2. Или отключить ClamAV в `mailcow.conf`, если не критично: -```ini -SKIP_CLAMD=y -``` -Затем: `docker compose up -d` - ---- - -## 12. Безопасность и обслуживание - -### Регулярные задачи -| Задача | Периодичность | Команда/Действие | -|--------|--------------|------------------| -| Проверка логов | Еженедельно | `docker compose logs --tail=100` | -| Обновление Mailcow | По выходу версии | `./update.sh` | -| Резервное копирование | Ежедневно | Настроить backup через Proxmox Backup Server | -| Проверка места на диске | Еженедельно | `df -h /mnt/mailcow` | - -### Резервное копирование -Рекомендуемый способ — через Proxmox Backup Server (PBS): - -1. В веб-интерфейсе Proxmox выбери контейнер 212 -2. **Backup** → **Backup now** -3. Режим: `snapshot`, хранилище: `olimpbkp` -4. Расписание: ежедневно в 03:00 - -### Обновление системы -```bash -apt update && apt upgrade -y -``` - -> **Перезапуск контейнера** (если обновилось ядро) выполняется на хосте Proxmox: -```bash -pct reboot 212 -``` - -### Мониторинг -Mailcow интегрируется с внешними системами мониторинга. Для Grafana (LXC 208): -1. Добавь источник данных Prometheus: `http://192.168.1.212:9900/metrics` -2. Импортируй дашборд Mailcow (ID: 13429) - -### Контакты для экстренных случаев -- Администратор: Zailon -- Сервер: Olimp (192.168.1.1) -- Контейнер почты: 212 (192.168.1.212) -- Документация: `mail.md` в репозитории конфигураций - ---- - -## 13 Настройка Nginx Proxy Manager +[🔼 Наверх](#-содержание) > Делается один раз при первом запуске почтового сервера. @@ -500,7 +298,198 @@ location ^~ /admin { --- -## 14. Создание почтового ящика +## 8. Проброс портов на роутере +[🔼 Наверх](#-содержание) + +| Имя | Внешний порт | Внутренний порт | Протокол | Назначение | +|-----|-------------|----------------|----------|-----------| +| mail_smtp | 25 | 25 | TCP | Приём почты от внешних серверов | +| mail_imap | 993 | 993 | TCP | Безопасный доступ к ящику (IMAP) | +| mail_smtp_ssl | 465 | 465 | TCP | Отправка почты (SMTP SSL) | +| mail_smtp_tls | 587 | 587 | TCP | Отправка почты (SMTP STARTTLS) | + +**IP устройства**: `192.168.1.212` + +--- + +## 9. Настройка почтовых клиентов +[🔼 Наверх](#-содержание) + +### Параметры подключения +| Параметр | Значение | +|----------|----------| +| **Email** | `olimp@zailon.ru` | +| **Пароль** | пароль от ящика | + +### Входящая почта (IMAP) +- **Сервер**: `mail.zailon.ru` +- **Порт**: `993` +- **Безопасность**: SSL/TLS + +### Исходящая почта (SMTP) +- **Сервер**: `mail.zailon.ru` +- **Порт**: `465` (SSL/TLS) или `587` (STARTTLS) +- **Аутентификация**: Да, логин = email + +### Рекомендуемые клиенты +- **Android**: K-9 Mail (бесплатно, open source) или Aqua Mail (платно, красивый интерфейс) +- **iOS**: Родной клиент Почта или Spark +- **Desktop**: Thunderbird, Outlook + +--- + +## 10. Полезные команды +[🔼 Наверх](#-содержание) + +### Переход в директорию Mailcow +```bash +cd /mnt/mailcow/mailcow-dockerized +``` + +### Проверка статуса сервисов +```bash +docker compose ps +``` + +### Просмотр логов +```bash +# Все сервисы +docker compose logs -f + +# Только postfix +docker compose logs -f postfix-mailcow + +# Только последние 50 строк +docker compose logs --tail=50 postfix-mailcow +``` + +### Перезапуск сервисов +```bash +# Один сервис +docker compose restart postfix-mailcow + +# Все сервисы +docker compose restart +``` + +### Полная перезагрузка +```bash +docker compose down +docker compose up -d +``` + +### Обновление Mailcow +```bash +./update.sh +``` + +### Проверка DNS +```bash +nslookup -type=MX zailon.ru +nslookup -type=TXT zailon.ru +``` + +### Проверка открытых портов +```bash +ss -tlnp | grep -E ':25|:443|:993' +``` + +--- + +## 11. Решение проблем +[🔼 Наверх](#-содержание) + +### Письма не приходят извне +1. Проверь проброс портов на роутере (25, 993, 465) +2. Проверь DNS-записи: `nslookup -type=MX zailon.ru` +3. Проверь логи postfix: +```bash +cd /mnt/mailcow/mailcow-dockerized +docker compose logs --tail=100 postfix-mailcow | grep -E 'connect|NOQUEUE|reject' +``` + +### Ошибка "Waiting for DNS..." в Postfix +Проблема с Docker-сетью в LXC. Решение: +```bash +cd /mnt/mailcow/mailcow-dockerized +docker compose down +docker network rm mailcowdockerized_mailcow-network +docker compose up -d +``` + +### SOGo: "not allowed in state 1" +1. Очисти куки браузера +2. Или перезапусти SOGo: +```bash +cd /mnt/mailcow/mailcow-dockerized +docker compose restart sogo-mailcow +``` + +### Письма попадают в спам +1. Проверь наличие и корректность записей SPF, DKIM, DMARC +2. Убедись, что настроена PTR-запись у провайдера +3. Не отправляй массовые рассылки с нового домена + +### Не могу зайти по https://mail.zailon.ru +1. Проверь, что в NPM настроен прокси на `192.168.1.212:443` +2. Убедись, что в Custom Config добавлено `proxy_ssl_verify off;` +3. Проверь, что сертификат Let's Encrypt выпущен (статус в NPM) + +### ClamAV не обновляет базы (ошибка 403) +Известная проблема CDN ClamAV. Антивирус продолжит работать на локальных сигнатурах. Для обновления можно: +1. Подождать 24 часа (кулдаун) +2. Или отключить ClamAV в `mailcow.conf`, если не критично: +```ini +SKIP_CLAMD=y +``` +Затем: `docker compose up -d` + +--- + +## 12. Безопасность и обслуживание +[🔼 Наверх](#-содержание) + +### Регулярные задачи +| Задача | Периодичность | Команда/Действие | +|--------|--------------|------------------| +| Проверка логов | Еженедельно | `docker compose logs --tail=100` | +| Обновление Mailcow | По выходу версии | `./update.sh` | +| Резервное копирование | Ежедневно | Настроить backup через Proxmox Backup Server | +| Проверка места на диске | Еженедельно | `df -h /mnt/mailcow` | + +### Резервное копирование +Рекомендуемый способ — через Proxmox Backup Server (PBS): + +1. В веб-интерфейсе Proxmox выбери контейнер 212 +2. **Backup** → **Backup now** +3. Режим: `snapshot`, хранилище: `olimpbkp` +4. Расписание: ежедневно в 03:00 + +### Обновление системы +```bash +apt update && apt upgrade -y +``` + +> **Перезапуск контейнера** (если обновилось ядро) выполняется на хосте Proxmox: +```bash +pct reboot 212 +``` + +### Мониторинг +Mailcow интегрируется с внешними системами мониторинга. Для Grafana (LXC 208): +1. Добавь источник данных Prometheus: `http://192.168.1.212:9900/metrics` +2. Импортируй дашборд Mailcow (ID: 13429) + +### Контакты для экстренных случаев +- Администратор: Zailon +- Сервер: Olimp (192.168.1.1) +- Контейнер почты: 212 (192.168.1.212) +- Документация: `mail.md` в репозитории конфигураций + +--- + +## 13. Создание почтового ящика +[🔼 Наверх](#-содержание) ### Через веб-интерфейс Mailcow @@ -529,8 +518,10 @@ location ^~ /admin { - Войти в почту: `https://mail.zailon.ru` → логин `zevs@zailon.ru` - Настроить клиент (см. раздел [Настройка клиентов](#9-настройка-почтовых-клиентов)) +--- -## 🔍 Проверка после настройки +## 14. Проверка после настройки +[🔼 Наверх](#-содержание) ### 1. Проверь, что сертификат работает @@ -554,7 +545,8 @@ strict-transport-security: max-age=63072000; includeSubDomains; preload --- -## 🛠 Если что-то не работает +## 15. Если что-то не работает +[🔼 Наверх](#-содержание) | Проблема | Решение | |----------|---------| @@ -563,7 +555,9 @@ strict-transport-security: max-age=63072000; includeSubDomains; preload | Браузер ругается на сертификат | Подожди 1-2 минуты после сохранения в NPM, обнови страницу | | Не приходит письмо с внешнего ящика | Проверь проброс порта 25 на роутере и DNS-записи MX/SPF | + Если не получается — посмотри логи NPM: в админке NPM → **Hosts** → **Proxy Hosts** → три точки у записи `mail.zailon.ru` → **Logs**. + --- > **Примечание**: Все команды выполняются от имени root. \ No newline at end of file