Вопрос или проблема
Я пытаюсь настроить контроллер домена Active Directory на экземпляре Ubuntu 16.04 в службах EC2 от Amazon. Я делаю все правильно (следуя по крайней мере трем различным учебникам) и все тесты на стороне сервера проходят успешно. Моя последняя попытка была с использованием этого учебника: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller (хотя я получил список установки kerberos из Шага 2 https://www.tecmint.com/install-samba4-active-directory-ubuntu/).
Но когда я пытаюсь подключиться с Windows 10 (как объясняется здесь https://wiki.samba.org/index.php/Windows_DNS_Configuration), я получаю следующую ошибку:
Примечание: Эта информация предназначена для сетевого администратора. Если вы не являетесь администратором вашей сети, уведомите администратора о том, что вы получили эту информацию, которая была записана в файл C:\Windows\debug\dcdiag.txt.
DNS был успешно опрошен для записи ресурса расположения службы (SRV), используемой для поиска контроллера домена для домена “ad.company.com.my”:
Запрос был на запись SRV для _ldap._tcp.dc._msdcs.ad.company.com.my
Следующие контроллеры домена были определены в результате запроса: dc1.ad.company.com.my
Однако ни один контроллер домена не смог быть найден.
Распространенные причины этой ошибки включают:
Отсутствуют записи Host (A) или (AAAA), которые сопоставляют имена контроллеров домена с их IP-адресами, или они содержат неверные адреса.
Контроллеры домена, зарегистрированные в DNS, не подключены к сети или не работают.
Моя настройка: Экземпляр AWS Micro, работающий на Ubuntu 16.04 LTS. Установлен эластичный IP-адрес, чтобы у меня был статический IP-адрес для сервера.
Клиент Windows — это виртуальная машина. У него установлен публичный IP-адрес экземпляра Amazon согласно инструкции на вики Samba (https://wiki.samba.org/index.php/Windows_DNS_Configuration).
Все это работает:
host -t A ad.company.com.my
host -t A dc1
ping -c3 ad.company.com.my
ping -c3 dc1.ad.company.com.my
Конфигурационные файлы:
/etc/network/interfaces:
# Этот файл описывает сетевые интерфейсы, доступные на вашей системе
# и как их активировать. Для получения дополнительной информации см. interfaces(5).
# Интерфейс обратной связи
auto lo
iface lo inet loopback
# Исходные интерфейсы
# Пожалуйста, проверьте /etc/network/interfaces.d перед изменением этого файла
# так как интерфейсы могли быть определены в /etc/network/interfaces.d
# См. LP: #1262951
# source /etc/network/interfaces.d/*.cfg
auto eth0
iface eth0 inet static
address 172.31.36.46
netmask 255.255.240.0
broadcast 172.31.47.255
gateway 172.31.32.1
dns-nameserver 172.31.36.46
# dns-nameserver 172.31.0.2
# dns-nameserver 8.8.8.8
dns-search ad.company.com.my
/etc/hosts:
127.0.0.1 localhost localhost.localdomain
172.31.36.46 dc1.ad.company.com.my dc1
# Следующие строки желательны для хостов, поддерживающих IPv6
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
/etc/resolv.conf
# Динамический файл resolv.conf(5) для резольвера glibc(3), сгенерированный resolvconf(8)
# НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ РУЧКИ -- ВАШИ ИЗМЕНЕНИЯ БУДУТ ПЕРЕПИСАНЫ
nameserver 172.31.36.46
search ad.company.com.my
/etc/hostname
dc1
/etc/krb5.conf
[libdefaults]
default_realm = AD.COMPANY.COM.MY
dns_lookup_realm = false
dns_lookup_kdc = true
/etc/samba/smb.conf
[global]
workgroup = AD
realm = AD.COMPANY.COM.MY
netbios name = DC1
server role = active directory domain controller
dns forwarder = 8.8.8.8
idmap_ldb:use rfc2307 = yes
[netlogon]
path = /var/lib/samba/sysvol/ad.company.com.my/scripts
read only = No
[sysvol]
path = /var/lib/samba/sysvol
read only = No
Вот вывод команды: nslookup dc1.ad.company.com.my
Сервер: ec2-ADDRESS.ap-southeast-1.compute.amazonaws.com
Адрес: ADDRESS
Имя: dc1.ad.company.com.my
Адрес: 172.31.36.46
А затем проверка SRV:
C:\Users\user>nslookup
Сервер по умолчанию: ec2-ADDRESS.ap-southeast-1.compute.amazonaws.com
Адрес: ADDRESS
> set type=SRV
> _ldap._tcp.ad.company.com.my
Сервер: ec2-ADDRESS.ap-southeast-1.compute.amazonaws.com
Адрес: ADDRESS
_ldap._tcp.ad.company.com.my SRV расположение службы:
приоритет = 0
вес = 100
порт = 389
svhostname = dc1.ad.company.com.my
Я открыл весь трафик на экземпляре, чтобы убедиться, что это не проблема с межсетевым экраном.
Итак, что я делаю не так?
В качестве временного решения добавьте или обновите в хосте Windows 10 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\AllowSingleLabelDnsDomain
на 1. Затем перезагрузите Windows 10 и попробуйте добавить в домен с использованием имени netbios (в вашем случае, похоже, вам нужно использовать AD
)
Ответ или решение
Чтобы решить проблемы с подключением к контроллеру домена Samba4 Active Directory на экземпляре Ubuntu Micro AWS, необходимо рассмотреть несколько моментов, основанных на предоставленных вами данных. Подборка инструкций и возможных решений направлена на устранение ошибок, с которыми вы столкнулись.
1. Обновление конфигурации DNS
Исходя из сообщения об ошибке, Windows клиент успешно находит SRV запись для вашего контроллера домена dc1.ad.company.com.my
, но затем сообщает, что не может установить с ним связь. Это может указывать на проблемы с конфигурацией DNS или сетевым доступом.
Проверьте настройки DNS:
- Убедитесь, что Windows клиент использует правильный DNS-сервер. В вашем случае, это должен быть IP адрес вашего экземпляра (172.31.36.46).
- В случае наличия других DNS-серверов (например, 8.8.8.8), попробуйте временно отключить их и оставить только локальный.
Для этого в Windows выполните команду:
ipconfig /all
Убедитесь, что DNS-сервер, указанный в IP конфигурации, соответствует вашему контроллеру домена.
2. Убедитесь в доступности порта
Порт, используемый для LDAP (389), должен быть открытым на вашем экземпляре AWS. Выший уровень безопасности в AWS требует создания правил доступа.
Проверьте настройки безопасности AWS:
- Войдите в консоль управления AWS.
- Перейдите к Security Groups и убедитесь, что входящие правила позволяют трафик на порт 389 (LDAP), а также на порт 88 (Kerberos), 135 (RPC), 445 (SMB), и другие, если они нужны.
3. Тестирование подключения
Запустите команду telnet
из Windows машины:
telnet dc1.ad.company.com.my 389
Если подключение невозможно, значит, что-то мешает соединению. Это может быть вызвано фаерволом, сетевыми ACL или фактическим состоянием службы.
4. Проверка статуса Samba и Kerberos
Убедитесь, что службы Samba и Kerberos работают корректно.
Запустите на сервере команды:
systemctl status samba-ad-dc
klist
Проверьте, нет ли ошибок, связанных со службой.
5. Редактирование реестра Windows
Как временное решение, вы можете изменить реестр на вашем Windows клиенте. Это позволит вашему клиенту подключаться к контроллеру домена с именем, состоящим лишь из одного слова (обратите внимание, что это временное и потенциально небезопасное решение):
- Откройте редактор реестра (regedit).
- Перейдите по пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
- Найдите параметр
AllowSingleLabelDnsDomain
и установите его значение в1
. - Перезагрузите компьютер.
После этого попробуйте подключиться к домену, используя NetBIOS имя вашего контроллера (в вашем случае, "DC").
Итоги
Следуя указанным шагам, вы сможете устранить препятствия на пути подключения Windows клиента к вашему Samba4 Active Directory контроллеру на Ubuntu AWS. Проверьте настройки DNS, откройте необходимые порты, убедитесь, что службы работают, и корректно настройте реестр Windows. Если ни один из описанных шагов не разрешит проблему, возможно, стоит проверить логи Samba для получения дополнительной информации и устранения возможных ошибок.