Удаленное хранение данных

Цель работы: Изучить технологии удаленного доступа к файлам.

Задачи работы

- Изучить работу Samba;

- Изучить работу Network File System.

Теоретическая часть

Samba

Samba - программа, которая позволяет обращаться к сетевым дискам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GPL.

Samba работает на большинстве Unix-подобных систем, таких как GNU/Linux, POSIX-совместимых Solaris и Mac OS X Server, на различных вариантах BSD, в OS/2. Samba включена практически во все дистрибутивы GNU/Linux, в том числе, конечно, и в Ubuntu.

Установка и настройка Samba

Для установки достаточно открыть терминал и ввести команду (рис. 6.1):

Удаленное хранение данных - student2.ru

Рис. 6.1. Установка Samba

Приложение будет автоматически загружено и установлено.

Конфигурирование автономного файлового сервера

Файл конфигурации находится в директории: /etc/samba/smb.conf. Домен Active Directory есть далеко не у всех. Поэтому часто возникает необходимость организовать на Linux машине автономное файловое хранилище со своей собственной системой авторизации. Это сделать очень просто.

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

Самое главное - определиться с используемым способом доступа к ресурсу. Для его изменения надо правильно установить значение параметра security в секции [global] файла /etc/samba/smb.conf. Обычно используется значение share или user.

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

security = share

Когда клиенты присоединяются к ресурсу с security = share им не нужно регистрироваться с использованием действительного имени пользователя и пароля. Вместо этого, клиенты посылают информацию аутентификации (пароли) на конкретный ресурс, в тот момент, когда хотят получить доступ к этому ресурсу.

Заметьте, что при использовании уровня безопасности share может быть очень сложно определить какой же пользователь UNIX будет использован в конечном счете.

security = user

При этом режиме клиент должен сначала произвести вход (logon), с существующим именем пользователя и паролем (имя может быть транслировано с помощью параметра username map). Шифрованные пароли также могут быть использованы в этом режиме.

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

security = domain

Такой режим будет работать только в том случае, если была использована команда net для добавления этого компьютера в домен Windows NT. Это требует установленного параметра encrypted passwords = yes.

В этом режиме Samba попытается опознать имя пользователя и пароль, передав их первичному или резервному домен контроллерам Windows NT, т.е. сделает тоже самое, что сделал бы сервер Windows NT.

Заметьте, что реальный пользователь UNIX все-таки должен быть, потому что Samba придется проверять права доступа пользователя UNIX, к файлу в файловой системе UNIX. С точки зрения клиента, нет разницы между режимами domain и user. Это затрагивает лишь то, как сервер проводит аутентификацию, только и всего.

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

security = server

В этом режиме Samba попытается определить правильность пары пользователь/пароль, передав ее другому серверу SMB, такому как NT. Если это не получится, будет работать security = user.

security = ADS

В этом режиме Samba работает как член домена AD.

Для работы в этом режиме, компьютеру, на котором запущена Samba, необходим будет установленный и настроенный Kerberos, и Samba должна быть присоединена к области AD с использованием утилиты net.

Делаем так, что для того чтобы залогинится на сервере samba обязательно нужно использовать учётную запись самой Ubuntu, то есть для того чтобы создать samba-юзера надо сделать следующее (рис. 6.2):

Удаленное хранение данных - student2.ru

Рис. 6.2. Запись пользователя в БД SMB

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

Удаленное хранение данных - student2.ru

Рис. 6.3. Включение пользователя

Открыть доступ на какую-нибудь папку очень просто. Допустим, мы хоти сделать три доступных каталога: usershare – доступный только определённым пользователям, download – откуда можно только скачивать файлы и upload – папка для закачки файлов на сервер. Для начала создадим три директории /home/share/usershare, /home/share/download и /home/share/upload, сделать каталог upload доступным для записи

sudo chmod 777 /home/share/upload

И запишем в конец конфигурационного файла /etc/samba/smb.conf следующий текст:

[usershare]

comment = User share

path = /home/shares/usershare

valid users = username

create mask = 0660

directory mask = 0771

writable = yes

[download]

comment = All users download

path = /home/share/download

create mode = 0700

directory mask = 0700

available = yes

browsable = yes

public = yes

writable = no

[upload]

comment = All users upload

path = /home/share/upload

create mode = 0777

directory mask = 0777

available = yes

browsable = yes

public = yes

writable = yes

Не забудьте перезапустить samba после изменений (рис. 6.4):

Удаленное хранение данных - student2.ru

Рис. 6.4. Перезапуск Samba

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

Так же существуют приложения, позволяющие производить настройку Samba через графический интерфейс (см. GUI приложения для работы с Samba).

Установить самый простой GUI для Samba можно командой (рис. 6.5):

Удаленное хранение данных - student2.ru

Рис. 6.5. Установка приложения для работы с Samba

Запускается он командой (рис. 6.6):

Удаленное хранение данных - student2.ru

Рис. 6.6. Запуск приложения для работы с Samba

Все изменения он записывает в конфигурационный файл samba. Интерфейс приложения приведен на рис. 6.7.

Удаленное хранение данных - student2.ru

Рис. 6.7. Приложение для работы с Samba

Для удалённого администрирования Samba в качестве web-интерфейса для Samba отлично подойдёт webmin.

Network File System

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

Установка и настройка NFS-сервера

Для работы NFS-сервера должны быть установлены пакеты (рис. 6.8):

- nfs-kernel-server;

- nfs-common;

- portmap.

Удаленное хранение данных - student2.ru

Рис. 6.8. Установка пакетов для работы с NFS

Настраиваем, какие именно директории мы хотим открыть для совместного пользования и кому. Все это делается в файле /etc/exports. Записи в этом файле имеют следующий формат:

каталог (или файловая система)

client1 (option1, option2) client2 (option1, option2)

Выделим директорию /homeshare (директория с данными на сервере) в совместное пользование всем компьютерам с IP - 192.168.0.0/24 с правами чтения и записи:

Удаленное хранение данных - student2.ru

Рис. 6.9. Настройка NFS

Опции:

-ro - права только на чтение. Можно и не указывать, так как она установлена по умолчанию;

-rw - дает клиентам право на запись;

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

-sync - более безопастный режим. Выставлен по умолчанию;

-no_wdelay - актуален только в режиме async. Отключает задержку при записи;

-no_subtree_check - этот параметр отключает контроль подкаталогов, выполняющийся для некоторых проверок системой защиты. Например, могут проверяться права на все подкаталоги монтируемой директории. Параметр по умолчанию - разрешить контроль подкаталогов;

- noaccess - запрещает доступ к указанной директории. Может быть полезной, если перед этим задан доступ всем пользователям сети к определенной директории, и нужно ограничить доступ в поддиректории лишь некоторым пользователям.

Опции отображения пользователей:

-root_squash - этот параметр не позволяет пользователю root обращаться к смонтированному NFS-тому;

-no_root_squash - этот параметр позволяет пользователю root обращаться к смонтированному NFS-тому;

-all_squash - этот параметр, полезный для NFS-томов с открытым доступом, подавляет все UID и GID и использует только учетную запись анонимного пользователя. Установка по умолчанию - no_all_squash;

-anonuid и anongid - эти параметры меняют UID и GID анонимного пользователя на указанную учетную запись.

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

На клиентской машине необходимо установить следующие пакеты:

- nfs-common;

- portmap.

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

Создаем точку монтирования (если её нет):

$mkdir data (мы же используем как точку монтирования (/home)

Монтировать можно двумя способами - каждый раз вручную или прописав опции монтирования в файл /etc/fstab (рис. 6.10):

Удаленное хранение данных - student2.ru

Рис. 6.10. Монтирование директории на клиентской ОС

NFS клиент может обрабатывать сбои сервера в работе. Есть две опции монтирования: hard и soft.

soft: Если запрос на получение файла не выполнен, NFS клиент сообщит об ошибке процессу, который пытается получить доступ к файлу. Некоторые программы умеют это обрабатывать, большая же часть - нет. Разработчики nfs не рекомендуют использовать эту опцию - это прямой путь к повреждённым данным и потере информации.

hard: Программа, осуществляющая доступ к файлу повиснет при смерти сервера. Процесс не может быть прерван или убит (только «sure kill»), пока вы не укажете опцию intr. Когда NFS сервер вернётся к работе, программа продолжит работу с того места, где остановилась. Разработчики NFS рекомендуют использование опций hard, intr со всеми монтируемые NFS файловые системы.

Компоненты Windows

Для работы Windows c NFS необходимо добавить службу Майкрософт для Network File System. Для этого проделаем следующее:

1. Установка и удаления программ > Установка компонентов Windows;

2. Другие службы доступа к файлам и принтерам сети -> Служба Microsoft для NFS.

И выбираем там:

- Администрирование служб Microsoft для NFS;

- Внешнее представление данных RPC;

- Клиент для NFS.

После установки и перезагрузки появляется возможность примонтировать NFS.

Практическая работа

1. Установите Samba на вашу Linux Ubuntu;

2. Измените настройки Samba так, что бы вход осуществлялся с существующим именем пользователя и паролем;

3. Создайте Samba-юзера, его имя и пароль должны совпадать с именем и паролем учетной записи. Включите этого пользователя.

4. Создайте каталог /home/share и в нем три каталога: usershare, download и update. Настройте их так, что бы первый был для доступа только определенных пользователей, второй - для скачанных файлов, третий - для закачки файлов на сервер. Проверьте работоспособность в дополнительных операционных системах – Linux и Windows;

5. Установите NFS-сервер на вашу Linux Ubuntu, а NFS-клиент на вспомогательную виртуальную машину с Linux. Создайте в основной операционной системе общий каталог – homeshare;

6. Проверьте работоспособность NFS в дополнительных операционных системах – Linux и Windows.

Контрольные вопросы

1. Каково назначение Samba?

2. Каким образом производится настройка Samba?

3. Какие приложение для настройки Samba существуют?

4. Какого назначение NFS?

5. Каким образом производится настройка NFS?

6. Что такое монтирование, каким образом оно осуществляется и какие способы монтирования бывают?

Наши рекомендации