Библиотека сайта rus-linux.net
Серверы Linux. Часть VI. Знакомство с сервером Samba
Оригинал: Samba authentication
Автор: Paul Cobbaut
Дата публикации: 24 мая 2015 г.
Перевод: A.Панин
Дата перевода: 14 июля 2015 г.
Глава 14. Аутентификация клиентов сервера Samba
14.1. Создание учетных записей пользователей на уровне системы Linux
Цель рассматриваемого в данной главе примера заключается в настройке разделяемой директории, которая будет доступна лишь для ограниченного круга пользователей. Пользователи должны будут проходить этап аутентификации с помощью своих паролей перед тем, как им будет предоставлен доступ к данной разделяемой директории. В первую очередь мы должны будем создать учетные записи трех пользователей с произвольными именами и паролями. На данном этапе упомянутые учетные записи пользователей должны быть созданы на уровне системы Linux.
[root@RHEL52 ~]# useradd -c "Serena Williams" serena [root@RHEL52 ~]# useradd -c "Justine Henin" justine [root@RHEL52 ~]# useradd -c "Martina Hingis" martina [root@RHEL52 ~]# passwd serena Изменяется пароль пользователя serena. Новый пароль : Повторите ввод нового пароля : passwd: все данные аутентификации успешно обновлены. [root@RHEL52 ~]# passwd justine Изменяется пароль пользователя justine. Новый пароль : Повторите ввод нового пароля : passwd: все данные аутентификации успешно обновлены. [root@RHEL52 ~]# passwd martina Изменяется пароль пользователя martina. Новый пароль : Повторите ввод нового пароля : passwd: все данные аутентификации успешно обновлены.
14.2. Создание учетных записей пользователей на уровне сервера Samba
После этого мы должны добавить информацию о созданных учетных записях пользователей в файл базы данных пользователей сервера Samba с именем smbpasswd
с теми же паролями.
[root@RHEL52 ~]# smbpasswd -a serena New SMB password: Retype new SMB password: Added user serena. [root@RHEL52 ~]# smbpasswd -a justine New SMB password: Retype new SMB password: Added user justine. [root@RHEL52 ~]# smbpasswd -a martina New SMB password: Retype new SMB password: Added user martina.
14.3. Режим контроля доступа к разделяемому ресурсу security = user
Помните о том, как в предыдущей главе мы устанавливали режим доступа к разделяемому ресурсу сервера Samba с помощью директивы security = share
в секции глобальных параметров сервера [global]? Так как в данном случае мы хотим сделать обязательной аутентификацию пользователей с использованием их имен и паролей для доступа к разделяемому ресурсу нашего сервера Samba, нам придется задействовать другой режим контроля доступа. Директива security = user
потребует от клиента передачи корректного идентификатора пользователя и пароля перед получением доступа к разделяемому ресурсу.
Исходя из этого, наша секция глобальных параметров сервера [global] будет выглядеть аналогичным образом:
[global] workgroup = WORKGROUP netbios name = TEACHER0 server string = Samba File Server security = user
14.4. Настройка разделяемого ресурса
Добавим следующую секцию описания разделяемого ресурса [share] в файл конфигурации нашего сервера Samba с именем smb.conf (также не стоит забывать о необходимости создания самой разделяемой директории /srv/samba/authwrite).
[authwrite] path = /srv/samba/authwrite comment = authenticated users only read only = no guest ok = no
14.5. Проверка возможности доступа к разделяемому ресурсу с помощью команды net use
После перезапуска сервера Samba мы должны протестировать возможность доступа к содержимому разделяемой директории с использованием учетных записей различных пользователей на различных компьютерах, работающих под управлением ОС производства компании Microsoft. В приведенных ниже примерах для проверки возможности доступа к разделяемому ресурсу используется команда net use
. Сначала используем учетную запись пользователя serena с компьютера, работающего под управлением ОС Windows XP.
C:\>net use m: \\teacher0\authwrite stargate /user:serena The command completed successfully. C:\>m: M:\>echo Приветствие от пользователя Serena > serena.txt
В следующем примере используется учетная запись пользователя martina с компьютера, работающем под управлением ОС Windows 2000, причем попытка создания пользователем собственного файла завершается успешно, а попытка модификации файла другого пользователя с именем serena приводит к генерации сообщения об ошибке.
C:\>net use k: \\teacher0\authwrite stargate /user:martina The command completed successfully. C:\>k: K:\>echo greetings from martina > Martina.txt K:\>echo test overwrite > serena.txt Access is denied.
14.6. Проверка возможности доступа к разделяемому ресурсу с помощью утилиты smbclient
Также вы можете соединяться с сервером и проходить аутентификацию с помощью утилиты smbclient
. Сначала попробуем использовать некорректный пароль.
[root@RHEL52 samba]# smbclient //teacher0/authwrite -U martina wrongpass session setup failed: NT_STATUS_LOGON_FAILURE
Теперь попробуем передать корректный пароль и удостовериться в том, что мы можем получить доступ к файлу из разделяемой директории.
[root@RHEL52 samba]# smbclient //teacher0/authwrite -U martina stargate Domain=[TEACHER0] OS=[Unix] Server=[Samba 3.0.33-3.7.el5] smb: \> more serena.txt getting file \serena.txt of size 14 as /tmp/smbmore.QQfmSN (6.8 kb/s) один два три smb: \> q
14.7. Проверка информации о владельцах файлов
На данный момент в нашем распоряжении имеется отдельный файловый сервер Samba с довольно простой конфигурацией для доступа к разделяемым ресурсам с обязательным прохождением аутентификации. При использовании описанной выше конфигурации файлы и разделяемые директории будут в действительности принадлежать пользователям, которые создали их.
[root@RHEL52 samba]# ls -l /srv/samba/authwrite/ итого 8 -rwxr--r-- 1 martina martina 0 янв 21 20:06 martina.txt -rwxr--r-- 1 serena serena 14 янв 21 20:06 serena.txt -rwxr--r-- 1 serena serena 6 янв 21 20:09 ser.txt
14.8. Стандартные проблемы
14.8.1. Ошибка NT_STATUS_BAD_NETWORK_NAME
Вы можете получить сообщение об ошибке NT_STATUS_BAD_NETWORK_NAME
в том случае, если забудете создать разделяемую директорию.
[root@RHEL52 samba]# rm -rf /srv/samba/authwrite/ [root@RHEL52 samba]# smbclient //teacher0/authwrite -U martina stargate Domain=[TEACHER0] OS=[Unix] Server=[Samba 3.0.33-3.7.el5] tree connect failed: NT_STATUS_BAD_NETWORK_NAME
14.8.2. Ошибка NT_STATUS_LOGON_FAILURE
Вы можете получить сообщение об ошибке NT_STATUS_LOGON_FAILURE
в том случае, если введете некорректный пароль или используете имя несуществующего пользователя.
[root@RHEL52 samba]# smbclient //teacher0/authwrite -U martina STARGATE session setup failed: NT_STATUS_LOGON_FAILURE
14.8.3. Имена пользователей не зависят от регистра
Помните о том, что на уровне системы Linux имена пользователей зависят от регистра.
[root@RHEL52 samba]# su - MARTINA su: user MARTINA does not exist [root@RHEL52 samba]# su - martina [martina@RHEL52 ~]$
Но в то же время, имена пользователей на компьютерах, работающих под управлением операционных систем производства компании Microsoft, не зависят от регистра.
[root@RHEL52 samba]# smbclient //teacher0/authwrite -U martina stargate Domain=[TEACHER0] OS=[Unix] Server=[Samba 3.0.33-3.7.el5] smb: \> q [root@RHEL52 samba]# smbclient //teacher0/authwrite -U MARTINA stargate Domain=[TEACHER0] OS=[Unix] Server=[Samba 3.0.33-3.7.el5] smb: \> q
14.9. Практическое задание: аутентификация клиентов сервера Samba
-
0. Убедитесь в том, что в вашем распоряжении имеются резервные копии использованных в предыдущих практических заданиях файлов конфигурации сервера Samba smb.conf с корректными именами.
-
1. Создайте три учетных записи пользователя (на уровне системы Linux и сервера Samba) и запомните введенные при их создании пароли!
-
2. Настройте разделяемую директорию таким образом, чтобы доступ к ее содержимому могли получить лишь прошедшие аутентификацию пользователи.
-
3. Воспользуйтесь утилитой smbclient, а также программными компонентами ОС Windows для осуществления доступа к содержимому разделяемой директории с использованием более чем одной учетной записи пользователя (в ОС Windows для этого потребуется завершить пользовательский сеанс и осуществить повторный вход в систему с использованием другой учетной записи пользователя).
-
4. Удостоверьтесь в том, что созданные пользователями файлы в действительности принадлежат им.
-
5. Попытайтесь изменить или удалить файл, созданный другим пользователем.
14.10. Корректная процедура выполнения практического задания: аутентификация клиентов сервера Samba
-
1. Создайте три учетных записи пользователя (на уровне системы Linux и сервера Samba) и запомните введенные при их создании пароли!
-
useradd -c 'SMB user1' userx passwd userx
-
2. Настройте разделяемую директорию таким образом, чтобы доступ к ее содержимому могли получить лишь прошедшие аутентификацию пользователи.
-
Секция с описанием разделяемого ресурса файла конфигурации сервера Samba с именем smb.conf может выглядеть следующим образом:
[authwrite] path = /srv/samba/authwrite comment = authenticated users only read only = no guest ok = no
-
3. Воспользуйтесь утилитой smbclient, а также программными компонентами ОС Windows для осуществления доступа к содержимому разделяемой директории с использованием более чем одной учетной записи пользователя (в ОС Windows для этого потребуется завершить пользовательский сеанс и осуществить повторный вход в систему с использованием другой учетной записи пользователя).
-
В системе Linux:
smbclient //studentX/authwrite -U user1 <пароль>
В системе Windows:
net use p: \\studentX\authwrite <пароль> /user:user2
-
4. Удостоверьтесь в том, что созданные пользователями файлы в действительности принадлежат им.
-
ls -l /srv/samba/authwrite
-
5. Попытайтесь изменить или удалить файл, созданный другим пользователем.
-
У вас не должно быть возможности модификации или удаления файлов, принадлежащих другому пользователю.
Предыдущий раздел: | Оглавление | Следующий раздел: |
Глава 13. Первая учетная запись пользователя сервера Samba | Глава 15. Ограничение доступа к разделяемым с помощью сервера Samba ресурсам |