100 lines
6.8 KiB
Markdown
100 lines
6.8 KiB
Markdown
---
|
||
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 -->
|