Обновить docs/services/lxc212-mail/mailcow.md

This commit is contained in:
zailon 2026-04-16 15:59:57 +05:00
parent cbd28e87cd
commit 9ac7453951

View File

@ -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.