Cетевые файловые системы

Основную суть идеи сетевых файловых систем можно передать как “совместная работа с файлами на удаленном сервере — такая же прозрачная, как и с локальными файлами”. Эта идея развивалась практически одновременно с персональными компьютерами и вычислительными сетями и, на текущий момент, можно говорить как минимум о трех хорошо известных реализациях — NFS (Network File System), SSHFS (Secure SHell FileSystem) и SMB (Server Message Block).

 

NFS

 

Протокол NFS базируется на механизме удаленного вызова процедур (RPC) и позволяет монтировать каталоги с NFS-серверов на локальные (клиентские) компьютеры, через любые TCP/IP-сети. Таким образом, клиент может, например, смонтировать каталог с диска корпоративного сервера на свой ноутбук через обычное подключение интернет-провайдера. Для аутентификации пользователей могут использоваться различные технологии — Kerberos, LIPKEY, а также списки контроля доступа. Серверы и клиенты NFS реализованы под множество архитектур и операционных систем.
Одно из преимуществ NFS — доступ выполняется только к тем сегмента файла, к которым он необходим программе-клиенту (без необходимости скачать его целиком).

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

Для доступа к файловому хранилищу через браузер используется расширение WebNFS.

 

SSHFS

 

Протокол SSHFS по сути, является расширением протокола SSH для работы с файлами на удаленных серверах. Так же, как и для NFS — после монтирования удаленного каталога, он становится совершенно прозрачно доступен для удаленного компьютера, как локальный.
SSHFS-подключения можно использовать во всех операционных системах, поддерживающих стандарт FUSE.

 

SMB

 

Можно сказать что все, что связано с сетевыми дисками и каталогами, а также принтерами и иными ресурсами в сетях Microsoft Windows — выполняется через протокол SMB.
SMB работает по технологии “клиент-сервер” — сервер предоставляет (“расшаривает”) ресурсы, а компьютер-клиент читает или пишет в них. Фактически  — и клиентом, и сервером в этом случае могут выступать 2 обычных компьютера с десктопной ОС в одноранговой локальной сети.
Для работы службы SMB используются сетевые протоколы TCP/IP, NetBEUI и IPX/SPX.
При “расшаривании” ресурсов на сервере, необходимо указать модель авторизации —  user-level (пользовательский уровень) и share-level (совместно разделяемый ресурс). В первом случае, пользователь, который коннектится к сетевому ресурсы, должен иметь учетную запись на этом “сервере” (логин и пароль) — и указать их при подключении соответственно. При share-level необходимо лишь указать пароль для подключения сетевой папки (или другого ресурсва). Пароли шифруются алгоритмами NTLM и NTLMv2.
Несмотря на некоторые средства защиты, протокол SMB крайне уязвим для взлома и атак, поэтому используется обычно исключительно в локальных сетях (“до шлюза”). Чтобы выполнить удаленное подключение к SMB-ресурсам через Интернет, на практике применяют VPN-тонель.
Существует также хорошо известная свободная реализация стандарта SMB для семейства ОС *nix под названием Samba.

 

Заключение, или немного о грустном

 

На практике, сетевые файловые системы в любом исполнении нельзя считать полноценной заменой локальных носителей. Если между сервером и клиентом существуют какие-то каналы передачи данных без 100% гарантированной связи (например, провайдер Интернет) — обрыв соединения может вызвать неприятные последствия. Поэтому сфера NFS — хранение пользовательских документов и данных “эпизодического доступа” и небольших размеров (аналогично облачным службам Google Drive и т.д.), а также полноценная работа в локальных сетях с небольшим физическим охватом (“сервер в соседней комнате”).

 

Освоить на практике настройку служб NFS и Samba, а также защиту передачи данных вы можете на нашем авторском курсе «L2-Security. Безопасность в Linux«.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *