Средства дистанционного администрирования

Средства дистанционного администрирования

Собственные инструменты управления Windows постоянно совершенствуются, и большинство сетевых служб можно контролировать с рабочей станции администратора. Даже администраторы Windows NT, в которой нет универсальной консоли Microsoft Management Console (MMC) Windows 2000, могут управлять удаленными DNS, DHCP, WINS и другими службами со своих настольных ПК. Но, несмотря на активное развитие технологий Microsoft, выполнить некоторые задачи (например, установить оперативные исправления, перезапустить сервер, управлять файлами) можно только с консоли сервера. 

Проблема решается с помощью инструментов дистанционного управления. Они незаменимы для работы с серверами в удаленных филиалах и для решения вопросов, возникающих в неурочные часы, из удобного домашнего офиса. В наше неспокойное время они позволят запереть серверы в безопасном помещении и управлять ими на расстоянии. 

Дистанционное управление против дистанционного администрирования 

Инструменты дистанционного управления входят в более обширную категорию инструментов дистанционного администрирования. Последние, как видно из их названия, обеспечивают выполнение административных задач на удаленных серверах. Например, с помощью утилиты Shutdown (shutdown.exe) из комплекта Microsoft Windows NT Server 4.0 Resource Kit можно остановить и перезапустить сетевые серверы, а утилита rkill.exe позволяет завершить процессы, выполняемые на удаленном сервере. Получив с помощью инструментов управления контроль над рабочим столом сервера через сеть, можно выполнять административные задачи дистанционно. Вместо того чтобы воздействовать на сервер с помощью команд, запускаемых на собственной рабочей станции, администратор выполняет команды на самом сервере, даже находясь на расстоянии многих километров от его монитора и клавиатуры. 

С помощью нескольких полезных инструментов дистанционного управления, многие из которых распространяются бесплатно или за небольшую плату, можно выполнять различные задачи администрирования сервера, не покидая своего рабочего места. Я делю эти инструменты на две категории: 

* графические инструменты дистанционного управления, такие, как Windows 2000 Server Terminal Services и Virtual Network Computing (VNC), которые переносят рабочий стол удаленного сервера на локальный компьютер;

* инструменты дистанционного управления, запускаемые из командной строки, такие, как Remote Command, telnet, Remote Shell и Remote Console, которые обеспечивают выполнение текстовых команд на удаленном сервере. 

Terminal Services 

Первая встроенная технология дистанционного управления от Microsoft, Terminal Services, появилась в Windows 2000 Server. В прошлом Terminal Services можно было получить только в специальной редакции NT под названием NT Server 4.0, Terminal Server Edition (WTS). Terminal Services предполагалось использовать в основном в качестве технологии сервера приложений (как и продукт Citrix WinFrame, предшественник Terminal Services). Кроме того, в Terminal Services реализован режим дистанционного администрирования, который позволяет двум администраторам одновременно управлять консолью сервера через сетевое соединение. 

По умолчанию Terminal Services не устанавливается вместе с Windows 2000 Server, но владельцы базовой лицензии на продукт могут инсталлировать и использовать службу в режиме дистанционного администрирования (режим дистанционного администрирования - стандартный компонент установки версии Windows .NET Server, ранее известной как Whistler). Со времени появления Windows 2000 я рекомендовал администраторам запускать Terminal Services в режиме дистанционного администрирования на каждой машине Windows 2000, за исключением случаев, о которых будет рассказано ниже, когда лучше применить VNC. Установить Terminal Services просто. Достаточно открыть приложение Add/Remove Programs панели управления и щелкнуть на закладке Add/Remove Windows Components. Затем нужно установить флажок Terminal Services и щелкнуть на кнопке Next. В ответ на запрос мастера Windows Components Wizard о том, какой режим Terminal Services следует использовать, необходимо выбрать вариант Remote administration mode. 

Однажды воспользовавшись Terminal Services, от этой службы трудно отказаться. С помощью клиента Terminal Services можно запустить несколько окон и одновременно удаленно администрировать несколько серверов. Клиентская программа Terminal Services совместима с большинством версий Windows, в том числе с NT 3.51 и Windows 95. Независимые поставщики (например, Citrix) предлагают клиентские программы для платформ, отличных от Windows. Клиентскую программу можно развернуть на весь экран, и настольный компьютер будет выглядеть как консоль сервера. 

Virtual Network Computing (VNC) 

VNC - один из малоизвестных, но эффективных инструментов администратора: одни специалисты знают и широко применяют его, другие никогда не слышали о VNC и не понимают причины ажиотажа. В целом, VNC - кросс-платформенный инструмент дистанционного администрирования, с помощью которого рабочий стол сервера можно отобразить на дисплее своего компьютера, независимо от серверной операционной системы. На Экране 1 показано соединение VNC с удаленной машиной Windows 2000 Server. VNC разработан в лаборатории AT&T Laboratories Cambridge, распространяется бесплатно при условиях соблюдения лицензии GNU General Public License (информация о лицензии GNU General Public License опубликована по адресу: http://www.gnu.org/copyleft/gpl.html). Загрузить VNC можно по адресу: http://www.uk.research.att.com/vnc/index.html. На сайте имеется документация, исходные тексты и другая информация. При распаковывании загруженного дистрибутивного файла формируется две папки:

* для программы просмотра VNC - единственного исполняемого файла размером менее 175 Кбайт;

* для VNC-сервера - полного пакета установки.

Запустить программу просмотра просто: нужно дважды щелкнуть на ней и ввести имя сервера, с которым необходимо установить связь. Если на удаленном сервере уже работает серверная программа VNC, то через несколько секунд все будет готово для дистанционного управления сервером. 

Процедура инсталляции VNC-сервера тоже не намного сложнее. Достаточно дважды щелкнуть на файле setup.exe и следовать приглашениям мастера установки, чтобы инсталлировать как сервер, так и программу просмотра. На данном этапе сервер доступен только в интерактивном режиме, т. е. его можно запустить лишь вручную. Ручной запуск для администрирования удаленного сервера неудобен: VNC-сервер лучше запускать автоматически. Для этого достаточно щелкнуть на значке Start Menu программы VNC и настроить VNC for Windows (WinVNC) на работу в качестве службы, с учетной записью Windows 2000 или NT 4.0 LocalSystem, автоматически запускаемой при старте сервера (автоматический запуск - функция операционной системы; она работает не на всех машинах: например, на Macintosh такой функции нет). После перезапуска или (если служба используется в первый раз) ручного запуска, служба VNC просит назначить пароль сеанса и другие параметры конфигурации После этого новый сервер VNC готов к работе. Нужно открыть программу просмотра VNC на рабочей станции, ввести имя VNC-сервера и пароль сеанса и можно приступать к дистанционному администрированию. По умолчанию разрешается установить лишь одно удаленное соединение VNC с каждым сервером. Если поступает запрос на новое соединение, VNC-сервер автоматически разрывает текущий сеанс и организует новый. Это может вызвать существенные неудобства, если администратор подключается к серверу в середине сеанса, установленного другим администратором. Кроме того, при разрыве соединения VNC не выполняет процедуру выхода для первого администратора, и второй администратор видит все, что делал его коллега. В документации VNC объясняется, как настроить VNC-сервер на совместное использование соединений. В результате несколько администраторов смогут одновременно подключиться к серверу, и всем им будет представлен одинаковый удаленный рабочий стол. 

В этой особенности состоит главное различие между VNC и Terminal Services. С помощью Terminal Services два администратора могут одновременно установить соединение с одним сервером, и каждый из них будет работать с уникальным рабочим столом. VNC обеспечивает одновременное подключение двух администраторов, но им придется совместно пользоваться мышью и клавиатурой одного рабочего стола. 

Terminal Services или VNC? 

Учитывая, что технология Terminal Services встроена в Windows 2000, нуждаются ли администраторы сетей Windows 2000 в VNC? Безусловно, да. По-видимому, в однородной сети Windows 2000 лучше всего использовать Terminal Services. Это бесплатный продукт, поставляемый на одном компакт-диске с Windows 2000 Server, достаточно удобный для дистанционного администрирования. Но в настоящее время лишь в очень немногих средах применяется единственная операционная система. Главное преимущество VNC - кросс-платформенная совместимость, благодаря которой с одного удаленного клиента можно администрировать серверы, работающие на Windows 2000, NT, Linux и многочисленных разновидностях Unix. Такой многофункциональный и в то же время бесплатный продукт трудно превзойти. 

Применение VNC и Terminal Services не приводит к значительному снижению производительности. Как правило, эти инструменты потребляют лишь небольшую долю ресурсов процессора, очень мало памяти и почти не увеличивают нагрузку на дисковую подсистему ввода/вывода. В этом отношении они на голову выше решений, в большей степени ориентированных на настольные компьютеры (например, pcAnywhere компании Symantec). VNC обеспечивает надежную информационную защиту благодаря использованию протокола аутентификации с квитированием, имеющего много общего с Microsoft Challenge Handshake Authentication Protocol (MSCHAP), собственным протоколом аутентификации NT. Кроме того, как VNC, так и Terminal Services располагают клиентом на базе Windows CE, предоставляющим возможности истинно дистанционного администрирования. 

Тем не менее между VNC и Terminal Services существует несколько важных различий. Эти различия относятся к управлению удаленным рабочим столом, технической поддержке продуктов, ограничениям операционной системы и быстродействию. 

Управление удаленным рабочим столом. Как отмечалось выше, VNC предоставляет лишь один дистанционно управляемый рабочий стол, независимо от числа разрешенных соединений. Terminal Services позволяет двум администраторам одновременно подключиться к серверу и предоставляет каждому из них собственный рабочий стол. 

Техническая поддержка. В отличие от производителя Terminal Services, пользователи которой получают поддержку от Microsoft, ни одна компания технологию VNC не поддерживает. Однако пользователи могут загрузить исходный текст VNC и настроить инструмент на конкретное применение. Получить исходный текст Terminal Services значительно труднее. 

Ограничения операционной системы. Серверная программа Terminal Services поставляется только в составе Windows 2000 Server и более поздних версий. Но клиентские программы работают почти на любой 16- и 32-разрядной платформе. Программа просмотра и сервер VNC совместимы почти со всеми 32-разрядными операционными системами Windows, в том числе NT Server 4.0, NT Workstation 4.0 и Windows 9.x. Программа просмотра и сервер работают и на NT 3.51 (в режиме с ограниченной функциональностью). Мне удалось успешно запустить сервер VNC даже на третьей бета-версии .NET Server. Программа просмотра и сервер VNC также работают на системах Linux и Unix. 

Скорость. Процедуры дистанционного администрирования VNC чуть медленнее, чем Terminal Services. Иногда приходится ждать, когда VNC обновит удаленный дисплей. 

Remote Command 

Некоторое время назад разработчики Microsoft дополнили набор ресурсов Windows Server программой Remote Command (rcmd.exe). Утилиту Remote Command можно рассматривать как вариант Terminal Services или VNC, запускаемый из командной строки: она позволяет выполнять команды на удаленном сервере. Remote Command, несомненно, понравится тем администраторам, которые предпочитают пользоваться командой Net Use вместо графического интерфейса, чтобы подключиться к удаленному диску. Кроме того, небольшие операции, запускаемые из командной строки, гораздо быстрее выполняются с помощью Remote Command, нежели с использованием графического интерфейса. 

Remote Command состоит из двух компонентов: rcmd.exe (клиентский компонент) и rcmdsvc.exe (серверный компонент). С помощью этих двух компонентов администратор может получить доступ к командной строке удаленного сервера, выполнить команды и завершить сеанс. Он также может инициировать однокомандный сеанс с автоматической регистрацией, выполнением одной команды и завершением связи. Например, команда 

rcmd.exe server1 net share

maryj$=d:usersmaryj

обеспечивает регистрацию на Server1 и предоставляет в общее пользование каталог D:usersmaryj под именем MaryJ$. Remote Command можно использовать в сценариях. С помощью сценариев, запускаемых на рабочей станции, можно администрировать один или несколько серверов. В большинстве продуктов Microsoft наряду с графическим интерфейсом предусмотрена и командная строка, поэтому основные задачи можно выполнить с помощью Remote Command. 

Механизм защиты Remote Command довольно прост. Чтобы зарегистрироваться на удаленной машине, пользователи вводят те же учетные данные, что и для регистрации на локальном компьютере. Пользователи должны иметь право интерактивной регистрации на удаленной машине, и все действия производятся в соответствии с их полномочиями. По умолчанию Remote Command работает на сервере от имени учетной записи LocalSystem. Remote Command обслуживает 10 соединений одновременно, обеспечивая уникальную и независимую оболочку командной строки для каждого соединения. 

Remote Command работает на сервере под учетной записью LocalSystem, поэтому с помощью данной утилиты сложно выполнить команды, требующие подключения к другому серверу. Например, чтобы корректно выполнить команду Net Use и сделать диск общим сетевым ресурсом, необходимо указать для Net Use альтернативные учетные данные. 

Telnet 

Корни telnet - в мире Unix, где утилита считается стандартным административным инструментом. По принципу работы telnet очень похожа на Remote Command, она также обеспечивает доступ к удаленному серверу из командной строки. Но в отличие от утилиты Remote Command, ориентированной на сети Microsoft, telnet основана на открытых стандартах. Существуют клиенты telnet для Palm PDA, устройств Windows CE и почти любых TCP/IP-совместимых машин; Remote Command работает только с Windows XP, Windows 2000 и NT. 

Администраторы сетей с маршрутизаторами и коммутаторами, вероятно, знакомы с telnet, поскольку данная утилита - основной инструмент управления такими устройствами (хотя многие изготовители начинают встраивать в свои сетевые устройства административные интерфейсы на базе Web). Администраторам, которые привыкли работать с telnet, будет приятно узнать, что эту службу можно запустить и на серверах Windows. В действительности, Windows 2000 располагает встроенной службой telnet. В целях безопасности службу требуется запускать вручную. Систему можно настроить на автоматический запуск службы или запускать вручную в случае необходимости. 

Служба telnet Windows 2000 обеспечивает работу двух соединений. Как правило, для дистанционного администрирования этого достаточно. Для дополнительных соединений можно использовать продукт Microsoft Windows Services for UNIX (SFU), который располагает более мощной службой telnet и может быть лицензирован для обслуживания большего числа соединений. Microsoft также выпустила утилиту командной строки telnet Server Administration для настройки режима аутентификации службы, порта TCP и других параметров. Значок утилиты расположен в разделе Administrative Tools панели управления. Microsoft не выпускает серверной программы telnet для NT, но в Internet нетрудно найти бесплатные и недорогие NT-совместимые серверы telnet. Telnet - почти идеальный инструмент для смешанной операционной среды, так как, скорее всего, служба уже работает на серверах, отличных от Windows. Но следует помнить, что telnet была разработана на ранних стадиях развития Internet, когда проблема безопасности не была столь актуальной. В telnet нет механизма шифрования - все данные пересылаются в текстовом формате. 

По умолчанию в службе Microsoft telnet используется достаточно надежный метод аутентификации MSCHAP. Но его можно настроить на прием чисто текстовых паролей - совершенно незащищенный, но необходимый способ при обращении к telnet с компьютера, не совместимого с MSCHAP, например с настольной машины Unix. Telnet подходит для внутренних серверов, но мало кто рискнет использовать данную службу для серверов, подключенных к Internet. Это связано, прежде всего, с тем, что стандартный TCP-порт telnet (23) - первый порт, который атакует большинство взломщиков. 

Remote Shell 

Remote Shell - инструмент удаленного управления, запускаемый из командной строки, очень похожий на Remote Command и telnet. Remote Shell состоит из двух компонентов: серверного (rshsvc.exe) и клиентского (rsh.exe). Оба компонента входят в состав Microsoft Windows 2000 Server Resource Kit и набор ресурсов NT Server 4.0. Remote Shell - кросс-платформенный инструмент. Многие серверы Unix совместимы с Remote Shell, а большинство операционных систем с поддержкой TCP/IP располагает клиентом Remote Shell. Благодаря такой поддержке Remote Shell может быть альтернативой для Remote Command в гетерогенных средах. Однако Remote Shell защищена хуже, чем Remote Command и telnet. 

В папке %systemroot%system32driversetc необходимо создать файл с именем RHOSTS для хранения списка компьютеров, на которых может работать rsh.exe, и имен пользователей, имеющих право запускать rsh.exe на конкретной машине. При попытке пользователя установить связь Rshsvc.exe выполняет поиск в этом файле в обратном порядке. Программа разрешит соединение только после того, как обнаружит имя компьютера и пользователя. Для обращения к Remote Shell пароля не требуется. Из-за слабых встроенных функций защиты Remote Shell многие администраторы предпочитают более надежные варианты инструмента производства независимых компаний. В частности, широко распространен пакет Secure Shell компании SSH Communications. 

Remote Console 

Функционально близкая к telnet утилита Remote Console отличается тем, что она не просто перенаправляет командную строку с сервера на компьютер, а позволяет управлять видеопамятью удаленного сервера и запускать такие полноэкранные приложения командной строки, как MS-DOS Edit. По умолчанию, утилитой могут пользоваться только члены группы Administrators сервера. Это ограничение можно снять, разрешив и другим пользователям подключаться к службе. Программное обеспечение и документацию Remote Console можно получить вместе с комплектом ресурсов Windows 2000 Server или NT Server 4.0. 

Как выбрать инструмент? 

Подбирая подходящий инструмент, следует тщательно взвесить потребности компании, а если вычислительная среда состоит из нескольких серверных операционных систем, отличных от Windows или дополняющих Windows 2000 и NT, необходимо учесть и возможность кросс-платформенного дистанционного администрирования. Рекомендуется использовать по крайней мере один графический инструмент дистанционного администрирования, такой, как Terminal Services или VNC. Во врезке "Большой выбор" приведена информация об особенностях других графических решений. 

Кроме того, следует выбрать один из инструментов дистанционного администрирования с командной строкой. В средах Unix повсюду применяется telnet. Выбор telnet оправдан в тех организациях, где уже работают с Unix. С помощью Remote Command можно выполнять команды администрирования по одной. Эта утилита удобна для использования в сценариях и автоматических процедурах. Remote Shell совместима с различными платформами, хотя настройка режима безопасности на отдельных серверах может отнимать много времени. Remote Console позволяет дистанционно запускать приложения MS-DOS на полном экране. 

Независимо от выбранного решения, необходимо проверить, подходит ли клиентское программное обеспечение, установив клиенты на управляющей рабочей станции как дома, так и в офисе. Записав программы установки различных клиентов на компакт-диск, их можно распространить среди администраторов предприятия или взять с собой в командировку (на всякий случай). Правильно подобранный набор инструментов дистанционного администрирования поможет в любое время устранить неполадки и обслуживать сервер из любого места, где бы ни находился администратор. 

Большой выбор 

В распоряжении администраторов Windows всегда был богатый набор графических инструментов дистанционного администрирования. Прошло немало времени с момента появления Virtual Network Computing (VNC), а многие организации по-прежнему используют программу pcAnywhere компании Symantec вместо встроенных терминальных служб Windows 2000 Server. Эффективность дистанционного администрирования очевидна, но выбрать оптимальный инструмент нелегко. Вот несколько советов. 

* Избегайте решений, связанных с высокой нагрузкой на процессор. В частности, во время сеанса pcAnywhere нагрузка на процессор может возрасти на 20%.

* Выбирайте клиентскую программу дистанционного администрирования, с помощью которой можно одновременно управлять несколькими серверами с настольного компьютера. Такая возможность предусмотрена как в службе VNC, так и в Terminal Services.

* Выбирайте компактную клиентскую программу. Клиент VNC, как и Terminal Services, легко умещается на дискете.

* Выбирайте решение, которое позволяет администрировать все серверы с помощью одного клиента. В смешанной операционной среде предпочтительна кросс-платформенная служба VNC.