Службе проверки подлинности не удается загрузить сведения аутентификации astra linux

Обновлено: 04.07.2024

В этом посте мы решили рассказать о доменной аутентификации в Linux, с использованием смарт-карт и USB-токенов JaCarta PKI в качестве второго фактора аутентификации. Если о локальной аутентификации через PAM-модуль информации существует довольно много, то вопрос доменной инфраструктуры и аутентификация по Kerberos-билетам в Linux рассмотрен слабо, особенно на русском языке. В качестве операционной системы возьмем Astra Linux и на примере Astra Linux Directory (ALD) это и покажем.

Выгода такого решения очевидна – оно позволяет отказаться от парольной аутентификации пользователя, что поможет кардинально снизить влияние «человеческого фактора» на безопасность системы. Плюс это даст ряд преимуществ от использования электронных ключей внутри операционной системы, после аутентификации в домене.

Немного вводных об Astra Linux Directory (ALD) и JaCarta PKI

Домен Astra Linux Directory (ALD) предназначен для организации единого пространства пользователей (домена локальной вычислительной сети) в автоматизированных системах.

ALD использует технологии LDAP, Kerberos5, Samba/CIFS и обеспечивает:

  • централизованное хранение и управление учетными записями пользователей и групп;
  • сквозную аутентификацию пользователей в домене с использованием протокола Kerberos5;
  • функционирование глобального хранилища домашних директорий, доступных по Samba/CIFS;
  • автоматическую настройку файлов конфигурации UNIX, LDAP, Kerberos, Samba, PAM;
  • поддержку соответствия БД LDAP и Kerberos;
  • создание резервных копий БД LDAP и Kerberos с возможностью восстановления;
  • интеграцию в домен входящих в дистрибутив СУБД, серверов электронной почты, Web-серверов, серверов печати и другие возможности.


В среде Astra Linux Directory (ALD) электронные ключи JaCarta PKI могут использоваться для двухфакторной аутентификации пользователя в домене ALD и отказа от паролей. Кроме того, с этими же электронными ключами можно выполнять различные сценарии внутри ОС, после аутентификации, такие, как: электронная подпись, хранение ключевых контейнеров, доступ к Web-ресурсам, проброс ключа в сессии MS Windows. Доступ к VDI сервисам, таким, как VmWare или Citrix.

Процесс настройки

Пример демо-зоны

  • Сервер — Astra Linux Smolensk SE 1.5 4.2.0-23-generic, x86_64, с установленными пакетами:
    • JaCarta IDProtect 6.37;
    • libccid;
    • pcscd;
    • libpcsclite1;
    • krb5-pkinit;
    • libengine-pkcs11-openssl;
    • opensc.
    • JaCarta IDProtect 6.37;
    • libccid;
    • pcscd;
    • libpcsclite1;
    • krb5-pkinit.

    Установка драйверов на сервер и клиент

    Для обеспечения работы со смарт-картой JaCarta PKI на клиенте и сервере установите следующие пакеты: libccid, pcscd, libpcsclite1. После установки этих обязательных пакетов установите пакет драйверов IDProtectClient, который можно загрузить с официального сайта «Аладдин Р.Д.».

    Для обеспечения работы со смарт-картой подсистемы Kerberos добавочно к предустановленным пакетам ald/kerberos установите пакет krb5-pkinit на клиенте и сервере.

    Для обеспечения возможности выпуска ключей и сертификатов на JaCarta PKI на сервере также установите пакеты libengine-pkcs11-openssl и opensc.

    Установка и настройка центра сертификации на сервере

    В качестве центра сертификации (CA) будет использован OpenSSL.

    OpenSSL — криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Позволяет создавать ключи RSA, DH, DSA и сертификаты X.509, подписывать их, формировать CSR и CRT.

      Выпустите сертификат KDC:
      $ openssl x509 -req -in kdc.req -CAkey cakey.pem -CA cacert.pem -out kdc.pem -extfile pkinit_extensions -extensions kdc_cert –CAcreateserial –days 365

    Подготовка смарт-карты. Выпуск ключей и сертификата пользователя

    Убедитесь в том, что установлены пакеты libengine-pkcs11-openssl и opensc. Подключите устройство, которое следует подготовить.

    Проинициализируйте устройство, установите PIN-код пользователя. Помните, что инициализация устройства удалит все данные на JaCarta PKI без возможности восстановления.

    Для инициализации необходимо воспользоваться утилитой pkcs11-tool.

    pkcs11-tool --slot 0 --init-token --so-pin 00000000 --label 'JaCarta PKI' --module /lib64/libASEP11.so,

    --slot 0 — указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

    --init-token – команда инициализации токена;

    --so-pin 00000000 – PIN-код администратора JaCarta PKI. По умолчанию имеет значение 00000000;

    --label 'JaCarta PKI' – метка устройства;

    --module /lib64/libASEP11.so — указывает путь до библиотеки libASEP11.so. Устанавливается в рамках пакета idprotectclient см. раздел «Установка драйверов на сервер и клиент».

    Для задания PIN-кода пользователя используйте команду:

    pkcs11-tool --slot 0 --init-pin --so-pin 00000000 --login --pin 11111111 --module /lib64/libASEP11.so,

    --slot 0 — указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

    --init-pin – команда установки PIN-кода пользователя;

    --so-pin 00000000 – PIN-код администратора JaCarta PKI. По умолчанию имеет значение 00000000;

    --login – команда логина;

    --pin 11111111 – задаваемый PIN-код пользователя;

    --module /lib64/libASEP11.so — указывает путь до библиотеки libASEP11.so. Устанавливается в рамках пакета idprotectclient см. раздел «Установка драйверов на сервер и клиент».

    Сгенерируйте ключи на устройстве, для этого введите следующую команду:

    pkcs11-tool --slot 0 --login --pin 11111111 --keypairgen --key-type rsa:2048 --id 42 --label “test1 key” --module /lib64/libASEP11.so,

    --slot 0 — указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

    --login --pin 11111111 — указывает, что следует произвести логин под пользователем с PIN-кодом «11111111». Если у Вашей карты другой PIN-код пользователя, укажите его;

    --keypairgen --key-type rsa:2048 — указывает, что должны быть сгенерированы ключи длиной 2048 бит;

    --id 42 — устанавливает атрибут CKA_ID ключа. CKA_ID может быть любым;

    Запомните это значение! Оно необходимо для дальнейших шагов подготовки устройства к работе.

    --label “test1 key” — устанавливает атрибут CKA_LABEL ключа. Атрибут может быть любым;

    --module /lib64/libASEP11.so — указывает путь до библиотеки libASEP11.so. Устанавливается в рамках пакета idprotectclient см. раздел «Установка драйверов на сервер и клиент».

    Сгенерируйте запрос на сертификат с помощью утилиты openssl. Для этого введите следующие команды:


    Обратите внимание на -new -key 0:42, где 0 — номер виртуального слота с устройством, 42 — атрибут CKA_ID сгенерированных раннее ключей.

    Информацию, которую необходимо указать в запросе, следует задавать в поле "/C=RU/ST=Moscow/L=Moscow/O=Aladdin/OU=dev/CN=test1 (! Ваш_Пользователь!)/emailAddress=test1@mail.com".

    Необходимо установить переменные окружения

    и выпустить сертификат на пользователя.

    $ openssl x509 -CAkey cakey.pem -CA cacert.pem -req -in client.req -extensions client_cert -extfile pkinit_extensions -out client.pem –days 365

    Далее перекодируйте полученный сертификат из PEM в DER.

    Запишите полученный сертификат на токен.

    pkcs11-tool --slot 0 --login --pin 11111111 --write-object client.cer --type 'cert' --label 'Certificate' --id 42 --module /lib/libASEP11.so,

    --slot 0 — указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

    --login --pin 11111111 — указывает, что следует произвести логин под пользователем с PIN-кодом «11111111». Если у Вашей карты другой PIN-код пользователя, укажите его;

    --write-object ./client.cer — указывает, что необходимо записать объект и путь до него;

    --type 'cert' — указывает, что тип записываемого объекта – сертификат;

    'cert' --label 'Certificate' — устанавливает атрибут CKA_LABEL сертификата. Атрибут может быть любым;

    --id 42 — устанавливает атрибут CKA_ID сертификата. Должен быть указан тот же CKA_ID, что и для ключей;

    --module /lib64/libASEP11.so — указывает путь до библиотеки libASEP11.so.

    Настройка клиента. Проверка работоспособности

    Создайте на клиенте каталог /etc/krb5/. Скопируйте в /etc/krb5/ сертификат CA (cacert.pem) c сервера.

    Настройте kerberos в /etc/krb5.conf. Секцию [libdefaults] дополните следующими строками.

    kinit Когда появится строка запроса PIN-кода к карте, введите его.

    Для проверки того, что kerberos-тикет был успешно получен для пользователя, введите команду klist. Для удаления тикета — kdestroy.

    Для входа в домен по смарт-карте на экране входа в ОС вместо пароля введите PIN-код от смарт-карты.

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

    Если во время настройки и перезагрузки сети появляются ошибки, например "Failed to bring up eth0", то можно "очистить" интерфейс командой:

    ip addr flush eth0

    Astra Linux Directory не сконфигурирована.

    Заполните конфигурационный файл '/etc/ald/ald.conf'.

    Не указан gateway в настройках сети клиента.

    Не заполнен /etc/ald/ald.conf

    ALD сервер домена '.da' не обнаружен.

    Не указан gateway в настройках сети клиента.

    ALD сервер домена '.da' не обнаружен.

    Не указан gateway в настройках сети клиента.

    Ошибка разрешения имени компьютера 'server.da'.

    Некорректно настроены имя и ip адрес, например в /etc/hosts отсутствует длинное имя машин:

    Триггер 'ald-cfg-nfs:DoNFSInitFS' вызвал исключение!

    :> Incorrect net address

    Ошибка может быть вызвана применением антивируса или изменением правил iptables.

    -- ОШИБКА: Ошибка аутентификации пользователя 'admin/admin': Ошибка MIT Kerberos V5:

    Ошибка инициализации интерфейса администрирования kadm5. в ALDKadm5Connection.cpp:345(ConnectPassword)

    :> GSS-API (or Kerberos) error

    Некорректно настроены имя и ip адрес, например в /etc/hosts (разрешение имен может быть настроено и с помощью сервера DNS) следует указать ip, длинное и короткое имя и исключить запись "127.0.1.1 myserver":

    В /etc/ald/ald.conf не указаны длинное имя машины и домен:

    Недостаточно энтропии во время инициализации домена.

      При вводе клиента (ald-client join), ошибка( 345 ) возникает из-за несовпадения времени на машинах.

    Утилита hostname должна выдавать короткое имя. После внесения изменений в файл /etc/hostname необходимо перезагрузить машину.

    Ошибка OpenLDAP при GSSAPI соединения - Local error в ALDLDapConnection.cpp:734(Connect)

    Разрешение имен настроено не верно, перепутаны местами длинное и короткое имя, пример:

    Введите пароль администратора ALD 'ald-admin': *

    Проверка конфигурации домена. ok

    Проверка модулей LDAP. ok

    Проверка индексов LDAP. ok

    Проверка ограничений уникальности LDAP. ok

    Проверка системных принципалов. -- ОШИБКА:

    Ошибка RPC: Ошибка MIT Kerberos V5: Не удалось получить список принципалов Kerberos. в ALDKadm5Connection.cpp:924(Principals)

    :> Operation requires ``list'' privilege

    После добавления astra-admin в ALLOWED_LOCAL_GROUPS и выполнения ald-init commit-config снять права администратора домена, применить, установить права администратора домена, применить.

    На клиенте в файле /etc/hosts не внесены данные о резервном сервере.

    17 Комментариев

    Дмитрий Анохов

    ald-init init возникает ошибка:

    Ошибка при установке ALD соединения.

    Ошибка OpenLDAP при GSSAPI соединения - Local error в ALDLDapConnection.cpp: 734 (Connect)

    Дмитрий Анохов

    При попытки ввести на сервере Ald-init init выводит ошибку:
    -- ОШИБКА:
    Триггер 'ald-cfg-parsec-ald:DoInitParsecAudLdapSchema' Вызвал исключение!
    Не удалось именить права доступа к '/etc/ldap/slapd.d/cn=config.ldif'.
    --

    -- ОШИБКА:
    Не удалось создать базу данных LDAP.
    --

    Дмитрий Анохов

    домен astra.da.nu не обнаружен.

    компьютер будет подключен к домену astra.da.nu .

    Дмитрий Анохов

    Ошибка аутентификации пользователя 'admin/admin': Ошибка MIT Kerberos V5: Ошибка инициализации аутентификационных данных krb5 пользователя. в ALDKadm5Connection.cpp:283(ConnectPassword)

    :> Client 'admin/admin@168.32.216' not found in Kerberos database

    Нет записи в hosts на обоих машинах. ald-client join по ip.

    Дмитрий Анохов

    Ошибка аутентификации пользователя 'admin/admin': Ошибка MIT Kerberos V5: Ошибка инициализации аутентификационных данных krb5 пользователя. в ALDKadm5Connection.cpp:283(ConnectPassword)

    :> Client 'admin/admin@NU.DA' not found in Kerberos database

    Неверная запись имени сервера в hosts клиента

    Константин Ковалевский

    На клиенте в файле /etc/hosts не внесены данные о резервном сервере.

    Дмитрий Андреев

    При попадании табов и пробелов в конце имени домена в параметре DOMAIN=.domain.ald файла /etc/ald/ald.conf

    Дмитрий Андреев

    Ошибка MIT Kerberos V5: Ошибка получения ключей принципала Kerberos 'host/client@DA.NU'. в ALDKadm5Connection.cpp:1581(KeytabAddPrincipal)

    :> Principal does not exist

    В /etc/hosts указано не длинное имя клиента.

    Дмитрий Анохов

    Не указано длинное имя клиента* ?

    Дмитрий Андреев

    Константин Ковалевский

    Ошибка может быть вызвана применением антивируса или изменением правил iptables.

    Проблема оказалась в Dr. Web ESS 10. Spider Gate блокирует порты RPC, его необходимо отключать. При чём, настройки Spider Gate для Linux недоступны, необходимо отключать Spider Gate в ЦУ Dr. Web для группы Everyone для Windows. Ну, или использовать на клиентах не Dr. Web for Workstations а Dr.Web for Fileservers, где этой проблемы не наблюдается.

    Неизвестный пользователь (esuraev)

    Ошибка при установке ALD соединения.

    Ошибка аутентификации пользователя 'admin/admin': Ошибка MIT Kerberos V5: Ошибка инициализации аутентификационных данных krb5 пользователя. в ALDKadm5Connection.cpp:283(ConnectPassword)

    :> Client 'admin/admin@NU.DA' not found in Kerberos database

    Ошибка может быть вызвана вводом неправильного пароля при ald-init promote резервного сервера.

    Константин Ковалевский

    Если при перезапуске ALD выходит ошибка:

    -- ОШИБКА:
    Триггер 'ald-cfg-smb:DoSambaStartFS' вызвал исключение!
    Не удалось запустить сервис nmbd. Код возврата 256.
    --

    Необходимо выполнить команды:

    systemctl unmask nmbd
    systemctl enable nmbd
    systemctl restart nmbd

    Неизвестный пользователь (esuraev)

    cpp:144 чето там при попытке администрирования из графики - означает, что ранее уже был получен билет администратора и необходимо сначала уничтожить предыдущий билет командой:

    Далее получить новый уже из графики.

    Дмитрий Анохов

    Если на контроллере домена создаётся принципал с именем 'host/arm@DOMAIN', тогда выполните на клиенте ald-client update-svc-keytab 'host/arm@DOMAIN'.

    Марина Яловега

    При возникновении ошибки 111 ( Смоленск 1.5):

    Решение от клиента

    1. Добавить в конфигурационный файл /etc/ald/ald.conf параметр USE_RPC, равный нулю

    2. Выполнить ald-init restart

    Константин Ковалевский

    При создании резервного сервера командой sudo ald-init init --slave выходит ошибка:

    Проверяем на сервере домен и то, что он использует Kerberos:

    Если проблемы с KDC, то следует выполнить следующий алгоритм действий:

    1. В модуле «DHCP-сервер» настроить сервер для подсети.
    2. Создать новый домен с другим именем (и с выставленным флажком «Обслуживать домен Kerberos»). При попытке использовать старое имя домена не создадутся нужные ветки в базе LDAP.

    Для успешного создания пользователя домена необходимо запустить службу slapd . А если домен с Kerberos, то и krb5kdc . Полный пошаговый вывод программы создания пользователя:

    Служба avahi-daemon должна быть запущена на сервере и клиенте и там и там выдавать примерно следующее:

    Схема — krb5, выбран правильный домен. Примечание: на сервере используется схема ldap.

    Если в модуле «Аутентификация» не показывается домен, то на клиенте нужно запустить службу avahi-daemon:

    или добавить аутентификацию в домене вручную:

    а) Если пишет 'unknown host', проверьте, прописан ли сервер как сервер DNS для этой машины. Рекомендуется сервер домена использовать как сервер DHCP и DNS для обслуживаемой подсети.

    б) Если ping не идёт, проверьте сетевые подключения клиента и сервера и маршрутизацию сети.

    Оно не должно сильно отличаться. Kerberos очень чувствителен к разнице во времени.

    Если ничего не выдано, проверяйте имя домена и работу службы LDAP (slapd) на сервере.

    В первой команде нужно указать имя пользователя и его пароль. Команда klist должна показать полученный тикет.

    Если по каким-то причинам запись в LDAP есть, а в Kerberos отсутствует (например, создавали домен без поддержки Kerberos), нужно явно завести в Kerberos:

    Для работы служб должны быть получены и тикеты вида <имя_службы@. >. Более подробно про диагностику и работу Kerberos можно почитать в разделе Домен/Kerberos. Обратите внимание на пункт «Нюансы работы».

    В DM или консоли пробуем зайти доменным пользователем. В случае успеха аутентификация в домене работает. Если что-то не работает, то смотрите 12-ую консоль ( Ctrl+Alt+F12 ).

    Чаще всего, недоступность контроллера домена по сети. Отсутствие физического соединения (отошёл кабель, нет питания, . ) или ошибка при получении параметров сети. Слишком позднее получение параметров сети (проблема DHCP). Характерный признак - отсутствие ответа на ping контроллера домена. В качестве временной меры в ряде случаев помогает перезагрузка рабочей станции. Общее устранение проблемы связано с обеспечением устойчивой работы сети.

    Предположительно, остановка или недоступность службы KDC. Проверить состояние службы krb5kdc на контроллере домена.

    В случае состояния stopped причина обнаружена. Попробовать перезапустить KDC

    Если krb5kdc не запускается, пытаться устранить причину или (если возможно) восстановить работоспособное состояние сервера домена из резервной копии.

    Как выглядит ошибка credssp

    Перед тем, как я покажу вам известные мне методы ее устранения, я бы как обычно хотел подробно описать ситуацию. Вчера при попытке подключиться к своему рабочему компьютеру, работающему на Windows 10 1709, с терминального стола, входящего в RDS ферму на Windows Server 2012 R2, я получил ошибку после ввода логина и пароля:

    An authentication error has occurred. The function requested is not supported. Remote computer name. This coild be to CredSSP encryption oracle remediation.

    credSSP encryption oracle remediation

    Ну и конечно в русском исполнении:

    Произошла ошибка при проверке подлинности. Указанная функция не поддерживается. Удаленный компьютер имя. Причиной ошибки может быть исправление шифрования CredSSP

    Причиной ошибки может быть исправление шифрования CredSSP

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

    Назначение CredSSP

    Что такое CredSSP - это Win32 API, используемый системами Microsoft Windows для выполнения различных операций, связанных с безопасностью, таких как аутентификация. SSPI функционирует, как общий интерфейс для нескольких поставщиков поддержки безопасности (SSP). Поставщик поддержки безопасности - это библиотека динамической компоновки (DLL), которая делает один или несколько пакетов безопасности доступными для приложений.

    C redSSP позволяет приложению делегировать учетные данные пользователя от клиента целевому серверу для удаленной аутентификации. CredSSP предоставляет зашифрованный канал протокола безопасности транспортного уровня . Клиент проходит проверку подлинности по зашифрованному каналу с использованием протокола SPNEGO (Simple and Protected Negotiate) с Microsoft Kerberos или Microsoft NTLM.

    После проверки подлинности клиента и сервера клиент передает учетные данные пользователя на сервер. Учетные данные дважды шифруются с использованием ключей сеанса SPNEGO и TLS. CredSSP поддерживает вход в систему на основе пароля, а также вход в систему с использованием смарт-карт на основе X.509 и PKINIT.

    Windows SSP

    Следующие поставщики общих служб устанавливаются вместе с Windows:

    Причины ошибки шифрования CredSSP

    К сожалению 99% людей и администраторов совершают одну и туже ошибку, они сразу ставят обновления, не дождавшись пары дней после их выхода. Обычно этого времени хватает, чтобы вендор определил проблемы и отозвал глючное обновление.

    после обновления Windows

    Уязвимость в протоколе Credential Security Support Provider (CredSSP — провайдер поддержки безопасности учетных данных) допускала удаленный запуск произвольного кода на уязвимой системе и 8 мая 2018 г. Microsoft изменила уровень безопасности подключения с Vulnerable на Mitigated и начались проблемы подключения к удаленному рабочему столу по RDP. Ранее вы могли удаленно подключаться с обновленной машины к машинам без обновления безопасности, так сказать в мягком режиме. Однако с последним обновлением, Microsoft усилила безопасность, и вы больше не можете подключаться к компьютерам без обновления закрывающего брешь CVE-2018–0886.

    Под раздачу попали буквально все, клиентские ОС Windows 7, Windows 8.1, Windows 10 с которых были попытки подключиться к RDS ферме или RemoteApp приложениям работающим на Windows Server 2008 R2 и выше. Если бы вы читали ветки обсуждений в эти дни, то вы бы поняли все негодование людей, особенно с запада.

    Варианты исправления ошибки CredSSP

    На самом деле вариантов много, есть правильные, есть и временные и обходные, которые нужно сделать быстро, чтобы хоть как-то работало, так как бизнес может в этот момент простаивать и терять деньги.

    • Вы можете удалить новое обновление безопасности, самый плохой вариант, но в ответственные моменты, иногда используется, чтобы перенести работы на вечер или ночь
    • Если нужно быстро получить доступ к серверу и избежать проверку подлинности credssp, то я вам советую отключить на принимающем подключении сервере галку NLA (Network Level Authentication) в русском варианте "Разрешить подключение только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети"
    • То же быстрый метод и на массовое применение, это использование групповой политики, которая изменит шифрование Oracle Remediation
    • Ну и самый правильный метод , это установка обновлений на все ваши системы

    Отключаем credssp в Windows через NLA

    Данный метод выхода из ситуации я бы рассматривал, как быстрое, временное решение, до того, как вы установите обновления безопасности. Чтобы разрешить удаленное подключение к серверу и избегать ситуации, что произошла ошибка при проверке подлинности credssp, сделайте вот что. Откройте свойства моего компьютера, попав в систему, так же можно нажать одновременно WIN+Pause Breake или как вариант в командной строке ввести control /name Microsoft.System. В окне "Система" находим пункт меню "Настройка удаленного доступа"

    Отключение NLA для CredSSP

    Снимите галку "Разрешить подключение только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети"

    Отключение NLA для CredSSP-2

    После этого вы легко сможете подключиться к данному компьютеру или серверу, но как быть что вы не можете туда попасть и снять эту галку, тут нам на помощь придет реестр Windows. Вы можете удаленно создать нужные ключи реестра, которые отключат галку NLA или политику CredSSP. Для этого вы можете пойти двумя путями:

    1. Использовать сетевой реестр Windows
    2. Использовать удаленное управление компьютером, например PsExec.exe, я вам с помощью него уже показывал, как открывать порты в брандмауэре, удаленно.

    Давайте попробуем через удаленный реестр, для этого открываем Regedit, через окно "Выполнить".

    отключить credssp через реестр Windows

    Из меню "Файл" выберите пункт "Подключить сетевой реестр", далее найдите нужный вам сервер.

    Подключение сетевого реестра

    У вас подключится дополнительный реестр с двумя кустами. Переходите по пути (Если у вас не будет CredSSP\Parameters, то нужно будет их создать):

    HKLM\Software\Microsoft\Windows\CurrentVersion\ Policies\System\CredSSP\Parameters\

    Тут вам необходимо создать REG_DWORD ключ с именем AllowEncryptionOracle и значением 2. В данном варианте политика CredSSP выставит Уязвимый уровень - это самый низкий уровень защиты. Это позволит вам подключаться к серверам удаленно, используя RDP. Однако это подвергнет серверы атакам.

    credssp в реестре windows

    Или можно так же отключить NLA, для этого найдите ветку реестра:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ Terminal Server\WinStations\RDP-Tcp

    Найдите там ключ SecurityLayer и выставите ему значение 0, чтобы деактивировать Network Level Authentication.

    Теперь то же самое вы можете выполнить и через PsExec.exe, выставив для CredSSP минимальный уровень защиты или же отключить NLA, для этого находясь в cmd в режиме администратора введите команду:

    PsExec.exe \\w10-cl01 -u root\Администратор -p пароль cmd

    w10-cl01 - это имя компьютера.

    исправление ошибки credssp windows

    Далее имея запущенный сеанс cmd для удаленного компьютера, выполните команду:

    REG ADD HKLM\Software\Microsoft\Windows\ CurrentVersion\Policies\System\CredSSP\Parameters\ /v AllowEncryptionOracle /t REG_DWORD /d 2 (0 вернет все как было)

    rdp ошибка credssp

    Аналогично можно сделать и для отключения Network Level Authentication, команда будет такой:

    REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0

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

    Отключаем шифрование credssp через GPO

    Если у вас большая инфраструктура, в которой сотни компьютеров и сотни серверов, то вы можете до установки нужных обновлений в вечернее время, временно отключить новый уровень шифрования CredSSP и убрать ошибку "Удаленный компьютер имя. Причиной ошибки может быть исправление шифрования CredSSP". Для этого мы можем воспользоваться всеми плюсами доменной инфраструктуры Active Directory. Тут два варианта, вы можете создать массовую политику для распространения ее на нужные OU или если у вас требование для одного или двух локальных компьютеров, то на них можно запустить локальный редактор групповых политик, тем самым внеся изменения только на них.

    Напоминаю, что оснастку управление групповой политикой вы можете найти на контроллере домена или компьютере с установленным пакетом RSAT, открыть ее можно через команду в окне "Выполнить" gpmc.msc. Если нужно открыть локальный редактор групповых политик, то в окне "Выполнить" введите gpedit.msc.

    gpedit.msc windows 10

    Вам необходимо перейти в ветку:

    Конфигурация компьютера - Административные шаблоны - Система - Передача учетных данных - Исправление уязвимости шифрующего оракула (Computer Configuration - Administrative Templates - System - Credentials Delegation - Encryption Oracle Remediation

    Исправление уязвимости шифрующего оракула

    Открываем настройку "Исправление уязвимости шифрующего оракула (Encryption Oracle Remediation)". Включаем политику, у вас активируется опция "Уровень защиты", на выбор будет три варианта:

    • Принудительно применять обновленные клиенты (Force Updated Clients) - она будет стоять по умолчанию из-за максимального уровня защиты, вам данную опцию нужно сменить. Это так сказать максимально безопасный уровень взаимодействия клиент, он должен быть в идеале, после установки обновлений на все сервера и компьютеры.
    • Оставить уязвимость (Vulnerable) – клиенты могут подключаться на уязвимые машины.
    • Уменьшить риск (Mitigated) – клиенты не могут подключаться к уязвимым серверам, но серверы могут принимать уязвимые клиенты.

    Настройка Encryption Oracle Remediation

    Выбираем на время пункт "Оставить уязвимость (Vulnerable)". Сохраняем настройки.

    Оставить уязвимость credSSp

    После чего вам нужно обновить политику, для этого откройте командную строку и введите gpupdate /force. Если у вас не доменный компьютер, да и еще Windows 10 Home, которая не имеет встроенного локального редактора политик, то вам как я описывал выше, нужно производить правку реестра

    REG ADD HKLM\Software\Microsoft\Windows\ CurrentVersion\Policies\System\CredSSP\Parameters\ /v AllowEncryptionOracle /t REG_DWORD /d 2 (0 вернет все как было)

    На просторах интернета ходит скрипт PowerShell, который поможет включить данную политику на всех компьютерах в Active Directory

    Import-Module ActiveDirectory
    $PSs = (Get-ADComputer -Filter *).DNSHostName
    Foreach ($computer in $PCs) Invoke-Command -ComputerName $computer -ScriptBlock REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2
    >
    >

    Самый правильный метод, это установка обновлений

    Раньше были вот такие KB, но они со временем могут меняться свой номер, поэтому пройдите по ссылке выше, так будет надежнее.

    Читайте также: