1 Протокол FTP
1.1 Краткое описание
FTP – это протокол передачи данных [1]. Он предназначен для передачи файлов с удаленного компьютера на локальный. Данный протокол описывает спецификацию команд, которые используют программы для своей работы. Протокол реализуется на основе клиент-серверного взаимодействия.
1.2 Сценарий взаимодействия
Работа FTP на прикладном уровне содержит несколько этапов:
идентификация (ввод имени-идентификатора и пароля);
выбор каталога;
определение режима обмена (ASCII или двоичный);
выполнение команд обмена;
завершение работы.
FTP поддерживает два соединения между ЭВМ (Рис.1). Сначала по запросу клиента формируется канал управления, который в дальнейшем используется для передачи команд от клиента и откликов от сервера. Информационный канал формируется сервером по команде клиента, он не должен существовать постоянно на протяжении всей FTP-сессии и может формироваться и ликвидироваться по мере необходимости. Канал управления может быть закрыт только после завершения информационного обмена. Для команд по каналу управления используется формат протокола Telnet. После того как управляющий канал сформирован, клиент может посылать по нему команды. Сервер воспринимает, интерпретирует эти команды и передает отклики.
Рис. 1 Схема работы протокола FTP
Возможна и другая схема взаимодействия, когда по инициативе клиента осуществляется файловый обмен между двумя ЭВМ, ни одна из которых не является машиной клиента.
Рис. 2 Организация информационного обмена между двумя удаленными машинами
1.3 Механизмы разграничения доступа
Базовая схема установления подлинности основана на том, что агент пользователя подтверждает подлинность при помощи идентификатора пользователя (user-ID) и пароля (password) для каждого запрошенного URI, находящегося в защищенной области. Сервер обслужит запрос, только если он может проверить правильность идентификатора пользователя (user-ID) и пароля (password) для запрошенного URI.
Структура учетной записи пользователя для FTP совпадает с учетной записью локальной файловой системы ОС.
1.4 Реализации протокола
Протокол реализуется на основе клиент-серверного взаимодействия. Далее приводится список наиболее популярных FTP серверов:
Ms IIS Server;
Serv-U FTP Server;
Apache.
IIS Server – сервер компании Microsoft. Он входит в комплект поставки Microsoft BackOffice и сетевой операционной системы Windows. Несомненными плюсами Internet Information Server являются: полная совместимость с ОС Windows и графический интерфейс. На данный момент существует неофициальная реализация IIS Server для Linux.
Serv-U FTP Server - сервер компании Rhino Software, обладающий простым интерфейсом. Сервер позволяет назначать права доступа к файлам и каталогам для разных пользователей, создавать несколько виртуальных FTP серверов, что необходимо для полноценной работы FTP сервера. Serv-U позволяет создать FTP-сервер с высокой степенью защищенности. Сервер реализован для ОС Windows. Характерная особенность - открытая архитектура, позволяющая расширять и модернизировать сервер за счет использования внешних DLL.
Apache – самый распространенный сервер в Internet. Характерные особенности: широкий набор функциональных возможностей, низкие требования к ресурса по сравнению с ранее рассмотренными FTP-серверами. Данный сервер реализован на таких популярных платформах, как Windows, Linux, Unix. Модернизацией продукта занимается не коммерческая организация Apache Group.
2 Протокол SMB
2.1 Краткое описание
SMB – универсальный прикладной протокол, используемый для передачи файлов между ЭВМ и печати документов с аутентификацией в среде Windows [6]. Данный протокол создавался с расчётом на совместное использование с протоколом NetBIOS, но в среде TCP/IP может работать не только совместно с NetBIOS, а напрямую через TCP/IP; при этом вместо порта 139 используется порт 445. В то время как SMB работает по схеме клиент-сервер, основанные на нём службы могут создавать широковещательный трафик.
2.2 Сценарий взаимодействия
Работа SMB содержит несколько этапов:
установление соединения;
установка параметров сессии и авторизация пользователя (ввод имени-идентификатора и пароля);
выполнение команд обмена;
завершение работы.
Когда пользователь впервые посылает запрос на доступ к сетевому ресурсу или принтеру, средствами протокола NetBIOS устанавливается соединение на уровне сессии. В результате создается соединение между клиентом и сервером. С этого момента открыт канал между клиентом и сервером. После этого клиент посылает сообщение серверу для выбора версии протокола SMB. Следующим шагом является передача параметров сессии и доступа для создания полноценного соединения. В них входят имя пользователя и пароль (если он существует), имя рабочей группы, максимальный размер передаваемых данных и количество ожидаемых запросов. Сервер посылает клиенту сообщение о том, что пользователь прошел процедуру авторизации и ресурс готов к использованию.
После этого клиент может выполнять те команды, которые он обычно использует для работы с файлами на локальном диске. Он может открывать файлы, читать и изменять их, удалять, искать по имени и т.д.
2.3 Механизмы разграничения доступа
Механизм разграничения доступа для протокола SMB рассматривается на примере сервера Samba.
Samba поддерживает два типа аутентификации: на уровне ресурсов (share-level) и на уровне пользователей (user-level). Аутентификация уровня share-level требует, чтобы каждый пользователь имел или учетную запись в формате SMB на сервере Samba или для данного совместно используемого ресурса были предоставлены права анонимному пользователю. Для создания учетных записей используется программа smbpasswd. Эти требования являются единственными ограничениями на разделяемые ресурсы при аутентификации на уровне ресурсов; если пользователи обладают учетными записями SMB, то Samba, при работе в режиме share-level, не может наложить ограничения для пользователей при обращении к общим ресурсам. Доступ к разделяемым ресурсам в системе Windows 9x организован иначе: здесь можно дополнительно задать пароль на доступ к общим ресурсам.
Более высокий уровень безопасности доступа к общим ресурсам реализован при использовании аутентификации типа user-level. Администратор может задать список пользователей, которым предоставляется доступ к общим ресурсам. В режиме share-level доступ пользователей контролируется на уровне сервера, в то время как в режиме user-level доступ контролируется на уровне самого ресурса. Samba подразделяет доступ к ресурсам типа user-level на аутентификацию типа user и domain. При использовании уровня user сервер Samba при авторизации пользователей анализирует свою собственную базу данных учетных записей; на уровне domain пользователи аутентифицируются в базе данных пользователей домена. В доменной сети предпочтительнее использовать тип аутентификации на уровне пользователей user-level. Однако конфигурировать доступ этого типа на сервере Samba труднее, чем организовать режим доступа на уровне ресурсов share-level.
2.4 Реализации протокола
Реализация протокола SMB напрямую взаимосвязана с платформой. В ОС Windows поддержка SMB является встроенной, ситуация на других платформах. обстоит иначе. Для поддержки SMB на Unix-платформах реализованы серверы, наиболее известные из них:
Samba;
VisionFS.
Samba – сервер, распространяется по лицензии GNU. Основным плюсом данного сервера является его реализация более чем на 30 платформах. Sumba предоставляет такие стандартные возможности, как работа с файлами и печать. Также сервер позволяет назначать права доступа к файлам и каталогам для разных пользователей. В отличие от VisionFS сервер Samba поддерживает защиту данных на уровне как определения отдельных пользователей, так и разделения доступа к ресурсам.
VisionFS – сервер компании Santa Cruz Operation. Сервер обладает удобным интерфейсом и поддерживает такие стандартные возможности, как работа с файлами и печать. Но в отличии от Samba, VisionFS мене стабилен и реализован на меньше количестве платформ.
3 Протокол NFS
3.1 Краткое описание
NFS – это протокол, разработанный Sun Microsystems для работы с файлами и каталогами локальной сети [5]. NFS-клиент монтирует файловую систему, экспортируемую NFS-сервером. Смонтированная таким образом файловая система представляется на клиентском компьютере как часть локальной файловой системы. Протокол NFS базируется на модели клиент-сервер.
3.2 Сценарий взаимодействия
Взаимодействие клиента и сервера в протоколе NFS реализовано на основе RPC. Работа NFS содержит несколько этапов:
установление соединения;
идентификация;
выбор каталога;
выполнение команд обмена;
завершение работы.
У NFS есть существенное отличие от протоколов SMB и FTP: при монтировании не требуется указывать пароль, а авторизация осуществляется по IP-адресу и идентификаторам пользователя и группы. Достоинством такого подхода является то, что монтирование по NFS может быть осуществлено без участия пользователя, например, при загрузке системы. Недостатком является невысокий уровень безопасности.
NFS использует протокол связи без состояния. Это дает очень высокую устойчивость к сбоям в сети. Программа, запущенная на одном компьютере и использующая по NFS файлы с другого, при потере связи приостанавливается, а после устранения сбоя возобновляет работу.
3.3 Механизмы разграничения доступа
Механизм разграничения доступа основан на сопоставлении учетных записей пользователей Windows и UNIX: извлекаются идентификационные данные пользователей (UID) и групп (GIDs) UNIX из запросов системы NFS и соотносятся с именами пользователей Windows. Соотнесение имен пользователей бывает простым и расширенным.
Простой способ соотнесения имен пользователей требует меньше операций администрирования. Он используется в том случае, если пользователи имеют одинаковое имя и в домене Windows, и в домене UNIX.
Расширенный способ позволяет соотносить несколько имен пользователей Windows с одним именем пользователя UNIX, группы Windows – с группами UNIX, а также любое число обособленных доменов Windows с доменами UNIX. Не поддерживается соотнесение нескольких имен пользователей UNIX с одним именем пользователя Windows.
Пользователи UNIX, не имеющие учетных записей Windows, соотносятся с группами анонимного входа в Windows.
3.4 Реализации протокола
Поддержка NFS для Unix-платформ является встроенной. Для ОС Windows поддержка NFS обеспечивается сервером Windows Storage Server.
Microsoft Windows Storage Server — серверный программный продукт для хранения и резервного копирования данных в локальной сети, представляющий собой дальнейшее развитие популярного продукта Windows Powered NAS. Microsoft Windows Storage Server представляет собой выделенный файловый сервер и сервер печати на основе операционной системы Microsoft Windows Server, поддерживает новейшие аппаратные платформы и обеспечивает отличную масштабируемость, надежность и производительность для бизнес-приложений.
4 Протокол WebDav
4.1 Краткое описание
WebDAV – это современный и защищённый сетевой протокол высокого уровня, работающий поверх HTTP для доступа к объектам и коллекциям объектов [2].
Помимо основных файловых операций протокол поддерживает расширенные файловые операции, такие как блокировка и поддержка версий [4].
4.2 Сценарий взаимодействия
Протокол WebDAV реализован на основе протокола HTTP, следовательно, сценарий взаимодействия повторяет сценарий работы HTTP.
HyperText Transfer Protocol (HTTP) – протокол прикладного уровня для распределенных, совместных, гетерогенных информационных систем. HTTP используется в World Wide Web (WWW) [3].
4.3 Механизмы разграничения доступа
Базовая схема установления подлинности основана на том, что агент пользователя подтверждает подлинность при помощи идентификатора пользователя (user-ID) и пароля (password) для каждого запрошенного URI, находящегося в защищенной области. Сервер обслужит запрос, только если он может проверить правильность идентификатора пользователя (user-ID) и пароля (password) для запрошенного URI. Никаких опциональных опознавательных параметров нет. После получения запроса на URI, находящийся в защищаемой области, сервер может ответить вызовом, подобным следующему: WWW-Authenticate: Basic realm="WallyWorld", где "WallyWorld" — строка, назначенная сервером, которая идентифицирует область защиты запрашиваемого URI. Чтобы получить права доступа, клиент посылает идентификатор пользователя (userid) и пароль (password), разделенные одним символом двоеточия внутри base64-кодированной строки [3].
Если подлинность была установлена предшествующим запросом, то эти же идентификатора пользователя и пароля могут использоваться многократно во всех других запросах внутри этой защищенной области в течении времени, определенного схемой установления подлинности, параметрами, и/или установками пользователя. Если сервер не принял идентификатор пользователя и пароль, посланные в запросе, то будет послан ответ, который должен включать поле заголовка WWW-Authenticate, содержащее вызов, применимый к запрошенному ресурсу, и причину, объясняющую отказ.
5 Система поддержки версий MS VSS
5.1 Краткое описание
MS VSS – файл-серверная система управления версиями, программный продукт компании Microsoft. VSS позволяет хранить в общем хранилище файлы, разделяемые несколькими пользователями, для каждого файла хранится история версий.
5.2 Модель работы
Модель работы MS VSS основана на взаимодействии трех объектов:
MS VSS Database - БД, в которой VSS хранит исходные коды программ, их изменения, а также комментарии к этим изменениям. Хранение файлов внутри БД сходно с хранением файлов в файловой системе. Т.е. файлы хранятся в каталогах (проектах), существует корневой проект, обозначаемый '$/'. Полный путь файла в проекте будет иметь следующий вид $/
//.../.
Shadow Folder - теневой каталог. Специальный каталог, в котором хранятся текущие версии всех файлов проекта. Теневой каталог каждого проекта задается администратором БД VSS с помощью утилиты «VSS Admin». Актуализацию этого каталога делает VSS, при выполнении операций с файлами проектов. Содержимое этого каталога используется для компиляции и сборки программ.
Work Folder - Рабочий каталог. Специальный каталог, в который помещаются файлы из БД VSS, взятые разработчиком на редактирование (Check Out), и из которого они будут помещены обратно в БД после окончания редактирования (Check In). Структура рабочего каталога, как правило, соответствует структуре теневого каталога, но данное требование не является обязательным. Структура рабочего каталога зависит от того, работает ли ваш проект с относительными путями.
5.3 Механизмы разграничения доступа
Инструменты администрирования VSS поддерживают разграничение доступа на уровне MS VSS Database, но для достижения реальной защищенности файлов необходимо дополнительно использовать права доступа ОС Windows для защиты фалов. Система разграничения доступа VSS интегрируется с системой разграничения доступа ОС Windows.