Совет недели (2014-05-1): Отключаем на серверах конфигурацию усиленной безопасности Internet Explorer

Недавно меня спросили, реально ли при помощи скриптов отключить такую функциональную возможность серверных операционных систем, как «Конфигурация усиленной безопасности Internet Explorer». Я написал человеку, в каком направлении следует «копать», а потом подумал, что подобная задача может заинтересовать и других работающих с серверными операционными системами администраторов, которым хотелось бы автоматизировать отключение этой возможности для определенных групп пользователей.

Итак, далее в этой статье я расскажу о том, каким образом можно управлять конфигурацией усиленной безопасности браузеров для администраторов и пользователей средствами графического интерфейса, при помощи изменения конкретного параметра в системном реестре, средствами предпочтений групповой политики, а также — для любителей скриптов – при помощи Windows PowerShell. Приступим…

Управление конфигурацией усиленной безопасности Internet Explorer средствами графического интерфейса

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

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

  1. Открыть «Диспетчер серверов» (Server Manager), где вам нужно перейти на страницу «Локальный сервер» (Local Server);
  2. В поле свойств локального сервера перейдите к группе «Конфигурация усиленной безопасности Internet Explorer» (IE Enhanced Security Configuration) и щелкните по ссылке «Включено» (On);
  3. В отобразившемся диалоговом окне «Конфигурация усиленной безопасности Internet Explorer» (Internet explorer enhanced security configuration) в группе администраторов или пользователей (желательно только в группе администраторов) установите переключатель на опции «Отключить» (Off), как показано на следующей иллюстрации:

    Отключение конфигурации усиленной безопасности Internet Explorer для администраторов

    Рис. 1. Отключение конфигурации усиленной безопасности Internet Explorer для администраторов

Отключение усиленной конфигурации безопасности IE при помощи реестра

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

Так как можно отключить усиленную конфигурацию безопасности как для группы администраторов, так и для обычных пользователей, можно быстро локализовать два раздела реестра, которые хранят параметры этой возможности. В случае с группой администраторов нас будет интересовать раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}, а для пользователей придется изменять значение определенного параметра в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}.

Если вы «мониторили» системный реестр во время изменения значения интересующего вас параметра, то могли обнаружить, что при включении/отключении функциональной возможности изменяется только значение параметра IsInstalled. Значение 1 означает, что конфигурация усиленной безопасности включена, а 0, соответственно, отключена.

Как видно на следующей иллюстрации, сейчас для администраторов данная возможность отключена:

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

Рис. 2. Отключение данной функциональной возможности средствами реестра

Между прочим, после изменения значения соответствующего параметра вам даже не нужно будет перезагружать компьютер, выполнять выход из системы или перезапускать процесс explorer.exe. Чтобы увидеть, что изменения вступили в силу, достаточно только перезапустить диспетчер серверов и все.

Использование предпочтений групповой политики

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

  1. Откройте консоль «Управление групповой политикой» (Group Policy Management) и создайте новый либо воспользуйтесь существующим объектом групповой политики. Скажем, в данном примере это будет объект «Disable IE ESC», который в этом примере будет связан со всем доменом (в идеале следует связывать только с тем подразделением, где расположены учетные записи серверов). После этого откройте для такого объекта GPO редактор управления групповыми политиками;
  2. Находясь в оснастке редактора, перейдите к узлу Конфигурация компьютера\Настройка\Конфигурация Windows\Реестр (Computer Comfiguration\Preferences\Windows Settings\Registry) и создайте элемент предпочтения реестра;
  3. В диалоговом окне создаваемого элемента реестра выберите куст HLEY_LOCAL_MACHINE и, используя браузер элементов реестра, перейдите к разделу SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}. Там же можно выбрать параметр IsInstalled. Осталось только, как видно на следующей иллюстрации, в используемом в этой процедуре диалоговом окне указать в текстовом поле «Значение» (Value Data) само значение данного параметра (в этом примере это будет значение 0) и сохранить все внесенные изменения в элемент предпочтения:

    Создание элемента предпочтения реестра

    Рис. 3. Создание элемента предпочтения реестра

  4. В крайнем случае, вы можете добавить коллекцию элементов нацеливания на уровень элемента, где укажете, что параметр должен распространяться только на серверные операционные системы.

Использование скрипта Windows PowerShell

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

Каким образом мной был написан такой скрипт… В следующем скрипте будет создаваться новый командлет Manage-IEISC с тремя параметрами: ComputerName, отвечающий за наименование целевого компьютера, Scope, при помощи которого вы можете указать, будет ли изменяться значение для группы администраторов либо для пользователей, а также параметр Action, позволяющий включать либо отключать данную функциональную возможность.

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

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

После этого определяется используемый раздел реестра для значения параметра Scope. То есть, если будет введено для этого параметра значение Admin, то будет использоваться раздел, определенный в переменной $RegKey1, а в случае значения User – раздел из $RegKey2.

Далее, если для параметра Action будет введено значение Disabled, значение параметра IsInstalled изменится на 0. В случае использования значения Enabled параметр изменится на 1.

function Manage-IEESC
{
	[CmdletBinding()]
   	param(
      [Parameter(Mandatory=$true)][string]$Action,
      [Parameter(Mandatory=$true)][string]$Scope, 
	  [string]$computerName = $env:computerName
    )
    if(!(Test-Connection -Computer $computerName -count 1 -ea 0)) {
    Write-Host "$Computer АН-НЕТ ТАКОГО :)"
    }

    $RegKey1 = 'HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}'
    $RegKey2 = 'HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}'
   
    if($Scope -eq "Admin"){
    $RegKey = $RegKey1
    }
    if($Scope -eq "User"){
    $RegKey = $RegKey2
    }
    
    if($Action -eq "Disabled")
    {
        Set-ItemProperty -Path $RegKey -Name "IsInstalled" -Value 0
    }
    if($Action -eq "Enabled")
    {
        Set-ItemProperty -Path $RegKey -Name "IsInstalled" -Value 1
    }
Write-Host "Изменен параметр для компьютера $computerName и пользователя $Scope на $Action"
}

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

Заключение

Из этой статьи вы узнали о том, как можно отключить конфигурацию усиленной безопасности Internet Explorer на операционных системах Windows Server при помощи различных методов. Прежде всего, я рассказал о том, как можно отключить эту функциональную возможность при помощи графического интерфейса. После этого вы узнали, где размещается соответствующий параметр в системном реестре. Далее я рассказал о том, как можно внести изменения в найденный ранее параметр системного реестра средствами возможностей предпочтений групповой политики. А в последнем разделе вы узнали о том, как можно реализовать такие же действия средствами скрипта Windows PowerShell.

VN:F [1.9.22_1171]
Rating: 8.2/10 (5 votes cast)
Совет недели (2014-05-1): Отключаем на серверах конфигурацию усиленной безопасности Internet Explorer, 8.2 out of 10 based on 5 ratings

One comment

  1. Вот вариант без большого использования IF. Но в том что так много условий нету ничего страшного/неправильного. И если говорить о производительности то на таком объеме оно не заметно.
    ####
    # Example:
    # Manage-IEESC -Scope Admin -Status true
    #
    #
    ####

    function Manage-IEESC
    {
    [CmdletBinding()]
    param(
    [Parameter(Mandatory=$true)][string]$Scope,
    [Parameter(Mandatory=$true)]$Status,
    [string]$computerName = $env:computerName
    )
    $status = [system.convert]::ToBoolean($Status)
    $status = [system.convert]::ToInt32($Status)
    $RegKey = @{‘Admin’=’HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}’}
    $RegKey += @{‘User’=’HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}’}

    if(!(Test-Connection -Computer $computerName -count 1 -ea 0)) {
    Write-Host «$Computer АН-НЕТ ТАКОГО :)»
    } else {

    Invoke-Command -ComputerName $computerName -ScriptBlock { Set-ItemProperty -Path $args[0] -Name «IsInstalled» -Value $args[1] } -ArgumentList $RegKey[$scope],$Status
    Write-Host «Изменен параметр для компьютера $computerName и пользователя $Scope на $Status»
    }

    }

    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

Leave a Reply

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