Настройка Intel MPS (для работы Intel AMT + CIRA)

В предыдущей части мы подключились через MPS. Теперь рассмотрим саму установку и настройку Intel MPS.

Intel MPS — Windows Server Only
К сожалению, Intel MPS ставится лишь на Windows — любую серверную Windows (32/64bit), начиная с Windows Server 2003 (32-bit). Для Linux задумывался лишь обрубок MPS, потому можно говорить лишь о Windows, его и рассмотрим. В своё время разработчиками всё писалось на Windows Server 2003 (32-bit), его мощности более чем хватает, потому его и рассмотрим (на других версиях примерно также, рассмотрим в других частях позже).

Intel MPS + Windows Server 2003 (32-bit) на Amazon AWS
Далее всё описывается на английской версии Windows 2003 32-bit English Enterprise Edition - на ранних версиях разнообразных Intel AMT утилит были проблемы с "неанглийскими виндами", потому я такой пользуюсь "по привычке", возможно сейчас исправлено, не проверял.

Для последующего использования в примерах ставлю W2003 "на Амазоне" - один из крупнейших "облачных" сервисов - Amazon AWS или конкретно его серсив Amazon EC2. Это позволит нам сразу вывести представление Intel AMT на уровень "всемирного" сервиса, в то время как в "официальной документации" подразумевается использование Intel MPS внутри локальной сети. На тонкостях и проблемах подобного изменения остановлюсь отдельно в будущем (и не раз).

Итак, я для примера будут делать на европейском сервере амазона. Выбираю на нём запуск Win2003. По умолчанию оная "спрятана" - мол, ставьте Win2008, а лучше Win2012. Однако Win2003 присутсвует и именно "официальная" версия - просто нужно чуть порыться в маркете:

Win2003 EU Amazon

Для неё подойдёт самая простая (и самая дешёвая) виртуалка "микро":

Win2003 EU Amazon 2

Далее шаги стандартные, данная статья таки не про Amazon AWS :) - эти лишь для конкретики по виртуалке.

Пару минут и виртуалка доступна, прописываю ей DNS для отличия от предыдущего MPS (из предыдущей статьи) mps2.vpro.by.

DNS mps2

Далее подготавливаем сертификат свежесозданного сервера, строго аналогично, как было описано в предыдущей части.
Создаём сертификат

create cert

Экспортируем в формате PEM:

export save to pem

Открываем полученный файл в текстовом редакторе, видимо, что внутри две части - приватный и публичный ключи:

open pem

Выделяем текст приватного ключа и сохраняем в отдельный файл (mps2.vpro.by.private-key.pem):

save private key

Далее аналогично выделяем текст публичного ключа (часто его и подразумевают под словом "сертификат") и сохраняем в другой файл (mps2.vpro.by.pem):

save public key

Конвертируем приватный ключ в RSA с помощью OpenSSL:

openssl rsa -in mps2.vpro.by.private-key.pem -out mps2.vpro.by.rsa-key.pem

Также сохраняем в pem наш рут-сертификат и аналогично сохраняем его публичный ключ (приватный ключ его не нужен - его храним и никому не показываем :) ). В результате на сервер должно уйти три файла (rsa-key, cert и root), у меня это:

  • mps2.vpro.by.rsa-key.pem
  • mps2.vpro.by.pem
  • root__amt-guide.pem

ПО для Intel MPS
Далее закидываем нужно ПО. Для этого из состава Intel AMT SDK загружаем содержимое данной папки: Windows\Intel_AMT\Bin\MPS\ - там необходимые файлы и конфиги для Intel MPS.
Также потребуются также и "сторонние утилиты":


  • stunnel
  • Apache 2.2.8

Stunnel можно брать последний с сайта разработчика, на время написания статьи это уже "аж" версия 5.06 (я раньше лишь на четвёртой всё делал).
Апач лучше ставить именно старой версии 2.2.8, т.к. именно под неё делались модули интеловскими разработчиками и работоспособность с более новыми версиями не гарантируется (как сейчас не знаю, но несколько лет назад - не работало). Потому кому нужно, можно скачать отсюда - Apache 2.2.8.

Настройка Stunnel для Intel MPS
Ставим Stunnel. По умолчанию он генерит самоподписанный сертификат - нам он не нужен (у нас есть и мы уже закинули свои), потому галку можно снять:

stunnel install

Для удобства я все файлы храню в C:\mps, потому и stunnel ставлю туда, чтобы "не бегать" по диску:

stunnel install 2

При таком раскладе файл конфига stunnel это "C:\mps\stunnel\stunnel.conf", нам он не понадобится, потому заместо его содержимое пишем:
 

;stunnel works in server/*client*/ mode
   client = no
  
;SSL protocols supported by stunnel: SSL2, SSL3, TLS1
;choose which protocols you want
   options = NO_SSLv3
   options = NO_SSLv2
;options = NO_TLSv1
  
;ALL cipher suite except ones supported by AMT
;ciphers = ALL:eNULL:!AES128-SHA:!RC4-SHA:!NULL-SHA
  
;cipher suite supported by AMT
;choose which protocols you want
;ciphers = NULL-SHA
;ciphers = RC4-SHA
   ciphers = AES128-SHA
  
;ciphers not supported    
;ciphers = DHE-RSA-AES128-SHA
;ciphers = DHE-DSS-AES128-SHA
  
;compression
;compression = rle  
;compression = zlib
  
;trusted root certificate authority
   CAfile = c:\mps\certs\root__amt-guide.pem
  
;trusted server certificate
   cert = c:\mps\certs\mps2.vpro.by.pem
   key = c:\mps\certs\mps2.vpro.by.rsa-key.pem
  
;greatest debugging level
   debug = 7
  
;verify peer certificate
   verify = 0
  
   [amt-tcp]
;accept connection on 12345 port
   accept = 80
  
;connect to remote host
   connect = 127.0.0.1:1234
  
   TIMEOUTclose = 10

Это отредактированное рекомендуемое Intel содержимое конфига для stunnel. Всё достаточно очевидно:

  • включаем сервер stunnel (отключаем клиент)
  • отключаем SSL2 и SSL3, оставляя лишь "надёжный TLS" (честно говоря я так делал всегда, не учитывая "поломок" 2014-го года)
  • прописываем пути к файлам сертификатов
  • на первое время для настройки включаем лог отладки
  • прописываем секцию AMT (её название от балды, просто удобно)
  • я использую порт 80, т.к. запросы на него не фильтруют по понятным причинам (ясно, что при этом на виртуалке не может быть HTTP-сервера, потому после Апач будет переконфигурирован на другой порт)
  • расшифрованный трафик перенаправляется на без разницы какой внутренний порт - главное, чтобы ровно такой же после был прописан в конфиге MPS.exe, который его (трафик) и принимает

Установка и настройка Apache 2.2 для Intel MPS
Устанавливаем Апач. На вопросы о портах, домене и прочих настройках - жмём ОК, менять не стоит, т.к. после всё равно пропишем свой конфиг. Аналогично stunnel я лишь меняю папку (не обязательно) - для удобства:


apache install

После установки в моём случае папка с модулями Апача будет в c:\mps\apache\modules\. Закидываем в неё модули Intel MPS:

  • mod_proxy.so
  • mod_proxy_connect.so

Которые были в папке Intel AMT SDK в папке Windows\Intel_AMT\Bin\MPS\Apache. Такие файлы там уже имелись - перезаписываем (это изменённые версии от Intel).
Теперь нам нужно их подключить. Для этого находим файл конфига Апача, в моём случае это файл c:\mps\apache\conf\httpd.conf. Прописываем в него (можно в конец):

 
###MPS
   LoadModule proxy_module modules/mod_proxy.so
   LoadModule proxy_connect_module modules/mod_proxy_connect.so
   LoadModule proxy_http_module modules/mod_proxy_http.so

Далее прописываем айпишники и порт, на котором будет слушать апач. В моём я меняю на:

 
Listen 10.89.135.45:8089


Где первое - внутренний айпишник виртуалки на Амазоне и порт - какой удобно (но не 80 - его мы назначили для stunnel). Этот порт будет использовать админ для подключения к АМТ-компьютеру (т.е. это "не для АМТ", а для "управления АМТ").

Кроме это прописываем параметры SOCKS-прокси - IP и выбранный порт. У меня выбран порт 4322, но можно свой - это также порт для подключения админа. Так как "для АМТ" нужен лишь один входящий порт - 80, т.к. он подключается к stunnel. Все эти моменты (и их видоизменения) в других частях мы подробно разберём.

 
###MPS-rec
   ProxySocks On
   ProxySocksIp 10.89.135.45
   ProxySocksPort 4322
  
   ProxySocksDnsMode Remote
   ProxySocksAuth Off
   ProxySocksUsername Administrator
   ProxySocksPassword !QAZ1qaz
   ProxyRequests On
   ProxyVia On
  
   <Proxy *>
   Order deny,allow
   Deny from all
   Allow from all
   </Proxy>
  
   AllowCONNECT 623 664 16992 16993 16994 16995 5900

Всё это можно прописать в конец конфига httpd.conf. Не все параметры обязательны (отдельно после разберём), но с ними точно работает. smile.gif
После изменения - перезапускаем Апач-сервер.

apache restart

Если рестарт прошёл успешно (виден зелёный треугольничек) - половина настройки сделана.

Настройка Intel MPS.exe

У меня файлы MPS из SDK лежат, как писал, в C:\mps, потому конфиг это будет c:\mps\conf\mps.config.
Прописываем ранее сделанные настройки в stunnel и apache, чтобы MPS "знал" где и какие порты слушать:

 
AMTListenIP               = 127.0.0.1
   AMTListenPort           = 1234
   HttpListenPort          = 8089
   SocksListenIP           = 10.89.135.45
   SocksListenPort         = 4322
   SOAPListenIP               = 10.89.135.45
   SOAPListenPort      = 623


Больше "полезных" настроек нет (моменты дополнительных авторизаций и почему они не работают :) рассмотрим в следующих частях) - лишь логгер (можно задать его параметры). Он по умолчанию включен и потому, чтобы не ругался, лучше сразу создать папку c:\mps\logs.

Кстати, логи не отрубаются по определению :) — сам Intel MPS-сервер не меняется со времён Intel AMT 5 (был заброшен сразу после разработки).

Настройки остальных конфигурационных файлов:

  • AuthorizedServersList.config
  • mps_dynamic.config
  • NotificationList.config

Соверешенно не нужны, как минимум, для текущих наших задач, так что их не трогаем.

Старт Intel MPS
Итак, всё готово, стартуем. Апач уже трудится, т.к. он по умолчанию стартует как сервис. Стартуем stunnel (тоже можно поставить как сервис), если всё в порядке (никакие пути не напутаны, файлы на месте), то получим "чистенькое" окошечко:

 
2014.10.31 11:57:38 LOG7[2768]: No limit detected for the number of clients
   2014.10.31 11:57:38 LOG5[2768]: stunnel 5.06 on x86-pc-msvc-1500 platform
   2014.10.31 11:57:38 LOG5[2768]: Compiled/running with OpenSSL 1.0.1j-fips 15 Oct 2014
   2014.10.31 11:57:38 LOG5[2768]: Threading:WIN32 Sockets:SELECT,IPv6 SSL:ENGINE,OCSP,FIPS
   2014.10.31 11:57:38 LOG7[2768]: errno: (*_errno())
   2014.10.31 11:57:38 LOG7[3756]: GUI message loop initialized
   2014.10.31 11:57:38 LOG5[2768]: Reading configuration from file stunnel.conf
   2014.10.31 11:57:38 LOG5[2768]: FIPS mode disabled
   2014.10.31 11:57:38 LOG7[2768]: Compression disabled
   2014.10.31 11:57:38 LOG7[2768]: PRNG seeded successfully
   2014.10.31 11:57:38 LOG6[2768]: Initializing service [amt-tcp]
   2014.10.31 11:57:38 LOG6[2768]: Loading cert from file: c:\mps\certs\mps2.vpro.by.pem
   2014.10.31 11:57:38 LOG6[2768]: Loading key from file: c:\mps\certs\mps2.vpro.by.rsa-key.pem
   2014.10.31 11:57:38 LOG7[2768]: Private key check succeeded
   2014.10.31 11:57:38 LOG7[2768]: Loaded c:\mps\certs\root__amt-guide.pem revocation lookup file
   2014.10.31 11:57:38 LOG7[2768]: Client CA list: c:\mps\certs\root__amt-guide.pem
   2014.10.31 11:57:38 LOG6[2768]: Client CA: C=BY, O=IT Galaxy, CN=AMT-guide
   2014.10.31 11:57:38 LOG7[2768]: DH initialization
   2014.10.31 11:57:38 LOG7[2768]: Could not load DH parameters from c:\mps\certs\mps2.vpro.by.pem
   2014.10.31 11:57:38 LOG7[2768]: Using hardcoded DH parameters
   2014.10.31 11:57:38 LOG7[2768]: DH initialized with 2048-bit key
   2014.10.31 11:57:38 LOG7[2768]: ECDH initialization
   2014.10.31 11:57:38 LOG7[2768]: ECDH initialized with curve prime256v1
   2014.10.31 11:57:38 LOG7[2768]: SSL options: 0x03000004 (+0x03000000, -0x00000000)
   2014.10.31 11:57:38 LOG5[2768]: Configuration successful
   2014.10.31 11:57:38 LOG7[2768]: Listening file descriptor created (FD=252)
   2014.10.31 11:57:38 LOG7[2768]: Service [amt-tcp] (FD=252) bound to 0.0.0.0:80


Далее из командной строки запускаем MPS.exe (он не умеет работать "по умолчанию" как сервис, но это можно исправить).

start MPS

Сообщения говорят о том, что мы не настраивали аутентификацию и что Intel MPS готов к работе.
Не забудьте разблокировать используемые порты в Windows Firewall:

MPS unblock

(или выключить его совсем, как я обычно делаю, управляя открытыми портами для виртуалки в целом) - иначе MPS будет ругаться и не работать.

Теперь, если повторить процедуру из прошлой части и переконфигурировать АМТ-компьютер на данный MPS-сервер, то получим CIRA-связь через него. А можно настроить его и "вторым" MPS-сервером (АМТ-компьютер сможет подключаться к любому из-них). Но эта логика сложней (и много более проблематичней) — мы её как-нибудь позже.

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

Filtered HTML

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

Plain text

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