Files
knowledge-base/projects/dttb/mailcow-dttb.md
2026-06-23 13:58:02 +03:00

100 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
date: 2026-03-04
type: project
tags: [dttb, mail]
---
# Mailcow dttb.ru (VM 107, 10.0.0.107)
## Общая информация
- **Web UI:** https://mail.dttb.ru (через NPM proxy host #25, SSL cert #106)
- **Admin:** admin / 1qaz!QAZ
- **API key:** dttb-mailcow-api-2026 (API_ALLOW_FROM: 172.22.1.1,127.0.0.1,10.0.0.0/24)
- **OS:** Ubuntu 24.04, 4 cores, 8GB RAM, 100GB disk
- **SSH:** root (ключ claude-code ed25519), cloud-init static IP
- **Клонирован с:** VM 106 НИИКН (mail.niikn.com), перенастроен 2026-03-04
## Домен и ящики
- **Домен:** dttb.ru, DKIM selector: dkim, 2048-bit
- **Ящики:**
- admin@dttb.ru (пароль: 1qaz!QAZ)
- noreply@dttb.ru (пароль: 1qaz!QAZ)
## Подключение
- **SMTP:** mail.dttb.ru:587 (STARTTLS) или mail.dttb.ru:465 (SMTPS)
- **IMAP:** mail.dttb.ru:993 (SSL)
- **POP3:** mail.dttb.ru:995 (SSL)
- **Sieve:** mail.dttb.ru:4190
## Конфигурация
- **Install dir:** /opt/mailcow-dockerized/
- **MAILCOW_HOSTNAME:** mail.dttb.ru
- **SKIP_LETS_ENCRYPT:** y (SSL через NPM)
- **SKIP_UNBOUND_HEALTHCHECK:** y
- **Unbound:** forward-zone к 8.8.8.8/1.1.1.1 в unbound.conf (обязательно для доставки!)
- **SSL:** self-signed cert для SMTP/IMAP (mail.dttb.ru), NPM cert для HTTPS web
- **Docker контейнеры:** 18 шт (postfix, dovecot, rspamd, nginx, mysql, redis и др.)
## OpenWrt проброс портов → 10.0.0.107
| Порт | Протокол | Назначение |
|------|----------|------------|
| 25 | TCP | SMTP (приём почты) |
| 465 | TCP | SMTPS |
| 587 | TCP | Submission (отправка) |
| 993 | TCP | IMAPS |
| 995 | TCP | POP3S |
| 4190 | TCP | Sieve |
## DNS записи (dttb.ru → Spaceweb)
| Тип | Имя | Значение |
|-----|-----|----------|
| A | mail | 176.62.183.186 |
| MX | @ | mail.dttb.ru. (приоритет 10) |
| TXT | @ | v=spf1 ip4:176.62.183.186 a mx ~all |
| TXT | _dmarc | v=DMARC1; p=quarantine; ruf=mailto:admin@dttb.ru |
| TXT | dkim._domainkey | v=DKIM1;k=rsa;t=s;s=email;p=... (2048-bit) |
## Статус проверки (2026-06-18)
Сквозная диагностика «снаружи» (без шелла на VM):
-**Приём:** порт 25 открыт из интернета, MX отвечает `250 mail.dttb.ru`, в INBOX реальное входящее от `it5870@yandex.ru`.
-**Отправка:** письмо с admin@dttb.ru через :587 доставлено на внешний сервер за секунды → **исходящий 25-й порт у Istranet НЕ заблокирован**. Письмо **DKIM-подписано** (d=dttb.ru, s=dkim), SPF/DMARC выровнены.
- ✅ IMAP :993 и SMTP-submission :587 (AUTH LOGIN) работают (admin@dttb.ru / 1qaz!QAZ).
- ⚠️ **PTR отсутствует** — единственная дыра доставляемости. Strict-провайдеры (Gmail → спам, Mail.ru → reject) штрафуют письма с IP без reverse DNS.
- ⚠️ **IP = OOO Istranet** (`netname istranet`, RU), не Spaceweb. PTR ставит Istranet (как интернет-провайдер по этому WAN-IP), не регистратор DNS.
- 🔸 В DNS висит лишний `TXT @ "mailru-domain: 09KURdxlbSVmAm4O"` — остаток попытки привязать Mail.ru для домена; на Mailcow не влияет, можно убрать.
- 🔸 **SSH-доступ к VM не работает ни одним ключом** (id_rsa «claude-code-matrix-project», id_ed25519, ключ Proxmox). VM клонирована с НИИКН VM 106 → несёт чужой authorized_keys. Управление возможно через web-UI (admin/1qaz!QAZ); для шелла — добавить ключ через Proxmox console.
## Вариант «почтовый шлюз через VPS» (оценка 2026-06-18)
Идея: пускать почту через статичный VPS с чистым IP+PTR, чтобы не зависеть от Istranet. Проверил исходящий :25 на всех VPS Олега:
| VPS | Провайдер | Исходящий :25 | Вывод |
|-----|-----------|---------------|-------|
| vm-nano `158.255.0.139` (в КБ = «доменный шлюз» umnybot) | NL | ❌ блок | для почты НЕ годится |
| Finland `202.71.12.186` | Hostkey EU | ❌ блок (egress после взлома 04-24) | НЕ годится |
| **swtest `89.111.140.86`** | SpaceWeb RU | ✅ открыт (достучался до gmail MX) | единственный пригодный |
⚠️ «Доменный шлюз» из КБ (vm-nano) — это HTTP-reverse-proxy (NPM), к SMTP неприменим, и его провайдер режет 25.
⚠️ swtest на 2026-06-18: **диск 100%** (9.3/9.8 ГБ), RAM свободно ~367 МБ, **PTR нет** → перед использованием нужна чистка диска + заявка в SpaceWeb на rDNS.
**Корень:** почта dttb уже работает на приём и отправку с домашнего IP; единственная дыра — PTR. Любой путь (Istranet PTR или VPS-smarthost) всё равно упирается в заявку провайдеру на PTR. VPS-вариант оправдан, только если Istranet откажет в PTR или нужно скрыть домашний IP.
## TODO
- [ ] **PTR:** запросить у OOO Istranet запись `186.183.62.176.in-addr.arpa → mail.dttb.ru` (даст FCrDNS, A mail→176.62.183.186 уже есть). Главный пункт для доставляемости. (2026-04-18, проверено 2026-06-18 — всё ещё нет)
- [ ] Добавить `rua=mailto:admin@dttb.ru` в DMARC для агрегированных отчётов (сейчас только ruf)
- [ ] Восстановить SSH-ключ на VM 107 через Proxmox console
<!-- AUTO-SYNC FROM MEMORY.MD - DO NOT EDIT BELOW -->
## Mailcow HomeLab (VM 107, 10.0.0.107)
- Web UI: https://mail.dttb.ru (через NPM proxy host #25)
- Admin: admin / 1qaz!QAZ
- API key: dttb-mailcow-api-2026
- Домен: dttb.ru (добавлен), DKIM: selector=dkim, 2048-bit
- Ящики: admin@dttb.ru, noreply@dttb.ru (пароль: 1qaz!QAZ)
- SMTP: 10.0.0.107:587, STARTTLS, LOGIN auth
- Клон с VM 106 НИИКН, MAILCOW_HOSTNAME=mail.dttb.ru
- SSH: root (ключ claude-code ed25519), cloud-init IP static
- Unbound: forward-zone к 8.8.8.8/1.1.1.1 (обязательно, иначе DNS fail)
- SSL: self-signed для mail.dttb.ru, NPM cert ID:106 для HTTPS web
- OpenWrt проброс: 25,465,587,993,995,4190 → 10.0.0.107
- DNS (Spaceweb): A mail→176.62.183.186, MX→mail.dttb.ru, SPF, DMARC, DKIM настроены
<!-- END AUTO-SYNC -->