IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Linux  >

Подготовка к экзамену LPI 201: Предоставление доступа к файлам и сервисам

Intermediate Level Administration (LPIC-2) тема 209

developerWorks
На предыдущую страницуСтраница 2 из 7 На предыдущую страницу

Опции документа

Обсудить


Выскажите мнение об этом учебном пособии

Помогите нам улучшить содержание


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

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

Если сервер правильно настроен, а у клиента есть соответствующие права, то монтирование удаленной файловой системы NFS потребует только использовать командуmount:

mount -t nfs my.nfs.server.com:/path/on/server /path/on/client

или же вставить соответствующую запись в /etc/fstab:

my.nfs.server.com:/path/on/server /path/on/client nfs rw,soft 0 0

Опцияsoftсообщает ядру, что надо посылать ошибку I/O (EIO) пользовательскому процессу в случае проблем с сетью. Опция по умолчаниюhardвызовет зависание процесса, если сервер NFS недоступен.

В дополнение, программы помощники rpc.lockd,rpc.statd и rpc.quotad могут быть запущены на стороне клиента и/или сервера.



В начало


Настройка сервера NFS (часть первая)

Для полноценной работы сервера NFS требуется три различные программы, и ещё три могут быть запущены дополнительно.

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

  • portmap: Иногда именуется какportmapper или rpc.bind.
  • rpc.mountd: Иногдаmounted.
  • rpc.nfsd: Иногдаnfsd.

Дополнительно существуют три опциональные программы помощника:rpc.lockd, rpc.statd, и rpc.quotad, которые, соответственно, обеспечивают глобальное блокирование, ускорение семейства системных вызовов lstat (используется ls -l и другие), и обеспечивают поддержку квот.



В начало


Настройка сервера NFS (часть вторая)

Все три демона, относящиеся к NFS, используют TCP оболочки (tcpd) для управления доступом и поэтому могут потребовать записей в /etc/host.allow.

Ни nfsd ни portmap обычно не требует никакой другой настройки кроме как /etc/hosts.allow.

Файлом конфигурации для mountd является (косвенно) /etc/exports. Он расписывает, какие файловые системы могут монтироваться определенными клиентами. В Linux реализации NFS, /etc/exports не обрабатывается прямо mountd. Вместо этого команда exportfs -a обрабатывает /etc/exports и затем пишет результат в /var/lib/nfs/xtab, который может быть прочитан mountd. Существуют другие флаги у exportfs, которые позволяют этим двум файлам быть рассинхронизированными. То есть, вы можете временно добавить или удалить экспортируемые каталоги, не модифицируя постоянных записей в /etc/exports.

Администраторам других Unix-подобных серверов следует принять во внимание, что синтаксис файла /etc/exports в Linux значительно отличается от того, что используется в SunOS или BSD.



В начало


Настройка /etc/hosts.allow и /etc/hosts.deny

Файл конфигурации /etc/hosts.allow описывает узлы, которые могут подключаться к системе Linux. Этот файл не относится к NFS, но системе необходимо разрешение на подключение к машине, чтобы она смогла использовать сервер NFS. Аналогично, файл /etc/hosts.deny это список узлов, которым запрещено подключаться.

Довольно неинтуитивно, сначала идет поиск разрешенных узлов, затем запрещенных узлов, но если машина не найдена, значит ей можно подключиться. Это не значит, что механизмы входа отдельных серверов нельзя изменять, внимательный администратор может запретить все подключения, которые не разрешены явно (немного паранойи не помешает) с помощью:

# /etc/hosts.deny       
ALL:ALL EXCEPT localhost:DENY

Установив запрет в /etc/hosts.deny на все (кроме соединений из LOCALHOST) получаем, что возможны только указанные явно соединения. Например:

#/etc/hosts.allow
# Allow localhost and intra-net domain to use all servers       
ALL : 127.0.0.1, 192.168.       
# Let everyone ssh here except 216.73.92.* and .microsoft.com       
sshd: ALL EXCEPT 216.73.92. .microsoft.com : ALLOW       
# Let users in the *.example.net domain ftp in       
ftpd: .example.net
		



В начало


Настройка /etc/exports

Вот простой пример файла /etc/export:

# sample /etc/exports file / master(rw) trusty(rw,no_root_squash) /projects proj*.local.domain(rw) /usr *.local.domain(ro) @trusted(rw) /home/joe pc001(rw,all_squash,anonuid=150,anongid=100) /pub (ro,insecure,all_squash)

Обычно,root(uid 0) на стороне клиента выглядит как nobody(uid 65534) на стороне сервера; это называется смещением root так как оно позволяет защитить файлы, владельцем которых является root (а члены группы/остальные не имеют права на запись) от изменений клиентами NFS. Опция no_root_squash отменяет такое поведение, и позволяет пользователю root иметь довереный полный доступ к разделу/. Такой доступ может быть полезен при установке и настройке программного обеспечения.

Раздел/usrможет быть только прочитан всеми узлами, кроме тех, что находятся в сетевой группе "trusted" .

Когда/home/joeмонтируетсяpc001, все удаленные пользователи (в независимости от uid/gid) будут иметь uid=150, gid=100. Это может быть полезно, если удаленный клиент NFS представляет собой однопользовательскую рабочую станцию или не поддерживает несколько пользователей (как в случае с DOS).

Обычно, Linux (и другие Unix-подобные операционные системы) резервируют TCP и UDP порты от 1-1023 (так называемыебезопасные порты) для использования процессами пользователя root. Чтобы удостовериться, что именно root инициировал удаленное подключение NFS, сервер NFS обычно требует, чтобы удаленные клиенты использовали безопасные порты. Это соглашение, однако, не соблюдается некоторыми операционными системами (например Windows). В таких случаях опция insecure позволяет клиенту NFS использовать любой порт TCP/UDP. Обычно она требуется при обслуживании клиентов Windows.



В начало


Утилиты NFS

nfsstatотображает статистику NFS (клиента и/или сервера) подобно тому, как на локальной машине эти делают утилитыiostat и vmstat.

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

В этом контексте "не использующий информацию о состоянии" означает, что демон nfsd, который работает с реальной информацией, не помнит о том, ни какие файлы были открыты ни какие клиенты смонтировали какие разделы. Каждый запрос (readblock, writeblock и другие) содержит всю необходимую информацию для его выполнения (номер раздела, который предоставляется mountd, inode номер, номер блока, read/write/и другие, данные). Протокол HTTP очень похож в этом отношении. Другой стороной не использования информации о состоянии является то, что если сервер перезагрузится, то клиенты заметят только небольшой период времени потери доступа к системе.



В начало



На предыдущую страницуСтраница 2 из 7 На предыдущую страницу
    IBM в России Конфиденциальность Контакты