Удаленное хранение данных
Цель работы: Изучить технологии удаленного доступа к файлам.
Задачи работы
- Изучить работу 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):
Рис. 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):
Рис. 6.2. Запись пользователя в БД SMB
Вам будет предложено ввести пароль, пользователь будет добавлен в базу, теперь необходимо включить этого пользователя:
Рис. 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):
Рис. 6.4. Перезапуск Samba
Приложения для настройки
Так же существуют приложения, позволяющие производить настройку Samba через графический интерфейс (см. GUI приложения для работы с Samba).
Установить самый простой GUI для Samba можно командой (рис. 6.5):
Рис. 6.5. Установка приложения для работы с Samba
Запускается он командой (рис. 6.6):
Рис. 6.6. Запуск приложения для работы с Samba
Все изменения он записывает в конфигурационный файл samba. Интерфейс приложения приведен на рис. 6.7.
Рис. 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.
Рис. 6.8. Установка пакетов для работы с NFS
Настраиваем, какие именно директории мы хотим открыть для совместного пользования и кому. Все это делается в файле /etc/exports. Записи в этом файле имеют следующий формат:
каталог (или файловая система)
client1 (option1, option2) client2 (option1, option2)
Выделим директорию /homeshare (директория с данными на сервере) в совместное пользование всем компьютерам с IP - 192.168.0.0/24 с правами чтения и записи:
Рис. 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):
Рис. 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. Что такое монтирование, каким образом оно осуществляется и какие способы монтирования бывают?