Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация сетевого администрирования (лекции часть 1) / Лекция 23 Сетевые протоколы для удалённого управления компьютером.doc
Скачиваний:
389
Добавлен:
25.04.2017
Размер:
84.48 Кб
Скачать

2.2.Операционные системы и администрирование

Прежде чем говорить об удаленном управлении сетевыми ОС, мы кратко рассмотрим принципы администрирования самых популярных операционных систем: Windows  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 не может тягаться с UNIX в вопросах администрирования. По удобству администрирования — да, но никак не по его возможностям.

 Как известно, графическая оболочка Windows неотделима от ядра системы. Хотя с точки зрения надежности это не лучший вариант, подобная реализация позволяет добиваться исключительно высоких показателей производительности на графических операциях. Другое дело, что на сервере NT проку от этого немного — назначение сервера состоит никак не в быстром выводе графической информации. Вдобавок, графическая среда Windows не является сетевой.

Для Windows  имеется несколько утилит администрирования на базе командной строки. Однако их набор достаточно ограничен, к тому же возможности встроенного командного процессора не идут ни в какое сравнение с shell из UNIX. В комплекте с Windows Server поставляется также ряд программ удаленного управления пользователями, доменами, правами доступа и т. д. Такие программы можно инсталлировать на компьютеры Windows. Тем не менее многие сетевые приложения, особенно независимых разработчиков, не имеют средств удаленного управления. Поэтому для полноценного управления сетевой средой администратор вынужден садиться за консоль либо эмулировать консоль с помощью специализированных программ.

Структура управления NetWare кардинальным образом отличается от принятой в других сетевых ОС. Все операции настройки сервера, включая запуск приложений, осуществляются с консоли. В то же время, управление учетными записями, принтерами, файлами, службой каталогов NDS производится с клиентских мест. Правда, в последней версии NetWare  имеется единая консоль управления сетью ConsoleOne, с помощью которой администратор может управлять сетевыми ресурсами из любой точки сети, в том числе и с консоли. Однако возможности ConsoleOne пока слишком ограничены, да и работает она медленно, поскольку написана на Java. Вдобавок, доля NetWare  на рынке сетевых ОС пренебрежимо мала, так как основная часть сетей Novell создана на базе NetWare версий 4.x. Консоль NetWare работает в текстовом режиме (в NetWare последней версии сервер поддерживает и графический режим), по-этому управление осуществляется с помощью программ с командной строкой и интерактивным текстовым интерфейсом. Командный язык 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 достигается за счет использования протокола транспортного уровня, протокола аутентификации и протокола соединения. Протокол транспортного уровня отвечает за аутентификацию сервера, протокол аутентификации — за надежную идентификацию и аутентификацию клиента. Протокол соединения формирует шифрованный канал передачи информации.

Данный продукт так же, как многие подобные, запрещен для использования в России.

Согласно Указу Президента Российской Федерации № 334 от 03.04.95 физическим лицам и любым организациям, включая государственные, частные и акционерные, запрещена эксплуатация систем криптографии, не прошедших сертификации в ФАПСИ. А Secure shell является именно такой системой. Однако обижаться на наши спецслужбы не стоит — мы в мире не одни такие, в некоторых странах, например во Франции, правила еще более жесткие (справедливости ради стоит отметить, что во Франции с марта этого года ограничения в области систем шифрования значительно ослаблены). Не стоит также думать, что нам пытаются запретить защищать конфиденциальную информацию: организации не только могут, но и обязаны защищать важную информацию. Только для этого они должны применять сертифицированные средства, а не свободно распространяемые в Internet. Конечно, программы на основе ssh, SSL, PGP и т. п. распространены у нас повсеместно, но следует помнить, что их использование чревато немалыми неприятностями. Пользователи подобных программ потенциально подвергаются риску разбирательства со стороны спецслужб. Во всяком случае мы не имеем права и желания пропагандировать такой подход.

Безопасная аутентификация

В большинстве задач управления администраторов интересует не защита передаваемых данных, а надежная аутентификация пользователей, чтобы злоумышленник не мог перехватить и воспользоваться паролем администратора. Решений может быть несколько. Прежде всего, это технология Kerberos, основанная на выдаче мандатов (ticket). (На самом деле, Kerberos обеспечивает не только аутентификацию, но и шифрование сетевых коммуникаций, что, опять же, подпадает под действие Указа Президента.) Правда, из-за экспортных ограничений правительства США механизм шифрования значительно ослаблен. В корпоративных системах коммутируемого доступа могут использоваться такие надежные сервисы аутентификации, как RADIUS, TACACS+ и XTACACS. Но все эти службы (включая Kerberos) подразумевают широкомасштабную перекройку сетевой инфраструктуры, влекущую за собой большие затраты. Вряд ли это оправдано, если круг задач удаленного доступа ограничен лишь проблемами управления сетевыми ОС.

Для таких задач больше подходят средства поддержки одноразовых паролей (One-Time Password, OTP). Суть подобных систем состоит в том, что передаваемый по сети пароль пользователя действителен в течение только одного сеанса связи. Т. е. даже если злоумышленнику удалось перехватить пароль, то воспользоваться им он не сможет, поскольку при следующем сеансе пароль будет уже изменен.