Files
superdupersite/test2
2026-04-18 19:32:36 +00:00

136 lines
8.3 KiB
Plaintext
Raw Permalink 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.
# 📘 Методическое руководство: Завершение миграции на Samba AD DC (`lin-dc1`)
> **Цель:** Полностью удалить остатки старого Windows DC (`win-dc`), очистить DNS и AD, применить корректную конфигурацию Samba и провести финальную диагностику домена `AU.TEAM`.
> **Требования:** Доступ `root`/`sudo`, учётные данные `administrator`, установленный и работающий Samba 4.x.
---
## 🔹 Этап 1. Синхронизация данных (если `win-dc` ещё доступен)
*Выполняется **до** вывода Windows DC из домена, чтобы гарантировать актуальность данных на `lin-dc1`.*
```bash
# Принудительная репликация всех разделов AD
samba-tool drs replicate lin-dc1 WIN-DC DC=DomainDnsZones,DC=au,DC=team --full
samba-tool drs replicate lin-dc1 WIN-DC DC=ForestDnsZones,DC=au,DC=team --full
samba-tool drs replicate lin-dc1 WIN-DC DC=au,DC=team --full
# Обновление всех DNS-записей на lin-dc1
samba_dnsupdate --all-names --verbose
```
✅ **Проверка:** Убедитесь, что `lin-dc1` успешно резолвится как контроллер домена:
```bash
host -t SRV _kerberos._udp.au.team 127.0.0.1
host -t SRV _ldap._tcp.au.team 127.0.0.1
```
---
## 🔹 Этап 2. Очистка DNS от записей старого DC
*Удаляем A-запись и NS-запись `win-dc`, чтобы клиенты не обращались к несуществующему серверу.*
```bash
# Удаление A-записи
samba-tool dns delete localhost au.team win-dc A 192.168.1.2 -U administrator
# Удаление NS-записи
samba-tool dns delete localhost au.team @ NS win-dc.au.team. -U administrator
```
🔍 **Контроль:** Вывод должен быть пустым.
```bash
samba-tool dns query localhost au.team @ ALL | grep -i win
```
---
## 🔹 Этап 3. Удаление остатков репликации из AD
*Ошибки `WERR_DS_DRA_BUSY` и `WERR_DS_ADD_REPLICA_INHIBITED` в логах указывают на то, что Samba пытается реплицироваться с удалённым `win-dc`. Необходимо удалить ссылку на его NTDS Settings.*
```bash
# 1. Поиск объекта репликации старого DC
ldbsearch -H /var/lib/samba/private/sam.ldb --cross-ncs "(&(objectClass=nTDSDSA)(cn=*))" distinguishedName | grep -i win
```
📌 *Если команда вернула строку вида `CN=NTDS Settings,CN=WIN-DC,CN=Servers...`, выполните удаление:*
```bash
# 2. Удаление объекта (замените DN на реальный из вывода выше!)
ldbmodify -H /var/lib/samba/private/sam.ldb << 'EOF'
dn: CN=NTDS Settings,CN=WIN-DC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=au,DC=team
changetype: delete
EOF
```
💡 *Если `ldbmodify` сообщает, что объект не найден — значит, ссылка уже удалена. Ошибки исчезнут после перезапуска службы.*
---
## 🔹 Этап 4. Проверка конфигурации `smb.conf`
Убедитесь, что `/etc/samba/smb.conf` содержит корректные параметры. Особенно важен раздел `[global]`:
```ini
[global]
netbios name = LIN-DC1
realm = AU.TEAM
server role = active directory domain controller
workgroup = AU
# Полный список обязательных служб для AD DC
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns
# ⚠️ ВАЖНО: После удаления win-dc замените 192.168.1.2 на внешний DNS
# (например, 8.8.8.8, 1.1.1.1 или IP маршрутизатора)
dns forwarder = 192.168.1.2
```
🔄 *После редактирования: `systemctl restart smbd nmbd winbind` (если используется systemd-интеграция, достаточно перезапуска `samba`)*
---
## 🔹 Этап 5. Перезапуск служб и синхронизация времени
*Корректное время критично для Kerberos.*
```bash
# Синхронизация времени на lin-dc1
chronyc -a makestep
# Перезапуск Samba
systemctl restart samba.service
sleep 5
# Проверка логов на наличие критических ошибок
journalctl -u samba.service -n 20 --no-pager | grep -i error
```
🖥️ *Для Windows-клиентов/серверов (опционально):*
```cmd
net time \\192.168.1.3 /set /y
```
---
## 🔹 Этап 6. Комплексная диагностика (Чек-лист)
| № | Проверка | Команда | Ожидаемый результат |
|---|----------|---------|---------------------|
| 1 | **FSMO-роли** | `samba-tool fsmo show` | Все 5 ролей: владелец `CN=LIN-DC1,...` |
| 2 | **Репликация** | `samba-tool drs showrepl` | Без ошибок `FAIL`/`ERROR`. Для одиночного DC разделы могут не показываться (норма) |
| 3 | **DNS SRV-записи** | `host -t SRV _ldap._tcp.au.team 127.0.0.1`<br>`host -t SRV _kerberos._udp.au.team 127.0.0.1` | Возвращают `lin-dc1.au.team` |
| 4 | **Зоны и записи DNS** | `samba-tool dns zone list`<br>`samba-tool dns query localhost au.team @ ALL` | Зона `au.team` активна. Записи `win-dc` отсутствуют |
| 5 | **Пользователи и группы** | `samba-tool user list`<br>`samba-tool group list`<br>`samba-tool user show administrator` | Список загружается. `administrator` активен |
| 6 | **Аутентификация** | `kinit administrator@AU.TEAM`<br>`klist` | Билет Kerberos получен успешно |
| 7 | **Вхождение в домен** | `net ads testjoin` | `Join is OK` |
| 8 | **Уровень домена** | `samba-tool domain level show` | Отображает актуальный уровень (например, `2012 R2` или выше) |
| 9 | **Логи службы** | `journalctl -u samba.service -n 50 --no-pager` | Нет повторяющихся `ERROR`/`CRITICAL` |
---
## ⚠️ Важные примечания и рекомендации
1. **DNS Forwarder:** Параметр `dns forwarder = 192.168.1.2` в `smb.conf` указывает на старый Windows DC. После его полного вывода из сети замените его на внешний DNS-резолвер, иначе внутренние запросы к несуществующим зонам будут таймаутить.
2. **Резервное копирование:** Перед выполнением `ldbmodify` и удалением DNS-записей рекомендуется сделать бэкап:
`cp -a /var/lib/samba/private /var/lib/samba/private.backup`
3. **Одиночный DC:** Если в домене остался только `lin-dc1`, разделы репликации могут не отображаться в `samba-tool drs showrepl`. Это штатное поведение.
4. **Клиентские настройки:** Убедитесь, что на всех рабочих станциях в настройках сетевого адаптера указан `192.168.1.3` (или IP `lin-dc1`) как **единственный** DNS-сервер.
5. **Права:** Все команды `samba-tool` и `ldbsearch/modify` требуют запуска от `root` или через `sudo`, а также валидных доменных учётных данных (`-U administrator`).
---
📅 *Документ подготовлен для домена `AU.TEAM`, контроллер `LIN-DC1`. Дата актуализации: 19.04.2026*
🔧 *При возникновении нестандартных ошибок предоставляйте вывод `journalctl -u samba.service --since "1 hour ago"` и `samba-tool drs showrepl` для анализа.*