diff --git a/test2 b/test2 new file mode 100644 index 0000000..4476f33 --- /dev/null +++ b/test2 @@ -0,0 +1,136 @@ +# 📘 Методическое руководство: Завершение миграции на 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`
`host -t SRV _kerberos._udp.au.team 127.0.0.1` | Возвращают `lin-dc1.au.team` | +| 4 | **Зоны и записи DNS** | `samba-tool dns zone list`
`samba-tool dns query localhost au.team @ ALL` | Зона `au.team` активна. Записи `win-dc` отсутствуют | +| 5 | **Пользователи и группы** | `samba-tool user list`
`samba-tool group list`
`samba-tool user show administrator` | Список загружается. `administrator` активен | +| 6 | **Аутентификация** | `kinit administrator@AU.TEAM`
`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` для анализа.* \ No newline at end of file