- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Поднимаем NFS сервер на Ubuntu
- Теория
- Настройка
- Как установить и настроить сервер NFS в Ubuntu 18.04
- Подготовка
- Настройте сервер NFS
- Установка сервера NFS
- Создание файловых систем
- Экспорт файловых систем
- Конфигурация межсетевого экрана
- Настройка клиентов NFS
- Установка клиента NFS
- Монтирование файловых систем
- Тестирование доступа по NFS
- Размонтирование файловой системы NFS
- Выводы
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Поднимаем NFS сервер на Ubuntu
Сетевые файловые системы
4 минуты чтения
Рассказываем как быстро и просто поднять свой NFS сервер на Ubuntu Linux Server 14-04.1, а также разберёмся с принципами работы протокола NFS и рассмотрим теорию.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Теория
Аббревиатура NFS расшифровывается как Need for Speed — Network File System. Это протокол для доступа к распределённым сетевым файловым системам, с помощью которого можно подмонтировать удалённые директории к своему серверу. Это позволяет использовать дисковое пространство другого сервера для хранения файлов и регулярно производить запись данных на него с нескольких серверов.
Протокол имеет клиент-серверную модель, то есть один сервер (ещё его называют “шара” от слова share), с установленным пакетом NFS, будет обеспечивать доступ к своим каталогам и файлам, а клиентские компьютеры будут подключаться к нему по сети. Закрепим прочитанное схемкой:
Обращения к серверу NFS осуществляются в виде пакетов протокола RPC (Remote Call Procedure), который позволяет выполнить различные функции или процедуры в другом сетевом пространстве, то есть на удалённом сервере.
Авторизация пользователей, которые подключаются к серверу осуществляется по IP-адресу, а также по специальным идентификаторам пользователя UID и группы GID. Это не лучший способ относительно безопасности хранимых файлов, в сравнении с классической моделью «логин/пароль». Зато, благодаря такой архитектуре и тому, что NFS использовал протокол UDP без установления сессии, он практически невосприимчив к сбоям сети и самих клиентских компьютеров. Так, при каком-либо сбое, передача файла просто приостановится, а когда связь будет налажена, то передача возобновиться без необходимости какой-либо перенастройки.
Настройка
Думаю, с теорией понятно, так что давайте переходить к практике. Как было сказано, все настройки будет проводить на Ubuntu 14.04.1
Прежде всего, на компьютер, который будет выступать в роли сервера NFS, нужно установить необходимые компоненты.
Итак, скачиваем пакет nfs-kernel-server , с помощью которого мы сможем раздать доступ (“расшарить”) директории. Для этого на будущем NFS сервере вводим команды:
Теперь создаём собственно директорию к которой хотим раздать доступ. Стоит отметить, что можно также “расшарить” уже имеющиеся на сервере директории, но мы создадим новую:
Далее мы должны сделать так, чтобы владельцем директории /var/nfs и группе, к которой он принадлежит стали все пользователи в нашей системе. Для этого вводим на сервере команду:
Вводите эту команду только для тех директорий, которые создали сами, не надо вводить её для уже имеющихся директорий, например /home .
Следующим шагом необходимо изменить конфигурацию самого NFS, она лежит в файле /etc/exports , открываем его для редактирования любимым редактором:
Перед вами откроется конфигурационный файл с закомментированными строками, которые содержат примеры настройки для разных версий NFS.
Закомментированные – это те, в начале которых стоит символ #, и это значит, что параметры, указанные в них, не имеют силы.
Нам необходимо внести в этот файл следующие не закомментированные строки:
- /var/nfs — Директория, которую мы хотим расшарить
- 10.10.0.10 — IP-адрес и маска клиентского компьютера, которому нужно раздать доступ к директории
- rw — Разрешает клиенту читать (r) и записывать (w) файлы в директории
- sync — Этот параметр заставляет NFS записывать изменения на диск перед ответом клиенту.
- no_subtree_check — Данная опция отключает проверку того, что пользователь обращается именно к файлу в определённом подкаталоге. Если это проверка включена, то могут возникнуть проблемы, когда, например, название файла или подкаталога было изменено и пользователь попробует к ним обратиться.
После этого, нужно создать таблицу соответствия расшаренных директорий и клиентов, а затем запустить NFS сервис. Для этого вводим следующие команды:
После выполненных действий расшаренные директории должны стать доступными для доступа с клиентов.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник
Как установить и настроить сервер NFS в Ubuntu 18.04
Сетевая файловая система (NFS) — это протокол распределенной файловой системы, который позволяет вам обмениваться удаленными каталогами по сети. С помощью NFS вы можете монтировать удаленные каталоги в своей системе и работать с файлами на удаленном компьютере, как если бы они были локальными файлами.
Протокол NFS по умолчанию не зашифрован и, в отличие от Samba , не обеспечивает аутентификацию пользователя. Доступ к серверу ограничен IP-адресами клиентов или именами хостов.
В этом руководстве мы рассмотрим, как настроить сервер NFSv4 в Ubuntu 18.04. Мы также покажем вам, как смонтировать файловую систему NFS на клиенте.
Подготовка
В этом примере предполагается, что у вас есть один сервер под управлением Ubuntu 18.04, а другой — с любым другим дистрибутивом Linux. Сервер и клиенты должны иметь возможность общаться друг с другом по частной сети. Если ваш хостинг-провайдер не предлагает частные IP-адреса, вы можете использовать общедоступные IP-адреса и настроить брандмауэр сервера, чтобы разрешить трафик на порт 2049 только из надежных источников.
Машины в этом примере имеют следующие IP-адреса:
Настройте сервер NFS
Начнем с установки и настройки сервера NFS.
Установка сервера NFS
Обновите индекс пакетов и установите пакет сервера NFS:
После завершения установки службы NFS запустятся автоматически.
По умолчанию в Ubuntu 18.04 NFS версии 2 отключена. Версии 3 и 4 включены. Вы можете убедиться в этом, выполнив следующую команду cat :
NFSv2 сейчас довольно старый, и нет причин для его включения.
Параметры конфигурации сервера NFS задаются в /etc/default/nfs-kernel-server и /etc/default/nfs-common . В нашем случае достаточно настроек по умолчанию.
Создание файловых систем
При настройке сервера NFSv4 рекомендуется использовать глобальный корневой каталог NFS и привязать монтирование фактических каталогов к точке монтирования общего ресурса. В этом примере мы будем использовать директор /srv/nfs4 качестве корня NFS.
Мы собираемся поделиться двумя каталогами ( /var/www и /opt/backups ) с разными параметрами конфигурации, чтобы лучше объяснить, как можно настроить монтирование NFS.
/var/www/ принадлежит пользователю, а группа www-data и /opt/backups принадлежит пользователю root .
Создайте файловую систему экспорта с помощью команды mkdir :
Смонтируйте актуальные каталоги:
Чтобы сделать монтирование привязки постоянным, откройте файл /etc/fstab :
и добавьте следующие строки:
Экспорт файловых систем
Следующим шагом является определение файловых систем, которые будут экспортированы сервером NFS, параметров общих ресурсов и клиентов, которым разрешен доступ к этим файловым системам. Для этого откройте файл /etc/exports :
В нашем случае нам нужно экспортировать каталоги www и backups и разрешить доступ только для клиентов в сети 192.168.33.0/24 :
Первая строка содержит fsid=0 который определяет корневой каталог NFS /srv/nfs . Доступ к этому тому NFS разрешен только клиентам из подсети 192.168.33.0/24 . Параметр crossmnt требуется для совместного использования каталогов, которые являются подкаталогами экспортированного каталога.
Во второй строке показано, как указать несколько правил экспорта для одной файловой системы. Он экспортирует /srv/nfs4/backups и разрешает доступ только для чтения ко всему диапазону 192.168.33.0/24 а также доступ для чтения и записи к 192.168.33.3 . Параметр sync указывает NFS записывать изменения на диск перед ответом.
Последняя строка не требует пояснений. Для получения дополнительной информации обо всех доступных параметрах введите в терминале команду man exports .
Сохраните файл и экспортируйте акции:
Вам нужно запускать указанную выше команду каждый раз, когда вы изменяете файл /etc/exports . Если есть какие-либо ошибки или предупреждения, они будут показаны на терминале.
Чтобы просмотреть текущий активный экспорт и его состояние, используйте:
Вывод будет включать все акции с их опционами. Как видите, есть также параметры, которые мы не определили в /etc/exports . Это параметры по умолчанию, и если вы хотите их изменить, вам необходимо явно установить эти параметры.
В Ubuntu root_squash включен по умолчанию. Это один из наиболее важных параметров безопасности NFS. Это не позволяет пользователям root, подключенным с клиентов, иметь привилегии root на подключенных общих ресурсах. Он будет отображать корень UID и GID , чтобы nobody / nogroup UID / GID .
Чтобы пользователи на клиентских машинах имели доступ, NFS ожидает, что идентификаторы пользователя и группы клиента совпадают с идентификаторами на сервере. Другой вариант — использовать функцию отображения идентификаторов NFSv4, которая преобразует идентификаторы пользователей и групп в имена и наоборот.
Вот и все. На этом этапе вы настроили сервер NFS на своем сервере Ubuntu. Теперь вы можете перейти к следующему шагу и настроить клиентов и подключиться к серверу NFS.
Конфигурация межсетевого экрана
Если вы используете брандмауэр в своей сети, вам нужно будет добавить правило, которое будет разрешать трафик через порт NFS.
Предполагая, что вы используете UFW для управления своим брандмауэром, чтобы разрешить доступ из подсети 192.168.33.0/24 вам необходимо выполнить следующую команду:
Чтобы проверить запуск изменений:
Вывод должен показать, что трафик через порт 2049 разрешен:
Настройка клиентов NFS
Теперь, когда сервер NFS настроен и общие ресурсы экспортированы, следующим шагом настройте клиентов и смонтируйте удаленные файловые системы.
Вы также можете смонтировать общий ресурс NFS на компьютерах с macOS и Windows, но мы сосредоточимся на системах Linux.
Установка клиента NFS
На клиентских машинах нам нужно установить только инструменты, необходимые для монтирования удаленных файловых систем NFS.
Установите клиент NFS в Debian и Ubuntu
Имя пакета, который включает программы для монтирования файловых систем NFS в дистрибутивах на основе Debian, — nfs-common . Для его установки выполните:
Установите клиент NFS на CentOS и Fedora
В Red Hat и ее производных установите пакет nfs-utils :
Монтирование файловых систем
Мы будем работать на клиентской машине с IP 192.168.33.110 которая имеет доступ для чтения и записи к файловой системе /srv/nfs4/www и доступ только для чтения к файловой системе /srv/nfs4/backups .
Создайте два новых каталога для точек монтирования. Вы можете создавать эти каталоги в любом месте.
Смонтируйте экспортированные файловые системы с помощью команды mount :
Где 192.168.33.10 — это IP-адрес сервера NFS. Вы также можете использовать имя хоста вместо IP-адреса, но оно должно быть разрешено клиентским компьютером. Обычно это делается путем сопоставления имени хоста с IP в /etc/hosts .
При монтировании файловой системы NFSv4 вам необходимо опустить корневой каталог NFS, поэтому вместо /srv/nfs4/backups вам нужно использовать /backups .
Убедитесь, что удаленные файловые системы успешно смонтированы, используя команду mount или df :
Команда распечатает все смонтированные файловые системы. Последние две строки — это смонтированные акции:
Чтобы сделать монтирование постоянным при перезагрузке, откройте файл /etc/fstab :
и добавьте следующие строки:
Чтобы получить дополнительную информацию о доступных параметрах монтирования файловой системы NFS, введите в терминале man nfs .
Другой вариант монтировать удаленные файловые системы — использовать инструмент autofs или создать модуль systemd.
Тестирование доступа по NFS
Проверим доступ к общим ресурсам, создав для каждой из них новый файл .
Сначала попробуйте создать тестовый файл в каталоге /backups с помощью touch команды:
Файловая система /backup экспортируется как доступная только для чтения, и, как и ожидалось, вы увидите сообщение об ошибке Permission denied :
Затем попробуйте создать тестовый файл в каталоге /srv/www в качестве корневого с помощью команды sudo :
Вы снова увидите сообщение Permission denied .
Если вспомнить /var/www каталог принадлежат к www-data пользователя и эта доля имеет root_squash вариант набор , который отображает суперпользователь к nobody пользователю и nogroup группе , которая не имеет права на запись на удаленный ресурс.
Предполагая, что у вас есть использование www-data на клиентском компьютере с тем же UID и GID что и на удаленном сервере (что должно быть, если, например, вы установили nginx на обеих машинах), вы можете протестировать создание файла как пользователь www-data с:
Команда не покажет никаких выходных данных, что означает, что файл был успешно создан.
Чтобы проверить это, перечислите файлы в каталоге /srv/www :
На выходе должен отобразиться только что созданный файл:
Размонтирование файловой системы NFS
Если вам больше не нужен удаленный общий ресурс NFS, вы можете размонтировать его, как любую другую подключенную файловую систему, с помощью команды umount. Например, чтобы отключить общий ресурс /backup , выполните:
Если точка монтирования определена в /etc/fstab , убедитесь, что вы удалили строку или закомментировали ее, добавив # в начале строки.
Выводы
В этом руководстве мы показали вам, как настроить сервер NFS и как смонтировать удаленные файловые системы на клиентских машинах. Если вы внедряете NFS в производство и обмениваетесь разумными данными, рекомендуется включить аутентификацию Kerberos.
В качестве альтернативы NFS вы можете использовать SSHFS для монтирования удаленных каталогов через SSH-соединение. SSHFS по умолчанию зашифрован, и его гораздо проще настроить и использовать.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Источник