Перейти к содержанию

NFS


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

NFS не шифрует соединение между участниками. При работе с важными данными его нужно туннелировать в защищенный протокол (kerberos или secure VPN).

Был разработан Sun в 1984 и в отличие от Samba, по умолчанию не поддерживает аутентификацию, для этих целей используется только адрес машины или hostname

Вкратце, принцип работы можно описать так:

  1. Клиент отправляет запрос на подключение сетевого ресурса.

  2. Сервер проверяет параменты передаваемые клиентом: дескриптор файла, наименование, user ID, group ID, на основе которых сервер принимает решение об отказе в предоставлении доступа или в предоставлении такого доступа в соответствующем объеме (R, RW, и тд.).

  3. Сервер отдает клиенту запрошенные файловые дескрипторы на каждый файл и директорию

За работу NFS в UNIX системах отвечает демон NFSd.

Для взаимодействия между участниками используется сервис RPC.

Для работы с NFS в Linux требуется установить мета пакет nfs-common который содержит в себе необходимые утилиты.

К безопасности NFS следует подходить особо, некоторые его директивы могут быть крайне небезопасны, подробнее о таком тут или на странице privesc

Примеры

показать доступные шары
showmount -e $IP_ADDRESS
Сведения о директивах
cat /etc/exports

Смонтировать шару
mount -t nfs $IP_ADDRESS:share_name \
/local/mount/dir -nolock
# по поводу nolock есть нюансы, кажется этот ключ актуален для 3 версии nfs. Надо гуглить
Получить сведения о NFS через скрипты nmap
nmap --script=nfs-ls,nfs-statfs,nfs-showmount \
-p $RPC_PORT $IP_ADD