Ограничение доступа к внешним накопителям CD, FD, USB с помощью Group Policy Preferences

Если по каким-то причинам возникает необходимость на некоторых компьютерах c OC Windows полностью заблокировать доступ пользователям к возможности использования съёмных носителей, – можно воспользоваться настройками доступными в стандартных Административных шаблонах групповых политик в разделе Computer Configuration > Administrative Templates > System > Removable Storage Access

Для того чтобы применить эти параметры к какой-то отдельной группе компьютеров -можно создать отдельную групповую политику с такими настроенными параметрами и прилинковать её например к контейнеру (OU) в домене или изменить разрешения безопасности для этой политики так чтобы применяться она могла лишь к конкретной доменной группе безопасности, в которую включены соответствующие компьютеры.

Более гибким походом для решения данного вопроса будет использование механизмов настройки реестра из состава Group Policy Preferences (GPP). Подход с использованием GPP вместо использования выше-обозначенных стандартных параметров Административных шаблонов позволит нам встроить нужные нам ограничения в любую уже существующую у нас групповую политику не плодя при этом новых объектов GPO. Более того внутри этой политики мы сможем настроить правила ограничений сразу для множества разных коллекций компьютеров с разными видами нацеливания (Item-level targeting)

Итак, рассмотрим маленький пример создания параметров GPP для решения нашей задачи. Сразу уточним имеющиеся у нас исходные данные, – нам необходимо ограничить доступ ко всем типам внешних съёмных носителей для всех пользователей работающих на определённой группе компьютеров под управлением ОС Windows XP, Windows Vista и Windows 7.

Создаём в домене группу безопасности в которую включаем учетные записи всех компьютеров, на которых нам необходимо ввести ограничения и после этого в разделе групповой политики Computer Configuration > Preferences > Windows Settings > Registry создаём логическую группу с удобным для нас названием, например Storage-Devices-Restrict. В моём случае внутри этой группы создана подгруппа, определяющая принадлежность компьютеров к конкретной физической локации и в свойствах этой подгруппы включён режим нацеливания на созданную в домене группу безопасности. Таким образом, все настройки которые мы создадим внутри этой подгруппы будут применяться к клиентским компьютерам лишь в том случае, если они включены в соответствующую доменную группу.

 

Прежде чем делать настройки внутри нашей подгруппы настроек, стоит отметить, что выше-обозначенные стандартные параметры Административных шаблонов GPO доступны лишь для Windows Vista и Windows 7. С Windows XP в этом плане всё гораздо грустнее. И поэтому наши настройки GPP будут разделены на две соответствующие подгруппы, обработка параметров которых будет выполняться в зависимости от клиентской ОС. То есть внутри подгруппы по локации мы создадим две подгруппы по типу ОС.

 

Внутри группы WinXP создадим четыре основных параметра, каждый из которых будет отвечать за выключение системного драйвера, обеспечивающего возможность работы с основными типами внешних носителей. Наша задача - изменить тип запуска этих драйверов с помощью ключа Start в ветках реестра:

Куст реестра: HKEY_LOCAL_MACHINE

Ветки реестра:
SYSTEM\CurrentControlSet\Services\Cdrom
SYSTEM\CurrentControlSet\Services\Flpydisk
SYSTEM\CurrentControlSet\Services\Sfloppy
SYSTEM\CurrentControlSet\Services\UsbStor

Ключ: Start REG_DWORD = 4

Таблица значений по умолчанию для ключа реестра Start y соответствующих драйверов:

Ветка реестра

Тип запуска по умолчанию

HKLM\SYSTEM\CurrentControlSet\Services\Cdrom

1

HKLM\SYSTEM\CurrentControlSet\Services\Flpydisk

3

HKLM\SYSTEM\CurrentControlSet\Services\Sfloppy

1

HKLM\SYSTEM\CurrentControlSet\Services\UsbStor

3

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

В свойствах наших параметров значение ключа Start сделаем равным 4, что определит состояние когда драйвер выключен и не загружается ни при каких условиях. Более подробная информация о допустимых значениях для данного ключа реестра в статье KB103000 - CurrentControlSetServices Subkey Entries

Дополнительно о методах блокировки доступа к USB накопителям можно найти в статье KB823732 - How to disable the use of USB storage devices. В этой статье предлагается ещё одно кардинальное решение – ограничение прав доступа в NTFS к файлам драйвера UsbStor (Usbstor.pnf и Usbstor.inf).

Отдельно также стоит отменить особенность ветки реестра драйвера UsbStor. Эта ветка реестра существует на клиентской системе только в том случае, если USB накопители хоть раз использовались в системе. Поэтому надо учитывать ситуацию, когда, возможно, накопитель ещё не использовался и при первом его использовании, значения параметров в этой ветке реестра могут быть переписаны в процессе первоначальной инициализации драйвера. То есть при этом доступ к устройству будет работать ровно до следующей перезагрузки с применением нового значения параметра Start.

Возможно кому-то пригодится информация о том, что начиная с Windows XP SP2 была добавлена возможность отдельно контролировать доступ на запись на съёмные USB девайсы:

Куст реестра: HKEY_LOCAL_MACHINE
Ветка: System\CurrentControlSet\Control\StorageDevicePolicies
Ключ: WriteProtect REG_DWORD = 1

Теперь поговорим о параметрах GPP для систем Windows Vista и Windows 7. В отличии от Windows XP, в этих системах мы можем себе позволить гораздо более гибкие настройки, которые предоставляются нам с помощью возможности оперирования специальными ветками и ключами реестра предназначенными для ограничения доступа к разного типа носителей. Собственно говоря, мы будем оперировать теми же параметрами реестра, которые управляются стандартными Административными шаблонами групповых политик, о которых мы говорили в самом начале.

так как в нашем случае требуется ограничение доступа ко всем типам устройств, нам достаточно будет описать настройку только одного ключа реестра, настраиваемого политикой All Removable Storage classes: Deny all access:

Куст реестра: HKEY_LOCAL_MACHINE
Ветка: SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices
Ключ: Deny_All REG_DWORD = 1

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

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices

Параметр GPO

Подветка реестра (Device Class GUID)

Ключ реестра

Floppy Drives:
Deny read access

{53f56311-b6bf-11d0-94f2-00a0c91efb8b}

Deny_Read

Floppy Drives:
Deny write access

{53f56311-b6bf-11d0-94f2-00a0c91efb8b}

Deny_Write

CD and DVD:
Deny read access

{53f56308-b6bf-11d0-94f2-00a0c91efb8b}

Deny_Read

CD and DVD:
Deny write access

{53f56308-b6bf-11d0-94f2-00a0c91efb8b}

Deny_Write

Removable Disks:
Deny read access

{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}

Deny_Read

Removable Disks:
Deny write access

{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}

Deny_Write

Tape Drives:
Deny read access

{53f5630b-b6bf-11d0-94f2-00a0c91efb8b}

Deny_Read

Tape Drives:
Deny write access

{53f5630b-b6bf-11d0-94f2-00a0c91efb8b}

Deny_Write

WPD Devices:
Deny read access

{6AC27878-A6FA-4155-BA85-F98F491D4F33}
{F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE}

Deny_Read

WPD Devices:
Deny write access

{6AC27878-A6FA-4155-BA85-F98F491D4F33}
{F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE}

Deny_Write

Значения всех ключей Deny_Read и Deny_Write имеют тип REG_DWORD и могут принимать две формы:
1 - Запрет действует
0 - Запрет не действует (можно также просто удалить ключ)

По умолчанию ветки RemovableStorageDevices в реестре не существует, и поэтому она будет создана при первом применении нашей политики.

Если так получается, что в вашей ситуации появятся какие-то хитры девайсы которые не подпадают ни под один из перечисленных классов, то вы сможете самостоятельно узнать идентификатор класса устройства посмотрев в оснастке Диспетчер устройств (devmgmt.msc) в свойствах этого самого хитрого девайса значение атрибута Device Class GUID (Determine the Device Setup Class for Your Device)

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

При создании правил настройки реестра и сопоставлении их со стандартными параметрами GPO, вы можете заметить, что большинство перечисленных параметров доступны не только в контексте Computer Configuration, но и в контексте User Configuration, то есть вы можете попробовать на системах Windows Vista и Windows 7 использовать механизмы ограничений не для всей системы в целом а лишь для некоторых её пользователей. Для этого необходимо создавать параметры GPP в разделе групповой политики User Configuration> Preferences > Windows Settings > Registry и при их создании указывать куст реестра HKEY_CURRENT_USER вместо HKEY_LOCAL_MACHINE, используя при этом по необходимости нацеливание уже не на группы компьютеров, а на группы пользователей. Но это только теоретически, и сам я такой вариант настройки не проверял.

Итак, закончив настройку параметров GPP и дождавшись применения групповой политики на целевых клиентских компьютерах, мы сможем проверить механизмы ограничений доступа в действии. На системах Windows XP во всех элементах пользовательского интерфейса исчезнет любое упоминание о наличии устройств чтения съёмных носителей, а в оснастке Диспетчер устройств (devmgmt.msc) мы увидим, что эти устройства находятся в неоперативном режиме

Открыв свойства любого такого устройства мы убедимся в том, что необходимый для его работы драйвер в системе выключен.

На системах Windows Vista и windows 7 ситуация будет в нашем случае выглядеть несколько иначе. Все устройства в интерфейсе пользователя будут видны но при попытке доступа к ним мы будем получать сообщение об отказе в доступе.

Ещё раз хочу напомнить про то, что планируя организовать ограничение доступа через настройку реестра с помощью GPP, обдумайте пути возврата клиентских компьютеров в исходное состояние в случае необходимости. Это можно сделать например создав в той же групповой политике те же параметры реестра но уже с нацеливанием на другие группы безопасности и использовать при этом возможности очерёдности обработки параметров GPP в процессе применения групповой политики. Или же можно создать отдельную групповую политику которая будет опять таки иметь приоритет над запрещающей политикой … в общем вариантов можно придумать много и тут, как всегда, всё зависит только от вашей фантазии Улыбка 

Источники информации:

Всего комментариев: 5 Комментировать

  1. Александр /

    Как определённым устройствам разрешить подключение, а остальным запретить, чтобы они вообще не определялись? Допустим, есть 20 разрешённых флэш-накопителей. Их должен определять каждый компьютер. Остальные внешние устройства не должны определяться вообще.

    1. Алексей Максимов / Автор записи

      В конце заметки приведены 4 ссылки. Откройте предпоследнюю (Step-By-Step Guide to Controlling Device Installation Using Group Policy) и посмотрите раздел "Allow users to install only authorized devices".

  2. equinox /

    Спасибо за статью, уже почти с год управляю в домене устройствами при помощи GPP, и лишь недавно возникла одна проблема: при выдаче прав на запись DVD для пользователя: доступ не включался. Естесственно, попробовал полное удаление ветки RemovableStorageDevices — не помогло. Внимательное изучение политик ни к чему не привело. В итоге проблема решилась удалением привода из диспетчера устройств, и затем поиском устройств Plug-n-Play, после чего все заработало. Решение нашел тут, если кому интересно — http://superuser.com/questions/621389/windows-7-cant-read-dvds-after-it-department-revoked-then-regranted-removable

    1. Алексей Максимов / Автор записи

      Спасибо за информацию.

      1. equinox /

        Рад помочь! И кстати, выше в слове "естественно" у меня проскочила лишняя "с" :)

Добавить комментарий