Автоматизация процесса инициализации AMT с помощью OneTouch Configuration

Статья "Автоматизация процесса инициализации AMT - OneTouch Configuration" из серии "Учебник по Intel AMT", часть четвёртая.

См. также:

Автоматизация процесса инициализации AMT

Кто внимательно читал предыдущую часть, сразу мог для себя отметить много неудобных вещей для админа, который потенциально может обслуживать тысячи компьютеров - это и первый заход в MEBx, и задание пароля, который после должен попасть на сервер, и задание PID/PPS, тоже нужных серверу для инициализации.

Понятно, что это не дюже удобно, даже для самих разработчиков. Потому ещё и в первой версии AMT для облегчения жизни админа AMT привлекли вполне очевидный вариант с использованием USB-флешки, на которую удобно закинуть из ОС нужные настройки и которые после бы "подхватил" MEBx и ME/AMT.

Реализация

Так появилась утилита USBFile, которая позволяет сформировать файл "setup.bin", который будучи закинутым в корень USB-накопителя, отформатированного в FAT16 - автоматически обнаруживается MEBx при загрузке непроинициализированного AMT-компьютера и позволяет автоматически запустить процесс инициализации/конфигурации плюс задать некоторые важные настройки.

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

FAT (FAT16)

Первое и самое важное: файловая система USB-флешки, для того, чтобы она могла использоваться для "автопровизионинга" - должна быть отформатирована только в FAT. При чём именно "старая досовская" FAT16, а не "новая виндовая" FAT32. Почему? Всё просто: FAT16 - "открытая" (свободная к использованию), а FAT32 - "закрытая" (проприетарная - микрософтовская). Плюс разработчики в 2004-м году особо не учитывали тот факт, что когда-то найти USB-флешку объёмом меньше 8GB, будет проблематично. Потому "там внутри" (MEBx) любой другой формат не будет идентифицирован и потому даже правильно сформированный файл настроек "setup.bin" - будет проигнорирован, т.к. просто не прочитается.

Как же быть, если нет такой маленькой флешки? Ничего страшного - просто форматируем в FAT ("просто" - не FAT32), что приведёт к сокращению объёма (до 2GB).

Windows FAT format

Несмотря на то, что при FAT-форматировании с 64КБ-сектором можно получить и 4ГБ, такой вариант не подойдёт, т.к. 64КБ-сектор не является стандартным и такую USB-флешку MEBx не распознает для автоконфигурирования. Потому лучше принудительно выбрать 32КБ в пункте "Размер кластера".

USBFile.exe

Утилита USBFile запускается в командной строке и имеет следующие параметры:

CODE
*** Intel® AMT USB file writer and viewer sample v4.0***

syntax:
To create a USB file:
USBfile -create
[-v 1|2|2.1|3|4] [-amt] [-rpsk]
[-v1file ]
[-dns ] [-fqdn ]
[-consume 0|1]
[-ztc 0|1]
[-dhcp 0|1]
[-sfwu 0|1]
[-fwu 0|1|2]
[-pm 0|1]
[-fwuq 0|1|2]
[-pp <16 byte GUID>]
[-pspo ]
[-psadd ]
[-ito <4 byte of idle time out>]
[-nrec ]
[-gen ]
[-xml ]
[-pid -pps ]
[-uHash 0|1|2]
[-oHash 0|1]
[-hash [sha1|sha256|sha384]]
[-redir ]
[-s4p ]
[-hostname ]
[-domname ]
[-vlan <0|1-VlanTag>]
[-passPolicyFlag <0|1|2>]
[-ipv6 ]
[-sdFqdn 0|1]
[-dDnsUpdate 0|1]
[-kvm 0|1]
[-userConsentOption 0|1|255]
[-userConsentPolicy 0|1]
[-prov 0|1]
[-conf 0|1]
[-scIden <4 bytes of support channel identifier>]
[-scDesc ]
[-sano ]
[-enrPass ]
[-servType 1|2|4]
[-spIden <16 byte GUID>]

To view the valid records of a USB file:
USBfile -view

To view a summary of a USB file:
USBfile -summary

-v 1|2|2.1|3|4: the setup file version, 4 by default
-v1file : creates a version 1 setup file
-amt: this will set the manageability selection value to AMT
-rpsk: this will generate a random psk pair
-dns : sets the PKI dns suffix name (up to length 255)
-fqdn : string up to length 255
-consume 0|1: generate inconsumable record or consumable record(s),
0 (inconsumable) by default
-ztc 0|1: disable/enable PKI Configuration
-dhcp 0|1: disable/enable DHCP
-sfwu 0|1: disable/enable secure firmware update
(Supported in versions 2.1 - 3)
-fwu 0|1|2: disable/enable/enable password protected Firmware local
update (Password protected mode is supported starting from version 4)
-pm 0|1: Enterprise/SMB provisining mode, 0 (Enterprise) by default
Note: this option is deprecated in version 3(+) file format
-fwuq 0|1|2: Always|Never|Restricted Firmware Update Qualifier
(Supported in versions 2.1 - 3)
-pp : set the power packege ,GUID should be in network order
-pspo provision server port number
-psadd :ip address for provision server
ipv4 example: 123.222.222.121
ipv6 example: fe80:ffff:0012::212
Note: ipv6 address supported only in version 3(+) file format
-ito <4 bytes of idle time out>: idle time out (valid values: 1-65535)
-nrec : number of records to create
-gen : number of records with a random psk pair to create
Note: this option is deprecated, use -nrec and -rpsk
options to generate multiple records with random psk pair
-xml : configuration xml file
-pid -pps : a psk pair
-oHash 0|1: disable/enable all preinstalled certs
-uHash 0|1|2: disable/enable all user defined certs/delete all
-hash [sha1|sha256|sha384]: to
compute and add the hash of the given root certificate file according
to the given hash algorithm. Up to three certificates hashes may be
specified.
Notes: 1. The hash algorithm is optional, if no hash algorithm
is given, the tool uses as default sha1
2. The sha256 and sha384 hash algorithms supported only in
version 3(+) file format
3. In order to compute sha256 and sha384 hash algorithms the
tool uses the OpenSSL dll file: libeay32.dll
-redir :
This is an integer that is calculated as follows:
bit 0 : 1 (Enable) or 0 (Disable) - SOL feature
bit 1 : 1 (Enable) or 0 (Disable) - IDER feature
bit 2 : 1 (Enable) or 0 (Disable) - Username/password
authentication type of the SOL/IDER in the ME FW
-s4p
:e.g 10.0.0.1:255.255.255.0:10.0.0.2:10.0.0.3:10.0.0.4
Notes: This option is not valid when generating an inconsumable record,
DHCP flag must be disabled
-hostname :ASCII reprasentation of host name max length 63
Note: This option is not valid when generating an inconsumable record
-domname : max length of domain name is 255
-vlan <0|1-VlanTag(1-4096)> : VlanStatus disable/enable e.g. 0-4011
Note: for a non supporting VLAN platforms,the MEBx ignores this setting
-passPolicyFlag <0|1|2> : Default/block in post/always open
-ipv6 : an XML file which holds the IPv6
configuration data
-sdFqdn 0|1: dedicated (0)/shared (1) FQDN
Note: This option is valid only if configuring the hostname as well
-dDnsUpdate 0|1: disable/enable dynamic DNS update
-kvm 0|1: disable/enable KVM
-userConsentOption 0|1|255: user consent disabled/enabled for kvm
only/enabled for all features ('255'-enabled for all features
option is supported starting from version 4)
-userConsentPolicy 0|1: user consent policy configurable remotely
-scramble : specify this flag in order to scramble the setup file
records.
-prov 0|1: stop/start configuration
Notes:
1. Sending the ME provisioning Halt/Activate value of 0, stop,
configuration will cause a global reset after all the USB key
settings have been applied.
2. To guaranty success of this command it is recommended to configure
either -dns or -fqdn, otherwise the success depends on the DHCP
state of the FW.
-conf 0|1: automated/manual configuration
Automatic configuration will provision the system through
communication with the setup and configuration servers.
Manual configuration will provision the system immediately
to the POST provision state after all other settings have
been applied.
-scIden <4 bytes of support channel id.>: support channel identifier
(valid values: 1-65535)
-scDesc : friendly name used to describe
the party representedby the support channel identifier.
60 character max.
-sano : unique string identifier given to the
end user by the service provider. 32 character max
-enrPass : unique string that allows access to the
service to complete enrolment. 32 character max.
-servType 1|2|4: reactive/proactive/one time session
-spIden : set the service provider identifier
GUID should be 32 hexadecimal chars in network order without spaces
For example: -spIden 0102030405060708090a0b0c0d0e0f00
represents the GUID: 04030201-0605-0807-090a-0b0c0d0e0f00
-scramble: specify this flag in order to scramble the setup file records

Examples:
USBfile -create setup.bin admin Admin22@ -rpsk -v 1 -nrec 10
-xml setup.xml -consume 1
USBfile -create setup.bin admin Admin22@ -pid AAAA-AAAN
-pps AAAF-AAAF-AAAF-AAAF-AAAF-AAAF-AAAF-AAAF
USBfile -view setup.bin

Notes:
1. The BIOS requires a binary file with the name "setup.bin".
2. If a certificate hash is added, all default hashes will be disabled
and all existing user defined hashes will be deleted.
3. If -pid option was selected the -pps option must come with it and vice versa.
4. If -rpsk or -gen option was selected along with -pid and -pps options,
the psk pair that will be used is the one supplied using -pid and -pps.
5. If -pspo option was selected the -psadd option must come with it and vice
versa.

Из длинного списка возможностей нас на данном этапе интересует скромный набор ключиков, а если конкретно, то это следующая строчка:

  • USBfile -create setup.bin admin vPro.by1 -pid 0000-00EX -pps 0000-0000-0000-0000-0000-0000-0000-0369 -v 1

Разберём по-порядку.

-create setup.bin — главный ключик, который задаёт имя выходного файла. "Setup.bin" (большие-маленькие буквы называния - не важно, чтобы не было проблем - лучше маленькие smile.gif ) - стандартное название, которое и будет по умолчанию искать на USB-флешке MEBx в попытке найти настройки для "автопровизионинга".

admin vPro.by1 - далее идут текущий MEBx пароль (обычно admin - если AMT-система не трогалась или тот, на который вы изменили, если уже заходили в MEBx) и новый пароль MEBx (который вы хотите поставить). Пароль должен быть удовлетворять "строгим правилам безопасности" (ранее рассмотренным в части про пароли AMT).
Внимание! Новый MEBx-пароль применится сразу же (даже если "автопровизионинг" не закончится), а содержимое файла setup.bin будет очищено (по соображениям безопасности) самим MEBx. Потому если вы не сохранили и не запомнили данный пароль (надеясь, что он у вас "останется на флешке") - можете пострадать.

-pid 0000-00EX -pps 0000-0000-0000-0000-0000-0000-0000-0369 — эти вполне понятные два ключика (-pid и -pps – должны присутствовать оба сразу) задают PID и PPS ключи, которые прописываются в MEBx.
-v 1 — очень важный ключик, который задаёт версию файла setup.bin. В нашем случае это 1, которая поддерживается всеми версиями AMT, начиная с первой. Другие версии setup.bin это:

-v 2 — AMT3+
-v 2.1 — AMT4+
-v 3 — AMT6+
-v 4 — AMT7+

Если поставить версию выше той, которую поддерживает MEBx - setup.bin будет молча проигнорирован (отдельные реализации правда могут про это ругнуться на экран, но часто это пролетает и всё равно не заметить). Потому лучше "перебдить" и использовать минимальную.

С другой стороны, если вас интересуют какие-то дополнительные параметры, то древние версии могут их не поддерживать и даже их задав в USBFile - они просто не попадут в setup.bin.

OneTouch Configuration

Итак, попробуем повторить рассмотренный в предыдущей части процесс, но с использованием USB-flash. Отформатировав флешку в FAT, а точней - сделав на флешке раздел FAT16 любого объёма до 2ГБ (т.е. хоть 50МБ - можно сделать различными утитами) - копируем туда полученный в результате работы утилиты USBfile файл setup.bin. Объём setup.bin обычно 1024 байта, однако если копировать много ключей (что также возможно - чтобы, например, делать разные для большого кол-ва систем), то объём может быть большим.

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

Перед применением лучше открыть-просмотреть файл, в котором легко определить сделанные настройки:

setup.bin

Главное, что нужно запомнить - текущий MEBx-пароль admin (это значит, что в MEBx ещё не входили). Тут, забегая вперёд, нужно отметить неприятную характеристику конкретной рассматриваемой системы HP dc7700, которая при попытке использовать "изменённый пароль MEBx" - будет ругаться:

USB Autoprovisioning default password failed

Поэтому, раз в прошлый раз мы пароль изменили, придётся его "сбросить в дефолтный". Эта процедура реализуется на разных системах по-разному, а в случае нашей HP dc7700 для этого нужно сделать Clear CMOS (только используйте для этого специальную кнопку ClearCMOS на плате - "народное" вынимание батарейки на время для сброса AMT может не помочь).

Способы сброса AMT (и пароля в admin) для других систем будут рассмотрены в следующих частях.

Так у нас получился случай, когда пароль "admin" и AMT-система, которую как бы ещё никто "не трогал" (в MEBx не входили и не начинали конфигурировать). Теперь вставляем флешку в любой USB-разъём (но не через USB-хаб) и включаем/перезагружаем AMT-компьютер. Если всё сделано правильно, то после отработки POST (перед загрузкой ОС) получим картинку:

USB key provisioning

При нажатии клавиши "Y" настройки из "setup.bin" попадают в MEBx.

Именно это действие - одно нажатие клавиши "Y" - и есть смысл названия подобного типа инициализации "OneTouch Configuration".

Спустя некоторое время получаем:

AMT Provisioning complete

В самое это время (даже ничего не нажимая) данные PID/PPS попадают в ME/AMT и на сервер отправляется Hello-packet с соответствующим PID. Если в ответ сервер проведёт конфигурирование - AMT-система становится доступной для управления. Нужно ещё раз отметить, что данный процесс запускается сразу после нажатия "Y" и не требует дополнительных действий ("нажать клавишу"). Предложение выключить компьютер ("Please powerdown the system") относится к следующему. Если процесс инициализации со стороны сервера по какой-то причине выполнен не был, то для того, чтобы вновь его запустить, то бишь вновь отправить Hello-packet - как раз потребуется отключить питание. Однако важно отметить, что "отключить питание" подразумевает "совсем" - т.е. "обесточить", "из розетки". После включения - вновь генерируется Hello-packet и так после каждого "powerdown-а", пока не проинициализируется.

Такой незамысловатый способ "автоматизации" - посылкой Hello-packet после включения - был улучшен в следующих версиях. Однако об этом - в следующих частях.

Комментарии

Как я понимаю, этот метод тоже не актуален начиная с версии AMT 6.0?

Не могли бы вы вкратце посоветовать как мне можно провести provisioning АМТ в enterprise режиме с USBkey?

Есть Intel RCS сервер в домене, создал root сертификат с помощью AMT SDK по этой статье, но не залил его через WSMAN.  Хотелось бы создать USB с помощью которого я смогу ввести систему в pre-provisioning режим, чтобы потом при включении комп мог обратиться к Intel RCS серверу используя сертификат, и чтоб сервер пересылал Secure Profile (xml) с интеграцией машины в Active Directory.

Если не ошибаюсь сейчас этот вышеописанный метод называется Remote Configuration using PKI. Уже несколько раз читал  статью по в Intel AMT SDK по нему, но так и не понимаю, что конкретно нужно делать. В SDK почему-то говорится о том, что нужно купить для сервера нужно покупать сертификат. Что-то меня интел уже вконец запутал.

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

Аватар пользователя apple_rom

"One-Touch" или по-простому "через флешку" - был и остаётся важным вариантом "полуавтоматизации" инициализации для всех версий AMT. В том числе для самой последней (на момент написания комментария - Intel AMT 9.x). Мало того, в статье упомянуто, что формат 4-й версии файла setup.bin - поддерживается лишь с AMT 7 и новей. А данная статья ориентирована на "старенькие" версии AMT и демонстрировала работу с setup.bin первой версии. Далее будут освещены все другие, но уже с использованием не "пионерского" PID/PPS, а с сертификатами.

Потому ждите, читайте с 8-й части учебника по АМТ и дальше - далее будет лишь PKI/сертификаты. До этого рассказывал лишь про PID/PPS только для того, чтобы можно было понять историю процесса развития АМТ, в то время как в реальности я им практически не пользовался, только, вот, как раз - для древних версий, условно АМТ2.x, многие из которых на деле так и не получили корректной работы в варианте Remote Config.

В "двух-трёх абзацах" не получится, слишком всё завязано, слишком много тонкостей и толстостей. Не только вас - всех (даже себя) - "запутал Интел". Именно потому последовательно пишу, чтобы раз и навсегда распутать.

Спасибо.

Будем ждать.

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

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
Anti-bot.