Auto base sync: 2026-01-27 14:36:13

This commit is contained in:
2026-01-27 14:36:13 +04:00
parent a55edcfdbf
commit c4b0d5fb7a
4 changed files with 14 additions and 199 deletions

View File

@@ -1,181 +0,0 @@
>[!Danger]- 1. Установка и базовая настройка **Win server**
>1. Установи Windows Server 2019 **Desktop Experience**, задай сильный пароль локального Administrator и включи RDP (лучше ограничить по IP на фаерволе).
>2. Поставь статический IP (на DC DNS будет “сам на себя”, на Exchange DNS будет указывать на DC).
>3. Синхронизация времени: обязательно корректное время/часовой пояс, иначе будут проблемы с Kerberos/SSL.
>Задайте статический IP, шлюз, DNS.
>>[!todo]- 1
> > Если сервер = DC/DNS: DNS указывайте на себя (127.0.0.1 и/или свой IP).
> >
> > Если сервер = только Exchange: DNS указывайте на DC.
> >
> > Проверьте время/часовой пояс (важно для Kerberos/сертификатов).
> >
> > Timezone, NTP, синхронизация.
> >
> > Включите RDP (если нужно) и проверьте Windows Firewall (пока можно оставить дефолтный, но убедитесь, что 443/25 потом не блокируются).
> >
> > Обновления.
> >
> > Установите все обновления Windows.
> >
> > Перезагрузки до тех пор, пока обновлений не останется.
> >
> > Переименование сервера (если ещё не делали):
> > ```
> > Rename-Computer -NewName "<SERVERNAME>" -Restart
> > ```
> > **Изменить WINS5 НА ТРЕБУЕТСЯ ИМЯ**
>
>>[!todo]- 2 Проверка, что **443 порт** вообще живёт на сервере (потом пригодится при диагностике OWA/ECP):
>>```
>>`Test-NetConnection 127.0.0.1 -Port 443 netstat -ano | findstr ":443"`
>>```
>[!Failure]- 2) AD DS + DNS (и ваш splitDNS)
>>[!info] Критично, чтобы внутренние ПК ходили на внутренний IP, а снаружи — на публичный.
>>Именно из‑за этого у вас “то открывается /owa, то не открывается”: внутри сети обращение к публичному IP не проходило (hairpin NAT), поэтому вы лечили splitDNS.
>>
>
>>[!Danger]- **2.1** Если Domen Controller не поднят. Настройка DC
>>На будущем DC:
>>```
>>Install-WindowsFeature AD-Domain-Services,DNS -IncludeManagementTools
>>```
>>Дальше поднимайте лес (пример):
>>```
>>Install-ADDSForest -DomainName "<AD_DOMAIN_LOCAL>" -DomainNetbiosName "<NETBIOS>"
>>```
>>>[!ifno] Пример
>>>```
>>>Install-ADDSForest -DomainName "s5teams.local" -DomainNetbiosName "S5TEAMS"
>>>```
>
>>[!Tip]- **2.2** Публичный домен внутри сети (splitDNS)
>>>[!info] Смысл:
>>> внутри сети `mail.stitch505.ru` должен резолвиться в **ip типа** **192.168.....**, чтобы OWA/ECP открывались из LAN стабильно.
>>
>>>[!Warning] На каждом внутреннем DNS, который обслуживает клиентов (это важно! у вас были разные DNS на разных подсетях), создайте зону `**YOUR_DOMEN**` и запись:
>>```
>>Add-DnsServerPrimaryZone -Name "YOUR_DOMEN" -ReplicationScope "Domain" -DynamicUpdate "None"
>Add-DnsServerResourceRecordA -ZoneName "YOUR_DOMEN" -Name "mail" -IPv4Address "192.168.60.212"
>Add-DnsServerResourceRecordCName -ZoneName "YOUR_DOMEN" -Name "autodiscover" -HostNameAlias "mail.YOUR_DOMEN"
>>```
>>
>>>[!Bug] ЗАМЕНИТЬ ДАННЫЕ IP и указать свой домен вместо YOUR_DOMEN
>
>>[!Bug]- Проверка на клиентском ПК после изменений:
>>```
>>ipconfig /flushdns nslookup mail.YOUR_DOMEN
>>```
>[!Bug]- 3. Exchange 2019: установка и базовая оживлялка веба (OWA/ECP)
>>[!info]
>>Эта часть — чтобы после установки сразу работали https://mail.../owa и https://mail.../ecp, и чтобы при сбоях вы быстро отличали “IIS жив” от “DNS/маршрут сломан”. В вашем диалоге веб реально “падал” снаружи/изнутри, но на сервере 443 был жив — это типичный признак не Exchange, а сети/DNS.
>
>>[!Warning]- 3.1 До установки Exchange (ЧЕКЛИСТ)
>>1. Сервер должен быть членом домена (если Exchange не на DC).
>>2. Установите prerequisites (самый практичный путь — ставить компоненты/зависимости, которые просит установщик CU).
>>3. Перезагрузите сервер, убедитесь, что IIS/службы не в “полуживом” состоянии.
>
>>[!warning]- 3.2 Установка Exchange
>>Смонтировать ISO Exchange 2019 CU.
>> Запустить setup, выбрать роль Mailbox (в 2019 фактически одна роль).
>> После установки открыть:
>> https://<имя_сервера>/ecp (первичная проверка)
>> потом уже через https://YOUR_DOMEN/ecp
>
>>[!Warning] 3.3 Если /owa или /ecp “вечно грузится/таймаут”
>>1. Проверка на самом сервере:
>>```
>>Test-NetConnection 127.0.0.1 -Port 443
netstat -ano | findstr ":443"
>>```
>>2. Быстрый перезапуск IIS:
>>```
>>iisreset
>>```
>>3. Если внутри сети с ПК не открывается, а на сервере 127.0.0.1:443 ок — почти всегда это DNS/hairpin, возвращайтесь к разделу splitDNS.
>[!Danger] DKIM/SPF/DMARC/PTR
>Прошлая рабочая схема
>A mail → 188.170.157.193
>CNAME autodiscover → mail.stitch505.ru
>MX → mail.stitch505.ru
>SPF (TXT для корня домена) `v=spf1 ip4:<PUBLIC_IP> -all`
>DKIM (TXT для селектора) `v=DKIM1; k=rsa; p=<PUBLIC_KEY>`
>```
>Что писать: public key, который выдаёт твой DKIMагент/провайдер, обычно формата:
>```
>DMARC (TXT для _dmarc) v=DMARC1; p=none; rua=mailto:dmarc@<PUBLIC_DOMAIN>
>PTR (reverse DNS) — **не в Cloudflare а у провайдера**
>```
>Обычно нужно: `<PUBLIC_IP>` → `mail.<PUBLIC_DOMAIN>`, и при этом Aзапись `mail.<PUBLIC_DOMAIN>` должна указывать обратно на `<PUBLIC_IP>`.
>```
>
>>[!info] DKIM-агент (Exchange DkimSigner / dkim-exchange) (скачать из интернета или прикрепленного файла)
>>ПО/что это:
>>```
>>это отдельный DKIMподписывающий агент для **Exchange onprem**, который добавляет заголовок `DKIM-Signature` на исходящую почту.[](https://github.com/Pro/dkim-exchange/issues/78)
>>```
>>
>1. **Установка**
> - Ставится на Exchange сервер (где работает транспорт).
> - После установки обычно появляется GUI (настройки доменов) и папка с ключами (часто ...\keys).
>2. **Создание домена и ключа**
>- В GUI агента добавь домен: <PUBLIC_DOMAIN>
>- Selector: например s1 (или любой другой, но одинаковый в агенте и DNS)
>- Сгенерируй ключ (обычно RSA 2048)
>- Скопируй public key → вставь в Cloudflare TXT: s1._domainkey.<PUBLIC_DOMAIN>
>3. **Файлы ключей**.
> - Private key обычно лежит в файле типа: `C:\Program Files\<DKIM signer>\keys\<PUBLIC_DOMAIN>.pem`
>- Именно этот файл должен быть доступен службе транспорта Exchange.
>
>>[!Warning] Главная ошибка и исправление (Access denied)
>>```
>>Почему ломается: транспорт Exchange обычно работает от `NT AUTHORITY\NETWORK SERVICE`, и если у него нет прав на чтение private key (`.pem`), агент пишет “Access denied”, ключ не грузится и доменов становится 0.
>>```
>>>[!todo] **Исправление (универсально, подставь свой путь и домен):**
>>> ```
>>> $KeyFile = "C:\Program Files\Exchange DkimSigner\keys\<PUBLIC_DOMAIN>.pem" icacls $KeyFile /inheritance:e icacls $KeyFile /grant "NT AUTHORITY\NETWORK SERVICE:RX" Restart-Service MSExchangeTransport
>>> ```
>>> **/inheritance:e** включает наследование ACL, а /grant добавляет права, это штатный синтаксис icacls.
>
>>[!Info] Проверка после настройки
>>1. В логе DKIMагента должно быть что-то вроде “settings loaded / Number of domains: 1” (или аналогичная строка, смысл — домен подхватился).
>>2. Отправь письмо на Gmail → “Показать оригинал”: должно быть `dkim=pass`, а также заголовок `DKIM-Signature`
>>3.
>[!Danger] Проверки
>Проверка доступности после настройки PTR записей
>```
>nslookup 188.170.157.193 8.8.8.8
nslookup 188.170.157.193 1.1.1.1
Если есть ошибки:
1) агент пишет, что не может загрузить private key “Отказано в доступе”, и доменов становится 0, **Измени YOUR_DOMAIN**
```
icacls "C:\Program Files\Exchange DkimSigner\keys\YOUR_DOMAIN.pem" /inheritance:e
icacls "C:\Program Files\Exchange DkimSigner\keys\YOUR_DOMAIN.pem" /grant "NT AUTHORITY\NETWORK SERVICE:RX"
Restart-Service MSExchangeTransport
```

File diff suppressed because one or more lines are too long