Tag Archives: Windows

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

Загрузка ОС / Booting OS

Первоначальная загрузка ОС происходит в сл. последовательности: POST->BIOS -> загрузчик(и)->загрузчик ОС–> ОС.

После нажатия кнопки питания запускается POST для первичной проверки устройств, затем загружается BIOS, которая последовательно проходит по списку загрузочных устройств в поисках первого загрузочного (у которого два последних байта первого сектора 0xAA55). Найдя загрузочное устройство, BIOS загружает загрузочный сектор в память (по адресу 0x7C00) и передает управление загрузочному коду, в случае, если устройство HDD, то этот код, вероятнее всего, Master Boot Record (MBR).

Ограничение на размер первоначального загрузчика не позволяют его сделать богатым по функционалу. Этот первоначальный раздел, называемый главной загрузочной записью (MBR), ограничен 512 байтами и находится в самом начале диска, а непосредственно сам загрузчик занимает 446 байт, т.к. помимо него в MBR также присутствует Partition table – таблица разделов (партиций) диска. MBR проверяет список разделов диска в поисках раздела, обозначенного как загрузочный, т.е. того, у которого установлен флаг «активный».

Особенности разметки диска в MBR: диск может иметь максимум 63 партиции из них только 4 могут быть primary (первичными). Только одну из primary можно разделить на logical партиции, т.е. сделать из нее extended партицию (таким образом, получится 3 primary патриции + возможность создать до 59 logical патриций внутри одной extended). Максимальный размер одного HDD около 2 Тб.

Восстановление MBR на Windows XP – fixmbr из Recovery Console, Windows Vista и 7 – bootrec/FixMbr из Recovery Eviroment.

На Linux – grub-install записывает GRUB в MBR.

Найдя загрузочный раздел, MBR загружает загрузочный сектор из него (chain loading). Этот загрузочный сектор содержит либо ОС-независимый загрузчик, либо загрузчик самой ОС, для которого главная задача – загрузить ядро ОС, которое уже продолжит загрузку самой ОС.

Загрузчик может быть как один, так и несколько, которые последовательно загружают один другого по цепочке (chain loading) полностью передавая управление новому. Применительно к загрузчику GRUB, необходимость загрузки по цепочке возникает для ОС, не поддерживающихся GRUB.

Загрузчики могут быть разными: GNU GRUB (Linux), BOOTMGR (Vista и новее), NTLDR (XP и ранее). В них присутствуют настройки, позволяющие загружать разные ОС, либо различные режимы одной ОС. Либо передавать цепочку управления загрузкой следующему загрузчику (GRUB -> BOOTMGR).

Читать далее

Проблема с печатью EasyPrint на терминальном сервере

С момента выхода Windows Server 2008 Microsoft внесла некоторые изменения в систему печати, призванные облегчить работу системных администраторов. Появился универсальный драйвер печати EasyPrint. До момента выхода EasyPrint при подключении к удаленному рабочему столу (терминалу) проброс принтеров с локального компьютера осуществлялся только в том случае, если на сервере терминалов был установлен драйвер принтера той же версии, что и на локальном компьютере.

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

В большинстве случаев EasyPrint работает без проблем, но бывают исключения. Наиболее проблемными оказались принтеры фирмы HP. При подключении принтер подхватывался, на него устанавливался драйвер EasyPrint, но возникают конфликт и печать не работает.

Для решения этой проблемы рекомендуется отключить EasyPrint и использовать драйвер определенного принтера или универсальный драйвер HP.

EasyPrint для компьютеров в домене отключается средствами групповой политики. Для этого необходимо перейти в Computer Configuration -> Administrative templates -Windows Components -> Remote Desktop Services > Remote Desktop Session Host -> Printer Redirection для Windows Server 2008 R2 или Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Printer Redirection для Windows Server 2008. В нем необходимо отключить опцию Use Remote Desktop Easy Print printer driver first для Server 2008 R2 или Use Terminal Services Easy Print Driver First Server 2008 соответственно.

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

В заключении хотел бы привести общие требования для работы печати по удаленке:

Последовательность действий для смены драйвера с EasyPrint на родной

  1. Добавляем себя в локальную группу “Print Operators” терминального сервера
  2. Устанавливаем роль “Print Services”
  3. Заходим в консоль “Print Services”. По умолчанию операторы печати могут только просматривать принтеры других пользователей, для изменения их настроек нужно выбрать необходимый принтер, зайти в Свойства –> Безопасность -> Дополнительно -> Владелец. Добавляем операторов печати. Закрываем окна. Открываем снова Свойства –> Безопасность и для группы “Print Operators” назначаем права на редактирование.
  4. Заходим в Свойства принтера -> Дополнительно и меняем драйвер принтера с EasyPrint на родной драйвер принтера.

    Стоит отметить, что смена драйвера для конкретного принтера будет действовать лишь на период сессии в которой доступен этот драйвер для того, что бы для принтера устанавливался родной драйвер каждый раз при подключении к серверу удаленного рабочего стола необходимо средствами групповой политики отключить EasyPrint.
  5. Создаем групповую политику на OU в котором находятся учетные записи подключающихся компьютеров. Переходим в раздел Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Printer Redirection и отключаем опцию Use Terminal Services Easy Print Driver First

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

Список поддерживаемых принтеров компании HP.

Для тестирования драйвера принтера на многопользовательское использование можно использовать утилиту StressPrinters.

Источник 1

Источник 2

Служба активации KMS в Windows

C момента появления Windows Vista и Server 2008 в ОС компании Microsoft для активации ОС предлагается использовать один из двух типов ключей MAK и KMS.

MAK-ключ ничем не отличается от обычных ключей активации в предыдущих версиях системы и его использование выполняется, как правило, для малых локальных сетей и личного пользования. В то время как KMS-ключи используются в корпоративных сетях. Проблемы возникают, как правило, с KMS.

Служба KMS придерживается клиент-серверной модели. Существует KMS-сервер лицензий (т.н. KMS host) к которому KMS-клиенты обращаются за обновлением лицензий раз в 180 дней.

KMS-ключи делятся на два типа для KMS-клиента и KMS-сервера (т. н. KMS host key). От того какой ключ будет введен в ОС и зависит какую роль будет она выполнять – серверную или клиентскую. KMS-ключи клиента общедоступны в Интернете. KMS-сервер активируется через Интернет.

Клиенты узнают о KMS-сервере через запрос к DNS-серверу, на котором хранятся записи о KMS-серверах. Параметры записи

Service: _VLMCS
Protocol: _TCP
Port number: 1688
Host offering the service: <FQDN_KMS-сервера>

Обычно сервер KMS автоматически добавляет данную запись в DNS.

Однако на KMS-клиенте можно вручную указать адрес KMS-сервера командой

slmgr.vbs /skms <адрес KMS-сервера>:<пор>

Однако стоит заметить, что ввод команды разовый, т.е. через 180 KMS-клиент полезит искать KMS-сервер не на адрес введенный в команде, а на DNS.

По-умолчанию KMS-сервер прослушивает запросы клиентов на TCP порту 1688.

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

nslookup -type=all _vlmcs._tcp

Ключ вводится и активируется командами

slmgr.vbs /ipk <ключ_активации>
slmgr.vbs /ato

К слову стоит заметить, что в случае введения KMS-ключа сервера система запрашивает дополнительное подтверждение от пользователя.

Название сервиса KMS различается в зависимости от версии Windows:
До Windows 7 он назывался Software Licensing — slsvc
C Windows 7 — Software Protection — sppsvc

Источник 1

Источник 2

Удаленное подключение к Windows и использование BGInfo

В корпоративных сетях для технической поддержки рабочих станций часто используется подключение к удаленному рабочему столу. Однако для этого нужно знать либо имя машины (hostname), либо ее адрес. В данной статье будет рассказано про использования подключения по удаленному рабочему столу (RDP), а также использования утилиты BGInfo для вычисления ip-адреса машины.

Статья делится на две части:

  1. Требования для успешного подключения к удаленному рабочему столу:
    • Учетная запись должна состоять в группе Remote Desktop Users
    • Открыт порт RDP – 3389
    • Включена возможность удаленного администрирования

    Настроим удаленные машины через групповые политики. Для этого создадим объект групповой политики с нижеследующими опциями и привяжем его к организационному юниту с учетными записями компьютеров.

  2. Открываем порт 3389 в брандмауэре для подключения по RDPComputer Configuration -> Polices -> Administrative Templates -> Network -> Network Connections -> Windows Firewall -> Domain Profile -> Windows Firewall: Allow inbound Remote Desktop exceptions (для Windows XP SP2 и выше). Включить и указать диапазон ip-адресов с которых возможно подключение.
  3. Computer configuration -> Polices -> Windows settings -> Security settings -> Windows firewall with advanced security -> Inbound rules -> New Rule -> Predefined: Remote Desktop -> Allow the connection (для Vista, 7 и выше)

  4. Включаем возможность удаленного помощника и удаленного администрированияComputer Configuration -> Polices -> Administrative Templates -> System -> Offer Remote Assistance -> Allow helpers to remotely control the computer

    Computer Configuration -> Polices -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Allow users to connect remotely using Remote Desktop Services

  5. Установка программы BGInfo на удаленных компьютерахПрограмма BgInfo написана Марком Руссиновичем и (Mark Russinovich) и позволяет выводить на рабочий стол различие параметры компьютера включая имя машины, ip-адрес, текущего пользователя, версию ОС и т.д. Более подробно о программе можно почитать по адресу http://technet.microsoft.com/en-us/sysinternals/bb897557

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

    \BGInfo.exe профиль.bgi

    Алгоритм использование BGinfo в доменной сети:

    • настроить профиль и сохранить его в файл *.bgi
    • создать сетевую папку доступную пользователям для чтения и скопировать в нее файлы программы и настроенный профиль
      — открыть блокнот и в него прописать
    • \BGInfo.exe профиль.bgi /timer:0 /silent /nolicprompt

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

    • сохранить файл с расширением *.bat и скопировать его в созданную сетевую папку
    • создать новый объект групповой политики и указать в нем путь до загрузочного скрипта в User Configuration -> Polices -> Windows Settings -> Scripts (logon/logoff) -> logon

    • привязать созданную групповую политику к OU с пользователями

GPO замыкания пользовательской политики / User Group Policy Loopback processing mode

Видно, что вы сами не до конца понимаете, как работает Loopback processing mode и Security Filtering.

Когда GPO линкуется к какому-то OU, то по умолчанию политики из раздела Computer Configuration данной GPO применяются ко всем компьютерным объектам внутри этого OU (и его подконтейнеров), а политики из раздела User Configuration применяются ко всем пользовательским объектам внутри этого OU (и его подконтейнеров).

Если вы прилинкуете GPO к OU, в котором лежат только компьютерные объекты, и в этом GPO укажете какие-то настройки в разделе User Configuration, то по умолчанию эти пользовательские настройки будут проигнорированы и никем не будут использоваться (т.к. я уже указал выше, что по умолчанию к компьютерным объектам применяются только настройки из Computer Configuration).

Так вот, чтобы к пользователям, которые логинятся на какие-то машины, применялись пользовательские настройки (раздел User Configuration) из GPO, которая прилинкована к компьютерному объекту, и включается «User Group Policy Loopback processing mode».

При этом в режиме Replace пользовательские настройки (User Configuration) из других GPO, назначенных на пользовательский объект, будут отменены и будут действовать только пользовательские настройки (User Configuration) из GPO, назначенного на компьютерный объект, куда логинится пользователь.
А в режиме Merge эти настройки совместятся (ранее назначенные сохранятся, новые добавятся, конфликтующие перезапишутся). Т.е. частично у пользователя останутся настройки, назначенные на самого пользователя через другие GPO, плюс добавятся пользовательские настройки (User Configuration) из GPO, назначенного на компьютер.

Читать далее