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

This commit is contained in:
zailon 2026-04-16 15:05:37 +05:00
parent 36e1f90ed8
commit ecdbc70d87

View File

@ -24,6 +24,7 @@
10. [Полезные команды](#10-полезные-команды)
11. [Решение проблем](#11-решение-проблем)
12. [Безопасность и обслуживание](#12-безопасность-и-обслуживание)
13. [Создание почтового ящика](#13-Создание-почтового-ящика)
---
@ -401,6 +402,166 @@ Mailcow интегрируется с внешними системами мон
- Контейнер почты: 212 (192.168.1.212)
- Документация: `mail.md` в репозитории конфигураций
##13. Создание почтового ящика
### Через веб-интерфейс Mailcow
1. Открой `https://mail.zailon.ru` в браузере
2. Нажми **«Войти»** (правый верхний угол)
3. Введи:
- **Логин**: `admin`
- **Пароль**: твой пароль администратора
4. В левом меню выбери: **Configuration****Mail Setup** → **Mailboxes**
5. Нажми зелёную кнопку **Add mailbox**
6. Заполни форму:
| Поле | Что вписать | Пример |
|------|------------|--------|
| **Domain** | Выбери из списка | `zailon.ru` |
| **Local part** | Часть до @ | `zevs` |
| **Name** | Имя владельца | `Zevs` |
| **Password** | Пароль ящика | `ТвойНадёжныйПароль123!` |
| **Password (repeat)** | Повтори пароль | `ТвойНадёжныйПароль123!` |
| **Quota** | Лимит места в МБ | `5120` (5 ГБ) |
7. Остальные поля не трогай
8. Нажми **Add mailbox**
✅ Ящик создан. Теперь можно:
- Войти в почту: `https://mail.zailon.ru` → логин `zevs@zailon.ru`
- Настроить клиент (см. раздел [Настройка клиентов](#9-настройка-почтовых-клиентов))
---
## 🌐 Настройка Nginx Proxy Manager для mail.zailon.ru
> Делается один раз при первом запуске почтового сервера.
### Шаг 1: Открой админку NPM
1. В браузере перейди: `http://192.168.1.201:81`
2. Введи логин/пароль от NPM (если не менял — смотри в `group_vars/all.yml` или спроси у админа)
### Шаг 2: Создай новый Proxy Host
1. В меню слева выбери **Hosts** → **Proxy Hosts**
2. Нажми кнопку **Add Proxy Host** (внизу справа)
3. Заполни вкладку **Details**:
| Поле | Значение |
|------|----------|
| **Domain Names** | `mail.zailon.ru` (нажми Enter после ввода) |
| **Scheme** | `https` |
| **Forward Hostname / IP** | `192.168.1.212` |
| **Forward Port** | `443` |
| **Cache Assets** | ❌ выключено |
| **Block Common Exploits** | ✅ включено |
| **WebSockets Support** | ❌ выключено |
### Шаг 3: Настрой SSL
1. Перейди на вкладку **SSL**
2. Выбери: **Request a new SSL Certificate**
3. Поставь галочки:
- ✅ **Force SSL**
- ✅ **HTTP/2 Support**
- ✅ **I agree to the Let's Encrypt Terms of Service**
4. Поле **Email for Let's Encrypt** — введи твой email (для уведомлений)
### Шаг 4: Добавь настройки для HTTPS-проксирования
1. Перейди на вкладку **Advanced**
2. В поле **Custom Nginx Configuration** вставь:
```nginx
proxy_ssl_verify off;
proxy_ssl_server_name on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Security headers
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
add_header X-Content-Type-Options nosniff always;
add_header X-Frame-Options SAMEORIGIN always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), camera=(), microphone=(), payment=()" always;
```
### Шаг 5: Ограничь доступ к админке (опционально, но рекомендуется)
В том же поле **Custom Nginx Configuration**, **после** предыдущего блока, добавь:
```nginx
# Ограничение доступа к админке /admin
location ^~ /admin {
allow 192.168.1.0/24;
allow 188.73.191.202;
allow 192.168.45.0/24;
deny all;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
add_header X-Content-Type-Options nosniff always;
add_header X-Frame-Options SAMEORIGIN always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), camera=(), microphone=(), payment=()" always;
proxy_pass https://192.168.1.212:443;
proxy_ssl_verify off;
proxy_ssl_server_name on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
```
> ⚠️ Если не добавляешь ограничение — просто пропусти этот блок.
### Шаг 6: Сохрани и проверь
1. Нажми **Save** внизу страницы
2. Подожди 10-20 секунд (пока NPM выпустит сертификат Let's Encrypt)
3. Открой в браузере: `https://mail.zailon.ru`
4. Если видишь страницу входа SOGo — всё работает ✅
---
## 🔍 Проверка после настройки
### 1. Проверь, что сертификат работает
```bash
curl -I https://mail.zailon.ru
```
В ответе должна быть строка:
```text
strict-transport-security: max-age=63072000; includeSubDomains; preload
```
### 2. Проверь ограничение админки (если настраивал)
- С ноутбука в локальной сети: `https://mail.zailon.ru/admin` → должна открыться форма входа
- С телефона через мобильный интернет (без VPN): → должна быть ошибка `403 Forbidden`
### 3. Проверь почту
- Открой `https://mail.zailon.ru`
- Войди как `zevs@zailon.ru`
- Отправь тестовое письмо самому себе → должно прийти мгновенно
---
## 🛠 Если что-то не работает
| Проблема | Решение |
|----------|---------|
| `403 Forbidden` при входе в админку | Проверь, что твой IP есть в `allow` в блоке `location ^~ /admin` |
| `502 Bad Gateway` | Убедись, что Mailcow запущен: `docker compose ps` в контейнере 212 |
| Браузер ругается на сертификат | Подожди 1-2 минуты после сохранения в NPM, обнови страницу |
| Не приходит письмо с внешнего ящика | Проверь проброс порта 25 на роутере и DNS-записи MX/SPF |
Если не получается — посмотри логи NPM: в админке NPM → **Hosts****Proxy Hosts** → три точки у записи `mail.zailon.ru`**Logs**.
---
> **Примечание**: Все команды выполняются от имени root.