Blog of Khlebalin Dmitriy

(Дорогу осилит идущий…)

Сквозная авторизация IE (аутентификация Kerberos).

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

Для того чтоб это работало необходимо следующее:

-В IE должна присутствовать галка: Разрешить встроенную проверку Windows (она стоит по умолчанию);

-Сайты должны быть добавлены в раздел Местная интрасеть, но если комп в домене, то по умолчанию все поля не активны.

Задача оказалась не такой простой, как казалось изначально.

Для не доменных машинок процесс достаточно прост:

Откройте Свойства браузера -> Безопасность -> Местная интрасеть (Local intranet), нажмите на кнопку Сайты -> Дополнительно. Добавьте в зону следующие записи:

https://*.comp.loc

Даже если бы и была возможность, то руками прописывать сайты никак не улыбается, поэтому, как обычно, делаем это через GPO:

Открываем редактор локальной (gpedit.msc) либо доменной (gpmc.msc) политики.

Переходим в раздел Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Internet Explorer -> Панель управления браузером -> Вкладка безопасность.

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

  • Имя сервера (в виде file://server_name, \\server_name, server_name или IP)
  • Номер зоны (1 – Для местной интрасети)

В моем случае правим отдельную политику IE Default (ранее она уже была создана для других манипуляций IE):

Сохраняем политику.

На компе gpupdate /force

Теперь в IE появляются следующие настройки:

Можно проверить ветку реестра:

HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\ Internet Settings\ZoneMap\Domains.

http://192.168.10.15:8080/HomePage.do?SkipNV2Filter=true

Теперь авторизация проходит без пароля. Это радует. Но работает пока только в IE. В Chrome у меня не сработало, но потом все вроде подхватилось и под Chrome.

Но если все же не заработало, то можно прикрутить в GPO шаблон под Chrome:

http://winitpro.ru/index.php/2014/06/06/nastrojka-google-chrome-gruppovymi-politikami/

Сейчас эти галки возможно убрать руками просто зайдя в настройки IE:

Чтоб такой возможности у пользователей не было, можно включить все три вот этих политики:

В остальном все, что необходимо, заработало без проблем.

P.S. VmWare по умолчанию, к сожалению, сквозную аутентификацию не отработала.

Пришлось переставить плагин.

После его переустановки  все благополучно подхватилось.

Всем хорошей работы!!!

04.06.2019 Posted by | scripts&GPO | Комментарии к записи Сквозная авторизация IE (аутентификация Kerberos). отключены

Задаем программы по умолчанию в домене, создаем ярлыки с помощью GPO.

У нас есть определенная платформа, которая адаптирована под IE. Задача сделать IE браузером по умолчанию, а за одно и все остальные корпоративные программы (типа Acrobat. Outlook и т.д.), создать ярлыки на рабочем столе с помощью групповых политик. Я сам не фанат IE (а EDGE и тем более),  сам пользуюсь Google Chrome на всех устройствах включая устройства от Apple, для меня он удобен во всех отношениях, но корпоративный стандарт-есть корпоративный стандарт…

На  своем локальном компьютере выставляем те программы по умолчанию, которые необходимо чтоб были потом в политике (соответственно меняю Google Chrome на IE по умолчанию).

Далее запускаем Windows Power Shell от имени администратора также на своем локальном ПК:

Dism.exe /online /Export-DefaultAppAssociations:C:\DefaultAssoc.xml

Получаем нужный нам xml:

Редактируем его, так, чтобы открывались нужные нам ассоциации по умолчанию (Adobe, IE и Outlook).

Пример файла:

<?xml version=»1.0″ encoding=»UTF-8″?>

<DefaultAssociations>

  <Association Identifier=».acrobatsecuritysettings» ProgId=»AcroExch.acrobatsecuritysettings» ApplicationName=»Adobe Acrobat Reader DC» />

  <Association Identifier=».htm» ProgId=»htmlfile» ApplicationName=»Internet Explorer» />

  <Association Identifier=».html» ProgId=»htmlfile» ApplicationName=»Internet Explorer» />

  <Association Identifier=».key» ProgId=»Applications\AcroRD32.exe» ApplicationName=»Adobe Acrobat Reader DC» />

  <Association Identifier=».pdf» ProgId=»AcroExch.Document.DC» ApplicationName=»Adobe Acrobat Reader DC» />

  <Association Identifier=».pdfxml» ProgId=»AcroExch.pdfxml» ApplicationName=»Adobe Acrobat Reader DC» />

  <Association Identifier=».pdx» ProgId=»PDXFileType» ApplicationName=»Adobe Acrobat Reader DC» />

  <Association Identifier=».rar» ProgId=»Applications\7zG.exe» ApplicationName=»7-Zip GUI» />

  <Association Identifier=».secstore» ProgId=»AcroExch.SecStore» />

  <Association Identifier=».txt» ProgId=»txtfile» ApplicationName=»Блокнот» />

  <Association Identifier=».url» ProgId=»IE.AssocFile.URL» ApplicationName=»Браузер» />

  <Association Identifier=».website» ProgId=»IE.AssocFile.WEBSITE» ApplicationName=»Internet Explorer» />

  <Association Identifier=».xdp» ProgId=»AcroExch.XDPDoc» ApplicationName=»Adobe Acrobat Reader DC» />

  <Association Identifier=».xfdf» ProgId=»AcroExch.XFDFDoc» ApplicationName=»Adobe Acrobat Reader DC» />

  <Association Identifier=».xml» ProgId=»xmlfile» ApplicationName=»Internet Explorer» />

  <Association Identifier=»ftp» ProgId=»IE.FTP» ApplicationName=»Internet Explorer» />

  <Association Identifier=»http» ProgId=»IE.HTTP» ApplicationName=»Internet Explorer» />

  <Association Identifier=»https» ProgId=»IE.HTTPS» ApplicationName=»Internet Explorer» />

  <Association Identifier=»mailto» ProgId=»Outlook.URL.mailto.15″ ApplicationName=»Outlook 2016″ />

</DefaultAssociations>  

 

Далее кладем полученный xml файл например вот сюда: \\yourdomain.loc\NETLOGON\gpo\DefaultAssoc.xml

Создаем отдельную групповую политику (или правим дефолтную, я предпочитаю отдельную):

ПУСК-ПАНЕЛЬ УПРАВЛЕНИЯ-АДМИНИСТРИРОВАНИЕ-УПРАВЛЕНИЕ ГРУППОВОЙ ПОЛИТИКОЙ

Применяем ее ко всему домену

После обновления политики перезагружаем ПК или набираем  gpupdate /force в командной строке.

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

Создаем необходимый нам ярлык для приложения, как раз нам необходимо, чтоб именно оно открывалось через IE, так как оно адаптировано под IE.

Создаем еще одну политику для ярлыков.

Добавляем сайт в Надежные узлы  для этого снова правим нашу политику IE default:

Значение 2 для Надежных узлов должно быть обязательно.

Снова набираем gpupdate /force

На рабочем столе появляется ярлык Eludia и Helpdesk соответственно, все открывается Internet Explorer-ом, что собственно  нам и требовалось.

 

Всем хорошей работы!!!

05.02.2019 Posted by | scripts&GPO | Комментарии к записи Задаем программы по умолчанию в домене, создаем ярлыки с помощью GPO. отключены

Смена пароля локального Администратора в домене Active Directory.

Вчера от одного из читателей своего блога,  получил вот такое письмо:

Пытаюсь разобраться, как на всех локальных компьютерах изменить пароль для учётной записи администратора или у локального админа сменить пароль .
 я пробую  написано тут сделать
http://gamelton.com/2010/12/13/group-policy-preferences-1/
но не выходит ( не новая не создаётся не обновляется пароль (

Может быть у вас есть в силу опыта какой то готовый способ ?

Вариантов решения этого вопроса несколько, по этому попытаюсь с консолидировать их воедино.

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

С точки зрения безопасности пароль локального администратора должен соответствовать следующим требованиям:

· быть известным только ограниченному кругу лиц;

· обладать достаточной сложностью;

· регулярно изменяться.

В связи с этим периодически возникает задача централизованной передачи учетных данных на рабочие станции пользователей. Решать данную задачу в домене Active Directory можно как минимум несколькими способами:

1) при помощи стартап-скриптов;

2) используя предпочтения групповых политик;

3) запуском скрипта на выделенном компьютере.

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

СТАРТАП-СКРИПТЫ

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

Для решения применим скрипт, позаимствованный с блога«Hey, Scripting Guy!», и немного отредактируем его. В итоге получится что-то вроде:

strComputer = «.»

Set objUser = GetObject(«WinNT://» & strComputer & «/Administrator,user»)

objUser.SetPassword «12345-as» ‘

objUser.SetInfo

Сам скрипт не идеален. Например, в него можно добавить:

1) привязку к SID встроенного администратора (это необходимо, если учётная запись была переименована);

2) логирование в журнале событий системы;

3) отправку оповещений об ошибках выполнения по электронной почте.

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

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

1) создать групповую политику;

2) добавить туда наш скрипт в качестве стартап-скрипта (более подробно об этом написано в KB198642);

3) прикрепить групповую политику к контейнеру с компьютерами, на которых должен изменяться пароль.

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

Кодирование

Для решения данной проблемы мы можем воспользоваться утилитой Script Encoder от компании Microsoft. Эта утилита позволяет преобразовать vbs-скрипт в формат vbe. В результате, тело скрипта хранится в закодированном виде и это никак не сказывается на возможности его исполнения. Рассмотрим это более подробно на нашем примере:

1) Скачиваем установочный файл с сайта Microsoft.

2) Распаковываем его.

3) В результате получаем несколько файлов. Один из них — нужная нам утилита screnc.exe. Синтаксис использования следующий:

SRCENC [switches] inputfile outputfile.

Здесь inputfile – исходный vbs-скрипт, outputfile – его зашифрованный аналог, [switches] – необязательные параметры, которые нам не понадобятся.

4) В итоге тело скрипта будет иметь вид:

«#@~^mQAAAA==dDD/K:aEYD,xPrRE@#@&?nO,W4Ni/DP{~!+Dr(LnmOcrrxgP)JzE~LP/O.;Whw!OD~LPrzb9:bUkkY.lDW.S!/+ME#@#@&W(%i/Dc?nYKCk/AWM[PrF+fW*OCdrPv@#@&G(Lik+MR?Y&U0K@#@&Ly4AAA==^#~@»

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

Декодирование

Казалось бы теперь учетные данные защищены и системный администратора может спать спокойно. Однако существуют vbs-скрипты, с помощью которых можно легко раскодировать зашифрованный вариант. Пример такого скрипта можно получить по следующему адресу: http://www.interclasse.com/scripts/decovbe.php.

Для его использования, скопируем код в файл decode.vbs и запустим его из командной строки. В качестве аргумента будет путь и имя закодированного vbe-файла:

decode.vbs output.vbe

В результате выполнения должно появиться окно, содержащее текст исходного vbs-скрипта. Как следствие учетные данные администратора опять могут стать известны потенциальному злоумышленнику.

Здесь приведен всего лишь один вариант скрипта, добавлю другие  варианты решения проблемы:

pass = «пароль»

Set WshNetwork = CreateObject(«WScript.Network»)

Set oUserAccounts = GetObject(«winmgmts:{impersonationLevel=impersonate}!//» & WshNetwork.ComputerName & «/root/cimv2»).ExecQuery(«Select Name, SID from Win32_UserAccount WHERE Domain = ‘» & WshNetwork.ComputerName & «‘»)

For Each oUserAccount In oUserAccounts

If Left(oUserAccount.SID, 9) = «S-1-5-21-» And Right(oUserAccount.SID, 4) = «-500» Then

GetAdministratorName = oUserAccount.Name

End if

Set oUser = GetObject(«WinNT://» & WshNetwork.ComputerName & «/» & GetAdministratorName & «,user»)

oUser.SetPassword pass

oUser.SetInfo

Next

Или еще вариант:

Создайте файл LocalAdm.vbs, укажите необходимый вам пароль вместо «NewP@ssW0rd» и добавьте этот скрипт в GPO Startup Scripts:
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_UserAccount Where LocalAccount = True")
For Each objItem in colItems
If Left (objItem.SID, 6) = "S-1-5-" and Right(objItem.SID, 4) = "-500" Then
Set objUser = GetObject("WinNT://" & strComputer & "/" & objItem.name & ",user")
objUser.SetPassword "
NewP@ssW0rd"
objUser.SetInfo
End If
Next
 

АЛЬТЕРНАТИВНЫЕ ВАРИАНТЫ

Рассмотрим альтернативные способы решения задачи передачи учетных данных на рабочие станции. К таковым можно отнести:

1) Group Policy Preferences;

2) централизованное изменение пароля со стороны сервера;

3) усложнение структуры скрипта и ограничение доступа к нему.

Group Policy Preferences (GPP)

Предпочтения групповых политик это своего рода замена скриптам в групповых политиках. Данная технология активно рекламируется Microsoft и действительно значительно упрощает работу системного администратора. Изменение пароля локального администратора при помощи GPP довольно подробно описано в статье: «Change local administrator passwords with Group Policy Preferences». Ключевая мысль этой статьи: «Не рекомендуется изменять пароли локального администратора и сервисных учетных записей при помощи GPP». Связано это с тем, что ни смотря на то, что пароль администратора хранится в зашифрованном виде, для его получения достаточно 256bit AES ключа находящегося на рабочей станции. Таким образом, этот способ также не является безопасным.

Централизованное изменение пароля

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

«How Can I Change a User’s Password?». Предложенный там скрипт:

Set objOU = GetObject(«LDAP://OU=Finance, DC=comp, DC=loc»)

objOU.Filter = Array(«Computer»)

For Each objItem in objOU

strComputer = objItem.CN

Set objUser = GetObject(«WinNT://» & strComputer & «/Administrator»)

objUser.SetPassword(«i5A2sj*!»)

Next

берет информацию о компьютерах из контейнера Active Directory и поочередно подключаясь к каждому из них меняет пароль администратора. Из минусов такого варианта можно отметить:

· необходимость удаленного подключения к компьютерам (а они не всегда могут быть доступны);

· организацию автоматического запуска скрипта по расписанию.

Этот вариант наиболее предпочтителен для меня, так как я не силен в vb программировании и не очень люблю скрипты.

Усложнение структуры скрипта

Достаточно много вариантов с применением скриптов изложено в обсуждение «Смена пароля локального администратора» на форумах Microsoft Technet. Особенно интересен вариант с веб-сервером. При его использовании компьютер во время загрузке обращается к серверу, на котором выполняется скрипт по изменению пароля локального администратора. Таким образом этот способ удачно сочетает в себе двух других вариантов, основанных на использовании startup-скриптов и централизованной смены пароля.

Альтернативный вариант

Создаём OU в неё добавляем либо пользователей, либо компьютеры (как сделал я) к ней прикрепляем политику и правим её.

1.Тут меняем имя учётки Администратора.
Конфигурация компьютера
Политики
Конфигурация Windows
Параметры безопасности
Локальные политики/Параметры безопасности
Учетные записи: переименование учетной записи администратора

2.Когда доменная политика применится на всех компьютерах, тогда в ход идёт утилитка от майкрософтка входящая в состав PsTools, pspasswd.
Скачать можно тут:
http://technet.microsoft.com/en-us/sysinternals/bb897543
собственно нам нужен сам файл
pspasswd.exe
запихиваем его в C:\Windows\System32
Можно на серванте, можно на своей тачке, только если на своей, то cmd открывать надо от имени администратора.
Далее читаем хелп по этой софтине.
либо смотрим сюда:

В cmd запускаем команду:
pspasswd @C:\office.txt admin 123456 >C:\log_admin.txt
pspasswd — запускает саму утилиту pspasswd.exe
@C:\office.txt — значёк @ указывает, что нужно читать данные из файла. Ну и далее путь к самому txt-шнику где у вас указаны имена компьютеров на которых надо менять пасс.
Что очень удобно т.к. меняться пасс будет только на тех машинах которые указаны в этом файле. На серверах например менять не надо, значит мы их туда не записываем.
admin — это учётная запись администратора, переименованная в пункте 1.
123456 — это сам пароль
>C:\log_admin.txt — а это вывод отработанной информации в лог файл.

Так же можно сделать батник или файл с расширением *.cmd и поставить на исполнение планировщик заданий, хоть каждый час.
На случай если не все тачки подключены в данный момент к сетке. Ведь пасс поменяется только на включённой машине.

 

Вариант решения вопроса с помощью Power Shell

http://myitforum.com/cs2/blogs/yli628/archive/2007/08/23/powershell-script-to-change-administrator-password-on-a-list-of-machines.aspx

ЗАКЛЮЧЕНИЕ

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

ССЫЛКИ:

· Script Encoder;

· Passwords in Group Policy Preferences;

· Change local administrator passwords with Group Policy Preferences;

· How Can I Change a User’s Password? ;

· Форумы Technet: Смена пароля локального администратора.

Всем удачной работы!!!

29.05.2012 Posted by | scripts&GPO | Комментарии к записи Смена пароля локального Администратора в домене Active Directory. отключены