NLB: Access denied. Error connecting to server

Обновлено 26.12.2022

windows nlb logo

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В минувший раз я вам подробно описал, как я смог сохранить свои данные на IPad при неудачной попытке обновить его и ошибках 4013, 2009 и 5. Сегодня я хочу вам показать интересную ошибку которую вы можете встретить на NLB участнике при попытке обратиться к его партнеру, ошибка звучит так "Access denied. Error connecting to server". Давайте смотреть в чем дело и как поправить.

Описание ошибки доступа на NLB

И так у меня есть кластер NLB на базе Windows Server 2016. Мне потребовалось провести обслуживание данных хостов, я по очереди перевел их в состояние "Suspend" и перезагрузил. После перезагрузки первого он получил статус "Enable" и вступил в работу, далее я провел то же самое и со вторым участником. Зайдя на первой ноде NLB кластера в оснастку "Network Load Balancing Cluster" я обнаружил ошибку:

Access denied. Error connecting to "FQDN имя сервера" при загрузке информации о конфигурации с 2 хоста

Access denied. Error connecting to FQDN имя сервера

Сразу хочу отметить, что я запускал оснастку Network Load Balancing Cluster от имени доменной учетной записи администратора домена, у которого есть все права на оба сервера NLB

Если локально на данном сервере запустить оболочку PowerShell в режиме администратора и выполнить команду:

Get-NlbClusterNode

То у меня выскочила ошибка:

Get-NlbClusterNode : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
At line:1 char:1
+ Get-NlbClusterNode
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (Microsoft.Netwo...tNlbClusterNode:GetNlbClusterNode) [Get-NlbClusterN
ode], UnauthorizedAccessException
+ FullyQualifiedErrorId : Access denied.,Microsoft.NetworkLoadBalancingClusters.PowerShell.GetNlbClusterNode

Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)

Как устранить ошибку Access denied на NLB

  • 1️⃣Первое, что вы должны сделать, это посмотреть журналы безопасности на обоих нодах NLB. На сервере, где я получал ошибку доступа, я в журнале безопасности (security) нашел событие ID4648:

A logon was attempted using explicit credentials.

Subject:
Security ID: PYATILISTNIK\sema
Account Name: sema
Account Domain: PYATILISTNIK
Logon ID: 0xCE7A8A
Logon GUID: {bbaa4115-406b-fc70-ba47-010254f7ad10}

Account Whose Credentials Were Used:
Account Name: test_nlb
Account Domain: PYATILISTNIK
Logon GUID: {00000000-0000-0000-0000-000000000000}

Target Server:
Target Server Name: app2.PYATILISTNIK.org
Additional Information: app2.PYATILISTNIK.org

Process Information:
Process ID: 0x308
Process Name: C:\Windows\System32\svchost.exe

Network Information:
Network Address: 10.xx.xxx.28
Port: 135

This event is generated when a process attempts to log on an account by explicitly specifying that account’s credentials. This most commonly occurs in batch-type configurations such as scheduled tasks, or when using the RUNAS command.

В событии я вижу, что была предпринята попытка входа с текущего сервера на удаленный сервер NLB по протоколу epmap по 135 порту, который обязательно должен быть открыт. Проверить порт можно по инструкции.

Еще очень важное поле, это используемые учетные данные, у меня тут откуда-то используется непонятная учетная запись test_nlb, которой уже даже в домене я не нашел. ЭТО уже есть понимание, что я оказывается делаю попытку подключения не от учетной записи администратора домена, а из под некой тестовой.

A logon was attempted using explicit credentials

Перейдем на сервер, к которому не удается получить доступ и посмотрим логи журнала безопасности там, единственное сделайте фильтр по "audit failure"

Event log filter audit failure

В результате чего я отфильтровал события, среди которых я обнаружил ID 4625:

An account failed to log on.

Subject:
Security ID: NULL SID
Account Name: -
Account Domain: -
Logon ID: 0x0

Logon Type: 3

Account For Which Logon Failed:
Security ID: NULL SID
Account Name: test_nlb
Account Domain: PYATILISTNIK

Failure Information:
Failure Reason: Unknown user name or bad password.
Status: 0xC000006D
Sub Status: 0xC0000064

Detailed Authentication Information:
Logon Process: NtLmSsp
Authentication Package: NTLM
Transited Services: -
Package Name (NTLM only): -
Key Length: 0

Из полезного тут:

  • Logon Type: 3 - Тип входа сетевой (Пользователь или компьютер вошли в систему на данном компьютере через сеть.)
  • Account Name: test_nlb - Учетная запись от которой была попытка входа
  • Status: 0xC000006D - Статус, что не так (Причиной является неправильное имя пользователя или сведения о проверке подлинности.) Учетку я не нашел в домене, вот и причина.
  • Authentication Package: NTLM

ID 4625 Status 0xC000006D

Еще зайдя в группу локальных администраторов, я обнаружил две учетные записи в виде SID, что говорит нам, о том, что их уже нет в Active Directory или текущий сервер их не может прочитать.

SID вместо логина

  • 2️⃣Найдя виновника, вам нужно указать актуальные данные для доступа к другому участнику NLB, это должна быть учетная запись обладающая административными правами на всех участниках NLB кластера. Запустите оснастку "Network Load Balancing Cluster" и найдите меню "Options - Credentials".

Network Load Balancing Cluster - Credentials

Указываем тут учетную запись имеющую доступ.

С высокой долей вероятности вам придется перезагрузить данную ноду NLB

Независимо от инструмента, который вы будете использовать для управления кластером, вам необходимо запускать его в контексте безопасности учетной записи с правами администратора на каждый узел кластера. Это можно сделать, войдя в систему с этой учетной записью, запустив утилиту вторичного входа в систему (RunAs) или, в случае диспетчера NLB, установив учетные данные по умолчанию (из пункта меню "Параметры - Учетные данные"). NLB Manager попытается подключиться к удаленным узлам, используя эти учетные данные.

Добавление учетных данных в Network Load Balancing Cluster

Так же вы можете добавить нужный хост через контекстное меню, выбрав пункт "Add Host to Cluster"

NLB Add Host to Cluster

После чего укажите его DNS-имя и попытайтесь подключиться, у вас будет так же запрошены учетные данные для этого.

Ввод учетных данных в NLB

  • 3️⃣Попробуйте отключить на недоступном Windows Server функцию UAC. Для этого вызовите в пуске "UserAccountControlSettings.exe"

UserAccountControlSettings.exe

  • 4️⃣На время выключите антивирусные решения и брандмауэр, если соединения до сих пор нет.
  • 5️⃣Убедитесь, что есть сетевая связанность. например через утилиту PING и то, что DNS имя разрешается.

Как посмотреть статус NLB службы

NLB — это драйвер, поэтому вы не увидите его с помощью оснастки службы mmc. Вы можете использовать командную строку «sc query wlbs» для проверки состояния драйвера. Я
считаю, что служба должна иметь возможность зависеть от драйвера. Вы можете попробовать

sc query wlbs

Как посмотреть статус NLB службы

Куст реестра NLB

Когда вы включаете NLB на сервере, записи реестра по умолчанию создаются в разделе:

HKLM\System\CurrentControlSet\Services\WLBS

Настройки NLB в реестре

На этом у меня все,  с вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.

Дополнительные ссылки

  • https://learn.microsoft.com/ru-ru/windows/security/threat-protection/auditing/event-4625
  • https://www.serverbrain.org/administration-practice-2003/nlb-cluster-management.html
  • https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/network-load-balancing-concept-notes
Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *