Упражнения: протоколы монтирования

Опубликовано в Технологии > Серверные технологии Продолжение

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

Версия 4 протокола NFS содержит небольшие изменения, способствующие повышению уровня защиты. Хотя уже определен стандарт для версии 4, в большинстве реализаций протокола NFS используются версии 2 или 3.

В документе с использованием средств RPC определена версия 3 как протокола NFS, так и протокола монтирования. В нем предусмотрены объявления констант, типов и процедур, которые входят в состав программного обеспечения каждого из этих протоколов, а также приведено описание предполагаемого назначения процедур и даны рекомендации по их реализации. В документе рассматриваются основные особенности проекта версии 4 протокола NFS.

Упражнения

  1. Напишите программу, в которой используется протокол монтирования для получения дескрипторов файлов. Применяется ли в вашей системе аутентификация UNIX?
  2. С применением программы, описанной в предыдущем упражнении, проверьте несколько файлов на конкретном сервере Linux, чтобы узнать, заменил ли администратор номера поколений индексных узлов в файловых системах этого сервера случайными числами.
  3. Ознакомьтесь с версией 2 стандарта протокола, чтобы получить сведения об операции WRITECACHE. Каково ее назначение?
  4. В спецификации протокола NFS упоминается, что некоторые операции в определенных условиях могут оказаться неидемпотентными. Найдите эти операции и объясните, при каких обстоятельствах они могут стать неидемпотентными.
  5. Организация функционирования NFS гарантирует, что запрос на запись не считается выполненным до тех пор, пока данные не будут записаны, на энергонезависимом запоминающем устройстве (например, на диске). Оцените, насколько быстрее выполнилась бы операция записи на локальном сервере, если бы протокол разрешал копировать на сервере данные в выходной буфер и выполнять возврат управления после вызова процедуры, не ожидая записи данных из буфера на диск.
  6. Протокол NFS спроектирован так, что обеспечивает эксплуатацию клиентов и серверов в разнородной среде. Объясните, какие проблемы могут быть связаны с применением символических ссылок. (Подсказка: тщательно изучите протокол, чтобы определить, интерпретируются ли клиентом или сервером символические ссылки).
  7. Прочитайте спецификацию протокола и выясните, какие атрибуты файла могут быть установлены клиентом.
  8. Бели в программном обеспечении NFS используется дистанционный вызов процедур по протоколу UDP, то дистанционный вызов может быть продублирован, задержан или доставлен не в том порядке, в каком был отправлен. Объясните, как в этом случае может выглядеть отправленный клиентом допустимый ряд вызовов NFS для создания файла и записи его данных, который, тем не менее, приводит к созданию файла нулевой длины.
  9. Предположим, что в клиентской программе вызывается процедура NFSPR0C3_FSSTAT для определения предпочтительного объема передаваемых данных. Какие ограничения могут привести к тому, что передача такого объема данных перестанет быть оптимальной?
  10. Прочитайте спецификацию протокола, чтобы узнать, что такое устаревшие дескрипторы файлов. Почему сервер может объявить о том, что дескриптор стал устаревшим? Как можно обеспечить повышение уровня защиты путем объявления дескриптора устаревшим при определенных условиях?
  11. Напишите программу, которая вызывает процедуру M0UNTPR0C3_UMNTALL на некотором сервере S. Отразится ли этот вызов на последующих вызовах процедур сервера S? Объясните ваш ответ.
  12. Напишите программу, которая вызывает процедуру M0UNTPR0C3_EXP0RT. Вызовите эту программу на выполнение и выведите на печать список имен экспортируемых файловых систем.