Tag Archives: Windows

Исследуем аутентификацию в IIS

Протокол аутентификации Kerberos уже затрагивался в этом блоге ранее. В этом посте пойдет речь про аутентификацию Kerberos, NTLM и Negotiate в веб-сервере IIS. Будет проверено на практике какой протокол аутентификации используется в том или ином случае. Для этого будет проведен несколько тестов в каждом из которых будет сделан вывод. Все выводы можно прочитать в конце поста.

Kerberos

Начнем с общего описания аутентификации Kerberos. Пользователь заходит на рабочую станцию (клиент) в домене. Для аутентификации клиент связывается с центром выдачи ключей (key distribution center, KDC), для Windows это контроллер домена. Контроллер домена проверяет, что логин и хеш пароля, введенные пользователем, совпадают с хранящимися в базе KDC. Если учетные данные корректны, центр выдает удостоверение (ticket-granting ticket, TGT), подписанное особенным доменным пользователем krbtgt. TGT используется для подтверждения, что пользователь прошел аутентификацию. После этого пользователь подключается к какому-либо ресурсу в домене, например, общей папке на файловом сервере. Клиент обращается к KDC, прилагая TGT, за выдачей удостоверения запрашиваемого сервиса (service ticket, TGS). Контроллер домена проверяет, что такой сервис совпадает с хранящимся в базе KDC и выдает клиенту TGS. После этого клиент обращается к файловому серверу, прилагая TGS. Файловый сервер видит, что TGS выдан контроллером домена и принимает подключение пользователя.

Процесс показан на рисунке

Подключившись доменным пользователем можно вывести как TGT:

klist tgt

Так и TGS:

klist

Читать далее

Реклама

Два изменения в безопасности Windows

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

Групповая политика (GPO) после MS16-072/KB3163622

В июне 2016 года Microsoft выпустила бюллетень безопасности MS16-072, который включал в себя обновления для Windows 10 и Windows Server 2016 (а также более старых версий). Обновление изменило процесс применения групповой политики.

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

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

В настройках по умолчанию фильтр включает группу Authenticated Users, которая включает учетные записи пользователей и компьютеров в домене. Если настройка фильтра по умолчанию вам не подходит, то можно создать доменную группу в которую включить нужные компьютеры (или использовать группу Domain Computers) и выдать ей права на чтение в фильтре.

Пример фильтра групповой политики.

Настройка доступа групповой политики Test GPO, чтобы она распространялась на пользователя test.user на какой бы доменный компьютер он не зашел:


Читать далее

Filezilla ENETUNREACH или как антивирусы сканируют трафик

По запросу «Filezilla ошибка ENETUNREACH» поисковая система выдает, что проблема в антивирусе (Касперский) и для ее решения необходимо добавить filezilla.exe в исключения (доверенные приложения). На форуме этого FTP клиента описывается механизм как антивирус анализурует трафик приложения. Дальше будет приведен перевод:

 Касперский перенаправляет весь сетевой трафик через свой процесс avp.exe по адресу 127.0.0.1 порт 1110.

Как просходит нормальное FTP подключение без сетевого сканирования:

  1. Filezilla создает управляющее TCP-соединение до адреса 93.184.216.23
  2. Операционная система назначает адрес источника IP пакета как адрес исходящего интерфейса допустим 10.0.0.123
  3. После установления соединения для передачи команд Filezilla создает соединение для передачи данных
  4. Адреса источника и получателя IP пакета используются те же, что и в управляющем соединении Т.е. у соеденения для передачи данных адрес источника будет 10.0.0.123, а получателя — 93.184.216.23.

Читать далее

Удаление нерабочего контроллера домена

Ниже будет приведена краткая инструкция о том, как, используя утилиту ntdsutil, удалить контроллер домена Active Directory, находящийся не в сети.

Первым делом стоит подтвердить, что все FSMO роли принадлежат рабочему контроллеру домена. Для этого понадобится членство в группах: Domain Admins, Enterprise Admins, Schema Admins.

FSMO роли являются критическими функциями без которых работа домена будет испытывать трудности. Они разделяются на два уровня:

  1. Уровень леса (forest level):
    • Schema master
    • Domain naming master
  2. Уровень домена (domain level):
    • RID master
    • PDC
    • Infrastructure master

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

Далее будут прописаны последовательности команд, которые нужно вводить в консоли рабочего контроллера домена.

Читать далее

Удаленный доступ по WMI и PowerShell для неадминистраторв

Это перевод статьи Ondrej Sevecek о настройке удаленного доступа WMI и PowerShell по протоколу WinRM для пользователей без прав администратора.

WinRM, также называемый WSMan, это технология удаленного управления, которая предоставляет для таких средств как WMI, PowerShell, Перенаправление событий (Event Forwarding) и даже Диспетчер сервера (Server Manager) транспорт по протоколу HTTP. WinRM принимает запросы по HTTP или HTTPS протоколу, которые затем передает зарегистрированным в нем провайдерам (плагинам). PowerShell, WMI и Перенаправление событий зарегистрированы в WinRM как соответствующие провайдеры.

Если бы вы были разработчиком клиент-серверного приложения, то вы могли бы создать свой провайдер (плагин) для WinRM, который можно было бы использовать для удаленного управления вашим приложением. Конечно можно и самому написать DCOM или HTTP веб-интерфейс, но WinRM предоставляет стандартный каркас приложения (фреймворк), что облегчает его администрирование.

WinRM поддерживает методы встроенной аутентификации Windows, такие как Kerberos, Negotiate (включая NTLM) и Schannel (сертификаты). Поскольку он использует обычный HTTP, то поддерживаются также методы аутентификации Basic и Digest.

Для удаленного доступа к инструментарию управления Windows (WMI, winmgmt) можно настроить специальный DCOM интерфейс на прием удаленных команд и запросов (WQL), или же использовать WinRM для этого. PowerShell, с другой стороны, не имеет своего собственного сервера, поэтому для приема удаленных команд используются специальные командлеты Enter-PSSession и Invoke-Command, которые передают запросы по WinRM протоколу. PowerShell принимает эти команды, обрабатывает их локально и возвращает ответ по протоколу WinRM.

Таким же образом работает Диспетчер сервера (Server Manager) и Перенаправление событий (Event Forwarding). Хотя у перенаправления событий, есть свой сервис Windows Event Collector (wecsvc), но Microsoft решила использовать WinRM для пересылки сообщений.

Читать далее

PXE Boot на Juniper SRX

Технология PXE boot используется для загрузки по сети установочного образа операционной системы с последующей его установкой. Она является альтернативой использованию установочного диска.

Для работы PXE используются такие протоколы как DHCP и TFTP.

Протокол DHCP предназначен для автоматического присвоения IP адресов клиентам в сети, а также дополнительных сетевых параметров (опций): адреса роутера, адреса DNS серверов и т.д.

Технология PXE использует в своей работе специальные DHCP опции, которые позволяют сетевым клиентам найти загрузочный сервер в сети и загрузить с него загрузочный файл.

Работа DHCP протокола состоит из обмена сообщениями между клиентом и сервером, по завершении которого, клиент присваивает себе определенный IP-адрес, выданный сервером. Эти сообщения: DHCP Discover, DHCP Offer, DHCP Request, DHCP Response.

Поскольку клиент на начальном этапе не имеет своего IP-адреса все сообщения передаются через широковещательную рассылку на адрес 255.255.255.255. Поскольку широковещательные пакеты не передается за пределы подсети, это означает, что DHCP сервер должен быть либо в одной подсети с клиентом, либо должна быть задействована технология Relay Agent, позволяющая передавать DHCP запросы за пределы подсети.

Читать далее

Active Directory Constrained Delegation и SPN

Протоколом аутентификации в среде Active Directory является Kerberos. Помимо стандартных операций создания учетных записей, под которыми пользователи заходят на свои компьютеры в домене AD, для улучшения защиты рекомендуется для запуска сервисов создавать специальные учетные записи, иногда называемые сервисными учетными записями.
Однако для нормального функционирования некоторых приложений в среде Kerberos, чьи сервисы запускаются под доменной учетной записью, требуется произвести некоторые дополнительные действия. О том, что такое Constrained Delegation и связанное с ним понятие SPN, а также пример их использования, и будет рассказано в данном посте.

Service Principal Names (SPN) — это идентификатор сервиса, запущенного на доменной машине. Например, для учетной записи из-под которой запущен сервис SQL Server, должен быть указан свой SPN.
SPN должен быть уникальным в пределах леса.
У двух типов доменных учетных записей: пользователя и компьютера, только у компьютера существуют автоматически указанные SPN. При вводе комьютера в домен, у его учетной записи автоматически указывается host SPN, которое позволяет сервисам на этой машине запускаться из-под локальных учетных записей Local System и Network Service. Таким образом если для запуска сервисов на машине используется доменная пользовательская учетная запись, для нее необходимо указать SPN.
Примеры SPN для пользовательских учетных записей:

  • MSSQLSvc/sqlsrvr.contoso.com:1433 — данный SPN указывает, что под этой учетной записью может быть запущен сервис SQL Server на машине с FQDN sqlsrvr.contoso.com, дополнительно также указан порт (1433) этого сервиса.
  • HTTP/websrvr.contoso.com — данный SPN указывает, что под этой учетной записью может быть запущен HTTP Server сервис на машине с FQDN websrvr.contoso.com. Стоит отметить, что FQDN в данной случае, это не Host header. Также данный SPN не воспринимает указание порта, таким образом, если на машине запущены несколько HTTP Server сервиса на разных портах, то нужно вместо FQDN машины указывать для SPN Host header конкретного IIS Web Application Pool.

Делегация Kerberos определяет способность одной учетной записи (сервиса) обращаться к другой учетной записи (сервису) используя данные третьей учетной записи (механизм, названный имперсонализацией). Пример, пользователь подключается к IIS серверу, который запрашивает от имени пользователя данные у SQL сервера.
Делегация может быть: неограниченная и ограниченная (constrained).
Ограниченная делегация используется только в пределах одного домена. Однако начиная с Windows Server 2012 это ограничение отменили.
Ограниченная делегация позволяет указать к каким сервисам и на каких машинах дозволено данной учетной записи (сервису) имперсонализировать пользователя.
Для того, чтобы появилась возможность использовать делегацию, у учетной записи должен быть указан хотя бы один SPN.
Пример ограниченной делегации Kerberos:

  • На доменной машине websrvr.contoso.com запущен веб сервер IIS под аккаунтом contoso\service_iis. У аккаунта contoso\service_iis указаны SPN: HTTP/websrvr.contoso.com и HTTP/websrvr. Также у этого аккаунта включена ограниченная делегация для MSSQLSvc/sqlsrvr.contoso.com.
    На доменной машине sqlsrvr.contoso.com запущен SQL сервер под аккаунтом contoso\service_sql. У аккаунта contoso\service_sql указаны SPN: MSSQLSvc/sqlsrvr.contoso.com и MSSQLSvc/sqlsrvr.
    В этом примере, клиент подключается к веб-серверу websrvr.contoso.com с целью получить данные, хранящиеся на SQL сервере sqlsrvr.contoso.com. На веб-странице используется код, обращающийся к SQL серверу за этими данными. Пользователь аутентифицируется на веб-сервере. Веб-сервер, используя ограниченную делегацию, использует имперсонализацию при обращении к SQL серверу.

Итог — список шагов для включения ограниченной делегации Kerberos:

  1. Убедится, что домен уровня 2003 и выше. Можно использовать оснастку Active Directory Domains and Trust.
  2. Настроить SPN для всех участвующих учетных записей сервисов. Можно использовать утилиту ADSI Edit и указать у выбранной учетной записи на вкладке Properties атрибут servicePrincipalName.
  3. Настроить ограниченную делегацию для всех учетных записей сервисов, которые будут обращаться от имени пользователя к другим сервисам. Можно использовать оснастку Active Directory Users and Computers и указать у выбранной учетной записи на вкладке Delegation пункт «Trust this computer for delegation to specified services only».
  4. Убедиться, что выбранные учетные записи не ограничены в делегации. Можно использовать оснастку Active Directory Users and Computers и у выбранной учетной записи на вкладке Account убедиться, что не выбран «Account is sensitive and cannot be delegated».
  5. Настроить локальную политику безопасности. Можно использовать оснастку Local Security Policy на машине с работающим сервисом и в разделе Local Policies, User Rights Assignment указать учетную запись сервиса в политиках «Log on as a service» и «Impersonate a client after authentication».

Источник 1
Источник 2
Источник 3