Реалізація технології Intel vPro у материнських платах компанії GIGABYTE UNITED. Дистанційно керуємо BIOS Setup

27.03.2020 Цікаве

Колись давно, коли я ще не був програмістом, але з комп'ютерами вже дружив, технології на кшталт RAdmin для мене були подібні до дива. Можна було підключитися до віддаленого комп'ютера, як у найкрутішому фільмі про хакерів, відкрити блокнот і написати там загрозливий напис. Щоправда, користуватись мені цим було ніде.

Потім у моє життя прийшов ssh: усвідомлення, що керуєш сервером за океаном, спочатку захоплювало, а тепер уже стало буденністю. Поки не набереш випадково halt, ага. А потім починаєш відкривати адмінку хостера та намагатись зайти в консоль управління сервером, щоб його запустити. А вона чомусь сьогодні тупить. Тоді пишеш у сапорт і нерничаєш. Не дуже подобається. Але це мої особисті програмні страхи.

Якось на старій роботі після зміни адміністратора знову прийшов вирішив навести лад у комп'ютерному парку і для цього підходив до комп'ютера, виганяв працівника, завантажував Everest, запускав діагностику та зберігав результат у файл. Так, обійшовши лише ~60 робочих місць на трьох поверхах, він дізнався, яке залізо є в його розпорядженні. Незручно.

І тут сцену виходить Intel vPro.

Intel vPro це така штука, яка дозволяє не боятися речей, описаних вище і навіть робити набагато більше. Складається vPro із двох компонентів: апаратного та програмного і про них я розповім під катом.

Апаратна частина

На апаратному рівні потрібний процесор і материнська плата (чіпсет, як правило, починається на Q, але потрібно дивитися специфікації), що підтримує vPro. У материнську плату вбудовано гігабітну мережеву картку та відеоадаптер, які здатні на низькорівневу роботу. На практиці це означає, що підключитися до комп'ютера за допомогою vPro можна без використання мало того, що мережевих драйверівОС, так і без самої ОС! І так, можна зайти в BIOS віддалено.

Підтримується як провідне, так і бездротове підключення. У випадку WiFi польоту для фантазії не дуже багато – операційна система має бути завантажена та підключена до точки доступу, зате при використанні проводу підключитися можна навіть до вимкненого комп'ютера. Ну, так кажуть маркетологи: насправді ж вимкнений комп'ютер можна включити і далі як завжди.

Програмна частина

Програмна частина укладена в абревіатурі AMT – це Intel Active Management Technology, яка обслуговує підключення та має величезні можливості.

Спочатку комп'ютер треба налаштувати для роботи з vPro і для цього знадобиться фізичний доступ. Після цього його, якщо це сервер, можна втратити або замурувати в кімнаті, як у анекдотах про адміністраторів. У разі, якщо адміністратор перебуває з пацієнтом в одній локальної мережі, проблем не виникає, якщо ж потрібний комп'ютерзахований за NAT – доведеться ставити сервер усередині для доступу. Щоправда інакше і бути не може – базові вимоги мережевої безпеки.

Сеанс зв'язку шифрується, а доступ до сервера можна отримати через консоль (serial over LAN), web-інтерфейс або VNC. Web-інтерфейс має непомітний робочий дизайн (який при цьому відмінно відображається на планшетах) і дозволяє отримувати статистику про залізо, його стан і перезапускати комп'ютер, налаштовувати мережевий інтерфейс і політики доступу до AMT, дивитися історію подій - дізнатися, чому ж у секретарки не вантажиться система, не підходячи до її комп'ютера.

При підключенні через консоль і VNC можна робити вже зовсім все: vPro надає повноцінний KVM з локальної машини на віддалену за допомогою роздільної здатності екрану до 1920х1200 і можливістю подивитися, як завантажується система від ініціалізації BIOS до безпосереднього завантаження ОС. При цьому навіть під час перезавантаження системи не відбувається відключення! Єдине, що для доступу в BIOS не вдасться просто затиснути Delete при старті системи і треба буде вибрати спеціальний пункт «Reboot to BIOS».

Після чого насправді завантажується BIOS.

Особливо приємно те, що можна підключитися до віддаленої машини по VNC навіть у тому випадку, якщо там злетіли драйвера мережевої карти (адже vPro працює на нижчому рівні ніж ОС) і прямо через VNC поставити всі драйвери. І якщо в межах офісу це ще можна вирішити, то їхати в дата-центр може бути не з руки.

Є ще одна цікава можливість під назвою IDE-R яка дозволяє завантажуватися з зовнішнього джереланіби це внутрішній жорсткий диск. Тобто можна підключитися по VNC, вказати образ для завантаження та завантажитись у завідоморобочій системі. Дуже може бути корисною функцією як для діагностики, так і для адміністрування. Наприклад, можна завантажувати клієнтську машину з системою в якій налаштований еталонний антивірус, перевіряти жетський диск і непомітно йти.

Про безпеку

За допомогою vPro працює технологія Intel Anti-Theft. Якщо у вас вкрали ноутбук, ви можете зв'язатися з Intel і вони заброкують його. У блозі Intel вже є даної технології. Після блокування новий власник комп'ютера побачить таку картинку.

Висновок та посилання

Незабаром, коли покоління комп'ютерів вкотре зміниться навіть у самих невибагливих користувачів, а в прогресивних компаній і того раніше, роботи в адміністраторів залишиться стільки ж, але робити її буде куди приємніше.

Підпишіться на коментарідо поста – у них обіцяє бути багато цікавого. Або перевірте топік через пару днів – я винесу всі найцікавіші коментарі окремим списком унизу посту.

vPro - віддалене керування у вашій мережі

У мережах організацій доводиться керувати десятками чи навіть сотнями комп'ютерів, підтримуючи стабільну роботу ІТ-інфраструктури, оскільки є фундаментом бізнесу. І на це завдання часто може йти чимало сил, часу та грошей. Комп'ютерами в невеликих організаціяхкерувати відносно легко, оскільки не потрібно бігати з поверху на поверх та між різними корпусами. Якщо ж бігати доводиться, то навіть елементарні завдання, такі як інвентаризація, оновлення ПЗ або заміна збійних комплектуючих можуть забирати чимало часу ІТ-персоналу, що влітає в копієчку.

На ринку є різні системиуправління, але більшість із них вимагає для своєї роботи функціонуючої ОС на віддаленому ПК або установки спеціального модуля, який знову ж таки коштує грошей. Рішення, що залежать від ОС, зазвичай не забезпечують доступ до налаштувань BIOS або не дозволяють змінювати послідовність завантаження, виконувати "холодне" перезавантаження або подібні дії. Якщо ОС з якихось причин не завантажується (наприклад, внаслідок атаки вірусу або серйозної програмної помилки), отримати доступ до віддаленої системи вже не вийде, і адміністратору доведеться розбиратися з проблемою на місці. Хоча є стандарти, що забезпечує управління ПК на рівні нижче ОС, їм не вистачає зручності та гнучкості. Як приклади можна навести такі функції, як пробудження через мережу, модем або RTC. Є і оточення PXE (Pre-Boot Execution Environment), яке дозволяє завантажувати комп'ютер із віддаленого мережного джерела. З його допомогою можна встановити ОС або виконати оновлення BIOS без встановлення на ПК фізичного носія. Мережева карта шукає сервер завантаження PXE у локальній мережі, який забезпечує доступ до NBP (Network Bootstrap Program). Нарешті, формат ASF (Alert Standard Format) відповідає за визначення помилок та збоїв. Він забезпечує обслуговування незалежно від ОС. Але ASF далекий від досконалості, оскільки він не підтримує автентифікацію, шифрування, можливості перезавантаження, дистанційне керування в реальному часі, віддалене оновлення BIOS і політики.

Що таке vPro?

vPro – маркетингова назва технології, аналогічно Viiv або Centrino. Під vPro має на увазі набір функцій, націлених на корпоративне оточення. По суті, ми отримуємо комбінацію функцій та технологій, наявних у портфоліо Intel: vPro вимагає певну версію чіпсету 965, а саме Q965 з підтримкою Intel AMT (Active Management Technology). Нарешті, на сайті vPro вказано процесор Core 2 Duo як частину vPro, хоча наша тестова системавід Acer було оснащено Pentium D. Тут важлива підтримка VT (Intel Virtualization Technology) з боку процесора, щоб він зміг запустити розділ ОС обслуговування.

Опис vPro з боку Intel підкреслює функції керування та безпеки. vPro дозволяє скоротити кількість викликів фахівців на місця та знизити накладні витрати на обслуговування ІТ-інфраструктури. Причому Intel обіцяє безпроблемну інтеграцію до існуючої інфраструктури управління. Під функціями управління Intel має на увазі можливість інвентаризації ПК, включаючи комплектуючі, через апаратне з'єднання, що не залежить від ОС та стану системи. Можна зібрати системну інформацію, так і отримати її з невеликої енергонезалежної пам'яті системи vPro. Зменшення кількості викликів на клієнтські місця забезпечується підтримкою віддаленого завантаження, діагностики та відновлення/резервування. Безпека забезпечується за допомогою фільтрації мережевого трафіку, легкої ізоляції та карантину інфікованих систем. Інформація про клієнтів буде завжди найсвіжіша, можна буде віддалено встановлювати оновлення та опціонально створювати віртуальні оточення для обслуговування.

vPro використовує власну мережу для керування, хоча зв'язок здійснюється за існуючою фізичною інфраструктурою. Розширення vPro в BIOS дозволяє динамічно отримувати IP-адресу з DHCP-сервера, але можна виставляти її вручну. Для vPro використовується вбудований мережевий контролер, інші мережеві картине підтримуються. Усі операції керування будуть працювати незалежно від стану активності комп'ютера (глибокий сну, сон, включений) або стану ОС.

Куди входить AMT?

vPro здебільшого спирається на технологію Intel Active Management Technology (AMT). AMT – комбінація функцій платформ та програмного забезпечення, яке зазвичай надається сторонніми розробниками. Більшість функцій, описаних у цій статті, входить до складу AMT.

Чи потрібна вам vPro?

Звичайно, підтримка vPro не безкоштовна, але платформи з vPro коштують не так дорого. Ми рекомендуємо цю технологію для великих корпоративних оточень, але у сфері малого бізнесу прийняти рішення складніше. vPro вимагає чіпсет Intel Q965, але материнські чіпсетина основі цього чіпсету бізнес-класу зазвичай не підходять для ентузіастів, оскільки на них немає додаткових аксесуарівчи хорошої підтримки розгону. Так, платформа vPro надасть можливість керувати комп'ютерами на зовсім іншому рівні, але приймати рішення потрібно індивідуально.

Налаштування системи для AMT/vPro

Налаштовувати систему для роботи з AMT/vPro дуже просто. Потрібно увійти в BIOS керування, що можна зробити натисканням CTRL+P після тесту POST (power-on self test), там можна буде вказати кілька основних налаштувань. Не забудьте увімкнути можливості AMT.

Головне меню Intel Management Engine BIOS Extension. До нього потрапляєш, натиснувши CTRL+P після тесту POST.

Взагалі ми були трохи розгублені, коли вперше спробували запустити AMT і налаштувати технологію. Ми отримали материнську плату з підтримкою vPro від MSI та комп'ютер vPro від Acer, але в обох випадках жодної документації не було. Щоб увійти до розширення BIOS на платі MSI, нам довелося вгадувати заздалегідь заданий пароль (який, до речі, виявився "admin"). Той самий пароль за умовчанням був і на ПК Acer.

Перед виконанням подальших операцій BIOS вимагає змінити пароль. Але, знову ж таки, цю операцію не можна назвати інтуїтивною, оскільки вимоги до пароля дуже суворі, і менш досвідчені користувачінавряд чи зрозуміють, чому пароль відкидається системою. Пароль повинен містити великі та маленькі літери, цифри та символи. Крім того, є ще один момент: ви повинні ввести host-ім'я комп'ютера, тільки після цього AMT/vPro запрацює - налаштування IP-адреси (статичної або через DHCP) недостатньо. Введену інформацію можна змінити.

У нас була документація Intel на декількох сторінках, але там все ж таки не було інструкції по швидкому старту. Нарешті ми отримали 190-сторінковий документ vPro Deployment Guide. Великий обсяг документації, отже постарайтеся виділити час її вивчення.


Меню налаштування AMT містить низку важливих опцій.

vPro для підприємств: з SCS

vPro може працювати у двох варіантах, перший призначений для малого бізнесу, другий націлений на корпоративну сферу та підтримує аутентифікацію за допомогою ключів та шифрування. Корпоративна версія вимагає наявності сервера SCS (Setup and Configuration Server), який відповідає за шифрування та автентифікацію.


AMT Commander - утиліта управління функціями AMT, але Intel постачає її лише розробникам. Зазвичай оточення vPro будується на додатках сторонніх компаній.

AMT Commander – одна з двох утиліт управління vPro. Але вона була створена на допомогу розробникам, і в реальних системах навряд чи використовуватиметься. Тому адміністраторам доведеться спиратися на утиліти сторонніх розробників. Але набір функцій, з іншого боку, цілком можна порівняти. Commander підключається до клієнтського ПК з підтримкою vPro. Утиліта дозволяє знаходити ПК з vPro, переглядати їх комплектуючі та виконувати базові налаштування AMT.


AMT Commander дозволяє знаходити комп'ютери з підтримкою vPro/AMT, але потрібно вказати діапазон IP-адрес для сканування.

Після успішного пошуку систем vPro у заданому діапазоні можна розпочинати роботу з клієнтами. Важливо простежити, щоб у кожного клієнта було задане host-ім'я AMT, інакше утиліта управління Intel не підключиться. Тут можна вмикати або вимикати такі функції AMT, як SOL (Serial-over-LAN) або IDE Redirect (для завантаження через LAN).


AMT Commander підключається до будь-якого ПК з vPro, який був правильно налаштований та доступний через мережу.



Можна налаштувати сторожові схеми (Watchdogs), які відстежуватимуть програми, що працюють на клієнтському ПК.


Натисніть на зображення для збільшення.

AMT Director – другий програмний пакетякий ми отримали для тестування. Це знову ж таки інструмент, призначений для розробників, тому реальні оточення будуть використовувати інші рішення. Основна мета AMT Director полягає в налаштуванні та ініціалізації. У принципі програма працює як сервер ініціалізації.


Знову ж таки, спочатку потрібно підключитися.

Сервер ініціалізації (Provisioning Server) для корпоративного оточення видає сертифікати безпеки та шаблони клієнтам vPro. Слід зазначити, що всі підключення з клієнтами шифруються, якщо тільки AMT працює в корпоративному режимі.

Якщо виробник ПК встановлений так звані програмні ключі (software keys), необхідні для корпоративного режиму AMT, перший контакт клієнта vPro з сервером ініціалізації запустить так звану процедуру Zero-Touch Setup, що є повністю автоматизованим настроюванням служб AMT.


Натисніть на зображення для збільшення.

Web-інтерфейс AMT є, напевно, самим простим засобомкерування комп'ютерами vPro, оскільки він легко доступний після ініціалізації та налаштування служб AMT. Незалежно від рішень сторонніх розробників, кожним комп'ютером vPro/AMT можна керувати за допомогою вбудованого веб-сервера. До web-інтерфейсу можна звернутися за IP-адресою клієнтської системи або host-ім'ям, яке задається у клієнтів (без нього AMT взагалі не буде працювати). Функція дистанційного керування (Remote Control) здається нам особливо корисною, оскільки вона дозволяє вимикати і включати систему, завантажуватися з різними опціями накопичувачів або просто "скинути" машини. Тут є істотна відмінність від з'єднання "Видалений робочий стіл" (Remote Desktop) під Windows: якщо під Windows вимкнення- процес програмний, який виконує ОС, то вимкнення AMT найближче до простого тумблера живлення.


Інформація про систему дуже детальна, тут можна знайти чимало інформації, яку зазвичай отримуєш лише через засоби управління, що працюють через ОС.



Журнал подій також докладний.

Функція дистанційного керування дуже корисна. Уявіть, що один із ваших комп'ютерів відмовився завантажуватися, і ви не можете отримати доступ до традиційних засобів дистанційного керування, такі як VNC або Remote Desktop. У такому випадку функція скидання AMT призведе до скидання системи (reset).

AMT підтримує віртуальні LAN, що дозволяють запускати два різні мережевих з'єднаньчерез дві логічні мережіпо одному фізичному кабелю. Зазвичай для підтримки таких мереж використовуються комутатори з VLAN, але функція VLAN у AMT працює зі звичайним мережевим залізом, не заважаючи передачі звичайних даних.


Ми увійшли як адміністратор, але AMT/vPro підтримує створення окремих користувачів з правами управління.


Прошивку AMT можна оновлювати незалежно від BIOS материнськоїплати.


Натисніть на картинку для збільшення

Утиліту Terminal Tool, яку ми теж спробували, можна використовувати для доступу до BIOS клієнтської машини через SOL (Serial-over-LAN). Тобто утиліта створює послідовне з'єднанняпо мережі. Ми використовували утиліту для доступу до налаштувань BIOS, причому опцій тут набагато більше, ніж стандартний інтерфейс управління AMT. Можна виконати всі необхідні зміни віддалено. Можна використовувати Terminal Tool для перенаправлення дискових запитів (щоб можна було завантажуватися з віддаленого дискапо мережі).


Натисніть на зображення для збільшення.

Ми отримали одну з перших материнських плат із підтримкою vPro - MSI Q965MDO. Вона використовує чіпсет Intel Q965, який нагадав нам G965 із доданою підтримкою ATM/vPro. Плата використовує твердотільні конденсатори та чотирифазний стабілізатор напруги, який досить потужний, щоб із платою запрацював процесор Core 2 Quad. Пасивне охолодження, що, як нам здається, важливо для офісного ПК, оскільки зайвий шум нікому не потрібен.

Південний міст підтримує шість портів Serial ATA/300, на платі є чотири слоти DIMM, що цілком нормально для форм-фактору MicroATX. Багато недорогих моделей на ринку пропонують всього два слоти DIMM. Економія на слотах не дуже хороша, якщо пізніше ви вирішите збільшити обсяг пам'яті.

Є звукова система HD, гігабітний Ethernet контролер від Intel, модуль Trusted Platform Module (TPM), вбудоване графічне ядро ​​і набір інтерфейсів USB 2.0. Для карт розширення на платі передбачено два 32-бітові слоти PCI і слот PCI Express x1. Якщо ви захочете встановити потужну відеокарту, є слот PCIe x16.

MSI не вклала у комплект постачання документацію vPro. Компанія явно бажає продавати плати з підтримкою vPro, але програмне забезпечення, складання та налаштування перекладені на компанії, що займаються впровадженням.

Оскільки перший досвід запуску vPro на MSI Q965MDO виявився невдалим, ми вирішили протестувати повністю зібраний ПК із підтримкою vPro. Ми отримали відповідну модель Acer, а саме: Veriton 3900 Pro. Це досить цікава система, хоча вона оснащена вже не найсучаснішим процесором Pentium D і всього 512 Мбайт пам'яті (DDR2-533 у двоканальному режимі). Крім того, ви не зможете встановлювати стандартні карти розширення, оскільки форм-фактор передбачає лише карти з низьким профілем. Цілком зрозуміло, що перед нами офісний ПК, який навряд чи стане лідером у тестах та й гнучкість обмежена. Але комп'ютер підтримує vPro, що нам потрібно в першу чергу. Причому підтримка здійснюється за допомогою чіпсету 945G, що наочно говорить про маркетингове коріння слова vPro. Насправді ця технологія до заліза прив'язана не так сильно, як хотілося б Intel.

Система чудово працювала, ми змогли насправді перевірити всі функції дистанційного керування vPro. Хоча привід для критики теж є: вентилятор дуже сильно шумить під час старту системи, а також якщо відключити управління швидкістю обертання в BIOS. Втім, система навряд чи перегріється. Але все ж таки шум пилососа по сусідству навряд чи приємний.

Висновок

Взагалі називати vPro новим великим винаходоммова не повертається. Технологія і справді не вимагає останнього покоління "заліза" Intel, та й подібні функції ми зустрічали раніше (скажімо, AMT). Але vPro - дуже розумна маркетингова ініціатива, яка поєднує дещо корисних функцій, Що дозволяє Intel продавати якнайбільше чіпів під настільки привабливою маркою. Подібний підхід добре зарекомендував себе з Centrino, він більш-менш спрацював у випадку з Viiv. Але, знову ж таки, важливо розуміти, що vPro не вимагає останніх чипсетів або процесори Core 2, щоб насолодитися всіма принадами технології віддаленого керування Intel. Хоча, звичайно, слід приділити увагу тому, щоб отримати останнє "залізо", якщо ви хочете використовувати будь-які специфічні функції управління, або бажаєте в майбутньому оновлювати AMT/vPro. Наприклад, у найближчому майбутньому буде додано можливість роботи vPro через бездротове з'єднання, але і апаратне забезпеченнямає бути сумісним.

З технологічного погляду негативних моментів у нас не виникло. Якщо ви знаєте, чому приділити увагу, зможете за лічені хвилини налаштувати клієнтські ПК для віддаленого керування за допомогою vPro. Для корпоративного оточення знадобиться відповідний рівень із сервером ініціалізації, який забезпечує додатковий рівень безпеки шляхом видачі сертифікатів. Але подібне рішення потребує і підготовлених адміністраторів.

Загалом, користь від впровадження комп'ютерів з підтримкою vPro існуючу мережує. Ви зможете користуватися ними як існуючими засобами дистанційного керування, так і додати підтримку vPro/AMT. Тобто спочатку можна вкласти гроші у відповідне обладнання, а пізніше запровадити систему дистанційного керування.

vPro дуже цікава і для ентузіастів та оверклокерів, оскільки додає новий рівеньконтролю та управління системою. Комп'ютер можна вмикати, вимикати та перезавантажувати через мережу. Можна навіть передбачити появу перероблених рішень vPro, які дозволяють через web-інтерфейс надавати прості послуги навіть при вимкненому комп'ютері. Втім, якщо вам до душі висока продуктивність, багатий набір функцій та можливість розгону, то доведеться вибирати між ними і vPro, оскільки ми поки що так і не виявили материнських плат, на яких була б одночасна підтримка vPro та опцій для ентузіастів.

На нашу думку, кожен ПК повинен містити ті чи інші засоби дистанційного керування без додаткових витрат. Корпоративні клієнтинапевно захочуть витратити гроші на складніші системи управління, але кінцевому користувачеві навряд чи завадять додаткові функціїпрактично задарма.

Таблиця конфігурацій

Система I
Socket 775 Intel Core 2 Extreme E6300 (Allendale 65 нм, 1,86 ГГц, кеш L2 2 Мбайт)
Материнська плата MSI Q965MDO, чіпсет: Intel Q965, BIOS: 2006-12-19
Пам'ять 2x 1024 Мбайт DDR2-667 (CL 5,0-5-5-15), Corsair CM2X1024-6400C3 XMS6403v1.1
Відеокарта Intel GMA 3000
Жорсткий диск 160 Гбайт, 7 200 об/хв, кеш 8 Мбайт, SATA/300, Western Digital WD1600AAJS
DVD-ROM Gigabyte GO-D1600C (16x)
Система II
Socket 775 Intel Pentium D 925 (Presler 65 нм, 3,0 ГГц, кеш L2 2x2 Мбайт)
Материнська плата Acer FQ965M, чіпсет: Intel Q965, BIOS: R01-A3
Пам'ять 1x 512 Мбайт DDR2-533 (CL 5,0-4-4-12), Apacer
Відеокарта Intel GMA 3000
Жорсткий диск 80 Гбайт, 7200 об/хв, кеш 8 Мбайт, SATA/150, Western Digital WD800JD
DVD-ROM Gigabyte GO-D1600C (16x)
Програмне забезпечення
Платформа Intel INF 8.1.1.1010
DirectX Version: 9.0c (4.09.0000.0904)
ОС Windows XP, Build 2600 SP2

КРИС КАСПЕРСЬКИ

Дистанційно керуємо BIOS Setup

Кожен з вас хоча б раз у житті стикався з необхідністю увійти в BIOS Setup і злегка його «підкрутити» або полагодити Windows NT, Linux/FreeBSD. Традиційно це завдання вирішується за допомогою миші та клавіатури, але що робити, якщо сервер фізично недоступний?

Комп'ютери сімейства IBM PC довгий часрозглядалися як недорогі робочі станції та сервери на їх основі почали будувати лише недавно. Розробники збільшили кількість процесорів, додали підтримку корекції пам'яті, відмовостійкі. дискові масивита інші принади, однак повне перетворення на сервер так і не настало. Зокрема, збереглася проблема віддаленого адміністрування. Операційні системи сімейства Windows NT підтримують віддалений контроль лише формально. Навіть такі програми, як Remote Admin, виконують обмежений спектр найпростіших операцій і на повноцінне обслуговування сервера по мережі не здатні. У світі UNIX справи трохи кращі, але проблеми все одно є.

Ось, наприклад, BIOS відмовляється завантажуватися, пропонуючи натиснути для входу в BIOS Setup або завантаження з параметрами за замовчуванням (див. рис. 1). Але сервер знаходиться в іншому кінці міста, та ще й у приміщенні, ключів від якого у адміністратора немає. Знайома ситуація, чи не так? Інший варіант: після встановлення чергового пакета поновлення операційна система «померла», стала жертвою хакерської атакиабо просто зависла. У всіх цих випадках стандартні засоби віддаленого керуваннявже не працюють і доводиться наближатися до сервера впритул, що досить важко. Навіть якщо сервер розташований на сусідньому поверсі, набагато краще управляти ним без відриву від свого улюбленого крісла, ніж бігати з дискетами (лазерними дисками) туди-сюди.

І це справді можна зробити! Існують щонайменше три шляхи, про які я хочу розповісти.

Віддалений контроль за BIOS

Порядок завантаження BIOS загалом виглядає так. Першим отримує керування BOOT-block (завантажувальний блок чи первинний завантажувач, не плутати з boot-сектором!). Він виконує ініціалізацію основного обладнання ( оперативна пам'ять, контролер переривань, системний таймер і т. д.), сканує ISA-шину та підключає BIOS всіх виявлених пристроїв (наприклад, SCSI-контролерів, відео, мережевих карток тощо). Перед завершенням своєї роботи BOOT-block розпаковує основний код BIOS (так званий BIOS extensions, або вторинний завантажувач) та передає йому керування. Вторинний завантажувач сканує PCI-шину та виконує остаточну ініціалізацію обладнання – розпізнає IDE-диски, при необхідності виводить інтерактивний редактор BIOS Setup, розподіляє системні ресурси між PnP-пристроями та нарешті зчитує boot-сектор з гнучкого або жорсткого диска.

Таким чином, BIOS, встановлені на картах розширення, отримують управління на ранній стадії ініціалізації, задовго до того, як починається підрахунок контрольної суми CMOS або розпакування вторинного завантажувача. До речі, більшість утиліт «пропалювання» BIOS не чіпають BOOT-block і навіть якщо пропалення пройшло невдало, ISA-слоти розширення все-таки ініціалізуються. З PCI-слотами все набагато складніше, і в загальному випадку вони доступні тільки з вторинного завантажувача (а він гине при невдалому пропалі). Деякі виробники, наприклад ASUS, включають до BOOT-block спеціальний драйвер для роботи з PCI-шиною, щоб материнська плата могла ініціалізувати відеокарту і хоч щось вивести на екран, навіть якщо основний код BIOS повалено. Але мені не відомий жоден BIOS, BOOT-block якого міг би працювати з шиною AGP чи PCI-express.

Отже, все, що нам потрібно – виготовити «фіктивну» ISA- або PCI-карту, встановити на ній «свій» BIOS і запрограмувати його на віддалене керування. Колись я «доопрацьовував» древні мережеві карти (які просто викидалися), перетворюючи їх на «пульт» віддаленого керування, що дозволяє редагувати налаштування BIOSпо локальній мережі. Це дуже просто зробити! Достатньо вміти програмувати на Асемблері і трохи розбиратися в архітектурі «заліза» (див. рис. 2).

Втім, корпіти над відладчиком зовсім необов'язково, все можна купити готове. Такі плати (вони називаються Remote Boards) випускає багато фірм. Зазвичай вони являють собою стандартну VGA-карту з інтегрованим COM-портом, до якого підключається зовнішній модем. У деяких моделях є порт Ethernet. Його можна встромити в DSL-модем або з'єднати зі Switch. Через ці порти передається копія екрана на віддалений монітор і приймаються команди від клавіатури, в результаті чого IBM PC перетворюється на справжнісінький «мейн-фрейм» і фізичного доступу до нього вже не потрібно (див. рис. 3)!

Великою популярністю користується модель Remote Insight від Hewlett-Packard, яка вставляється в PCI-слот та керується через 10/100 Мбіт Ethernet-порту. Вона підтримує як текстові, так і графічні режими (аж до 1280х1024/256 кольорів), живиться від зовнішнього джерела, що дозволяє їй натискати на кнопки Power і Reset. На додаток до віддаленої миші та клавіатури є можливість підключати віддалений дисковод та привід CD-ROM, без яких не обходиться жодна переустановка системи. Це фантастика! Завжди можна завантажитися з Live CD і подивитися, що трапилося з сервером і зберегти ці дані на будь-який носій, який тільки буде під рукою. Це посилює безпеку системи, оскільки сервер, оснащений "Remote Insight", може взагалі не мати жодних знімних носіїв!

До речі, про безпеку. Remote Insight підтримує SSL та 128-бітове шифрування, що дозволяє йому функціонувати навіть на незахищених каналах (а інших каналів у розпорядженні рядового адміністратора часто просто не виявляється).

Все управління відбувається через telnet, або через веб-браузер. Як буде зручніше адміністратору. На сервері можна встановити практично будь-яку операційну систему: Windows 2000/2003 (Advanced Server, Data Center, Terminal Server, Standard або Enterprise Edition), Novell NetWare 5.1, 6.0, Red Hat Advanced Server2.1, Red Hat Linux 7.3/8.0, SuSE Linux Enterprise Server V7/V8 та деякі інші (див. рис. 4).

Карту можна придбати в магазині або замовити по Інтернету безпосередньо в Hewlett-Packard. Вона обійдеться в $399, які явно варті того! В принципі можна знайти виробника і дешевше, але щодо ціна/функціональність цієї карти рівних немає, проте вона далека від ідеалу. Вихідних текстів прошивки нам ніхто не дасть, і доопрацювати «напилком» під свої конкретні потрібні її не вдасться (теоретично це можливо, але дуже важко). До того ж, якість реалізації протоколів шифрування знаходиться під великим питанням. Можливо, в карті присутні налагоджувальні люки або буфери, що переповнюються, які дозволять атакуючому захопити штурвал управління в свої руки (див. рис. 5)!

Цих недоліків позбавлена ​​PC Weasel 2000 від однойменної компанії. Разом із самою платою покупець отримує повний вихідний кодпрошивки та ліцензію на право його зміни. Це все та сама VGA-плата, тільки замість Ethernet-порту на ній знаходиться контролер UART (він же стандартний COM-порт типу 16550). На жаль, її функціональність набагато бідніша. Підтримуються лише текстові відеорежими і відсутні віддалені приводи, щоправда, зберігається можливість «натиснути» серверу на «Reset» чи подивитися POST-коди, щоб одразу оцінити масштаби несправності (див. рис. 6).

ISA-варіант обійдеться вам у $250, а PCI - у всі $350. Чи не надто велика ціна за відкриту ліцензію при урізаній функціональності? Не поспішайте з висновками. Вихідні тексти- Велика штука! Можна купити одну плату та встановити її на необмеженій кількості машин. Клонувати апаратне забезпечення нам не знадобиться. Якщо трохи переробити прошивку можна обійтися і стандартними компонентами, але про це трохи пізніше. Спочатку познайомимося з діаметрально протилежним класом пристроїв віддаленого керування, серед яких, можливо, причаїлося влаштування вашої мрії (див. рис. 7).

KVM, або Видалений контроль продовжується

Головний недолік VGA-плат із модифікованим BIOS полягає в тому, що вони вимагають відкриття корпусу сервера, що не завжди бажано. До того ж техніка перехоплення зображення та емуляція клавіатурного введення далека від ідеалу та надзвичайно конфліктна. KVM-комутатори сповідують зовсім інший підхід. Свою назву вони отримали за трьома першими літерами: Keyboard, Video-monitor та Mouse. Комутатор є автономним пристроєм, що підключається до комп'ютера через стандартні PS/2 і DB15 VGA-конектори. Їхній сигнал перетворюється на цифровий потік і передається на сусідній KVM-термінал, підключений до віддаленого комп'ютера. Грубо кажучи, ми підключаємо клавіатуру, мишу і монітор дуже довгими кабелями (див. рис. 8).

Можна настроювати BIOS Setup або розглядати Windows, що звалилася в синій екранАле ні віддалених дисководів, ні навіть можливості натиснути на Reset у нас немає, тобто ілюзія повного фізичного доступу виявляється не такою вже й повною. Зате підтримуються практично всі відеорежими і код BIOS не вноситься ніяких змін, а в критичних інфраструктурах це дуже актуально. Впроваджувати сторонній емулятор у банківський комп'ютер нам просто не дадуть, оскільки ця технологія не сертифікована, а ось у KVM-комутаторів усі необхідні сертифікати зазвичай є (див. рис. 9).

Переважна більшість моделей розрахована на керування кількома серверами з одного терміналу, при цьому сигнал пускається по екранованій кручений парі з максимальною довжиноюза кілька сотень метрів. Це зовсім не Ethernet і до мережного концентратора його вставляти не можна! Для реального віддаленого управління Інтернетом або модемом нам потрібно встановити додатковий комп'ютер, що приймає KVM-сигнал і за допомогою спеціального програмного забезпечення ретранслює його в «зручну» мережну форму. А це недобре! На щастя, деякі моделі підтримують роботу з модему чи локальної мережі. Такий тип KVM-комутаторів називається over IP, хоча тут не обходиться без варіацій. Просто завітайте у специфікацію: якщо там зустрінеться щось схоже на LAN чи Dial-Up, це те, що нам потрібне (рис. 10)!

Досить добре зарекомендувала себе фірма Minicom, в асортименті якої можна виявити щонайменше дві відповідні моделі – Phantom Dial-Up Remote Access та Smart IP Extender Switch Over IP. Перша коштує близько $800, друга… – $3500. Для банків та інших фінансових установ така сума, можливо, і підійде, але для дрібної контори – навряд. Звичайно, порившись в магазинах, можна знайти KVM-комутатор і дешевше, але краще зібрати систему віддаленого керування самостійно.

Як це працює, або Видалений контроль своїми руками!

Для створення власної системи віддаленого керування нам знадобиться будь-яка PCI-карта та материнська плата, яка підтримує роботу з PCI-шиною через BOOT-block (наприклад, ASUS). На борту картки обов'язково має бути «ліжечко» з BIOS. На найгірший кінець BIOS може перебувати в окремій мікросхемі, яку нескладно випаяти з плати і встромити в програматор. На жаль, мережні карти із «зовнішнім» BIOS виходять із вживання і знайти їх стає все складніше та складніше. Сучасні Ethernet-контролери інтегрують BIOS в мікросхему чиспету, і ми вже не можемо нічого з ним зробити (тільки не переплутайте BIOS з панельною для Boot-ROM, це зовсім не те саме!).

Ось і доводиться пересідати на SCSI-контролери, ціни на які впали до 10 $ -14 $. Зрозуміло, йдеться про найпростіші моделі, але нам нічого, крім BIOS, не потрібно! Тому навіть дешева модель працюватиме анітрохи не гірше за дорогу. Дбати про збереження працездатності контролера необов'язково. Набагато простіше переписати BIOS з чистого листа, чим додавати свої власні модулі до вже існуючого (проте за бажання це можна зробити) (див. рис. 11).


Додатковий UART-контролер купувати не потрібно. Краще скористатися тим, що вбудований у материнську плату, а за бажання можна задіяти ще й інтегрований Ethernet або будь-який інший засіб комунікації.

Розробка прошивок зазвичай ведеться на асемблері, але за бажання можна використовувати і високорівневі мови типу Сі/Сі++. Тільки в жодному разі не використовуйте стандартні бібліотеки вводу/виводу та накажіть лінкеру вимкнути Start-Up. Для цього достатньо перейменувати функцію main на щось на зразок MyMain. Оскільки Сі не підтримує базування, відкомпільований код має бути повністю переміщається (тобто виконуватися незалежно від базової адреси завантаження на згадку). Цього можна досягти, відмовившись від глобальних змінних і вимкнувши всі опції компілятора, які можуть генерувати код, що не переміщається, про який ми навіть не підозрюємо (наприклад, контроль «зриву» стека). Якщо ви не впевнені, що добре знаєте «задній двір» компілятора, не використовуйте його! Програмуйте на Асемблері. Він не підведе!

Код прошивки виконується у 16-розрядному сегменті реального режиму, проте ніхто не забороняє нам переходити в захищений режим і виходити звідти, щоправда, не зовсім зрозуміло, навіщо це потрібно. Використовувати службові функції BIOS неприпустимо, оскільки частина апаратури ще ініційована, та й сам BIOS ще розпакований. Працюйте тільки через порти вводу/виводу, проте перед цим не забудьте, що обладнання має бути ініціалізоване вручну. Зокрема, інтегрований COM-порт ще не має ні базової адреси, ні IRQ, адже PnP-менеджер, який розподіляє системні ресурси, ще не отримав управління! Доводиться відкривати документацію на південний міст чіпсету та програмувати все залізо з нуля. Це самий низький рівеньспілкування з апаратурою! Надзвичайно складний, але в той же час захоплюючий! На щастя, серверний міст вже частково ініціалізований, тому настроювати контролер пам'яті не обов'язково.

Тепер поговоримо про методики емуляції та перехоплення. Для виведення інформації на екран BIOS використовує власну сервісну службу INT 10h. Вона ж використовується на стадії первинного завантаження операційних систем сімейства Windows та UNIX. Перехопивши це переривання, ми зможемо грабувати виведення на екран і передавати його на віддалений комп'ютер(«Грабувати» – цілком легальний термін, запозичений у англомовних інженерів, які говорять у цьому випадку «grab», звучить грубувато, зате почесному).

Зрозуміло, без проблем тут не обходиться. Оскільки в процесі ініціалізації BIOS вектора переривання можуть встановлюватися багаторазово, однієї лише модифікації таблиці переривань (тобто класичного способу перехоплення) буде явно недостатньо. Так, ми можемо змінити far-покажчик за адресою: 0000h:10h*sizeof(DWORD) == 0000h:0040h,направивши його на свій власний обробник, але... через деякий час контроль за INT 10h буде втрачено. Щоб цього уникнути, необхідно встановити апаратну точку зупинки на запис цієї комірки пам'яті. У цьому нам допоможуть регістри налагодження сімейства DRx. Регістри Dr0-Dr3 зберігають лінійну фізичну адресу точки зупинки, а Dr7 визначає умови, за яких вона спрацьовує, змушуючи процесор генерувати переривання INT 01h, на якому повинен перебувати наш обробник, який виконує повторну «експропріацію» INT 10h у системи.

Приклад роботи з налагоджувальними регістрами наведено нижче.

Лістинг 1. Перехоплювач передає керування нашому коду в момент завантаження Boot-сектору

; перехоплюємо INT 01h

MOV ax, CS

XOR bx, bx

MOV DS,bx

; усунення нашого оброблювача

MOV, offset our_vx_code

; щодо сегмента 0000h

MOV, bx

MOV DS, ax

; встановлюємо точку зупинки на виконання

MOV eax,302h

; лінійна фізична адреса точки зупинки

MOV ebx,7С00h

; Заносимо значення у налагоджувальні регістри

MOV dr7,eax

mov dr0,ebx

Переривання INT 10h підтримує понад сотню різних функцій, номер яких передається у регістрі AH. Зокрема 02h керує курсором, а 09h друкує символ. Звичайно, щоб грабувати виведення на екран, необхідно вміти відрізняти одну функцію від іншої і знати, чим кожна з них займається. Опис функцій можна знайти або в технічній документації на конкретну відеокарту (а якщо карта вбудована в материнську плату, то в документації на серверний міст чіпсету), або в знаменитому Interrupt List Ральфа Брауна, щоправда, він давно вже не оновлювався і сильно застарів. остання версіядатується влітку 2000 року. З того часу вийшло безліч нових карт! Втім, базові відео-функції не зазнали жодних змін, і якщо відкинути нестандартні відеорежими, все працюватиме на ура.

Текстові режими грабуються просто чудово, а ось графічні в пропускну спроможністьаналогових модемів вже не вміщаються, і інформацію, що передається, доводиться якось стискати. Найпростіше – передавати лише зміни, попередньо запакувавши їх по gzip-алгоритму, для роботи з яким існує безліч готових бібліотек.

Щоправда, з переходом операційної системиу захищений режим, весь наш перехоплення буде «пригнічений», і віддалений комп'ютер відобразить похмурий застиглий екран. У принципі, з цим можна і змиритися. Головне, що нам підконтрольний BIOS Setup та початкова стадія завантаження осі, а там можна і стандартним telnet скористатися, якщо, звичайно, на середині завантаження Windowsне викине синій екран.

У своїх перших моделях систем віддаленого управління я чинив так: відстежував спробу переходу в захищений режим (а відстежити її можна за допомогою тих самих налагоджувальних регістрів), переходив у захищений режим сам, встановлював свої обробники переривання і віддавав управління операційній системі, не дозволяючи їй нічого міняти. Це працювало! Хоч і збоїло також. Універсального перехоплювача створити не вдалося, і довелося враховувати особливості реалізації всіх операційних систем. Зрештою я махнув рукою і написав звичайний драйвер-фільтр, що працює, як VGA-miniport, і пересилає екранний висновок на нашу карту розширення (рис. 12).

Деякі системи віддаленого контролю (наприклад, згаданий комплекс PC Weasel 2000) замість перехоплення INT 10h просто грабують відео-буфер, що на перший погляд суттєво спрощує реалізацію. Не потрібно возитися з налагоджувальними регістрами, ритися в Interrupt List і т. д. Насправді навіть у текстовому режимі є безліч екранних сторінок, а про графічний ми взагалі мовчимо! Причому неясно, як синхронізувати екранний висновок з його перехопленням. Сканувати відеопам'ять з частою 50-60 Гц цілком реально, але запхати награбовані дані в модемний канал вийде навряд. А як ця справа гальмуватиме! Не дивно, що PC Weasel 2000 працює лише з текстовими режимами!

Тепер перейдемо до емуляції уведення з клавіатури. Мишу не розглядатимемо, оскільки нормальні адміністратори вільно обходяться і без неї. Весь клавіатурний сервіс зосереджений у перериванні INT 16h, яке ми маємо перехопити. Коли програма (і зокрема, BIOS Setup) чекає натискання клавіші, вона обнуляє регістр AH і викликає INT 16h. Звичайно, існують інші варіанти, але цей - найпопулярніший. У цьому випадку наш обробник переривання повинен помістити ASCII код символу, натисненого на віддаленій клавіатурі, в регістр AL і повернути управління. Природно, все це буде працювати тільки до переходу операційної системи в захищений режим, а після - доведеться підвантажувати свій драйвер, що "сідає" поверх стандартного клавіатурного драйвера і емуляції введення.

Віддалені диски реалізуються дуже очевидно. За це відповідає переривання INT 13h. Функція 02h забезпечує читання сектора, 03h його запис. Номер сектора передається в регістрах CX та DX у CHS-форматі. Віддалений CD-ROM реалізується трохи складніше. Якщо ви не сильні в системному програмуванні, спочатку краще обмежитися віртуальними дискетами. Між іншим, використовувати фізичні дискети зовсім не обов'язково - віддалена машина може працювати з їх чином, записаним на жорсткому диску як файл. Для віддаленої переустановки Windows NT цей прийом цілком підходить. А зміну віртуальних дискет автоматизувати дуже легко.

В результаті ми отримаємо досить могутній комплекс дистанційного керування, і найголовніше – дуже дешевий. Звичайно, наш час теж щось коштує (а часу на розробку та пуско-налагодження піде багато), але якщо такі комплекси виготовлятимуть на замовлення, вони швидко себе окуплять, тим більше, що на них спостерігається стійкий попит, адже західні аналоги більшості просто не по кишені.

Для завершення картини залишається дрібниця – віддалений Reset, без якого наше творіння буде неповноцінним. Ну, тут все просто. Достатньо підключити до LPT-порту реле, що веде до «заповітної» кнопки, і проблему буде вирішено. З прошивки SCSI-контролера ми можемо керувати LPT-портом, звичайно, не забувши, що перед цим його потрібно ініціалізувати.

Один маленький трюк насамкінець. Якщо повноцінна система віддаленого керування вам не потрібна і лише потрібно заборонити BIOS вимагати натискання на клавішу при завантаженні, то без додаткового обладнання легко обійтися. Достатньо завантажити прошивку основного BIOS в дизассемблер і знайти всі «лайливі» повідомлення. Перехресні посиланняприведуть нас до машинного коду, який ці рядки виводить. Там буде код, який очікує натискання на клавішу, який ми повинні видалити. Прямий дзвінок INT 16h використовується рідко. Швидше за все, ми побачимо щось на кшталт CALL xxx, де xxx – адреса функції-обгортки. Для досягнення задуманого ми повинні замінити CALL xxx на "MOV AX, scan-code", вказавши скен-код потрібної кнопки. Наприклад, клавіша в більшості BIOS означає «завантаження з налаштуваннями за промовчанням», проте в деяких випадках може знадобитися натиснути або.

Проблема в тому, що основний образ BIOS упакований та захищений контрольними сумами. Практично всі розробники BIOS поширюють утиліти для розпакування/упаковки та перерахунку контрольних сумПроте жодної гарантії, що модифікований BIOS буде справно працювати, у нас немає. Помилки можуть з'являтися у найнесподіваніших місцях. Робота системи стає нестабільною, материнська плата без жодних видимих ​​причинпочинає зависати і т. д. Зрозуміло, для серверів це неприйнятно, тому доводиться йти іншим шляхом.

Замість модифікувати упакований образ основного коду BIOS, ми візьмемо невпакований BOOT-block і додамо до нього автоматичний патчер, що править потрібні байти прямо в пам'яті, коли розпакування вже завершено. Оскільки основний код BIOS розпаковується в RAM, жодних проблем із його виправленням не виникає. Головне – визначити потрібні адреси. У цьому нам допоможе той факт, що сам BIOS свій образ не затирає і в момент завантаження boot-сектора він присутній у пам'яті. Достатньо написати крихітну асемблерну програму, яка зчитує перші 640 Кб нижньої пам'яті і записує їх на гнучкий диск, а потім впровадити її в boot-сектор. Після перезавантаження системи ми станемо власниками розпакованого BIOS, що лежить за своїми «рідними» адресами.

Залишається тільки спалити оновлений BOOT-block і можна насолоджуватися безперебійною роботою сервера!

Висновок

Повноцінний віддалений контроль за системою – це реальність! Асортимент можливих рішеньнадзвичайно широкий: від готових (і дуже дорогих!) KVM-пристроїв до більш дешевих, але водночас і більш функціональних (!) плат розширення, які більшість програмістів легко виготовлять самостійно. Фізичний доступ до сервера буде потрібний тільки при його ремонті (тут без нього ніяк не обійтися, адже плоскогубці з викруткою по модему не передаси), але фатальні відмови відбуваються не так часто.

  1. Remote Insight "Lights Out" boards - огляд систем віддаленого управління (на англ.): http://www.paul.sladen.org/lights-out/riloe.html.
  2. Remote Insight Lights-Out Edition II – опис плати віддаленого керування від Hewlett-Packard з можливістю замовлення по Інтернету (на англ.): http://h18004.www1.hp.com/products/servers/management/riloe2/server-slot -matrix.html.
  3. PC Weasel 2000 – опис альтернативної плати віддаленого управління, мікрокод, який розповсюджується за відкритою ліцензією (англ.): http://www.realweasel.com/intro.html.
  4. Технічні характеристикивеличезної кількості систем віддаленого управління (переважно KVM-комутаторів, англ.): http://www.kvms.com.
  5. Raritan IP-Reach TR364 – опис KVM-комутатора TR364 (англ.): http://www.42u.com/telereach_bk.htm .
  6. Архітектура введення-виведення персональних ЕОМ IBM PC - електронна версіякниги, присвяченої пристрою IBM PC, яку рекомендується прочитати перед розробкою власної системи віддаленого управління (російською мовою): http://redlib.narod.ru/asmdocs/asm_doc_07.zip .
  7. Ralf Brown Interrupt List – електронний довідник з усіх переривань, портів введення/виводу, «чарівних» адрес пам'яті, включаючи нестандартні розширення та недокументовані можливості (на англ.):