Автор: (c)Крис Касперски ака мыщъх
Широко используемые в настоящее время программные средства удаленного администрирования годятся лишь для "подсобных" работ по хозяйству. Ни залезть в настройки BIOS'а, ни переустановить операционную систему они не в состоянии! Для этого нужен физический доступ к серверу, а до него еще добраться нужно! А вот если докупить немного железа, то никуда добираться не потребуется! Систем аппаратного администрирования сегодня развелось как грязи, но мыщъх поможет в них сориентироваться!
Системы удаленного администрирования делятся на программные и аппаратные. Первые, как и следует из них названия, представляют собой простую программу, работающую "поверх" операционной системы и опирающуюся на предоставляемые ею ресурсы (выделение памяти, установка сетевых соединений и т.д. и т.п.). Если же при загрузке системы вспыхивает Голубой Экран Смерти (ядро Linux'а впадает в панику) или же система работает нестабильно, то... утилиты удаленного администрирования оказываются бесполезным балластом, не говоря уже о том, что все они представляют потенциальную брешь в безопасности. Но не будем критиковать то, на чем сидим...
Удаленные системы аппаратного администрирования достаточно разнообразны и образуют, по меньшей мере, две обособленные группы, функционирующие на разных физических принципах, среди которых с большим отрывом лидируют KVM'ы - устройства, подключаемые к VGA, PS/2 Keyboard, PS/2 Mouse разъемам и запихивающие сигнал либо в простой экранированный кабель протяженностью до нескольких сотен метров, либо в Ethernet-порт (доступный из любой точки локальной сети), либо же (в самом сложном случае) реализующих собственный TCP/IP стек, позволяющий администрировать сервер хоть из соседней комнаты, хоть с побережья Флориды.
Менее популярны ISA/PCI платы, встраиваемые непосредственно внутрь компьютера и перехватывающие клавиатурный ввод/вывод вместе с текстовыми (реже - графическими) видеорежимами. Главное их достоинство в том, что они способны работать даже при отказе одного или нескольких узлов компьютера, в частности, перешивать "слетевший" FLASH-BIOS, даже если материнская плата не реагирует ни на клавиатуру, ни на что другое. К тому же, если KVM'ы вынуждены передавать аналоговый видеосигнал, требующий широких каналов, то передача содержимого видеопамяти в "нативном" режиме (точнее, даже не самой видеопамяти, а ее изменений) позволяет запихать даже 1280x1024 в хлипкий модемный канал на 19.200, сохраняя при этом до 13-16 fps, что вполне достаточно для комфортной работы. Плюс ко всему цифровой видеоряд очень нехило жмется по алгоритму MPEG4 с коэффициентом квантования равным единице, при котором он превращается в lose-less алгоритм.
Теперь, после краткого введения в курс дела, рассмотрим каждую из этих систем во всех подробностях.
Аббревиатура KVM расшифровывается как Keyboard, Video-monitor & Mouse и первоначально эти устройства предназначались для объединения нескольких компьютеров в одну консоль (что намного удобнее, чем держать несколько мониторов и клавиатур на одном столе). Они выпускаются многими компаниями и их довольно часто можно увидеть на витрине магазинов. Спрашивайте KVM-switcher'ы или, по-русски, свитчи (переключатели).
Самые простые свитчи - механические - и состоят из простого переключателя, обвешанного такими же простыми фильтрами, призванными исключить помехи, возникающие при переключении, но, как показывает практика, помехи все-таки возникают и часто интерпретируются компьютером как "мусорный" клавиатурный или мышиный ввод, создающий вполне реальную угрозу потери данных (надеюсь, не нужно объяснять почему?).
Рисунок 1. Схема подключения трех компьютеров к одной консоли через KVM-свитч.
Чуть более сложные (а, значит, и дорогие) свитчи основаны на электронных ключах и помех уже не вызывают, однако и электронным, и механическим свитчам присущи серьезные недостатки, а именно - крайне ограниченная длина кабеля, в среднем составляющая пару десятков метров. При этом на мониторе наблюдается устойчивая рябь и 1280х1024 - это предельное разрешение. При увеличении длины кабеля до 100 метров помехи существенно возрастают и приходится переключаться в режим 800x600 или ниже. CRT-мониторам - хорошо. Они работают на (практически) любом разрешении, а вот LCD изначально затачиваются под одно конкретное разрешение и под всеми остальными либо показывают экран размером с почтовую марку, либо занимаются экстраполяцией, что также не добавляет качества.
Короче, для удаленного администрирования KVM-свитчи непригодны, поскольку радиус их действия не выходит за стены конторы, в которой установлен сервер и, хотя существует теоретическая возможность кинуть шматок кабеля в соседний корпус, сразу же возникают проблемы с безопасностью, поскольку никакой защиты от несанкционированного доступа тут нет и хакеру ничего не стоит захватить управление сервером.
Рисунок 2. KVM-свитч, подключаемый через Ethernet.
Продвинутые KVM-свитчи имеют встроенный Ethernet-контроллер, позволяющий передавать информацию по локальной сети в открытом или зашифрованном виде. Естественно, стоят они намного дороже и, что самое неприятное, съедают львиную долю пропускной способности 100-мегабитного Ethernet'а и даже если в локальной сети установлен сервер, обеспечивающий выход в Интернет, администратору (для управления из дома) потребуется, по меньшей мере, DSL-модем, т.к. обычный Dial-Up сразу же захлебнется и завалится.
Для жителей больших городов высокоскоростной доступ уже давно перестал быть проблемой, однако на периферии дела обстоят существенно хуже, да и в городах далеко не каждый сидит на оптоволокне. К тому же, опять-таки возникает проблема безопасности. Какие бы системы защиты не применялись, они потенциально могут быть хакнуты и лучше всего рулить серверов по прямому модемному подключению. Но ладно, не будем предаваться мечтам, а вернемся к суровым реалиям.
На рынке соседствуют десятки, если не сотни моделей KVM-свитчей с поддержкой Ethernet или даже встроенным TCP/IP стеком. Достаточно набрать в Гугле слово "KVM" и поискать в "Sponsored Links" модель подешевле и посимпатичнее.
Рисунок 3. Почем KVM для народа?
Существует даже открытый проект "Opengear", бесплатно распространяющий референсную схему вместе с печатной платой и встраиваемой операционной системой, под которой все это хозяйство и работает: http://linuxdevices.com/news/NS8120924667.html. Между прочим, заказать мелкую партию Opengear'ов на заводе (или взять паяльник в лапы и заняться этим делом самостоятельно) выходит дешевле, чем покупать аналогичный свитч на рынке, к тому же, собирая Opengear, вы получите именно то устройство, которое нужно вам! Но о вкусах, как говорится, не спорят. Кто-то предпочитает покупать колбасу в магазине, кто-то - коптит ее сам.
Рисунок 4. Референсная модель открытого KVM с поддержкой Ethernet'а в собранном виде.
Как бы там ни было, KVM-свитчи с поддержкой Ethernet'а реализуют удаленное администрирование в полном масштабе. Вставляем в CD-ROM диск с дистрибутивом своей любимой операционной системы, а в дисковод - дискету с образом FLASH-BIOS и... отключаем дисковод в BIOS'е (в самом деле, нафига дисковод серверу?!). Он не будет мешать нормальной работе сервера, но если вдруг что-то случится с BIOS (которую, кстати, можно перешивать удаленно с помощью KVM), система после перезагрузки "увидит" флоп и после подтверждения администратора, переданного все через тот же KVM, совершит откат к правильному образу.
Некоторые модели матерей реализуют процедуру восстановления BIOS'а путем переключения перемычки на плате. Тут KVM отдыхают и единственное, что можно посоветовать администратору - не выбирать такую плату или использовать интегрированные устройства удаленного управления, о которых речь пойдет ниже.
Недостатки KVM-свитчей особенно очевидны при администрировании UNIX-серверов, управляемых преимущественно из командной строки, весь ввод/вывод которой свободно вмещается в 9600 Бод/сек или даже менее того. Однако даже в текстовом видеорежиме аналоговый видеосигнал требует достаточно широкой полосы пропускания и высококачественных АЦП/ЦАП на свитче, видеокарте и мониторе, в противном случае текст будет невозможно читать. Бывает и так, что некоторые модели свитчей несовместимы с определенными мониторами/видеокартами или страдают хронической термонестабильностью, т.е. меняют свои свойства в зависимости от температуры, вынуждая подстраивать LCD-монитор по мере прогревания/охлаждения всех устройств. Кому это нужно?!
К тому же, при "тяжелых" зависаниях сервера спасает только "reset", а его через KVM-свитч никак не нажмешь. Про прочие переключатели, расположенные на плате, мы уже говорили. Выход? Вставить внутрь компьютера специальную плату, имеющую физический доступ к видеопамяти и прочему оборудованию.
Таким платы не имеют устоявшегося названия и производятся сравнительно небольшим количеством фирм (преимущественно размещенных внутри гаража) обычно маркирующих их как "Remote Board". Но это ничего не говорящее название, может быть присвоено практически любому устройству, так что при заказе товара через Интернет следует соблюдать особую осторожность.
Рисунок 5. Удаленное ковыряние в настройках BIOS'а.
А что же гиганты? Почему же они до сих пор игнорируют этот сектор рынка?! Ответ - не хотят составлять конкуренцию своим же серверам. Ведь настоящий сервер отличается от PC в первую очередь тем, что изначально поддерживает обширные возможности удаленного управления. Физический доступ требуется только в критических случаях (ну или при плановом техническом обслуживании).
Чтобы понять, как устроена и работает Remote Board, необходимо хотя бы в общих чертах разобраться, что происходит в процессе загрузки машины и какую роль при этом играет BIOS. Материнские платы от EPOX хороши тем, что отображают ход загрузки в виде быстро сменяющих друг друга шестнадцатеричных цифр на двухразрядном восьмисегментом индикаторе. Нет, следить за ходом загрузки с помощью индикатора мыщъх не предлагает (для этого потребовалось бы снимать его на высокоскоростную камеру). Намного проще открыть приложение к юзер гайду, где перечислены все цифры вместе с соответствующими им стадиями загрузки системы.
Первым получает управление загрузочный блок (boot-block), который, выполнив инициализацию критически важных узлов, приступает к сканированию ISA шины, отыскивая контроллеры устройств и проецируя ПЗУ каждого из них на адресное пространство процессора. На поздних стадиях загрузки подключается модуль, ответственный за поддержку шины PCI, инициализирующий PCI-устройства.
Ладно, забудем об ISA-шине и сосредоточим все внимание на PCI. Всякое PCI-устройство имеет полный доступ к адресному пространству ЦП, на которое всегда отображается видеопамять текстового режима, причем отображается она заранее определенным образом. То же самое относится и к графическим VGA-режимам. А вот с появлением SVGA начинается полный разброд и чехарда. На адресное пространство отображается лишь часть внутренней памяти видеокарты и нет никакой возможности отобразить ее всю целиком. Единственный путь - воздействуя на PCI-регистры карты (с точки зрения процессора - порты ввода/вывода) переключать банки, но стратегия переключения банков не стандартизирована и варьируется от одной карты к другой.
Следовательно, мы вынуждены либо встраивать драйвера всех (ну или не всех, а хотя бы самых популярных видеокарт) в ПЗУ нашей Remote-Board (представляющей собой обыкновенную PCI-плату), либо довольствоваться только текстовыми и VGA-режимами. С некоторой натяжкой можно замахнуться на работу в VESA, но тут свои проблемы. Хотя формально все современные видеокарты являются VESA-совместимыми, далеко не все из них поддерживают VESA-режимы правильно.
Как вариант, можно встроить систему удаленного управления в ПЗУ видеокарты. Некоторые производители именно так и поступают. Но этот путь связан со многими патентными и лицензионными ограничениями, поэтому не очень-то популярен.
Кроме доступа к видеопамяти, нам необходимо перехватывать мышь и клавиатуру. В случае PS/2 шины это решается без проблем, поскольку порты PS/2 шины проецируются на адресное пространство ввода/вывода процессора, доступное остальным PCI-устройствам для чтения/записи. С USB клавиатурами и мышами ситуация намного более напряженная, поскольку они еще плохо стандартизированы, к тому же "оседлать" USB в техническом плане намного сложнее, чем PS/2, однако поскольку речь идет о внутреннем перехвате управления, то плате удаленного управления совершенно все равно, какие физические устройства подключены к компьютеру. Главное, чтобы BIOS (и/или драйвер операционной системы) был настроен на работу с PS/2, что всегда можно сделать.
Остается только присобачить к плате удаленного управления COM-порт, провесить на него модем, запитать их обоих от внешнего источника питания и... мы почти у цели. Для администрирования всего лишь потребуется модем плюс терминал. Модем - это, конечно, хорошо (тем более для прокладки модемного кабеля можно воспользоваться незадействованными проводами в витой паре, которые, собственно говоря, для телефона и предназначены), однако во многих случаях удобнее администрировать сервер через локальную сеть. Ну, это не проблема! Достаточно встроить систему удаленного управления в сетевую карту, благо большинство из них снабжено FLASH-BIOS'ом и свободное место в нем есть!
Таким образом, существующие модели Remote Board базируются либо на автономной PCI-плате, имеющей доступ к PCI-регистрам остальных устройств, либо на базе видео- или сетевой карты с доработанным BIOS'ом. Наличие внешнего источника питания позволяет "нажимать" на Reset через реле или электронный ключ, аналогичным образом поступая с кнопкой Power и перемычками на плате.
Разобравшись с мат. частью, обратим свой взор к витринам магазинов и посмотрим, что хорошего из готовых изделий нам предлагают (вообще-то, при наличии некоторого усердия и умения держать паяльник в руках, спаять Remote Board можно и самостоятельно, но далеко не всякий шеф позволит пихать в критический сервер несертифицированный агрегат, да еще собранный в кустарных условиях).
Рисунок 6. Внешний вид платы удаленного управления Remote Insight от Hewlett-Packard.
По соотношению функционала к цене бесспорным лидером является модель Remote Insight от Hewlett-Packard, вставляющаяся в PCI-слот и несущая на своем борту интегрированный 10/100 Мегабитный Ethernet-контроллер. Поддерживаются как текстовые, так и графические видеорежимы (причем графические - вплоть до 1280х1024 и 256 цветов в придачу; это конечно, не True Color, но мы же не "Шрека" собираемся смотреть!). Управление - мышь да клавиатура, плюс традиционная (для данного класса устройств) возможность удаленного нажатия на Power и Reset. В качестве приятного бонуса предлагается виртуальный дисковод и привод CD-ROM, образ которого можно заранее положить на жесткий диск или передать по Ethernet. Вроде бы мелочь, а приятно. Компьютер, оснащенный Remote Insight может, вообще не иметь никаких съемных носителей, что существенно усиливает безопасность, а к безопасности в Hewlett-Packard подходят с головой, не забывая о шифровании. Как говориться, свинья не выдаст, а 128-битный SSL будет сниться хакерам в ночных кошмарах. Внешний источник питания также входит в комплект и заботиться о его приобретении не нужно.
Удаленное администрирование осуществляется либо через telnet, либо через web-браузер. Список поддерживаемых операционных систем довольно велик и включает в себя: Windows 2000/2003 (Advanced Server, Data Center, Terminal Server, Standard или Enterprise Edition), Novell NetWare 5.1, 6.0, Red Hat Advanced Server 2.1, Red Hat Linux 7.3/8.0, SuSE Linux Enterprise Server V7/V8 и многие другие клоны UNIX'а.
Карту можно приобрести в магазине или заказать по Интернету непосредственно в самой Hewlett-Packard. Все это удовольствие обойдется в $399 (цена указана на момент написания статьи и может варьироваться как в ту, так и в другую сторону).
Существуют и открытые варианты плат удаленного управления, например, PC Weasel 2000, поставляемой в ISA и PCI-вариантах вместе с принципиальной схемой и исходным кодом прошивки по цене в $250 и $350 соответственно, причем вместо Ethernet-контроллера имеется только тормозной UART (т.е. контроллер COM-порта), а блок питания в комплект не входит, в свете чего становится непонятно - за что платить такие деньги?!
Впрочем, не будем навязывать читателю выбора. Open Source имеет столько же прав на существование, сколько корпорация Hewlett-Packard со всеми своими патентами.
Устройств удаленного управления много, но у каждого из них есть свои сильные и слабые стороны и найти систему без недостатков как-то не получается. Но вот в совокупности, они предоставляют неплохой инструмент администрирования, решающий огромное количество проблем. Короче, как водится, побеждает дружба... Но вот кого она побеждает - это вопрос, на который у мыщъха нет ответа.