mail.niikn.com: DNS настроен, сценарий задокументирован для dttb.ru
- README НИИКН: обновлён Mailcow (пароль, DNS, порты, ящик) - changelog: добавлена запись о настройке mail.niikn.com - credentials: добавлены Spaceweb, Mailcow НИИКН, NPM НИИКН - decisions: сценарий настройки почтового сервера (шаблон для dttb.ru) - snippets: скрипт spaceweb-dns-api.py для управления DNS Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
97
decisions/2026-03-03-mailserver-setup-scenario.md
Normal file
97
decisions/2026-03-03-mailserver-setup-scenario.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# Сценарий настройки почтового сервера (Mailcow)
|
||||
|
||||
> Отработан на niikn.com (2026-03-03). Следующий: dttb.ru.
|
||||
|
||||
## Предусловия
|
||||
- Mailcow установлен и запущен (docker compose)
|
||||
- Белый IP есть
|
||||
- Домен на Spaceweb DNS
|
||||
|
||||
## Шаги
|
||||
|
||||
### 1. MikroTik — проброс почтовых портов
|
||||
```
|
||||
/ip firewall nat add chain=dstnat dst-port=25 protocol=tcp action=dst-nat to-addresses=<MAILCOW_IP> comment="SMTP"
|
||||
/ip firewall nat add chain=dstnat dst-port=465 protocol=tcp action=dst-nat to-addresses=<MAILCOW_IP> comment="SMTPS"
|
||||
/ip firewall nat add chain=dstnat dst-port=587 protocol=tcp action=dst-nat to-addresses=<MAILCOW_IP> comment="Submission"
|
||||
/ip firewall nat add chain=dstnat dst-port=993 protocol=tcp action=dst-nat to-addresses=<MAILCOW_IP> comment="IMAPS"
|
||||
/ip firewall nat add chain=dstnat dst-port=995 protocol=tcp action=dst-nat to-addresses=<MAILCOW_IP> comment="POP3S"
|
||||
/ip firewall nat add chain=dstnat dst-port=4190 protocol=tcp action=dst-nat to-addresses=<MAILCOW_IP> comment="Sieve"
|
||||
```
|
||||
> Порты 80/443 НЕ пробрасываем если NPM уже занимает их.
|
||||
|
||||
### 2. NPM — proxy host для mail.domain.com
|
||||
- Создать proxy host: `mail.<DOMAIN>` → `https://<MAILCOW_IP>:443`
|
||||
- Scheme: https (Mailcow сам обслуживает HTTPS)
|
||||
- SSL: Let's Encrypt через NPM
|
||||
- ssl_forced: true
|
||||
|
||||
### 3. DNS записи через Spaceweb API
|
||||
Скрипт: `snippets/spaceweb-dns-api.py`
|
||||
|
||||
```bash
|
||||
# Получить текущие записи
|
||||
python3 spaceweb-dns-api.py info <DOMAIN>
|
||||
|
||||
# A запись для mail (если нет)
|
||||
python3 spaceweb-dns-api.py add-a <DOMAIN> mail <PUBLIC_IP>
|
||||
|
||||
# MX
|
||||
python3 spaceweb-dns-api.py add-mx <DOMAIN> mail.<DOMAIN> 10
|
||||
|
||||
# SPF
|
||||
python3 spaceweb-dns-api.py add-txt <DOMAIN> @ "v=spf1 mx a:mail.<DOMAIN> ~all"
|
||||
|
||||
# DMARC
|
||||
python3 spaceweb-dns-api.py add-txt <DOMAIN> _dmarc "v=DMARC1; p=none; rua=mailto:admin@<DOMAIN>"
|
||||
|
||||
# DKIM (получить ключ из Mailcow → Configuration → ARC/DKIM)
|
||||
python3 spaceweb-dns-api.py add-txt <DOMAIN> dkim._domainkey "<DKIM_KEY>"
|
||||
```
|
||||
|
||||
> ⚠️ Капча: после 2-3 запросов подряд нужна новая сессия (перезапустить скрипт).
|
||||
|
||||
### 4. Mailcow — домен и ящики
|
||||
Через API (X-API-Key) или веб-интерфейс:
|
||||
1. Добавить домен
|
||||
2. Получить DKIM ключ (Configuration → ARC/DKIM)
|
||||
3. Создать ящики
|
||||
|
||||
### 5. Пароль admin
|
||||
```bash
|
||||
# Через API:
|
||||
curl -X POST https://mail.<DOMAIN>/api/v1/edit/admin \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-API-Key: <API_KEY>" \
|
||||
-d '{"items":["admin"],"attr":{"password":"<PASS>","password2":"<PASS>"}}'
|
||||
```
|
||||
|
||||
### 6. PTR (rDNS)
|
||||
Обратиться к провайдеру: `<PUBLIC_IP>` → `mail.<DOMAIN>`
|
||||
|
||||
### 7. Nextcloud SMTP (если есть)
|
||||
Администрирование → Основные параметры → Email:
|
||||
- SMTP, хост: `<MAILCOW_IP>`, порт: 587
|
||||
- STARTTLS, LOGIN auth
|
||||
- Логин: noreply@<DOMAIN>, пароль
|
||||
|
||||
### Проверка
|
||||
```bash
|
||||
dig mail.<DOMAIN> A +short # → <PUBLIC_IP>
|
||||
dig <DOMAIN> MX +short # → mail.<DOMAIN>
|
||||
dig <DOMAIN> TXT +short # → v=spf1 ...
|
||||
dig _dmarc.<DOMAIN> TXT +short # → v=DMARC1 ...
|
||||
dig dkim._domainkey.<DOMAIN> TXT +short # → v=DKIM1 ...
|
||||
```
|
||||
|
||||
https://www.mail-tester.com/ — отправить письмо, проверить оценку.
|
||||
|
||||
## Применение для dttb.ru
|
||||
|
||||
| Параметр | niikn.com (выполнено) | dttb.ru (план) |
|
||||
|----------|----------------------|----------------|
|
||||
| Mailcow IP | 192.168.1.128 | ? (новая VM или LXC) |
|
||||
| MikroTik | 192.168.1.1 (AI/OL260380eg) | 10.0.0.250 или роутер dttb |
|
||||
| NPM | 192.168.1.22 | 10.0.0.195 |
|
||||
| Публичный IP | 85.235.181.190 | ? |
|
||||
| DNS домен | niikn.com | dttb.ru |
|
||||
Reference in New Issue
Block a user