Официально этот модуль называется «Intel IoT Gateway Module for Microsoft Windows PowerShell». Он помогает настроить операционную систему шлюза на заданный уровень безопасности (Security SKU).
Основные сведения
Модуль входит в состав пакета Windows Configuration Software for Intel IoT Gateway. Пакет можно найти по вышеприведённому названию и скачать в Центре загрузки Intel. В настоящее время поддерживаются операционные системы Windows 10 IoT Enterprise и Windows 10 IoT Core.
IntelIoTGatewaySetup позволяет настраивать следующие функции безопасности Windows, указанные в описании уровней безопасности. Предусмотрено три уровня безопасности. В частности, это, в порядке возрастания обеспечиваемого уровня защиты, Basic SKU, Medium SKU, и High SKU. Каждый следующий уровень расширяет возможности предыдущего. Итак, вот список настраиваемых функций.
- Windows Update, Windows Defender, Windows Firewall, Windows User Account Control, USB Removable Media Lockdown, Virtualization Based Security, App Locker, Code Integrity.
- BitLocker с поддержкой модуля TPM для Windows 10 IoT Enterprise. Хотя в определениях уровней безопасности упомянуто использование TPM и сетевой разблокировки (Network Unlock) для среднего и высокого уровней, модуль PowerShell настраивает лишь BitLocker с поддержкой TPM, так как Network Unlock требует дополнительной сетевой инфраструктуры.
Хотя модуль IntelIoTGatewaySetup и настраивает множество параметров в соответствии с заданным уровнем безопасности, он не касается следующих возможностей:
- UEFI, Secure Boot и TPM. Всё это является частью аппаратных требований и требований к микропрограммам для шлюзов Intel. Таким образом, эти функции на шлюзе будут уже включены.
- Уровни привилегий учётных записей. Можно создать, в зависимости от особенностей использования системы, учётную запись с ролью администратора или обычную учётную запись со стандартным набором прав.
- ASLR. Эта возможность по умолчанию поддерживается и включена в ОС Windows, таким образом, в дополнительной настройке она не нуждается.
- Measured Boot. Эта функция реализуется благодаря прошивке UEFI, TPM и Windows. Она так же не нуждается в дополнительной настройке.
- Remote Attestation. Эта функция нуждается в настройке дополнительной сетевой инфраструктуры и в дополнительном программном обеспечении.
- BitLocker + Network Unlock. Технология Network Unlock требует настройки дополнительной сетевой инфраструктуры и возможностей DHCP-драйвера в UEFI. В результате модуль PowerShell способен настроить лишь BitLocker с поддержкой TPM.
- USB Filter. Для настройки этой функции в соответствии с особенностями использования шлюза, применяйте групповые политики для того, чтобы управлять USB-устройствами, основываясь на Device ID или Class ID.
- Keyboard Filter. Для настройки этого фильтра воспользуйтесь инструментом Windows ICD.
В папке IntelIoTGatewaySetup находятся следующие основные компоненты:
- Readme.rtf. Обычный сопроводительный файл с инструкциями по началу работы.
- ModuleInstallation.ps1. Вспомогательный скрипт для установки модуля IntelIoTGatewaySetup.
- Папка IntelIoTGatewaySetup. Здесь содержится сам модуль.
Установка модуля
Если у вас имеется шлюз, оснащённый дисплеем и клавиатурой, команды PowerShell, необходимые для установки модуля, можно исполнять непосредственно на шлюзе. После установки команды PowerShell, которые предоставляет модуль, так же можно исполнять прямо на шлюзе. Мы называем это локальной установкой и локальным исполнением команд.
Шлюз может быть расположен вне пределов физической досягаемости, кроме того, у него могут отсутствовать монитор и устройства ввода. В таком случае нужно воспользоваться другим компьютером, назовём его компьютером разработчика, который позволит организовать удалённое управление шлюзом и его настройку. Ниже мы будем рассматривать именно такой сценарий. Мы называем его удалённой установкой и удалённым исполнением команд.
Для того, чтобы установить модуль PowerShell на шлюз с компьютера разработчика, эти две системы должны быть в одной и той же подсети. Кроме того, этот процесс включает в себя временное сопоставление сетевого диска на компьютере и шлюза.
Итак, для удалённой установки модуля нужно выполнить следующие шаги.
Для начала – вот список операций, которые нужно произвести на шлюзе для того, чтобы обеспечить удалённый доступ к PowerShell.
- Если на шлюзе установлена Windows IoT Core, то всё уже готово к работе, ничего больше делать не нужно.
- Если же шлюз оснащён Windows IoT Enterprise, нужно разрешить удалённое взаимодействие с PowerShell, используя эту и эту инструкции. Например, для того, чтобы включить удалённый доступ к PowerShell, воспользуйтесь нижеприведёнными командами.
#Получим индекс NIC активного NIC Get-NetAdapter #$index – это полученный индекс. #Переключим целевое активное соединение в приватный режим. #В качестве разделителя в строке команды используется комбинация пробел + обратная галочка. Set-NetConnectionProfile -InterfaceIndex $index ` -NetworkCategory Private #Включим удалённый доступ Enable-PSRemoting -Force
Теперь, когда шлюз готов к работе, займёмся компьютером, выполнив следующие шаги с использованием окружения PowerShell.
1. Убедитесь в том, что две следующих учётных записи, созданные на соответствующих устройствах, имеют административные полномочия. А именно:
- Учётная запись для компьютера разработчика, с которой осуществлён вход в систему.
- Учётная запись на шлюзе, которой мы воспользуемся позже.
2. Запустите интерпретатор командной строки PowerShell от имени администратора.
3. Для того, чтобы запустить скрипт ModuleInstallation.ps1 нужно, чтобы в PowerShell использовалась политика выполнения скриптов AllSigned
или RemoteSigned
. Взгляните на следующие командлеты: Get-ExecutionPolicy
и Set-ExecutionPolicy
. Они позволяют, соответственно, узнавать и задавать политику выполнения. Например, с помощью такой команды можно задать использование политики RemoteSigned
.
Set-ExecutionPolicy RemoteSigned
4. Воспользуйтесь точечной нотацией при вызове скрипта ModuleInstallation.ps1. Для того, чтобы это сделать, введите символ точки «.» и пробел перед путём к запускаемому скрипту. Этот подход позволяет запустить скрипт в текущей области действия.
. .\ModuleInstallation.ps1
5. Затем взгляните на справку по модулю, о котором мы здесь говорим, ознакомьтесь с примерами его использования. Для этого воспользуйтесь такой командой
Get-Help Install-IntelIoTGatewaySetup –Full
6. Выполните команду Install-IntelIoTGatewaySetup
для установки модуля с компьютера разработчика на шлюз. Правила использования этой команды можно найти в справочных материалах из предыдущего шага. Например, можно воспользоваться следующей последовательностью действий:
#$path это путь к папке, в которой находится загруженный модуль,
# например: ‘C:\IntelIoTGatewaySetup’
#$remoteip это IP-адрес удалённого шлюза,
#например: ‘192.168.2.5’
#$remoteaccount это учётная запись на шлюзе,
#например, ‘Tester’ или ‘Domain\Tester’
#В качестве разделителя в строке команды используется комбинация пробел + обратная галочка.
Install-IntelIoTGatewaySetup –ModuleLocalPath $path `
-RemoteGateway $remoteip `
-RemoteAccount $remoteaccount –Verbose
Обратите внимание на то, что при локальной установке можно исполнить команду
Install-IntelIoTGatewaySetup
непосредственно на шлюзе. Для деинсталляции модуля предусмотрена команда Uninstall-IntelToTGatewaySetup
. Подробности об этом можно найти в справочных материалах к модулю.
7. После установки воспользуйтесь PowerShell для выполнения команд нашего модуля на шлюзе. Об особенностях использования PowerShell на удалённых системах можно почитать здесь. Например, выполните, по порядку, нижеприведённые команды.
- Запустите службу WInRM, если она ещё не запущена.
if ((Get-Service WinRM).Status.ToString() -ne 'Running') { # Запуск службы WinRM Write-Verbose "Start WinRM service." net start WinRM }
- Добавьте удалённый шлюз в список TrustedHosts.
#Эта команда удалит исходный TrustedHosts и приведет к использованию $remoteip. #Кроме того, она может добавить новое значение к списку TrustedHosts. #Справку можно вызвать командой Get-Help Set-Item. #$remoteip это IP-адрес удалённого шлюза. #В качестве разделителя в строке команды используется комбинация пробел + обратная галочка. Set-Item WSMan:\localhost\Client\TrustedHosts ` -Value $remoteip –Force
- Создайте удалённую сессию PowerShell на удалённом шлюзе.
#$remoteip это IP-адрес удалённого шлюза. #$remoteaccount это учётная запись с административными полномочиями #на удалённом шлюзе. #В качестве разделителя в строке команды используется комбинация пробел + обратная галочка. $s = New-PSSession -ComputerName $remoteip ` -Credential "localhost\$remoteaccount"
- Выполните эти команды на удалённом шлюзе.
#Запустите удалённый скрипт для тестирования Invoke-Command -Session $s -ScriptBlock { #В этом блоке можете запустить желаемые команды PowerShell. #Эти команды будут запущены на удалённом шлюзе. #взглянем на сведения о нашем модуле Get-Command -Module IntelIoTGatewaySetup Get-Module IntelIoTGatewaySetup }
- Закройте удалённую сессию PowerShell после того, как выполните все необходимые команды.
Remove-PSSession -Session $s
Использование модуля
Здесь мы, так же, как в предыдущем разделе, исходим из предположения, что для работы со шлюзом используется компьютер. Расскажем о том, как пользоваться модулем. Для начала, если вы этого ещё не сделали, включите использование удалённого PowerShell на шлюзе. Теперь, на компьютере разработчика, выполните следующие шаги.
- Воспользуйтесь той же процедурой, которая описана в п.7 предыдущего раздела. Все следующие примеры рассчитаны на то, что исполняемые на удалённом шлюзе команды будут помещены внутрь блока конструкции
Invoke-Command
. - После установки модуля воспользуйтесь командой
Get-Help
с параметром–Full
для того, чтобы узнать подробности о командах модуля. Например, выполните следующую команду для того, чтобы получить список всех команд, доступных в модуле:Get-Command -Module IntelIoTGatewaySetup
- Для настройки уровня безопасности служат команды
Enable-IoTWinSecurities
иDisable-IoTWinSecurities
. Они, в свою очередь, вызывают другие команды модулей. Полезно будет взглянуть на справку по ним (Get-Help Enable-IoTWinSecurities –Full
). Вот примеры работы с ними. - Для того, чтобы включить базовый уровень безопасности («Basic» SKU) и задействовать приведённый в примере пароль восстановления BitLocker, выполните следующие команды.
#$RecoveryPW это пароль восстановления для BitLocker, # который вы хотите использовать. #Например: $RecoveryPW = # '099825-222222-607607-626285-132319-115621-083204-229482' #В качестве разделителя в строке команды используется комбинация пробел + обратная галочка. Enable-IoTWinSecurities -SKU "Basic" ` -BitLockerRecoveryPW $RecoveryPW ` -AddPowerShellRemotingFirewallRule -ErrorLog –Verbose
Взгляните на сообщения о результатах работы команд для того, чтобы выяснить, нет ли среди них предупреждений или сообщений об ошибках, которые касаются включаемых функций безопасности.
Например, предупреждение может содержать рекомендацию о том, что сначала надо перезагрузить систему для того, чтобы завершить установку необходимых средств Windows, а потом снова выполнить команду установки.
Для того, чтобы отключить / удалить настройки уровня безопасности, выполните следующую команду:
Disable-IoTWinSecurities -ErrorLog -Verbose
Отдельные команды, используемые в
Enable-IoTWinSecurities
и Disable-IoTWinSecurities
, можно применять и самостоятельно, для настройки отдельных функций безопасности.
Если TPM «не готов к использованию», его, сначала, нужно установить. В противном случае не получится включить BitLocker.
Если AppLocker настроен в соответствии с высоким уровнем безопасности («High» SKU), пользователи не смогут использовать PowerShell для добавления новых функций Windows. В соответствии с архитектурой системы, файл DISMHOST.EXE, который используется PowerShell, находится во временной папке, в директории, соответствующей учётной записи пользователя, а этот файл окажется заблокированным. В результате пользователи не смогут использовать наши команды для включения VBS, так как эта команда попытается установить необходимую ей функцию Windows. При выполнении команды Enable-IoTWinSecurities
мы сначала выполняем установку VBS. Если нужно установить функции Windows, выполните перезагрузку системы для того, чтобы завершить их установку, а затем снова запустите команду.
Для функционирования системы User Mode Code Integrity нам нужно установить ключ реестра для того, чтобы разрешить размещению нашего модуля войти в режим Full Language Mode для Code Integrity Policy. В частности, рассматриваемый здесь модуль, по умолчанию, устанавливается по адресу %Program Files%\WindowsPowerShell\Module
. Если это не так, соответствующий ключ реестра нужно настроить самостоятельно. Для этого нужно поместить путь, по которому установлен модуль (например, %Program Files%\WindowsPowerShell\Module
) в запись типа REG_MULTI_SZ
, которая называется «TestPath» и расположена в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\TRSData
.
Итоги
Сегодня мы рассказали вам о новом средстве для настройки IoT-шлюзов Intel, которые работают под управлением Microsoft Windows. Рассмотренный здесь модуль для PowerShell, IntelIoTGatewaySetup, позволяет взаимодействовать со шлюзами как локально, так и удалённо, а собранные в нём команды помогают упростить и ускорить процедуры настройки шлюзов.
Комментарии (0)