Лекция 23
Тема: Сетевое программное обеспечение. Сетевые протоколы для удалённого управления компьютером
1.Сетевое программное обеспечение.
Сетевое программное обеспечение предназначено для организации совместной работы группы пользователей на разных компьютерах. Позволяет организовать общую файловую структуру, общие базы данных, доступные каждому члену группы. Обеспечивает возможность передачи сообщений и работы над общими проектами, возможность разделения ресурсов.
1.1. Функции и характеристики сетевых операционных систем (ОС)
К основным функциям сетевых ОС относят:
- управление каталогами и файлами;
- управление ресурсами;
- коммуникационные функции;
- защиту от несанкционированного доступа;
- обеспечение отказоустойчивости;
- управление сетью.
Управление каталогами и файлами в сетях заключается в обеспечении доступа к данным, физически расположенным в других узлах сети. Управление осуществляется с помощью специаль-ной сетевой файловой системы. Файловая система позволяет обращаться к файлам путем применения привычных для локальной работы языковых средств. При обмене файлами должен быть обеспечен необходимый уровень конфиденциальности обмена (секретности данных).
Управление ресурсами включает обслуживание запросов на предоставление ресурсов, доступных по сети.
Коммуникационные функции обеспечивают адресацию, буферизацию, выбор направления для движения данных в разветвленной сети (маршрутизацию), управление потоками данных и др.
Защита от несанкционированного доступа — важная функция, способствующая поддержанию целостности данных и их конфиденциальности. Средства защиты могут разрешать доступ к определенным данным только с некоторых терминалов, в оговоренное время, определенное число раз и т.п. У каждого пользователя в корпоративной сети могут быть свои права доступа с ограничением совокупности доступных директорий или списка возможных действий, например, может быть запрещено изменение содержимого некоторых файлов.
Отказоустойчивость характеризуется сохранением работоспособности системы при воздействии дестабилизирующих факторов. Отказоустойчивость обеспечивается применением для серверов автономных источников питания, отображением или дублированием информации в дисковых накопителях. Под отображением обычно понимают наличие в системе двух копий данных с их расположением на разных дисках, но подключенных к одному контроллеру. Дублирование отличается тем, что для каждого из дисков с копиями используются разные контроллеры. Очевидно, что дублирование более надежно. Дальнейшее повышение отказоустойчивости связано с дублированием серверов, что однако требует дополнительных затрат на приобретение оборудования.
Управление сетью связано с применением соответствующих протоколов управления. Программное обеспечение управления сетью обычно состоит из менеджеров и агентов.Менеджером называется программа, вырабатывающая сетевые команды. Агенты представляют собой программы, расположенные в различных узлах сети. Они выполняют команды менеджеров, следят за состоянием узлов, собирают информацию о параметрах их функционирования, сигнализируют о происходящих событиях, фиксируют аномалии, следят за трафиком, осуществляют защиту от вирусов.
Агенты с достаточной степенью интеллектуальности могут участвовать в восстановлении информации после сбоев, в корректировке параметров управления и т.п.
1.2. Программное обеспечение сетевых ОС распределено по узлам сети.
Имеется ядро ОС,выполняющее большинство из охарактеризованных выше функций, и дополнительные программы (службы), ориентированные на реализацию протоколов верхних уровней, выполнение специфических функций для коммутационных серверов, организацию распределенных вычислений и т.п. К сетевому программному обеспечению относят также драйверы сетевых плат. Для каждого типа ЛВС разработаны разные типы плат и драйверов. Внутри каждого типа ЛВС может быть много разновидностей плат с разными характеристиками интеллектуальности, скорости, объема буферной памяти.
В настоящее время наибольшее распространение получили три основные сетевые ОС — UNIX, Windows и Novell Netware.
ОC UNIX применяют преимущественно в крупных корпоративных сетях, поскольку эта система характеризуется высокой надежностью, возможностью легкого масштабирования сети. В Unix имеется ряд команд и поддерживающих их программ для работы в сети. Во-первых, это командыftp, telnet, реализующие файловый обмен и эмуляцию удаленного узла на базе протоколовTCP/IP. Во-вторых, протокол, команды и программы UUCP, разработанные с ориентацией на асинхронную модемную связь по телефонным линиям между удаленными Unix-узлами в корпоративных и территориальных сетях.
ОС Windows обеспечивает работу в сетях "клиент/сервер". Windows обычно применяют в средних по масштабам сетях.
ОС Novell Netware состоит из серверной части и оболочек Shell, размещаемых в клиентских узлах. Предоставляет пользователям возможность совместно использовать файлы, принтеры и другое оборудование. Содержит службу каталогов, общую распределённую базу данных пользователей и ресурсов сети. Эту ОС чаще применяют в небольших сетях.
2.Удаленное управление сетевыми ОС
2.1.Удаленное управление сетевыми ОС
Средства удаленного управления операционными системами UNIX, Windows и NetWare.
Когда говорят про удаленное управление, обычно имеют в виду платформы сетевого управления на базе протокола SNMP. Среди наиболее распространенных платформ можно назвать HP OpenView, Microsoft SMS, Novell ManageWise и др. Однако их возможности достаточно ограничены: они хорошо подходят для мониторинга сетевых устройств, но гораздо хуже — для непосредственного управления работой серверов и ОС. Так, с помощью платформы сетевого управления невозможно создать учетную запись пользователя, запустить на сервере программу, написать исполняемый сценарий и многое другое. Поэтому вместо «платформа управления» правильнее было бы употребить термин «платформа мониторинга».
Общеизвестно, что самое удобное средство администрирования сервера — это его консоль. С консоли администратор может отслеживать любую активность на сервере, а также управлять ресурсами сетевой ОС. Однако администратор не всегда имеет возможность находиться за консолью UNIX или Windows.
Хотя сейчас повседневным явлением стало размещение серверов в специальных серверных комнатах, сетевые администраторы не стремятся перебираться в такие помещения. Во-первых, серверные комнаты заполнены не только серверами, но и активным сетевым оборудованием, мощными источниками бесперебойного питания, коммутационными шкафами, средствами резервного копирования и т. д. Из-за неблагоприятного электромагнитного фона постоянное нахождение персонала в серверной комнате нежелательно. Во-вторых, в таких комнатах достаточно высок уровень шума, из-за чего иногда затруднительно пользоваться даже телефоном. После 8 часов работы в подобных условиях человек чувствует себя совершенно разбитым. В-третьих, серверных комнат в большой организации может быть несколько. По указанным причинам администратор хотел бы иметь рабочее место вне серверной комнаты, но пользоваться всеми преимуществами консоли.Кроме того, у пользователей постоянно возникают те или иные проблемы, и администратор вынужден посещать клиентские места. В таких случаях ему важно иметь возможность удаленного управления сетевой ОС, например для назначения прав доступа, создания новой учетной записи пользователя, увеличения размера файловой системы и т. д.
Наконец, проблемы могут возникнуть и во внерабочее время, когда администратор находится дома. В таких случаях желательно, чтобы он, используя свой домашний компьютер и модем, мог удаленно идентифицировать и исправить проблему, а не мчаться сломя голову в офис.
Все сетевые операционные системы имеют средства удаленного администрирования, либо встроенные, либо поставляемые независимыми компаниями. Часть из них реализует концепцию удаленной консоли (или удаленного терминала), часть предоставляет разрозненные средства администрирования, направленные на решение только некоторых конкретных задач.
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, и в основном оно имеется только в составе достаточно дорогих коммерческих продуктов.