div.main {margin-left: 20pt; margin-right: 20pt}
Удаленное управление сетевыми
ОС
Средства удаленного управления операционными
системами UNIX, Windows NT и NetWare.
Когда говорят про удаленное
управление, обычно имеют в виду платформы сетевого управления на базе
протокола SNMP. Среди наиболее распространенных платформ можно назвать HP
OpenView, Microsoft SMS, Novell ManageWise и др. Однако их возможности
достаточно ограничены: они хорошо подходят для мониторинга сетевых устройств,
но гораздо хуже — для непосредственного управления работой серверов и ОС. Так,
с помощью платформы сетевого управления невозможно создать учетную запись
пользователя, запустить на сервере программу, написать исполняемый сценарий и
многое другое. Поэтому вместо «платформа управления» правильнее было бы
употребить термин «платформа мониторинга».
Общеизвестно, что самое удобное
средство администрирования сервера — это его консоль. (Операционная система
NetWare представляет особый случай, который мы рассмотрим отдельно.) С консоли
администратор может отслеживать любую активность на сервере, а также управлять
ресурсами сетевой ОС. Однако администратор не всегда имеет возможность
находиться за консолью UNIX или Windows NT.
Хотя сейчас повседневным явлением
стало размещение серверов в специальных серверных комнатах, сетевые
администраторы не стремятся перебираться в такие помещения. Во-первых,
серверные комнаты заполнены не только серверами, но и активным сетевым
оборудованием, мощными источниками бесперебойного питания, коммутационными
шкафами, средствами резервного копирования и т. д. Из-за неблагоприятного
электромагнитного фона постоянное нахождение персонала в серверной комнате
нежелательно. Во-вторых, в таких комнатах достаточно высок уровень шума, из-за
чего иногда затруднительно пользоваться даже телефоном. После 8 часов работы в
подобных условиях человек чувствует себя совершенно разбитым. В-третьих,
серверных комнат в большой организации может быть несколько. По указанным
причинам администратор хотел бы иметь рабочее место вне серверной комнаты, но
пользоваться всеми преимуществами консоли.
Кроме того, у пользователей постоянно
возникают те или иные проблемы, и администратор вынужден посещать клиентские
места. В таких случаях ему важно иметь возможность удаленного управления
сетевой ОС, например для назначения прав доступа, создания новой учетной
записи пользователя, увеличения размера файловой системы и т. д.
Наконец, проблемы могут возникнуть и
во внерабочее время, когда администратор находится дома. В таких случаях
желательно, чтобы он, используя свой домашний компьютер и модем, мог удаленно
идентифицировать и исправить проблему, а не мчаться сломя голову в
офис.
Все сетевые операционные системы
имеют средства удаленного администрирования, либо встроенные, либо
поставляемые независимыми компаниями. Часть из них реализует концепцию
удаленной консоли (или удаленного терминала), часть предоставляет разрозненные
средства администрирования, направленные на решение только некоторых
конкретных задач.
ОПЕРАЦИОННЫЕ СИСТЕМЫ И
АДМИНИСТРИРОВАНИЕ
Прежде чем говорить об удаленном
управлении сетевыми ОС, мы кратко рассмотрим принципы администрирования самых
популярных операционных систем: Windows NT, UNIX и NetWare. Пожалуй, самой
мощной системой не только по функциональным параметрам, но и по возможностям
администрирования является ОС UNIX. В UNIX ядро отделено от графической
оболочки, при этом для работы сервера графическая оболочка не нужна, хотя и
используется довольно часто. Интерактивное взаимодействие между пользователем
и ОС осуществляется через командную оболочку shell. Она имеет несколько
реализаций, причем особой популярностью пользуются Bourne shell (sh), C shell
(csh), Korn shell (ksh) и Bourne again shell (bash). Каждая из командных
оболочек имеет свой собственный язык программирования для написания
программ-сценариев. Кроме того, UNIX славится богатейшим набором прикладных
утилит, в том числе утилит сортировки, поиска, потокового редактирования,
лексического анализа, обработки макросов, фильтров и множеством других. С
помощью shell, системных утилит, прикладных программ и конвейеров UNIX
позволяет создавать необычайно гибкие программы администрирования.
В UNIX используется графическая
оболочка X Window System (X11). В отличие от подобных оболочек в составе
Microsoft Windows и Apple MacOS, среда X11 является сетевой и отделена от
ядра. Т. е. с точки зрения ядра система X11 представляет собой обычную
пользовательскую программу. В рамках X11 любой компьютер UNIX (при наличии
соответствующих прав) может выступать в качестве клиента или сервера X11.
Следует иметь в виду, что, вразрез с общепринятой практикой, сервером X11
называют компьютер, на дисплее которого выводится изображение, а клиентом —
машину, на которой запускается программа. Серверное ПО X11 существует для
многих распространенных ОС, включая Windows, MacOS и др., тогда как клиентское
ПО реализовано в основном на UNIX.
В современных UNIX для задач
управления задействуют утилиты с тремя типами интерфейсов: командной строки,
интерактивным текстовым и графическим. Тем не менее наиболее мощными и
покрывающими все возможности ОС являются утилиты на базе командной строки.
Подобные программы активно используются для выполнения повторяющихся операций
вроде создания учетной записи пользователя или назначения прав доступа.
Интерактивные текстовые и графические утилиты появились в составе UNIX
сравнительно недавно, но из-за интерактивного характера общения выгода от их
применения в составе программ на shell далеко неочевидна. Подобные утилиты
применяются, главным образом, для эпизодических и тонких настроек ОС и
оборудования. Таким образом, для администрирования UNIX подойдет любой
эмулятор текстового терминала.
Несмотря на свое широкое
распространение, Microsoft Windows NT не может тягаться с UNIX в вопросах
администрирования. По удобству администрирования — да, но никак не по его
возможностям. Как известно, графическая оболочка Windows неотделима от ядра
системы. Хотя с точки зрения надежности это не лучший вариант, подобная
реализация позволяет добиваться исключительно высоких показателей
производительности на графических операциях. Другое дело, что на сервере NT
проку от этого немного — назначение сервера состоит никак не в быстром выводе
графической информации. Компания Microsoft фактически загнала пользователей в
угол, предложив в качестве клиента (NT Workstation) и сервера (NT Server) по
сути одну и ту же систему. Вдобавок, графическая среда Windows не является
сетевой.
Для Windows NT имеется несколько
утилит администрирования на базе командной строки. Однако их набор достаточно
ограничен, к тому же возможности встроенного командного процессора не идут ни
в какое сравнение с shell из UNIX. В комплекте с Windows NT Server
поставляется также ряд программ удаленного управления пользователями,
доменами, правами доступа и т. д. Такие программы можно инсталлировать на
компьютеры Windows 9x и NT. Тем не менее многие сетевые приложения, особенно
независимых разработчиков, не имеют средств удаленного управления. Поэтому для
полноценного управления сетевой средой администратор вынужден садиться за
консоль либо эмулировать консоль с помощью специализированных
программ.
Структура управления NetWare
кардинальным образом отличается от принятой в других сетевых ОС. Все операции
настройки сервера, включая запуск приложений, осуществляются с консоли. В то
же время, управление учетными записями, принтерами, файлами, службой каталогов
NDS производится с клиентских мест. Правда, в последней версии NetWare 5
имеется единая консоль управления сетью ConsoleOne, с помощью которой
администратор может управлять сетевыми ресурсами из любой точки сети, в том
числе и с консоли. Однако возможности ConsoleOne пока слишком ограничены, да и
работает она медленно, поскольку написана на Java. Вдобавок, доля NetWare 5 на
рынке сетевых ОС пренебрежимо мала, так как основная часть сетей Novell
создана на базе NetWare версий 4.x. Консоль NetWare работает в текстовом
режиме (в NetWare 5 сервер поддерживает и графический режим), поэтому
управление осуществляется с помощью программ с командной строкой и
интерактивным текстовым интерфейсом. Командный язык NetWare достаточно слаб,
но в составе ОС имеются интерпретаторы Basic и Perl, позволяющие создавать
вполне серьезные программы. Входящая в состав NetWare программа удаленной
консоли обеспечивает доступ к консоли сервера по сети с клиентских машин DOS,
Windows, MacOS, UNIX.
Для управления NDS, учетными
записями, принтерами, правами доступа и т. д. имеются графические и
интерактивные текстовые программы, предназначенные для работы на клиентских
местах. Число имеющихся утилит на базе командной строки невелико, а их
возможности ограничены. Если говорить кратко, то с точки зрения управления NDS
наиболее мощными возможностями обладают графические утилиты (и в первую
очередь — NetWare Administrator), далее идут интерактивные текстовые программы
(NETADMIN, PCONSOLE и др.) и лишь затем утилиты командной строки.
Рассмотрев основные особенности
структуры управления сетевыми ОС, мы можем теперь перейти к знакомству с
наиболее распространенными средствами удаленного управления.
TELNET
Пожалуй, самой известной программой
удаленного управления UNIX является telnet, тем более что она входит в
комплект поставки практически любой современной операционной системы. telnet
представляет собой программу эмуляции терминала, использующую собственный
протокол прикладного уровня TELNET. Для поддержки сервиса telnet на сервере
должна быть запущена системная программа (называемая в UNIX демоном) telnetd,
которая обрабатывает запросы клиентов telnet. Сервер telnet может обслуживать
сразу несколько клиентов, при этом протокол TELNET использует в качестве
транспортного протокол TCP (порт 23).
С помощью telnet можно управлять не
только компьютерами UNIX, но и такими сетевыми устройствами, как
маршрутизаторы, коммутаторы, серверы удаленного доступа и т. д. telnet можно
использовать и для администрирования Windows NT (серверное ПО для этой службы
имеется в виде нескольких бесплатных и коммерческих программ), но только в
режиме командной строки. Telnet дает пользователю возможность со своего места
подключаться к удаленному серверу и работать с ним в текстовом режиме. При
этом для пользователя создается полная иллюзия, что он сидит за текстовым
терминалом данного сервера.
|
Рис. 1. Взаимодействие клиента и сервера
telnet. |
Telnet прекрасно подходит для
гетерогенных сетей, поскольку опирается на концепцию сетевого виртуального
терминала (Network Virtual Terminal, NVT). Известно, что различные
операционные системы и аппаратные средства имеют специфические особенности,
связанные со вводом/выводом и обработкой информации. Так, в UNIX в качестве
символа перехода на другую строку используется LF, в то время как в MS-DOS и
Windows — пара символов CR-LF. Сетевой виртуальный терминал NVT позволяет
абстрагироваться от особенностей конкретного оборудования за счет
использования стандартного набора символов. Клиент telnet отвечает за
преобразование кодов клиента в коды NVT, а сервер делает обратное
преобразование (см. Рисунок 1).
Telnet предусматривает механизм
конфигурирования параметров, при котором клиент и сервер могут договариваться
об определенных опциях, в том числе о кодировке данных (7- или 8-битовая),
режиме передачи (полудуплексный, посимвольный, построчный), типе терминала и
некоторых других. Команды и данные в telnet передаются независимо друг от
друга. Для этого с помощью специального кода telnet переводится из режима
передачи данных в режим передачи команд, и наоборот. Команды — это информация,
служащая для управления сервисом telnet, тогда как данные — это то, что
вводится/выводится через драйверы терминала (клиента) или псевдотерминала
(сервера).
Telnet является достаточно мощной
программой удаленного управления, но у нее есть ряд принципиальных
недостатков. Самый главный — в том, что все данные, включая пароли, передаются
между компьютерами в открытом виде. Подключившись к сети, любой человек с
помощью самого простого анализатора протокола может не только прочитать
информацию, но даже завладеть паролем для несанкционированного доступа. В
локальной сети вероятность таких атак можно уменьшить посредством применения
коммутаторов (коммутирующих концентраторов). Конечно, в локальной сети
широкомасштабное использование коммутаторов весьма накладно, но рабочие места
администраторов лучше подключать через них. Однако при доступе через сеть
Internet, в частности, когда администратор работает дома, проблема остается.
Впрочем, можно организовать доступ к серверам через серверы удаленного
доступа, применяя такие протоколы аутентификации, как CHAP, а не задействовать
каналы связи провайдеров Internet. К сожалению, такой подход приемлем не для
всех организаций.
Второй проблемой я бы назвал то, что
бесплатные клиентские программы telnet, входящие в состав операционных систем,
имеют ограниченные возможности. Нередко бывает так, что интерактивную
текстовую программу не удается даже запустить, поскольку клиент telnet не
поддерживает тип терминала сервера, а интерактивная программа не хочет
работать с теми типами терминалов, что имеются в составе клиента
telnet.
Тем не менее, несмотря на указанные
недостатки, telnet остается самой распространенной программой удаленного
управления.
RLOGIN
Впервые появившаяся в составе 4.2BSD
UNIX, программа rlogin одно время была исключительно популярной в среде UNIX.
В качестве средства терминального доступа rlogin очень похожа на telnet, но
из-за тесной интеграции с ОС нашла весьма ограниченное применение в других
системах. В rlogin отсутствуют многие опции, свойственные telnet, в частности
режим согласования параметров между клиентом и сервером: тип терминала,
кодировка данных и т. д. Поэтому размер кода программы rlogin почти в десять
раз меньше, чем у telnet. Однако rlogin предусматривает доверительные
отношения между хостами: на сервере rlogin в специальных системных файлах
(обычно /etc/hosts.equiv и $HOME/.rhosts) администратор может перечислить
компьютеры, доступ с которых к данному серверу будет разрешен без пароля.
Пользователи других компьютеров (не перечисленных в этих файлах) могут войти
на сервер лишь после ввода пароля.
Другой вариант программы rlogin,
известный как rsh, позволяет запускать программы на удаленной машине, причем
ввод и вывод осуществляются на локальном компьютере. Еще одна программа — rcp
— предназначается для копирования файлов между компьютерами сети. Утилиты
rlogin, rsh и rcp часто объединяют под общим названием r-команд.
К сожалению, как показала практика,
доверительные отношения на основе имен хостов представляют крайнюю опасность,
поскольку открывают возможность для несанкционированного доступа. Широкое
использование хакерами технологии подмены IP-адресов (IP-spoofing) и доменных
имен (DNS-spoofing) делает сервис r-команд незащищенным. Это справедливо, даже
когда доверительные отношения между хостами не установлены вовсе. Поэтому в
настоящее время сервис rlogin нашел применение лишь в сетях, полностью
закрытых от Internet. Так же, как и у telnet, данные и пароли (при отсутствии
доверительных отношений) передаются в открытом виде.
Кроме того, клиентское ПО для
r-команд на платформах DOS и Windows распространено меньше, чем для telnet, и
в основном оно имеется только в составе достаточно дорогих коммерческих
продуктов.
SECURE SHELL
Очевидно, что передача данных и
особенно паролей по сети в открытом виде в программах telnet и rlogin не может
удовлетворить даже минимальным требованиям к безопасности. Защитить
информационные системы от атак злоумышленников можно несколькими способами.
Некоторые из них предусматривают защиту паролей, тогда как другие направлены
на шифрование всего потока информации. Среди последних наибольшей
популярностью пользуется программа Secure shell (ssh), входящая в любой
джентльменский набор для безопасного терминального доступа UNIX.
Некоммерческую версию Secure shell можно загрузить с сервера автора программы
Т. Ялонена (http://www.ssh.fi). Однако
бесплатная версия ssh имеется только для UNIX. Компания Data Fellows (http://www.datafellows.com)
поставляет коммерческий, усовершенствованный вариант ssh, в том числе для
платформы Windows.
Secure shell предоставляет
возможности, аналогичные имеющимся у telnet и r-команд, включая не только
терминальный доступ, но и средства копирования между компьютерами. Но, в
отличие от них, ssh обеспечивает также безопасное подключение по
X11.
Безопасность работы программы ssh
достигается за счет использования протокола транспортного уровня, протокола
аутентификации и протокола соединения. Протокол транспортного уровня отвечает
за аутентификацию сервера, протокол аутентификации — за надежную идентификацию
и аутентификацию клиента. Протокол соединения формирует шифрованный канал
передачи информации.
Как уже было сказано, Secure shell
стал своего рода стандартом для безопасного доступа, в том числе и в России.
Это весьма интересный продукт, о котором можно говорить очень долго. Однако мы
этого делать не будем (более подробную информацию о Secure shell можно
почерпнуть в статье М. Кузьминского «Ssh — повседневное средство безопасной
работы» в журнале «Открытые системы» №2 за 1999 год). Все дело в том, что
данный продукт так же, как многие подобные, запрещен для использования в
России.
Согласно Указу Президента Российской
Федерации № 334 от 03.04.95 физическим лицам и любым организациям, включая
государственные, частные и акционерные, запрещена эксплуатация систем
криптографии, не прошедших сертификации в ФАПСИ. А Secure shell является
именно такой системой. Однако обижаться на наши спецслужбы не стоит — мы в
мире не одни такие, в некоторых странах, например во Франции, правила еще
более жесткие (справедливости ради стоит отметить, что во Франции с марта
этого года ограничения в области систем шифрования значительно ослаблены). Не
стоит также думать, что нам пытаются запретить защищать конфиденциальную
информацию: организации не только могут, но и обязаны защищать важную
информацию. Только для этого они должны применять сертифицированные средства,
а не свободно распространяемые в Internet. Конечно, программы на основе ssh,
SSL, PGP и т. п. распространены у нас повсеместно, но следует помнить, что их
использование чревато немалыми неприятностями. Пользователи подобных программ
потенциально подвергаются риску разбирательства со стороны спецслужб. Во
всяком случае мы не имеем права и желания пропагандировать такой
подход.
БЕЗОПАСНАЯ АУТЕНТИФИКАЦИЯ
В большинстве задач управления
администраторов интересует не защита передаваемых данных, а надежная
аутентификация пользователей, чтобы злоумышленник не мог перехватить и
воспользоваться паролем администратора. Решений может быть несколько. Прежде
всего, это технология Kerberos, основанная на выдаче мандатов (ticket). (На
самом деле, Kerberos обеспечивает не только аутентификацию, но и шифрование
сетевых коммуникаций, что, опять же, подпадает под действие Указа Президента.)
Правда, из-за экспортных ограничений правительства США механизм шифрования
значительно ослаблен. В корпоративных системах коммутируемого доступа могут
использоваться такие надежные сервисы аутентификации, как RADIUS, TACACS+ и
XTACACS. Но все эти службы (включая Kerberos) подразумевают широкомасштабную
перекройку сетевой инфраструктуры, влекущую за собой большие затраты. Вряд ли
это оправдано, если круг задач удаленного доступа ограничен лишь проблемами
управления сетевыми ОС.
Для таких задач больше подходят
средства поддержки одноразовых паролей (One-Time Password, OTP). Суть подобных
систем состоит в том, что передаваемый по сети пароль пользователя
действителен в течение только одного сеанса связи. Т. е. даже если
злоумышленнику удалось перехватить пароль, то воспользоваться им он не сможет,
поскольку при следующем сеансе пароль будет уже изменен.
Чтобы задействовать OTP на сервере,
демоны telnet, rlogin, ftp придется заменить (разумеется, новые сервисы можно
запускать выборочно, например использовать модернизированный telnetd, но
оставить «родной» ftpd). При этом клиентское ПО обновлять не нужно, что очень
удобно. Впервые работоспособная система OTP была выпущена компанией Bell Core
(сейчас Telcordia Technologies) в 1991 году под названием S/Key. Важной
особенностью S/Key является то, что вначале это был некоммерческий продукт,
работающий со множеством версий UNIX. Сейчас наиболее популярными являются
следующие версии систем OTP (все они, кроме S/Key версии 2.0 и выше,
распространяются бесплатно):
S/Key компании Telcordia Technologies
(ftp://ftp.bellcore.com);
OPIE исследовательской лаборатории ВМС США
(ftp://ftp.nrl.navy.mil);
LogDaemon, разработанный Виетсе
(ftp://ftp.porcupine.org/pub/security).
Перечисленные системы обратно
совместимы с S/Key 1.0. Текущие реализации OTP основаны на алгоритмах
хэширования MD4 и MD5 (в S/Key 1.0 использовался исключительно
MD4).
Как работают системы OTP? При
инициализации OTP на сервере каждый пользователь назначает два параметра:
секретный ключ (он не передается по сети) и количество итераций, т. е.
количество входов в систему, при которых будет действовать этот секретный
ключ. На сервере к секретному ключу применяется алгоритм MD4 или MD5, а
хэшированное значение запоминается. После этого пользователь может работать с
сервером по сети через обычные telnet, ftp и т. д.
SunOS
UNIX (srv.acme.com)
login: koka 967
jar564 Password:| | |
Рис. 2. Аутентификация в системах с
одноразовым паролем. |
Аутентификация пользователя при
терминальном доступе осуществляется следующим образом. После ввода имени
пользователя ему выдается номер очередной итерации и некий источник (seed).
Начало процедуры аутентификации пользователя показано на Рисунке 2. Здесь
номер итерации равен 967, а источник — jar564. В поле Password пользователь
должен ввести не свой секретный ключ, а парольную фразу, состоящую из шести
слов. Эта фраза формируется на основе секретного ключа, номера итерации и
источника с помощью специального калькулятора (см. Рисунок 3). Для получения
парольной фразы пользователь вводит номер итерации, источник и свой секретный
ключ (в приводимом примере итоговая парольная фраза имеет вид: «NO HUFF ODE
HUNK DOG RAY»).
Затем парольная фраза вводится в поле
Password программы терминального доступа, после чего пользователь
идентифицируется сервером. Следует иметь в виду, что при следующей
аутентификации номер итерации уменьшится на единицу, источник не изменится, а
парольная фраза будет совершенно иной. Таким образом, перехват парольной фразы
злоумышленнику ничего не даст, так как при попытке регистрации система его не
идентифицирует. Главным компонентом безопасности является секретный ключ, а он
никогда не передается по сети. Из-за использования алгоритмов MD4 и MD5
вычислить секретный ключ по парольной фразе, номеру итерации и источнику
практически невозможно.
При достижении номером итерации
нулевого значения учетную запись пользователя необходимо инициализировать
заново.
Может показаться, что основным
неудобством для пользователя является калькулятор. Но это не совсем так,
поскольку калькулятор представляет собой очень небольшую программу, не
требующую каких-либо настроек. Такие калькуляторы свободно распространяются
для всех популярных платформ, включая MS-DOS, Windows, Macintosh и UNIX. Более
того, парольные фразы можно запомнить (или записать) заранее, на несколько
сеансов терминального доступа вперед, последовательно уменьшая номер итерации.
Таким образом, для удаленного управления сервером администратору нет
необходимости устанавливать калькулятор на все клиентские места, на которых
ему, возможно, придется работать.
X WINDOW SYSTEM
Хотя практически все задачи
управления UNIX могут выполняться в текстовом режиме, администраторы нередко
предпочитают графический интерфейс, как более удобный. Вдобавок, некоторыми
появившимися на рынке приложениями UNIX можно управлять только в графической
среде. Программное обеспечение X-server, отвечающее за вывод графической
информации, имеется для множества платформ, включая DOS, Windows, Macintosh,
UNIX и т. д. Однако в большинстве случаев (за исключением UNIX) оно
поставляется вместе с дорогими коммерческими продуктами. В качестве клиентов
X11 (как уже было подчеркнуто, понятие клиента и сервера в X Window System не
соответствует общепринятой практике) используются, главным образом, серверы
UNIX.
Следует иметь в виду, что применение
X Window System предполагает наличие достаточно большой пропускной способности
сети. Система прекрасно работает в локальных сетях, но очень медленно — по
глобальным каналам. Поэтому при использовании X Window System на домашнем
компьютере администратора управление лучше осуществлять через терминальные
утилиты наподобие xterm, а не посредством графических утилит.
При подключении к серверу UNIX (на
котором запускаются клиенты X11) аутентификация может осуществляться двумя
методами: через терминальные утилиты (telnet, rlogin и т. п.) и через менеджер
дисплеев X (X Display Manager, xdm). В первом варианте передачи пароля в
открытом виде можно избежать, применяя вместо telnet и rlogin уже
упоминавшиеся программы ssh и OTP. В случае X Display Manager пароли по
умолчанию передаются в открытом виде. Поэтому при удаленном управлении
сервером UNIX по общедоступным сетям xdm пользоваться не стоит.
Очень осторожно администраторы должны
подходить к вопросу использования сервера UNIX в качестве сервера X (т. е.,
говоря понятным языком, к запуску графической оболочки X11 на сервере UNIX). X
Window System устроена так, что пользователь может со своей машины запустить
клиента X на удаленном сервере X и перехватывать на нем ввод/вывод информации.
В результате злоумышленник получает возможность считывать конфиденциальную
информацию с сервера X, включая пароли, вводимые пользователем на сервере X
(хотя эмулятор терминала xterm позволяет блокировать перехват пароля, этой
возможностью редко кто пользуется).
На серверах X применяются две схемы
аутентификации клиентов: по имени хоста и с помощью «магических плюшек»
(MIT-MAGIC-COOKIE-1). При аутентификации по имени хоста на сервере X создаются
системные файлы, где перечисляются хосты, откуда разрешено запускать
клиентские программы X на данном сервере X. Но подобную защиту никак не
назовешь достаточной, так как с помощью подмены IP-адресов или доменных имен
злоумышленник может провести атаку на X11. При использовании же схемы
«магических плюшек» (их поддержка встроена в протокол XDMCP, на основе
которого функционирует X Display Manager) аутентификация осуществляется на
основании учетных записей пользователей. Чтобы иметь право запустить клиента
на сервере X, пользователь в своем домашнем каталоге машины-клиента X11 должен
иметь системный файл с записанным секретным кодом сервера X. Этот секретный
код и называется магической плюшкой. Беда только в том, что плюшка передается
по сети в открытом виде, поэтому данный метод также вряд ли можно считать
безопасным.
В X Window System 11 Release 5
добавлены еще две схемы (XDM-AUTHORIZATION-1 и SUN-DES-1), напоминающие схему
MIT-MAGIC-COOKIE-1, но использующие алгоритм шифрования DES. Однако из-за
экспортных ограничений такие схемы в комплект поставки X Window System не
включают. Исходя из вышеприведенных соображений, запускать серверное ПО X11 на
сервере UNIX можно лишь в том случае, когда запрещен доступ клиентов X11 с
других компьютеров.
Все, что говорилось о невысокой
безопасности сервера X на базе сервера UNIX, в полной мере относится и к
клиентским машинам администратора, на которых функционирует X Window
System.
WINDOWS NT SERVER
При инсталляции Microsoft Windows NT
Server предполагается, что администрирование ОС будет осуществляться с консоли
сервера. Тем не менее комплект NT Server содержит и утилиты удаленного
управления. Они находятся на дистрибутиве Windows NT Server в каталоге
ClientsSrvtools. Эти утилиты можно установить как на Windows NT Workstation,
так и на Windows 9x (см. Рисунок 4). С их помощью можно выполнять
администрирование учетных записей пользователей и групп, прав и привилегий,
доменов NT, контролировать журналы событий на серверах и рабочих станциях.
Утилиты работают в графическом режиме, аналогично «родным» утилитам управления
NT Server. Хотя утилиты удаленного управления позволяют выполнять большую
часть работ по администрированию системы, в данном наборе отсутствует ряд
важных программ. Например, с их помощью невозможно осуществлять аппаратную
настройку сервера, резервное копирование, управление лицензиями, мониторинг
производительности и т. д. Вдобавок, немало серверных приложений третьих фирм
не имеют никаких программ удаленного управления.
|
Рис. 4. Утилиты удаленного управления NT
Server. |
В комплект Windows NT Server Resource
Kit, поставляемый компанией Microsoft, входит ряд дополнительных программ
администрирования, в том числе на базе командной строки. Наиболее важными из
них являются ADDUSER.EXE (создание новых учетных записей пользователей и
групп), CACLS.EXE (управление правами доступа), DUMPEL.EXE (вывод на экран или
в файл информации о событиях из журналов событий), RMTSHARE (управление
сетевыми ресурсами). Используя даже слабый командный процессор NT,
администратору не составит труда написать типовую программу создания новой
учетной записи с автоматическим назначением прав и привилегий.
Для Windows NT имеется также
несколько программ, реализующих сервер telnet. С его помощью администратор
может получить удаленный доступ к серверу NT и запустить программы на базе
командной строки. Опять же, следует помнить, что в большинстве реализаций
telnet пароль передается в открытом виде.
Но, как уже было отмечено, утилиты
удаленного доступа и программы на базе командной строки не могут решить всех
задач администрирования. Поэтому некоторые решения предполагают эмуляцию
графического интерфейса сервера Windows NT на удаленном компьютере.
В первую очередь, я хотел бы отметить
продукты WinFrame компании Citrix и Windows Terminal Server (WTS) компании
Microsoft. В соответствии с архитектурой этих продуктов, приложения
выполняются на сервере NT, а ввод/вывод информации осуществляется на
клиентских компьютерах. По утверждению их производителей, WinFrame и WTS
приемлемо работают уже на скоростях 28 Кбит/с, поэтому управлять серверами
можно даже из дома. Для использования этих средств на сервере NT необходимо
разместить серверную часть ПО, а на рабочих местах администраторов —
клиентское ПО. WinFrame и WTS не передают пароли в открытом виде.
Справедливости ради стоит сказать,
что для задач администрирования подобные решения оказываются избыточны.
Технология WinFrame и WTS подразумевают подключение к серверу нескольких
клиентов. (Обычно же администратору достаточно, чтобы доступ к серверу имел
лишь он один.) Из-за этого решения на базе указанных продуктов довольно
дороги. Например, подключение клиента к серверу WinFrame обойдется в сумму от
200 до 400 долларов, что очень накладно, поскольку в организации может быть не
один сервер и не один администратор.
Более подходящими, на мой взгляд, для
удаленного администрирования являются специализированные пакеты удаленного
управления, такие, как pcANYWHERE компании Symantec и ReachOut компании Stac.
При использовании таких продуктов содержимое экрана сервера NT дублируется на
дисплее локального компьютера, ввод информации осуществляется с клавиатуры (и
мыши) локального компьютера и передается на удаленный (в данном случае — на
сервер NT). Все выглядит так, как будто администратор сидит за консолью
сервера. pcANYWHERE и другие подобные продукты неплохо функционируют не только
в локальной сети, но и по медленным коммутируемым линиям. Однако они имеют
ограничение на количество одновременных подключений к серверу (обычно лишь
одно подключение). Продукты категории pcANYWHERE имеют встроенные средства
шифрования, поэтому возможность перехвата пароля маловероятна.
Общими недостатками средств
удаленного управления Windows NT является необходимость установки на
клиентские места администраторов дополнительных программных
продуктов.
NETWARE
Из-за своеобразия архитектуры Novell
NetWare проблемы удаленного доступа к консоли следует отделить от проблем
управления ресурсами сети.
Управление учетными записями
пользователей, групп, объектами NDS, правами доступа в NetWare осуществляется
с клиентских мест, поэтому администрирование изначально является удаленным.
Тем не менее администраторы могут столкнуться с одним препятствием: до пятой
версии NetWare основным сетевым протоколом был IPX/SPX. Это создавало и
создает большие проблемы при управлении серверами NetWare через Internet. Если
администратор должен иметь возможность управления сетевой ОС с домашнего
компьютера, то ему стоит подумать о подключении к локальной сети через сервер
удаленного доступа, поддерживающий протоколы IPX/SPX. К счастью, большинство
аппаратных серверов поддерживают такой режим.
Однако затраты на создание
необходимой инфраструктуры могут оказаться неприемлемыми, поэтому нередко
домашние компьютеры администраторов подключаются к локальной сети через
Internet. В такой ситуации можно предложить следующий вариант: установить на
один из компьютеров локальной сети программу pcANYWHERE (или аналогичную), а
управление сетью с домашнего компьютера осуществлять через это промежуточное
звено. Такой подход, кстати, может оказаться и более привлекательным с точки
зрения производительности, поскольку по коммутируемым каналам связи программы
управления сетью (особенно NetWare Administrator) работают очень медленно. Еще
один способ — модернизировать NetWare до пятой версии (или инсталлировать
NetWare/IP).
Что касается удаленного доступа к
консоли, то в состав NetWare входит утилита Rconsole для доступа к консоли с
рабочей станции сети. Однако у нее есть два ограничения: во-первых, пароль
консоли передается в открытом виде, во-вторых, в качестве протокола
используется IPX/SPX. Избежать передачи паролей в открытом виде позволяют
утилиты независимых производителей, реализующие безопасный удаленный доступ к
консоли. Среди них наибольшей известностью пользуется коммерческая программа
SecureConsole for NetWare компании Protocom Development Systems (http://www.serversystems.com).
При доступе она задействует зашифрованный пароль администратора.
Как и в других случаях, препятствие в
виде протоколов IPX/SPX можно устранить за счет применения программ типа
pcANYWHERE (т. е. использовать один из компьютеров локальной сети в качестве
передаточного звена). Еще один способ состоит в применении программы xconsole,
реализующей доступ к консоли через X Window System, т. е. по TCP/IP.
Написанная на Java утилита удаленного доступа RConsoleJ в составе NetWare 5
также использует в качестве транспорта TCP/IP. Однако программами xconsole и
RConsoleJ пароль передается в открытом виде. Подводя итоги, можно сказать, что
для удаленного управления NetWare рекомендуется использовать
специализированные средства наподобие pcANYWHERE.
ТЕХНОЛОГИЯ WEB
Технология Web оказывает все большее
влияние на средства управления сетевой средой. Уже сейчас многие
маршрутизаторы, коммутаторы, сетевые принтеры допускают управление через
браузеры Web. Но список этот далеко не исчерпывается ими, Web вторгается и в
сферу управления сетевыми ОС. Вначале из Web можно было управлять лишь
серверами HTTP и FTP, но этот список постоянно расширяется и охватывает теперь
СУБД, файловые системы, межсетевые экраны, сетевые службы DNS, DHCP и многое
другое. Даже службой каталогов NDS можно управляться через браузеры с помощью
специальных коммерческих программ. Несмотря на вышеизложенное, до полноценного
управления всей сетевой средой технологии на базе Web еще не доросли. Проблему
обостряет и то, что для многих приложений и, особенно, сетевых устройств
пароль по HTTP передается в открытом виде.
ЗАКЛЮЧЕНИЕ
При организации удаленного управления
серверами необходимо принимать во внимание множество факторов, в первую
очередь, характеристики сетевой ОС, производительность линий связи, вопросы
безопасной аутентификации. Наиболее полный набор средств управления
предоставляет UNIX, однако, при грамотном подходе, администраторам Windows NT
и NetWare также нет основания для
беспокойства.
|