Сетевые сервисы удаленного управления ресурсами информационных систем. Удаленное управление сетевыми ос

Потребность в доступе к удаленному принтеру может возникать у пользователей самых разных приложений: текстового редактора, графического редактора, системы управления базой данных (СУБД). Очевидно, что дублирование в каждом из приложений общих для всех них функций по организации удаленной печати является избыточным.

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

Обобщая такой подход применительно к другим типам разделяемых ресурсов, дадим следующие определения:

Клиент - это модуль, предназначенный для формирования и передачи сообщений-запросов к ресурсам удаленного компьютера от разных приложений с последующим приемом результатов из сети и передачей их соответствующим приложениям.

Сервер - это модуль, который постоянно ожидает прихода из сети запросов от клиентов, и приняв запрос, пытается его обслужить, как правило, с участием локальной ОС; один сервер может обслуживать запросы сразу нескольких клиентов (поочередно или одновременно).

Пара клиент -сервер, предоставляющая доступ к конкретному типу ресурса компьютера через сеть, образует сетевую службу.

Каждая служба связана с определенным типом сетевых ресурсов. Так, на рис. Модули клиента и сервера, реализующие удаленный доступ к принтеру, образуют сетевую службу печати.

Файловая служба позволяет получать доступ к файлам, хранящимся на диске других компьютеров. Серверный компонент файловой службы называют файл-сервером.

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

На схеме веб-службы, показанной на рис., два компьютера связаны не непосредственно, как это было во всех предыдущих примерах, а через множество промежуточных компьютеров и других сетевых устройств, входящих в состав Интернета. Для того чтобы отразить этот факт графически, мы поместили между двумя компьютерами так называемое коммуникационное облако, которое позволяет нам абстрагироваться от всех деталей среды передачи сообщений. Обмен сообщениями между клиентской и серверной частями веб-службы выполняется по стандартному протоколу HTTP и никак не зависит от того, перелаются ли эти сообщения «из рук в руки» (от интерфейса одного компьютера к интерфейсу другого) или через большое число посредников - транзитных коммуникационных устройств. Вместе с тем, усложнение среды передачи сообщений приводит к возникновению новых дополнительных задач, на решение которых не был рассчитан упоминавшийся ранее простейший драйвер сетевой интерфейсной карты. Вместо него на взаимодействующих компьютерах должны быть установлены более развитые программные транспортные средства.


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

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

Говоря о сетевой ОС, мы, очевидно, должны расширить границы управляемых ресурсов за пределы одного компьютера.

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

Сегодня практически все операционные системы являются сетевыми.

Из примеров, рассмотренных в предыдущих разделах, мы видим, что удаленный доступ к сетевым ресурсам обеспечивается:

· сетевыми службами;

· средствами транспортировки сообщений по сети (в простейшем случае - сетевыми интерфейсными картами и их драйверами).

Следовательно, именно эти функциональные модули должны быть добавлены к ОС, чтобы она могла называться сетевой (рис.).

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

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

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

И сетевые службы, и транспортные средства могут являться неотъемлемыми (встроенными) компонентами ОС или существовать в виде отдельных программных продуктов. Например, сетевая файловая служба обычно встраивается в ОС, а вот веб-браузер чаще всего приобретается отдельно. Типичная сетевая ОС имеет в своем составе широкий набор драйверов и протокольных модулей, однако у пользователя, как правило, есть возможность дополнить этот стандартный набор необходимыми ему программами. Решение о способе реализации клиентов и серверов сетевой службы, а также драйверов и протокольных модулей принимается разработчиками с учетом самых разных соображений: технических, коммерческих и лаже юридических. Так, например, именно на основании антимонопольного закона США компании Microsoft было запрещено включать ее браузер Internet Explorer в состав ОС этой компании.

Сетевая служба может быть представлена в ОС либо обеими (клиентской и серверной) частями, либо только одной из них.

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

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

К другому типу операционных систем относится серверная ОС - она ориентирована на обработку запросов из сети к ресурсам своею компьютера и включает в себя в основном серверные части сетевых служб. Компьютер с установленной на нем серверной ОС, занимающийся исключительно обслуживанием запросов других компьютеров, называют выделенным сервером сети. За выделенным сервером, как правило, обычные пользователи не работают.

Сетевые приложения

Компьютер, подключенный к сети, может выполнять следующие типы приложений:

· Локальное приложение целиком выполняется на данном компьютере и использует только локальные ресурсы (рис.а). Для такого приложения не требуется никаких сетевых средств, оно может быть выполнено на автономно работающем компьютере.

· Централизованное сетевое приложение целиком выполняется на данном компьютере. но обращается в процессе своего выполнения к ресурсам других компьютеров сети. Б примере на рисунке б приложение, которое выполняется на клиентском компьютере, обрабатывает данные из файла, хранящегося на файл-сервере, а затем распечатывает результаты на принтере, подключенном к серверу печати. Очевидно, что работа такого типа приложений невозможна без участия сетевых служб и средств транспортировки сообщений.

· Распределенное (сетевое) приложение состоит из нескольких взаимодействующих частей, каждая из которых выполняет какую-то определенную законченную работу по решению прикладной задачи, причем каждая часть может выполняться и, как правило, выполняется на отдельном компьютере сети (рис. в). Части распределенного приложения взаимодействуют друг с другом, используя сетевые службы и транспортные средства ОС. Распределенное приложение в общем случае имеет доступ ко всем ресурсам компьютерной сети.

Очевидным преимуществом распределенных приложений является возможность распараллеливания вычислений, а также специализация компьютеров. Так, в приложении, предназначенном, скажем, для анализа климатических изменений, можно выделить три достаточно самостоятельные части (см. рис. 2.6, в), допускающие распараллеливание. Первая часть приложения, выполняющаяся на сравнительно маломощном персональном компьютере, могла бы поддерживать специализированный графический пользовательский интерфейс, вторая - заниматься статистической обработкой данных на высокопроизводительном мэйнфрейме, а третья - генерировать отчеты на сервере с установленной стандартной СУБД. В общем случае каждая из частей распределенного приложения может быть представлена несколькими копиями, работающими на разных компьютерах. Скажем, в данном примере часть 1, ответственную за поддержку специализированного пользовательского интерфейса, можно было бы запустить на нескольких персональных компьютерах, что позволило бы работать с этим приложением нескольким пользователям одновременно.

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

Заметим, что все сетевые службы, включая файловую службу, службу печати, службу электронной почты, службу удаленного доступа, интернет-телефонию и т. д., по определению относятся к классу распределенных приложений. Действительно, любая сетевая служба включает в себя клиентскую и серверную части, которые могут и обычно выполняются на разных компьютерах.

На рис. 2.7, иллюстрирующем распределенный характер веб-службы, мы видим различные виды клиентских устройств - персональные компьютеры, ноутбуки и мобильные телефоны - с установленными на них веб-браузерами, которые взаимодействуют по сети с веб-сервером. Таким образом, с одним и тем же веб-сайтом может одновременно работать множество - сотни и тысячи - сетевых пользователей.

Многочисленные примеры распределенных приложений можно встретить и в такой области, как обработка данных научных экспериментов. Это не удивительно, так как многие эксперименты порождают такие большие объемы данных, генерируемых в реальном масштабе времени, которые просто невозможно обработать на одном, даже очень мощном, суперкомпьютере. Кроме того, алгоритмы обработки экспериментальных данных часто легко распараллеливаются, что также важно для успешного применения взаимосвязанных компьютеров с целью решения какой-либо общей задачи. Одним из последних и очень известных примеров распределенного научного приложения является программное обеспечение обработки данных большого адронного коллайдера (Large Hadron Collider, LHC), запущенного 10 сентября 2008 года в CERN - это приложение работает более чем на 30 тысячах компьютеров, объединенных в сеть.

В зависимости от того, что можно делать с помощью данного сервиса (программного средства), выделяют следующие виды сервисов:

2.Совместный поиск информации (социальные поисковые системы)

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

Например, система пользовательского поиска Google (http://www.google.com/cse)

3.Совместное хранение закладок

Примером русскоязычного сервиса социальных закладок является (http://bobrdobr.ru/)

4.Совместное хранение медиафайлов

Средства сети Интернет, которые позволяют бесплатно хранить, классифицировать, обмениваться цифровыми фотографиями, аудио- и видеозаписями, текстовыми файлами, презентациями, а также организовывать обсуждение ресурсов.

По типу хранящихся файлов выделяют следующие виды:

I.Фотографии, схемы, рисунки

Примерами таких сервисов являются:

Фликр - предназначен для хранения и дальнейшего личного либо совместного использования цифровых фотографий (http://www.flickr.com).

Панорамио - позволяет хранить фотографии и привязывать их к определенной точке местности, а также осуществлять поиск географических объектов с использованием сервиса Google Maps (http://www.panoramio.com)

Picasa – это бесплатная программа для работы с цифровыми фотографиями. При каждом запуске на автономном компьютере автоматически Picasa определяет местоположение фотографий на жестком диске и сортирует их в визуальные альбомы, упорядоченные по датам в которых фотографии можно редактировать, хранить, распечатывать, отправлять по электронной почте, создавать из них коллаж.. В 2004 г. была приобретена компанией Google, и в дальнейшем Picasa интегрирована с фотохостингом (http://picasa.google.com).

II.Презентации

Сервисы, позволяющие создавать веб-презентации, предоставляя следующие возможности:

Совместная работа нескольких пользователей над созданием одной презентации в режиме онлайн;

Хранение в виртуальном файл-менеджере готовых презентаций и библиотеки графических элементов, которые можно использовать в следующих презентациях;

Импортирование презентации в формате Power Point для ее дальнейшего просмотра как веб-презентации.

III.Видео

Сервисы, предназначенные для хранения, просмотра и обсуждения цифровых видеозаписей; наличие видеоредактора, позволяето удалять лишние кадры или объединять несколько роликов в один.

Пример: YouTube (Ютьюб) (http://youtube.com), RuTube (Рутьюб)

(http://rutube.ru/)

IV.Текстовые документы

Сервисы, предназначенные для: создания документов в режиме он-лайн, хранения этих документов, просмотра (чтения) в режиме он-лайн.

Например Google Docs (http://docs.google.com Þ Документы)

V.Карты знаний (ментальные карты, mind maps, интеллект-карты)

Сервисы, предназначенные для создания, хранения, просмотра и редактирования интеллект-карт в режиме он-лайн.

VI.Аудиозаписи, подкасты, интернет-радио

Подкастинг – это сервис, представляющий собой регулярно пополняемый журнал аудиозаписей.

Подкасты – это аудиофайлы с использованием технологии RSS, чаще всего существующие в формате MP3.

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

Один из множества сайтов с подкастингами: http://www.podcastdepo.ru

5.Блоги

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

Популярные блог-хостинги:

Живой журнал ЖЖ (http://Livejournal.com);

Живой Интернет (http://Liveinternet.ru)

Блоги Google (http://www.blogger.com)

6.ВикиВики (WikiWiki)

Cредство для быстрого создания и редактирования коллективного гипертекста.

Достоинствами ВикиВики являются:

Например,

­Общероссийский образовательный проект Летописи.ру (http://letopisi.ru);

­Открытая всемирная энциклопедия ВикиПедия (на русском языке http://ru.wikipedia.org).

7.Социальные геосервисы

Cервисы, которые позволяют находить, отмечать, комментировать, снабжать фотографиями различные объекты в любом месте на изображении Земного шара с достаточно высокой точностью, т.к. эти изображения получены с помощью околоземных спутников.

Примеры геосервисов:

WikiMapia (http://wikimapia.org)

Google Maps (http://www.google.ru/maps)

Google Earth (Google Планета Земля) (http://www.google.com/earth)

8.Обмен сообщениями

К таким сервисам относятся:

−Чат (англ. chat - болтать) - это средство обмена текстовыми сообщениями по компьютерной сети в режиме реального времени посредством мессенджеров - программ мгновенного обмена сообщениями (Mail.Ru Агент, ISQ, Skype)

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

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 и т. д.

Аутентификация пользователя при терминальном доступе осуществляется следующим образом. После ввода имени пользователя ему выдается номер очередной итерации и некий источник (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 в каталоге \Clients\Srvtools. Эти утилиты можно установить как на Windows NT Workstation, так и на Windows 9x (см. Рисунок 4). С их помощью можно выполнять администрирование учетных записей пользователей и групп, прав и привилегий, доменов NT, контролировать журналы событий на серверах и рабочих станциях. Утилиты работают в графическом режиме, аналогично «родным» утилитам управления 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 также нет основания для беспокойства.

В 1961 году Defence Advanced Research Agensy (DARPA – оборонное агентство передовых исследовательских проектов) по заданию министерства обороны США приступило к проекту по созданию экспериментальной сети передачи пакетов. Эта сеть, названная ARPANET, первоначально предназначалась для изучения поддержки связи в случае ядерного нападения и для помощи ученым в обмене информацией между разбросанными по всем штатам исследовательскими организациями оборонной промышленности.

В основу проекта были положены три основные идеи:

– каждый узел сети соединен с другими, так что между ними существует несколько различных путей друг к другу;

– все узлы и связи рассматриваются как ненадежные;

– существуют автоматически обновляемые таблицы перенаправле-ния пакетов; например, пакет, предназначенный для несоседнего узла отправляется, в соответствии с такой таблицей, на ближайший к нему, а при недоступности этого узла – на следующий и т.д.

Созданная по таким принципам система не имела централизованного узла управления и, следовательно, безболезненно могла изменять свою конфигурацию.

Эксперимент с ARPANET был настолько успешен, что многие организации захотели войти в нее с целью использования этой системы для ежедневной передачи данных. И в 1975 году ARPANET превратилась из экспериментальной сети в рабочую сеть.

Россия подключилась к ней в конце 80-х годов. В 1990 году сеть APRANET перестала существовать, и на ее месте возник Интернет, который сделал возможным свободный обмен информацией, невзирая на расстояния и государственные границы.

Фактически, Интернет состоит из множества локальных и глобальных сетей, принадлежащих различным компаниям и предприятиям, работающим по самым разнообразным протоколам, и соединенным между собой различными линиями связи, которые физически передают данные по телефонным проводам, оптоволокну, через спутники и радиомодемы.

За Интернет никто централизовано не платит, каждый – лишь за свою часть. Представители сетей собираются вместе и решают, как им соединяться друг с другом и содержать эти взаимосвязи. Пользователь платит за подключение к некоторой региональной сети, которая, в свою очередь, оплачивает свой доступ сетевому владельцу государственного масштаба. Интернет не имеет никакого собственника, здесь нет и специального органа управления, который бы контролировал всю работу этой сети. Локальные сети различных стран финансируются и управляются местными органами согласно политике государства по данному вопросу.

Структура Интернет напоминает паутину, в узлах которой находятся компьютеры, сопряженные между собой линиями связи. Узлы Интернет, соединенные высокоскоростными линиями связи, составляют базис Интернет. Как правило, это поставщики услуг (провайдеры). Оцифрованные данные пересылаются через маршрутизаторы, которые соединяют сети с помощью сложных алгоритмов, выбирая маршруты для информационных потоков.

Каждый компьютер в Интернет имеет свой уникальный адрес. В протоколе TCP/IP каждая машина адресуется четырьмя десятичными числами, которые отделяются друг от друга точками, причем каждое число может иметь значение от 1 до 255. Адрес компьютера выглядит следующим образом:

Такой адрес называется IP-адресом. Этот номер может быть либо постоянно закреплен за компьютером, либо же присваиваться динамически – в тот момент, когда пользователь соединился с провайдером, но в любой момент времени в Интернет не существует двух компьютеров с одинаковыми IP-адресами.

Пользователю неудобно запоминать такие адреса, которые к тому же могут изменяться. Поэтому в Интернет существует Доменная Служба Имен (DNS – Domain Name System), позволяющая каждый компьютер называть по имени. В сети существуют миллионы компьютеров, и чтобы имена не повторялись, они разделены по независимым доменам.

Таким образом, адрес компьютера выглядит как несколько доменов, разделенных точкой:

<сегмент n>. … <сегмент 3>.<сегмент 2>.<сегмент 1>.

Здесь сегмент 1 – домен 1 уровня, сегмент 2 – домен 2 уровня и т.д.

Доменное имя – это уникальное имя, которое данный поставщик услуг избрал себе для идентификации, например: ic.vrn.ru или yahoo.com

Например, доменный адрес (доменное имя) www.microsoft.com обозначает компьютер с именем www в домене microsoft.com. Microsoft – это название фирмы, com – это домен коммерческих организаций. Имя компьютера www говорит о том, что на этом компьютере находится WWW-сервис. Это стандартный вид адреса серверов крупных фирм (например, www.intel.com, www.amd.com и т.д.). Имена компьютеров в разных доменах могут повторяться. Кроме того, один компьютер в сети может иметь несколько DNS-имен.

Домен 1 уровня обычно определяет страну местоположения сервера (ru – Россия; ua – Украина; uk – Великобритания; de – Германия) или вид организации (com – коммерческие организации; edu – научные и учебные организации; gov – правительственные учреждения; org – некоммерческие организации).

При введении доменного имени, например, www.mrsu.ru , компьютер должен преобразовать его в адрес. Чтобы сделать это, он посылает запрос серверу DNS, начиная с правой части доменного имени и двигаясь влево. Его программное обеспечение знает, как связаться с корневым сервером, на котором хранятся адреса серверов имён домена первого уровня (крайней правой части имени, например, ru ). Таким образом, сервер запрашивает у корневого сервера адрес компьютера, отвечающего за домен ru . Получив информацию, он связывается с этим компьютером и запрашивает у него адрес сервера mrsu , после чего от сервера mrsu получает адрес www компьютера, который и был целью данной прикладной программы.

Данные в Интернет пересылаются не целыми файлами, а небольшими блоками, которые называются пакетами. Каждый пакет содержит в себе адреса компьютеров отправителя и получателя, передаваемые данные и порядковый номер пакета в общем потоке данных. Благодаря тому, что каждый пакет содержит все необходимые данные, он может доставляться независимо от других, и довольно часто случается так, что пакеты добираются до места назначения разными путями. А компьютер-получатель затем выбирает из пакетов данные и собирает из них тот файл, который был заказан.

Для идентификации служб используются порты. Порт – это число, которое добавляется к адресу компьютера и указывает на программу, для которой данные предназначены. Каждой программе, запущенной на компьютере, соответствует определенный порт, и реагирует она только на те пакеты, которые этому порту адресованы. Существует большое количество стандартных портов, соответствующих определенным службам, например, 21 – FTP; 23 – telnet; 25 – SMTP; 80 – HTTP; 110 – POP3; 70 – Gopher и т.д.

В Интернет используются не просто доменные имена, а универсальные указатели ресурсов URL (Universal Resource Locator).

URL включает в себя:

– метод доступа к ресурсу, т.е. протокол доступа (http, gopher, WAIS, ftp, file, telnet и др.);

– сетевой адрес ресурса (имя хост-машины и домена);

– полный путь к файлу на сервере.

В общем виде формат URL выглядит так:

method://host.domain[:port]/path/filename,

где method – одно из значений, перечисленных ниже:

file – файл на локальной системе;

http – файл на World Wide Web сервере;

gopher – файл на Gopher сервере;

wais – файл на WAIS (Wide Area Information Server) сервере;

news – группа новостей телеконференции Usenet;

telnet – выход на ресурсы сети Telnet;

ftp – файл на FTP – сервере;

host.domain – доменное имя в сети Интернет;

port – число, которое необходимо указывать, если метод требует номер порта.

Пример: http://support.vrn.ru/archive/index.html.

Ниже приведены некоторые наиболее часто встречающиеся названия компьютеров сети Интернет.

Сервер в сети Интернет – это компьютер, обеспечивающий обслуживание пользователей сети: разделяемый доступ к дискам, файлам, принтеру, системе электронной почты. Обычно, сервер – это совокупность аппаратного и программного обеспечения.

Сайт – обобщенное название совокупности документов в Интернет, связанных между собой ссылками.

Шлюз – это компьютер или система компьютеров со специальным программным обеспечением, позволяющая связываться двум сетям с разными протоколами.

Домашняя страница – это персональная Web-страница конкретного пользователя или организации.

Основной задачей, решаемой при создании компьютерных сетей, является обеспечение совместимости оборудования по электрическим и механическим характеристикам и обеспечение совместимости информационного обеспечения (программ и данных) по системе кодирования и формату данных. Решение этой задачи относится к области стандартизации и основано на так называемой модели OSI (модель взаимодействия открытых систем – Model of Open System Interconnections), которая была создана на основе технических предложений Международного института стандартов ISO (International Standards Organization).

Согласно модели OSI, архитектуру компьютерных сетей следует рассматривать на разных уровнях (общее число уровней – до семи), (рис. 9). Самый верхний – прикладной. На этом уровне пользователь взаимодействует с вычислительной системой. Самый нижний уровень – физический, который обеспечивает обмен сигналами между устройствами. Обмен данными в системах связи происходит путем их перемещения с верхнего уровня на нижний, затем транспортировки и, наконец, обратным воспроизведением на компьютере клиента в результате перемещения с нижнего уровня на верхний.

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

Рис. 9. Уровни управления и протоколы OSI

Каждый уровень архитектуры подразделяется на две части:

– спецификацию услуг;

– спецификацию протокола.

Спецификация услуг определяет, что делает уровень, а спецификация протокола – как он это делает, причем каждый конкретный уровень может иметь более одного протокола.

Рассмотрим функции, выполняемые каждым уровнем программного обеспечения:

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

2. Канальный уровень добавляет в передаваемые массивы информации вспомогательные символы и контролирует правильность передаваемых данных. Здесь передаваемая информация разбивается на несколько пакетов или кадров. Каждый пакет содержит адреса источника и места назначения, а также средства обнаружения ошибок.

3. Сетевой уровень определяет маршрут передачи информации между сетями, обеспечивает обработку ошибок, а также управление потоками данных. Основная задача этого уровня – маршрутизация данных (передача данных между сетями).

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

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

6. Представительский – управляет представлением данных в форме, необходимой для пользователя программы, производит компрессию и декомпрессию данных. Задачей такого уровня является преобразование данных при передаче информации в формат, который используется в информационной системе. При приеме данных этот уровень представления выполняет обратное преобразование.

7. Прикладной уровень взаимодействует с прикладными сетевыми программами, обслуживающими файлы, а также выполняет вычислительные, информационно-поисковые работы, логические преобразования информации, передачу почтовых сообщений и т. п. Главная задача этого уровня – обеспечить удобный интерфейс для пользователя.

На разных уровнях обмен происходит различными единицами информации: биты, кадры, пакеты, сеансовые сообщения, пользовательские сообщения.

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

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

Протокол TCP/IP – это два протокола нижнего уровня, являющиеся основой связи в Интернет. Протокол TCP (Transmission Control Protocol) разбивает передаваемую информацию на порции и все их нумерует. С помощью протокола IP (Internet Protocol) все части передаются получателю. Далее с помощью протокола TCP проверяется, все ли части получены. При получении всех порций TCP располагает их в нужном порядке и собирает в единое целое.

Рассмотрим наиболее известные протоколы, используемые в сети Интернет.

HTTP (Hyper Text Transfer Protocol) – это протокол передачи гипертекста, используется при пересылке Web-страниц с одного компьютера на другой.

FTP (File Transfer Protocol) – это протокол передачи файлов со специального файлового сервера на компьютер пользователя, который дает возможность абоненту обмениваться двоичными и текстовыми файлами с любым компьютером сети. Установив связь с удаленным компьютером, пользователь может скопировать с него файл на свой или наоборот, скопировать файл со своего компьютера на удаленный.

POP (Post Office Protocol) – это стандартный протокол почтового соединения. Серверы POP обрабатывают входящую почту, а протокол POP предназначен для обработки запросов на получение почты от клиентских почтовых программ.

Стандарт SMTP (Simple Mail Transfer Protocol) задает набор правил для передачи почты. Сервер SMTP возвращает либо подтверждение о приеме, либо сообщение об ошибке, либо запрашивает дополнительную информацию.

UUCP (Unix to Unix Copy Protocol) – это ныне устаревший, но все еще применяемый протокол передачи данных, в том числе для электронной почты. Этот протокол предполагает использование пакетного способа передачи информации, при котором сначала устанавливается соединение клиент- сервер и передается пакет данных, а затем автономно происходит его обработка, просмотр или подготовка писем.

TELNET – это протокол удаленного доступа, который дает возможность абоненту работать на любой ЭВМ сети Интернет как на своей собственной, то есть запускать программы, менять режим работы и т.д. На практике возможности лимитируются тем уровнем доступа, который задан администратором удаленной машины.

WWW (World Wide Web – всемирная паутина) – это служба, предоставляющая доступ к различным ресурсам Интернет – документам, графике, аудио и видеозаписям и использующая протокол HTTP и язык HTML.

Технология WWW была разработана в 1989 г. в Женеве, в Лаборатории физики элементарных частиц Европейского центра ядерных исследований (CERN).

HTTP – это протокол передачи гипертекстовых документов. HTML (Hypertext Markup Language) – это язык разметки гипертекста. Гипертекст, в свою очередь, это формат документа, который кроме текста, может содержать ссылки на другие гипертекстовые документы, картинки, музыку и файлы. Гиперссылки – это ссылки, позволяющие переходить от одного Web-ресурса к другому щелчком мыши. При просмотре Web-страницы в браузере ссылки выделяются визуально.

HTML – это формат гипертекстовых документов, использующихся в WWW для предоставления информации. Формат этот описывает не то, как документ должен выглядеть, а лишь его структуру и связи. Внешний вид документа на экране пользователя определяется программой просмотра WWW – браузером. В результате работы за графическим или текстовым терминалом, документ в каждом случае будет выглядеть по-разному, но структура его останется неизменной, поскольку она задана форматом HTML. Имена файлов в формате HTML обычно имеют расширение htm, html, dhtml, shtml.

HTML – язык тегов. Теги – это команды языка html, отделяющиеся от остального текста треугольными скобками. Например, . Теги ставятся парами для определения начала и окончания области кода HTML, на которую они действуют. Например,

– откры-вающий тег,

– закрывающий тег. Теги определяют то, какие параметры имеет текст в области их действия, а также размер, начертание шрифта, выравнивание, цвет, расположение объектов в документе и т.д..

Web-мастера – это пользователи сети, создающие web-странички и сайты. Для создания html-документов web-мастера используют либо визуальные (Microsoft Front Page), либо простые текстовые редакторы (Блокнот Windows). Создание страниц с помощью визуальных редакторов удобнее, но редактор не создает такой оптимальный html-код, как опытный web-мастер. Кроме того, встраивать многие элементы html-кода возможно лишь при непосредственном редактировании кода странички.

WWW работает по принципу: клиент-серверы – существует множество серверов, которые по запросу клиента возвращают ему гипертекстовый документ. Чтобы использовать WWW, пользователь должен иметь специальное программное обеспечение, которое, как правило, распространяется по сети бесплатно или поставляется в комплекте с большинством других программ и услуг Интернет. Когда в браузере загружается Web-страница, то он выполняет команды, записанные на языке HTML, и выводит при этом страничку на экран. Программные средства WWW являются универсальными для различных сервисов Интернет, а сама информационная система WWW играет интегрирующую роль.

Наименование параметра Значение
Тема статьи: Сетевые сервисы
Рубрика (тематическая категория) Технологии

Ядро системы

Операционная система Linux является плодом труда людей, а им, как известно, свойственно ошибаться, даже в коде ядра. Отсюда первая угроза безопасности – ошибки в ядре системы. Подобные ошибки обнаруживаются не столь часто, сколь ошибки во всём остальном программном обеспечении, однако же такое бывает. Защита здесь одна (одинаковая для всœех подобных проблем) – постоянное отслеживание информации безопасности (к примеру, неплохим источником информации, помимо списка рассылки от производителя дистрибутива, является сайт www.securityfocus.com и его списки рассылки) и показания сервера.

Впрочем, существуют патчи на ядро, которые позволяют повысить защищённость системы в целом и ядра в частности. Основное внимание в таких патчах (в том числе кумулятивных) уделяется возможности противостоять системе от общих атак на программы с ошибкой на переполнение буфера, от атак на программы с некорректным созданием временных файлов и также на возможность уменьшить количество информации, которую может получить атакующий о системе (http://www.openwall.com/).

Также существуют патчи, специализирующиеся на сетевом аспекте работы ядра ОС. В их задачи входит встраивание функции защиты от сканирования в ядро системы (http://www.lids.org), а также функции затруднения определœения версии ОС средствами таких сетевых сканеров, как nmap.

При объединœении всœех этих патчей получается ядро системы, ĸᴏᴛᴏᴩᴏᴇ самостоятельно сможет предохранять систему от большинства типов известных атак: атаки на переполнение буфера, атаки на программы с неправильной работой с временными файлами, сетевое сканирование машины с целью определœения открытых портов и версии операционной системы.

В большинстве случаев, по непонятным для автора причинам, на ʼʼсвежеустановленномʼʼ сервере по умолчанию запущены практически всœе возможные сервисы (к примеру, совершенно не нужный на сегодняшний день 7-ой порт, сервис echo).

Практически каждый день находятся новые ошибки программирования в программном обеспечении. В том случае если будет найдена ошибка в сервисе, работающем на сервере, то через неĸᴏᴛᴏᴩᴏᴇ (не очень большое) время можно будет ожидать желающих скопрометировать сервер (так как, к примеру, ошибки на переполнение буфера, дают возможность выполнить любой код с правами сервера, которые нередко есть права суперпользователя – root). Защититься от таких проблем можно:

во-первых, регулярно отслеживая события безопасности (и опять же www.securityfocus.com будет, пожалуй, самым авторитетным и полным источником информации);

во-вторых, немного ʼʼподковавʼʼ ядро системы (различными патчами безопасности, как описано выше);

в-третьих, просто используя серверы, которые пишутся с большой осторожностью и с учётом требований безопасности, ну и конечно же, не используя ненужные сервисы.

Начнём, пожалуй, с ненужных сервисов. Задачи, конечно, у каждого сервера бывают специфичными, но всё же можно сказать, что в большинстве случаев ненужными и в чём-то просто опасными являются порты (с соответствующими сервисами) с первого по девятнадцатый включительно. Какие-то из них бывают полезными, но большинство из них сейчас не используется. Не стоит открывать без особых причин и такие порты как 37 (time), 69 (tftp), 79 (finger), 111 (sunrpc), 512 (TCP – exec; UDP – biff), 513 (TCP – login; UDP – who), 514 (TCP – cmd; UDP – syslog), 517 (talk), 525 (timeserver).

Теперь что касается наиболее часто используемых сервисов, а именно: HTTP/HTTPS, FTP, Telnet/SSH, SMTP, POP3/IMAP и прокси-сервисы. Рассмотрим каждый сервис подробно.

Сетевые сервисы - понятие и виды. Классификация и особенности категории "Сетевые сервисы" 2017, 2018.