NFS: различия между версиями

Материал из ALT Linux Wiki
Строка 31: Строка 31:
=== Настройка сервера NFS ===
=== Настройка сервера NFS ===


1. В файле /etc/exports указываются каталоги, которые мы экспортируем (разрешаем монтировать с других машин).
1. В файле /etc/exports указываются каталоги, которые мы экспортируем (разрешаем монтировать с других машин) (см. man exports).
Для этого пишем в этот файл строки примерно следующего вида (см. man exports):
 
По соображениям безопасности не рекомендуется экспортировать каталоги по протоколу NFS 3.
Рекомендуется использовать NFS 4.
 
==== синтаксис для экспорта через NFS 3 ====


==== экспортируемые NFS 3 ====
<pre>/mysharedir ipaddr1(rw)  ipaddr2(ro)</pre>
<pre>/mysharedir ipaddr1(rw)  ipaddr2(ro)</pre>
Например
Например
Строка 52: Строка 55:
Подробную информацию о формате файла можно посмотреть командой <tt>man exports</tt>
Подробную информацию о формате файла можно посмотреть командой <tt>man exports</tt>


==== экспортируемые NFS 4 ====
==== синтаксис для экспорта через NFS 4 ====
экспортирукмые по NFS 4 каталоги имеют тот же синтаксис, что и через NFS3,
за исключением того, что все они должны быть в одном подкаталоге (chroot для безопасности).
Пусть это каталог /exports. Тогда необходимо подмонтировать остальные экспортированные каталоги
внутрь /exports с помощью mount --bind и прописать в fstab:
/mysharedir    /exports/mysharedir  none    bind  0  0
отличие с NFS3 в том, что нужно будет добавить nohide к mysharedir и явно
обьявить корневой каталог экспорта с fsid=0.
/exports        192.168.0.1/24(fsid=0,ro,insecure,all_squash)
/exports/mysharedir    192.168.0.1/24(nohide,ro,insecure,all_squash)


=== Запуск NFS ===
=== Запуск NFS ===

Версия от 16:24, 7 октября 2010

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


NFS

!Устарело?! Важной особенностью NFS является то, что она рассчитана на использование внутри безопасной сети, рабочим станциям в которой можно доверять, поскольку авторизация доступа к файлам, смонтированным на NFS осуществляется на основании идентификатора пользователя, а подлинность пользователя каждая машина в сети проверяет самостоятельно. Вытекающим отсюда требованием является то, что пользователь должен быть зарегистрирован и на клиенте и на сервере NFS и иметь там одно и то же входное имя (login) и идентификатор. Это достигается использованием централизованной аутентификации (например, с помощью PAM и сервера аутентификации или NIS).

Для запуска nfs требуется, чтобы в системе были установлены следующие пакеты:

  • nfs-server или unfs3 (в OpenVZ VE ядерный NFS-сервер не работает)
  • portmap
  • nfs-clients (содержит в себе nfslock)

(в некоторых системах вместо nfs-server и nfs-clients имеется пакет nfs-utils)

Настройка portmap

Для работы nfs необходим сервис portmap. По умолчанию, сервис portmap запущен только на loopback (lo) интерфейсе в целях безопасности. Этого достаточно для раздачи сетевых ресурсов через nfs4.

Если же клиенты не понимают nfs4, Нехотя коментируем в файле /etc/sysconfig/portmap строку PORTMAP_ARGS="-l", прописываем в /etc/hosts.allow сеть, в которую раздаем:

portmap mountd nfsd statd lockd rquotad : 192.168.ххх.0/255.255.255.0

и в /etc/hosts.deny:

portmap mountd nfsd statd lockd rquotad : ALL

после этого еще раз вдумчиво читаем http://tldp.org/HOWTO/NFS-HOWTO/security.html. и глубоко размышляем над глубокой небезопасностью запуска portmap без PORTMAP_ARGS="-l" и nfs3-расшаренных разделов.

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

1. В файле /etc/exports указываются каталоги, которые мы экспортируем (разрешаем монтировать с других машин) (см. man exports).

По соображениям безопасности не рекомендуется экспортировать каталоги по протоколу NFS 3. Рекомендуется использовать NFS 4.

синтаксис для экспорта через NFS 3

/mysharedir ipaddr1(rw)  ipaddr2(ro)

Например

/mysharedir 192.168.0.1/24(rw)

В скобочках указываются дополнительные параметры:

rw — разрешены чтение и запись
ro — разрешено только чтение
no_root_squash — отключение ограничения прав root

По умолчанию пользователь root имеет на смонтированных ресурсах права пользователя nobody.

Можно указывать разрешение экспорта сразу для подсети. Например разрешение для машин из подсети 192.168.0.X строка будет выглядеть так:

/mysharedir 192.168.0.1/24(rw)

Подробную информацию о формате файла можно посмотреть командой man exports

синтаксис для экспорта через NFS 4

экспортирукмые по NFS 4 каталоги имеют тот же синтаксис, что и через NFS3, за исключением того, что все они должны быть в одном подкаталоге (chroot для безопасности). Пусть это каталог /exports. Тогда необходимо подмонтировать остальные экспортированные каталоги внутрь /exports с помощью mount --bind и прописать в fstab:

/mysharedir     /exports/mysharedir   none    bind  0  0

отличие с NFS3 в том, что нужно будет добавить nohide к mysharedir и явно обьявить корневой каталог экспорта с fsid=0.

/exports        192.168.0.1/24(fsid=0,ro,insecure,all_squash)
/exports/mysharedir    192.168.0.1/24(nohide,ro,insecure,all_squash)

Запуск NFS

1. После настройки файла необходимо запустить сервис portmap командой:

# service portmap start

2. Запустить непосредственно nfs-server командой:

# service nfs start

3. Запустить сервис блокировок командой:

# service nfslock start

Если все команды прошли успешно и не выдавали ошибок, то сервер можно считать работающим. Дополнительно можно запустить команду exportfs, которая выведет текущие настройки на данный момент. В случае нормальной работы она должна вывести на экран записи из файла /etc/exports

Для запуска сервисов при старте системы:

chkconfig portmap on
chkconfig nfs on
chkconfig nfslock on

При появлении ошибки

mount.nfs: internal error

Закоментировать или удалить строку в файле /etc/sysconfig/portmap

# PORTMAP_ARGS="-l"

После перезапустите portmap и nfs

Использование NFS

Подключение к nfs-серверу можно производить вручную, а можно настроить автоматическое подключение при загрузке.

Допустим машина где запущен nfs-server называется server, и нам необходимо смонтировать с сервера каталог /myshare Тогда, для ручного способа достаточно (из под пользователя root) выполнить команду:

mount -t nfs server:/myshare /mnt/myshare

где, /mnt/myshare — локальный каталог куда монтируется удалённый каталог.

Для автоматического монтирования к nfs-серверу при загрузке необходимо добавить следующую строку в файл /etc/fstab:

server:/myshare  /mnt/myshare   nfs   intr,soft,lock

где, intr — позволяет прервать процесс при необходимости soft — предотвращает от зависания в случае недоступности удалённой машины.

Прежде чем изменять /etc/fstab, попробуйте смонтировать вручную и убедитесь, что всё работает.

Автомонтирование

Осуществляется при помощи automount, autofs или subfs. Рецепт mike@ для subfs (фрагмент /etc/fstab):

nfs:/var/ftp/pub /pub subfs fs=nfs,program=/sbin/net-submountd,interval=5,soft 0 0

Ссылки