Какие порты использует nfs?

Шаг 1 — Загрузка и установка компонентов

Вначале установим на каждом сервере необходимые компоненты.

На хосте

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

После установки пакетов переключитесь на клиентский сервер.

На клиенте

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

Теперь на обоих серверах установлены необходимые пакеты, и мы можем приступить к их настройке.

Настройка клиентов NFS

Теперь, когда сервер NFS настроен и общие ресурсы экспортированы, следующим шагом настройте клиентов и смонтируйте удаленные файловые системы.

Вы также можете смонтировать общий ресурс NFS на компьютерах с macOS и Windows, но мы сосредоточимся на системах Linux.

Установка клиента NFS

На клиентских машинах нам нужно установить только инструменты, необходимые для монтирования удаленных файловых систем NFS.

  • Установите клиент NFS в Debian и Ubuntu

    Имя пакета, который включает программы для монтирования файловых систем NFS в дистрибутивах на основе Debian, — . Для его установки выполните:

  • Установите клиент NFS на CentOS и Fedora

    В Red Hat и ее производных установите пакет :

Монтирование файловых систем

Мы будем работать на клиентской машине с IP которая имеет доступ для чтения и записи к файловой системе и доступ только для чтения к файловой системе .

Создайте два новых каталога для точек монтирования. Вы можете создавать эти каталоги в любом месте.

Смонтируйте экспортированные файловые системы с помощью команды :

Где — это IP-адрес сервера NFS. Вы также можете использовать имя хоста вместо IP-адреса, но оно должно быть разрешено клиентским компьютером. Обычно это делается путем сопоставления имени хоста с IP в .

При монтировании файловой системы NFSv4 вам необходимо опустить корневой каталог NFS, поэтому вместо вам нужно использовать .

Убедитесь, что удаленные файловые системы успешно смонтированы, используя команду mount или :

Команда распечатает все смонтированные файловые системы. Последние две строки — это смонтированные акции:

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

и добавьте следующие строки:

/etc/fstab

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

Другой вариант монтировать удаленные файловые системы — использовать инструмент или создать модуль systemd.

Тестирование доступа по NFS

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

Сначала попробуйте создать тестовый файл в каталоге с помощью команды:

Файловая система экспортируется как доступная только для чтения, и, как и ожидалось, вы увидите сообщение об ошибке :

Затем попробуйте создать тестовый файл в каталоге в качестве корневого с помощью команды :

Вы снова увидите сообщение .

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

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

Команда не покажет никаких выходных данных, что означает, что файл был успешно создан.

Чтобы проверить это, перечислите файлы в каталоге :

На выходе должен отобразиться только что созданный файл:

Размонтирование файловой системы NFS

Если вам больше не нужен удаленный общий ресурс NFS, вы можете размонтировать его, как любую другую подключенную файловую систему, с помощью команды umount. Например, чтобы отключить общий ресурс , выполните:

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

Инфраструктура NFS NFS infrastructure

Улучшения общей инфраструктуры NFS в Windows Server 2012 описаны ниже. Improvements to the overall NFS infrastructure in Windows Server 2012 are detailed below:

  • Инфраструктура транспорта /External (RPC) , используемая сетевым протоколом Winsock, доступна как для сервера NFS, так и для клиента для NFS. The Remote Procedure Call (RPC)/External Data Representation (XDR) transport infrastructure, powered by the WinSock network protocol, is available for both Server for NFS and Client for NFS. Это заменяет интерфейс TDI, обеспечивает лучшую поддержку и обеспечивает лучшую масштабируемость и масштабирование на стороне приема (RSS). This replaces Transport Device Interface (TDI), offers better support, and provides better scalability and Receive Side Scaling (RSS).
  • Функция мультиплексора RPC-портов является удобной для брандмауэра (меньше портов для управления) и УПРОЩАЕТ развертывание NFS. The RPC port multiplexer feature is firewall-friendly (less ports to manage) and simplifies deployment of NFS.
  • Автоматически настроенные кэши и пулы потоков являются возможностями управления ресурсами в новой инфраструктуре RPC/XDR, которая является динамической, автоматически настраивает кэши и пулы потоков на основе рабочей нагрузки. Auto-tuned caches and thread pools are resource management capabilities of the new RPC/XDR infrastructure that are dynamic, automatically tuning caches and thread pools based on workload. Это полностью удаляет предоставляя, который участвует во время настройки параметров, обеспечивая оптимальную производительность сразу после развертывания NFS. This completely removes the guesswork involved when tuning parameters, providing optimal performance as soon as NFS is deployed.
  • Новые варианты реализации и проверки подлинности Kerberos с добавлением поддержки Kerberos (Krb5p) и существующих параметров проверки подлинности krb5 и krb5i. New Kerberos privacy implementation and authentication options with the addition of Kerberos privacy (Krb5p) support along with the existing krb5 and krb5i authentication options.
  • Сопоставление удостоверений командлеты модуля Windows PowerShell упрощают управление сопоставлением удостоверений, настройку службы Active Directory облегченного доступа к каталогам (AD LDS) и настройку passwd и неструктурированных файлов UNIX и Linux. Identity Mapping Windows PowerShell module cmdlets make it easier to manage identity mapping, configure Active Directory Lightweight Directory Services (AD LDS), and set up UNIX and Linux passwd and flat files.
  • Точка подключения тома позволяет получить доступ к томам, подключенным к общему ресурсу NFS, с помощью nfs версии 4,1. Volume mount point lets you access volumes mounted under an NFS share with NFS version 4.1.
  • Функция мультиплексирования портов поддерживает МУЛЬТИПЛЕКСОР порта RPC (порт 2049), который является удобным для брандмауэра и УПРОЩАЕТ развертывание NFS. The Port Multiplexing feature supports the RPC port multiplexer (port 2049), which is firewall-friendly and simplifies NFS deployment.

6.5 Резюме

Если вы используете hosts.allow/deny, root_squash, nosuid и
привилегированные порты в программном обеспечении portmapper/nfs, то вы
можете избежать известных ошибок в nfs и можете чувствовать себя почти в
безопасности. Но все равно: когда взломщик имеет доступ к вашей сети, то
он/она может добавить странные команды в ваш файл или
почтовый ящик, когда или
смонтирован через NFS. По той же причине, вы никогда не должны осуществлять
доступ к вашим личным ключам PGP через nfs. Или по крайней мере вы должны
знать какой риск существует. И знать о нем хотя бы немного.

NFS и portmapper создают комплексную систему и поэтому не полностью
невероятно,что новые ошибки будут найдены, либо в основе проекта, либо в
реализации, которую мы используем. Также могут быть известные дыры, которые
кто-нибудь использует. Но такова жизнь. Чтобы быть в курсе таких вещей, вы
должны как минимум читать группы новостей
comp.os.linux.announce и
comp.security.announce.

NextPrevious

Как пользоваться NFC на iPhone

Функция NFC в iPhone, как уже было упомянуто, включается и отключается теми приложениями, которым она требуется. Чтобы привязать карту к Apple Pay, нужно зайти в приложение Wallet, нажать на «+» и следовать инструкциям. С 2021 года российские пользователи могут привязывать, помимо Visa и Mastercard, также карты «Мир».

Для оплаты нужно приложить палец к Touch ID или пройти идентификацию в Face ID и поднести верхнюю часть iPhone к бесконтактному считывателю. Смартфон сам активирует NFC.

Apple Pay

(Фото: Akket)

Если первые iPhone 6 с NFC позволяли только совершать платежи через Apple Pay, то iPhone 7 и более новые модели используют технологию для чтения меток NFC с помощью сторонних приложений. Кроме того, начиная с iOS 13 и выпуска iPhone XS и XR, они также могут кодировать пустые метки с помощью сторонних приложений, таких как GoToTags. И, наконец, начиная с iPhone XS и заканчивая iPhone 12, смартфоны способны считывать метки в фоновом режиме. Таким образом, пользователю больше не нужно устанавливать сторонние приложения: достаточно приложить iPhone к метке NFC, и он автоматически считает ее. Система автоматически ищет метки поблизости при каждом включении экрана. После обнаружения и сопоставления метки она показывает уведомление о том, что пользователь может отправить данные в приложение для обработки. Однако фоновое чтение отключается, когда используются Wallet или Apple Pay, камеры, устройство находится в режиме полета, либо заблокировано после перезапуска.

Чтобы активировать другие функции NFC в iPhone, потребуется запустить приложение «Команды», открыть вкладку «Автоматизации», нажать на «+» в верхнем правом углу, найти NFC и выбрать пункт «Тег NFC». Затем необходимо включить Bluetooth-наушники или другое беспроводное устройство, подключить их к iPhone, поднести устройство с меткой к задней панели смартфона и подождать пару секунд. После подключения требуется открыть меню «Скрипты», выбрать пункт «Задать место воспроизведения» и указать свой iPhone; затем выбрать из списка подключаемое устройство и снять галочку в пункте «Спрашивать при выполнении». Процедуру придется повторить с каждым устройством.

Индустрия 4.0

Как правильно пользоваться мобильным кошельком: инструкция в пяти шагах

Получение IP-адресов

В отношении обнаружения серверов со службой NFS в глобальном Интернете возможны 2 способа: самостоятельно, используя различные инструменты, и готовые сторонние результаты сканирования, базы данных и сервисы. Фактически всё сводится к получению списка IP-адресов. В локальной сети, полагаю, вариант очевиден — действовать самостоятельно.

Свидетельством функционирования сервиса NFS могут выступать открытые TCP-порты 111, 2049.
Для самостоятельного получения списка IP-адресов серверов достаточно просканировать диапазон адресов или целиком подсети на наличие указанных открытых портов. Для этого подойдет любой инструмент: nmap, masscan и так далее.

Например, командой будет за несколько секунд сканирована сеть 200.26.1XX.0/24 на предмет открытых портов 111, 2049:
Дальше к каждому из обнаруженных IP-адресов возможно применить команду:
Результат:
Очевидно, что самому сканировать миллионы IP-адресов пространства Интернет возможно, но это не самый быстрый путь и тогда решением подзадачи может выступить замечательный сервис Shodan, есть конечно и другие, но этот с очень удобным синтаксисом и API. Углубляться в описание возможностей сервиса не является целью статьи. Кратко — сервис предоставляет расширенный поиск по устройствам, подключенным к сети Интернет. Критериями поиска могут выступать сетевые идентификаторы и другие метаданные: серийные номера сертификатов и тому подобное. В Shodan много возможностей целевого поиска, но отдельного поиска по NFS я не нашел, как, например, есть по критерию product с указанием названия продукта: mongodb, elastic или apache. Поэтому через Web NFS возможно искать по следующим запросам: nfs, tcp 2049, tcp 111, Portmap:2049 и так далее, как угодно.

Или установить клиент Shodan(CLI), инициализировать свой API KEY к сервису и из командной строки вызвать поиск, например:

  1. shodan search —fields ip_str,port Portmap:2049
  2. shodan search —fields ip_str,port —separator, nfs
    Результат:
    139.196.154.23,111,
    198.27.116.37,111,
    95.211.192.96,111,
    80.23.66.122,111,
    210.116.82.97,111,
    192.198.82.3,111,
    165.227.67.242,111,
    116.12.48.9,111,
    85.34.250.102,111,
    182.75.249.197,111,
    192.151.212.175,111,
    119.216.107.127,111,
    217.59.68.2,111,
    178.159.12.97,111,

Итак, как получить списки IP-адресов устройств с действующей службой NFS – понятно.

Версии Windows и Windows Server Windows and Windows Server versions

Windows поддерживает несколько версий клиента NFS и сервера в зависимости от версии операционной системы и семейства. Windows supports multiple versions ofthe NFS client and server, depending on operating system version and family.

Операционные системы Operating Systems Версии NFS Server NFS Server Versions Версии клиента NFS NFS Client Versions
Windows 7, Windows 8.1, Windows 10 Windows 7, Windows 8.1, Windows 10 Недоступно N/A NFSv2, NFSv3 NFSv2, NFSv3
Windows Server 2008, Windows Server 2008 R2 Windows Server 2008, Windows Server 2008 R2 NFSv2, NFSv3 NFSv2, NFSv3 NFSv2, NFSv3 NFSv2, NFSv3
Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019 Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019 NFSv2, NFSv3, Нфсв 4.1 NFSv2, NFSv3, NFSv4.1 NFSv2, NFSv3 NFSv2, NFSv3

Настройка проверки подлинности NFS

При использовании протоколов NFS Version 4,1 и NFS версии 3,0 рекомендуется использовать протокол Kerberos (RPCSEC_GSS). Существует три варианта повышения уровня защиты системы безопасности:

  • Krb5. Использует протокол Kerberos версии 5 для проверки подлинности пользователей перед предоставлением доступа к общей папке.
  • Krb5i. Использует протокол Kerberos версии 5 для проверки подлинности с помощью проверки целостности (CHECKSUM), которая проверяет, не были ли изменены данные.
  • Krb5p Использует протокол Kerberos версии 5, который проверяет подлинность трафика NFS с шифрованием для обеспечения конфиденциальности. Это наиболее безопасный вариант Kerberos.

Примечание

Вы также можете отказаться от использования описанных выше методов проверки подлинности Kerberos, включив Несопоставленный доступ пользователей с помощью AUTH_SYS. Мы настоятельно рекомендуем использовать этот параметр, так как он удаляет все защиты проверки подлинности и позволяет любому пользователю с доступом к серверу NFS получать доступ к данным. При использовании несопоставленного доступа пользователей можно указать, чтобы разрешить Несопоставленный доступ пользователей по UID/GID, который является значением по умолчанию или разрешить анонимный доступ.

Инструкции по настройке проверки подлинности NFS см. в следующем разделе.

Дизайн ранних версий системы

Программа обращается к файловой системе через системные вызовы . Под Unix наиболее важными системными вызовами являются:

  • open , close — открыть и закрыть файл
  • читать , писать — читать и писать
  • create , unlink — создать и удалить
  • mkdir , rmdir — создать и удалить каталог
  • readdir — читать записи каталога

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

Разработчики Sun Microsystems изначально выбрали модель удаленного вызова процедур . XDR преобразует параметры RPC в машинно-независимый формат; затем обращения обрабатываются как обычный вызов подпрограммы через механизм RPC.

Системные вызовы не преобразуются напрямую в вызовы RPC, поскольку файл, открытый через open, также должен быть открыт на сервере. При большом количестве клиентов серверы быстро становились перегруженными, потому что в середине 1980-х у машин было относительно мало памяти. Таким образом, задачи сервера были максимально простыми; сервер не запоминает никакой файловой информации между двумя вызовами RPC. Значит, он без гражданства.

Поиск вызова осуществляется вместо открытой . Это обеспечивает «дескриптор» файла, который содержит номер inode и номер устройства массовой памяти на сервере. Этот дескриптор можно использовать для однозначной идентификации файла на сервере. В Unix информация о файлах эффективно и четко доступна по этим двум номерам без трудоемкого поиска.

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

Дальнейшие свойства протокола:

  • только короткое время кеширования (несколько секунд) для информации каталога и атрибутов файлов
  • нет кеша данных
  • Использование протокола пользовательских дейтаграмм без установления соединения ( UDP ), опционально TCP (только TCP для NFSv4)
  • Операции блокировки и монтирования с использованием дополнительных вспомогательных протоколов
  • Использование атрибутов файла Unix ( например, uid пользователя )

Благодаря своей простой конструкции NFS хорошо работает в обычных средах:

  • локальная сеть с коротким временем отклика
  • Запуск программ по локальной сети
  • Обычная активность пользователей (редактирование, перевод программ)
  • Сервер с относительно небольшим объемом памяти

Поведение на

  • обмен файлами
  • Использование через Интернет (длительное время отклика, низкий уровень безопасности)
  • Использование брандмауэров (UDP, фиксированный порт отсутствует из-за сопоставителя портов ) (Нет проблем при NFSv4; все коммуникации проходят через порт 2049 / TCP)

Протокол был разработан в конце 1980-х годов. Даже на дорогих рабочих станциях в то время было всего несколько мегабайт оперативной памяти, обычно от 4 до 8  МБ . Сервер NFS по-прежнему может эффективно работать на таких машинах из-за конструкции.

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

Предварительные требования

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

  • Два сервера Ubuntu 20.04. На каждом из них должен быть настроен пользователь без прав root с привилегиями , брандмауэр UFW и частные сети, если они вам доступны.

    • Указания по настройке пользователя без прав root с привилегиями и брандмауэра можно найти в руководстве «Начальная настройка сервера Ubuntu 20.04».
    • Если вы используете для своих сервера и клиента дроплеты DigitalOcean, вы можете узнать больше о настройке частной сети в нашей документации по созданию VPC.

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

В этом обучающем модуле мы будем замещать эти IP-адреса сокращениями и . Замените эти сокращения необходимыми IP-адресами.

List NFS mount points on NFS Clients

There are various commands and methods to list NFS mount points

Use mount to list NFS mount points

We can use command to list NFS mount points on .

# mount | grep nfs
10.10.10.12:/nfs_shares on /mnt type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.10.10.16,local_lock=none,addr=10.10.10.12)

Use nfsstat to list NFS mount points

Normally we use to get the NFS mount point usage and statistics. But we can also use to list currently used NFS mount points on .

# nfsstat --mounts
/mnt from 10.10.10.12:/nfs_shares
Flags: rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.10.10.16,local_lock=none,addr=10.10.10.12

Use /proc/mounts to list NFS mount points

We can also check the content of to list NFS mount points on

# cat /proc/mounts | grep nfs
10.10.10.12:/nfs_shares /mnt nfs4 rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.10.10.16,local_lock=none,addr=10.10.10.12 0 0

Постоянная доступность NFS версии 3 NFS version 3 continuous availability

Клиенты NFS версии 3 могут использовать быстрые и прозрачные плановые отработки отказа с большей доступностью и сокращением времени простоя. NFS version 3 clients can have fast and transparent planned failovers with more availability and reduced downtime. Процесс отработки отказа выполняется быстрее для клиентов NFS версии 3, поскольку: The failover process is faster for NFS version 3 clients because:

  • Инфраструктура кластеризации теперь позволяет по одному ресурсу на сетевое имя, а не по одному ресурсу на общий ресурс, что значительно повышает время отработки отказа ресурсов. The clustering infrastructure now allows one resource per network name instead of one resource per share, which significantly improves resources’ failover time.
  • Пути отработки отказа на сервере NFS настраиваются для повышения производительности. Failover paths within an NFS server are tuned for better performance.
  • Регистрация с подстановочными знаками на NFS-сервере больше не требуется, а отработка отказа выполняется более тонко. Wildcard registration in an NFS server is no longer required, and the failovers are more fine-tuned.
  • Уведомления сетевых монитор состояния (NSM) отправляются после отработки отказа, и клиентам больше не нужно ждать, пока истечет время ожидания TCP для повторного подключения к серверу, на который выполнен переход. Network Status Monitor (NSM) notifications are sent out after a failover process, and clients no longer need to wait for TCP timeouts to reconnect to the failed over server.

Обратите внимание, что сервер для NFS поддерживает прозрачную отработку отказа только при запуске вручную, обычно во время планового обслуживания. Note that Server for NFS supports transparent failover only when manually initiated, typically during planned maintenance

При незапланированной отработке отказа клиенты NFS теряют свои подключения. If an unplanned failover occurs, NFS clients lose their connections. Сервер для NFS также не имеет интеграции с фильтром ключей возобновления. Server for NFS also doesn’t have any integration with the Resume Key filter. Это означает, что если локальное приложение или сеанс SMB пытается получить доступ к тому же файлу, что и клиент NFS, сразу после плановой отработки отказа, то клиент NFS может потерять свои подключения (прозрачная отработка отказа не будет выполнена). This means that if a local app or SMB session attempts to access the same file that an NFS client is accessing immediately after a planned failover, the NFS client might lose its connections (transparent failover wouldn’t succeed).

Network File System (NFS)

Network File System (NFS) — протокол сетевого доступа к файловым системам, позволяет подключать (монтировать) удалённые файловые системы через сеть, обеспечивает пользователям доступ к файлам, позволяет работать с этими файлами точно так же, как и с локальными.

Большинство представленных на рынке Network-attached storage (NAS), конечно же, поддерживают NFS, и предоставляют доступ к локальным ресурсам равно как и на любом сервере с операционной системой, в которой возможно развернуть службу NFS.

Настройки доступа к ресурсам сервера с какой-нибудь ОС Ubuntu и IP-адресом 192.168.1.1 содержатся в файле /etc/exports и представляют собой записи вида:

  • /data/place1 192.168.1.0/255.255.255.0(rw,no_subtree_check,nohide,async) 192.168.101.0/255.255.255.0(rw,no_subtree_check,nohide,async)
  • data/place2 192.168.1.0/255.255.255.0(rw,no_subtree_check,nohide,async) 192.168.101.0/255.255.255.0(rw,no_subtree_check,nohide,async)

В данном случае доступ по NFS к серверу и его ресурсу /data/place1 возможен для клиентов с IP-адресами из сетей 192.168.1.0/255.255.255.0, 192.168.101.0/255.255.255.0.

Смонтировать удаленный ресурс в локальную директорию, например, /home/user/example, если клиент в разрешенной подсети, и установлен клиент для NFS, возможно через команду(Ubuntu):

В случае, если вместо IP-адресов указано * или (everyone) — то, зачастую, любой клиент может смонтировать удаленный ресурс себе в систему.

Пользователю (например, под Ubuntu) достаточно набрать в терминале: showmount -e ip-target и получить информацию о доступных ресурсах на сервере (server’s export list).

Например:

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

Что может быть на ресурсах — очевидно, что угодно:

  • личные файлы пользователей Интернет, например, в случаях «открытых» NAS устройств;
  • директории с файлами целых предприятий, баз данных, архивы баз данных;
  • часто директории с адресами /home/* (иногда с ключами в .ssh и доступные на запись);
  • директории с файлами систем видеонаблюдения;
  • прочее…

Практическое применение Practical applications

Ниже приведены некоторые способы использования NFS. Here are some ways you can use NFS:

  • Используйте файловый сервер Windows NFS для предоставления многопротокольного доступа к одному и тому же файловому ресурсу по протоколам SMB и NFS с многоплатформенных клиентов. Use a Windows NFS file server to provide multi-protocol access to the same file share over both SMB and NFS protocols from multi-platform clients.
  • Разверните файловый сервер Windows NFS в среде операционной системы, отличной от Windows, чтобы предоставить клиентским компьютерам, не являющимся клиентскими Windows, доступ к файловым ресурсам NFS. Deploy a Windows NFS file server in a predominantly non-Windows operating system environment to provide non-Windows client computers access to NFS file shares.
  • Перенос приложений из одной операционной системы в другую путем хранения данных в общих файловых ресурсах, доступных через протоколы SMB и NFS. Migrate applications from one operating system to another by storing the data on file shares accessible through both SMB and NFS protocols.

Настройка сервера NFS в Ubuntu

Мы можем открыть NFS доступ к любой папке, но давайте создадим для этих целей новую:

Дальше нас интересует настройка ubuntu nfs server. Все общие папки и другие настройки nfs находятся в файле /etc/exports. Синтаксис записи папки такой:

адрес_папки клиент(опции)

Адрес папки — это та папка, которую нужно сделать доступной по сети. Клиент — ip адрес или адрес сети, из которой могут получить доступ к этой папке. А вот с опциями немного сложнее. Рассмотрим некоторые из них:

  • rw — разрешить чтение и запись в этой папке;
  • ro — разрешить только чтение;
  • sync — отвечать на следующие запросы только тогда, когда данные будут сохранены на диск (по умолчанию);
  • async — не блокировать подключения пока данные записываются на диск;
  • secure — использовать для соединения только порты ниже 1024;
  • insecure — использовать любые порты;
  • nohide — не скрывать поддиректории при, открытии доступа к нескольким директориям;
  • root_squash — подменять запросы от root на анонимные, используется по умолчанию;
  • no_root_squash — не подменять запросы от root на анонимные;
  • all_squash — превращать все запросы в анонимные;
  • subtree_check — проверять не пытается ли пользователь выйти за пределы экспортированной папки;
  • no_subtree_check — отключить проверку обращения к экспортированной папке, улучшает производительность, но снижает безопасность, можно использовать когда экспортируется раздел диска;
  • anonuid и anongid — указывает uid и gid для анонимного пользователя.

Например, для нашей папки, если вы хотите разрешить к ней подключаться только с определённого IP адреса, эта строка может выглядеть вот так:

Можно разрешить только нужную подсеть, например:

Для того чтобы разрешить все адреса используйте подсеть 0.0.0.0/0 или символ *.

Открытие шары NFS в Ubuntu почти завершено. Осталось разобраться с правами. Кроме ограничений IP адреса работает обычная система полномочий UNIX, поэтому если вы хотите чтобы определённый пользователь мог получить доступ к папке, то на сервере должен существовать пользователь с таким же UID и эта папка должна принадлежать ему или группе в которой он состоит.

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

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

Когда все будет настроено, останется только обновить таблицу экспорта NFS:

Если на вашем сервере используется брандмауэр, то следует открыть порты 111 и 2049: