Библиотека сайта rus-linux.net
Серверы Linux. Часть VI. Знакомство с сервером Samba
Оригинал: Samba securing shares
Автор: Paul Cobbaut
Дата публикации: 24 мая 2015 г.
Перевод: A.Панин
Дата перевода: 14 июля 2015 г.
Глава 15. Ограничение доступа к разделяемым с помощью сервера Samba ресурсам
15.1. Механизм ограничения доступа на основе имен пользователей
15.1.1. Список пользователей, которым разрешен доступ к разделяемому ресурсу (valid users)
Для разрешения доступа к ресурсу ограниченному кругу пользователей вы можете воспользоваться параметром файла конфигурации valid users
. В примере ниже доступ к разделяемому ресурсу с именем share разрешен лишь пользователям из списка valid users.
[tennis] path = /srv/samba/tennis comment = authenticated and valid users only read only = No guest ok = No valid users = serena, kim, venus, justine
15.1.2. Список пользователей, которым запрещен доступ к разделяемому ресурсу (invalid users)
Если же вы страдаете паранойей, вы можете использовать директиву invalid users
для явного ограничения доступа к разделяемому ресурсу некоторых пользователей. В том случае, если имя пользователя находится в двух списках, пользователь не будет иметь доступа к разделяемому ресурсу!
[tennis] path = /srv/samba/tennis read only = No guest ok = No valid users = kim, serena, venus, justine invalid users = venus
15.1.3. Список пользователей, которым разрешен доступ к разделяемому ресурсу только для чтения (read list)
При создании разделяемого ресурса с доступом для чтения и записи вы можете установить круг пользователей, которые получат доступ к данному ресурсу только для чтения, с помощью параметра read list
файла конфигурации.
[football] path = /srv/samba/football read only = No guest ok = No read list = martina, roberto
15.1.4. Список пользователей, которым разрешен доступ к разделяемому ресурсу для чтения и записи (write list)
Даже при создании разделяемого ресурса с доступом только для чтения вы можете установить круг пользователей, которые смогут осуществлять запись данных. Для этого может использоваться параметр write list
файла конфигурации.
[football] path = /srv/samba/golf read only = Yes guest ok = No write list = eddy, jan
15.2. Механизм ограничения доступа на основе IP-адресов пользователей
15.2.1. Список IP-адресов узлов, с которых разрешен доступ к разделяемому ресурсу (hosts allow)
Параметр hosts allow
или allow hosts
является одним из наиболее полезных параметров файла конфигурации сервера Samba. Он позволяет осуществлять разграничение доступа к разделяемым ресурсам на уровне IP-адресов. Для того, чтобы разрешить доступ к разделяемому ресурсу лишь с определенных узлов, следует создать список IP-адресов этих узлов, разделив IP-адреса с помощью символа запятой.
allow hosts = 192.168.1.5, 192.168.1.40
Для разрешения доступа к разделяемому ресурсу со всех узлов из определенной подсети следует заканчивать запись IP-адреса подсети символом точки.
allow hosts = 192.168.1.
Маски подсетей могут добавляться классическим способом.
allow hosts = 10.0.0.0/255.0.0.0
Кроме того, вы можете разрешить доступ к разделяемому ресурсу со всех узлов из подсети с исключениями.
hosts allow = 10. except 10.0.0.12
15.2.2. Список IP-адресов узлов, с которых запрещен доступ к разделяемому ресурсу (hosts deny)
Параметр файла конфигурации hosts deny
или deny hosts
является логической противоположностью предыдущего рассмотренного параметра. Его синтаксис полностью аналогичен синтаксису параметра hosts allow.
hosts deny = 192.168.1.55, 192.168.1.56
15.3. Безопасность через сокрытие информации
15.3.1. Сокрытие нечитаемых файлов (hide unreadable)
Установка значения yes параметра hide unreadable
позволяет скрыть от пользователей файлы, содержимое которых они не могут прочитать.
hide unreadable = yes
15.3.2. Сокрытие разделяемых ресурсов (browsable)
Использование директивы browseable = no
позволяет скрыть разделяемые ресурсы, которые ранее отображались в меню "Мое сетевое окружение". При этом данная директива не позволяет предотвратить доступ клиента к разделяемому ресурсу (в том случае, если имя разделяемого ресурса известно).
Обратите внимание на то, что корректным параметром является как параметр browsable
, так и параметр browseable
.
[pubread] path = /srv/samba/readonly comment = files to read read only = yes guest ok = yes browseable = no
15.4. Механизм ограничения доступа на основе прав доступа файловой системы
15.4.1. Маска прав доступа для создаваемых файлов и директорий (create mask)
Вы можете использовать параметры create mask
и directory mask
для установки максимально возможных прав доступа для создаваемых файлов и директорий соответственно. После установки маски по отношению к установленному значению прав доступа к файлу будет применяться побитовая операция "И" (которая позволяет ограничивать права доступа в соответствии с заданной маской).
[tennis] path = /srv/samba/tennis read only = No guest ok = No create mask = 640 directory mask = 750
15.4.2. Минимальные права доступа для создаваемых файлов и директорий (force create mask)
Параметры для указания минимальных прав доступа для создаваемых файлов и директорий очень похожи на параметр create mask, но принципиально отличаются от него. В то время, как для применения описанной выше маски прав доступа используется побитовая операция "И", для применения минимальных прав доступа используется побитовая операция "ИЛИ" (позволяющая расширять права доступа). Вы можете использовать параметры force create mode
и force directory mode
для установки минимальных прав доступа для создаваемых файлов и директорий.
[tennis] path = /srv/samba/tennis read only = No guest ok = No force create mode = 444 force directory mode = 550
15.4.3. Маска прав доступа для существующих файлов и директорий (security mask)
Маски прав доступа для существующих файлов и директорий, задаваемые с помощью параметров security mask
и directory security mask
, устанавливаются таким же образом, как и маски прав доступа для создаваемых файлов и директорий, задаваемые с помощью параметров create mask
и directory mask
, но применяются лишь в том случае, когда пользователь ОС Windows изменяет права доступа к файлу или директории с помощью диалогового окна для изменения параметров безопасности ОС Windows.
15.4.4. Минимальные права доступа для существующих файлов и директорий (force security mode)
Минимальные права доступа для существующих файлов и директорий, задаваемые с помощью параметров force security mode
и force directory security mode
, устанавливаются таким же образом, как и минимальные права доступа для создаваемых файлов и директорий, задаваемые с помощью параметров force create mode
и force directory mode
, но применяются лишь в том случае, когда пользователь изменяет права доступа к файлу или директории с помощью диалогового окна для изменения параметров безопасности ОС Windows.
15.4.5. Наследование прав доступа (inherit permissions)
С помощью директивы inherit permissions = yes
вы можете активировать механизм наследования прав доступа для создаваемых файлов и директорий от их корневой директории, причем в этом случае будут полностью игнорироваться заданные маски прав доступа для создаваемых файлов и директорий.
[authwrite] path = /srv/samba/authwrite comment = authenticated users only read only = no guest ok = no create mask = 600 directory mask = 555 inherit permissions = yes
15.5. Практическое задание: ограничение доступа к разделяемым с помощью сервера Samba ресурсам
-
1. Создайте разделяемую директорию с доступом для чтения и записи с именем sales и разделяемую директорию с доступом только для чтения с именем budget. Проверьте их работоспособность.
-
2. Разрешите доступ к разделяемой директории sales пользователям с именами ann, sandra и veronique.
-
3. Убедитесь в том, что пользователь с именем roberto не имеет доступа к разделяемой директории share.
-
4. Несмотря на то, что разделяемая директория sales доступна для чтения и записи, пользователь с именем ann должен иметь доступ к данной директории только для чтения.
-
5. Несмотря на то, что разделяемая директория budget доступна только для чтения, пользователь с именем sandra должен также иметь доступ к данной директории для записи.
-
6. Разрешите доступ к одной разделяемой директории всем компьютерам из подсети 192.168.1.0/24, а к другой - двум компьютерам с IP-адресами 192.168.1.33 и 172.17.18.19.
-
7. Убедитесь в том, что компьютер с IP-адресом 192.168.1.230 не имеет доступа к разделяемой директории с именем budget.
-
8. Убедитесь в том, что пользователи могут видеть лишь те файлы и директории из разделяемой директории с именем budget, к которым они имеют доступ.
-
9. Убедитесь в том, что разделяемая директория с именем sales не отображается при просмотре списка доступных ресурсов сети.
-
10. Все файлы, создаваемые в разделяемой директории с именем sales, должны иметь права доступа 640 или боле ограниченные.
-
11. Все директории, создаваемые в разделяемой директории с именем budget, должны иметь права доступа 750 или более расширенные.
-
12. Права доступа к файлам из разделяемой директории sales после их изменения не должны быть более расширенными, чем 640.
-
13. Права доступа к файлам из разделяемой директории с именем budget после их изменения не должны быть более ограниченными, чем 500.
-
14. Если позволяет время (или вы ожидаете завершения выполнения данного практического задания другими студентами), попытайтесь скомбинировать директивы "read only" и "writable", чтобы выяснить, какая из этих директив имеет приоритет.
-
15. Если позволяет время, попытайтесь скомбинировать директивы "read list", "write list", "hosts allow" и "host deny". Какие из этих директив имеют приоритет?
15.6. Корректная процедура выполнения практического задания: ограничение доступа к разделяемым с помощью сервера Samba ресурсам
-
1. Создайте разделяемую директорию с доступом для чтения и записи с именем sales и разделяемую директорию с доступом только для чтения с именем budget. Проверьте их работоспособность.
-
Корректная процедура выполнения данного задания была описана в предыдущих главах...
-
2. Разрешите доступ к разделяемой директории sales пользователям с именами ann, sandra и veronique.
-
valid users = ann, sandra, veronique
-
3. Убедитесь в том, что пользователь с именем roberto не имеет доступа к разделяемой директории share.
-
invalid users = roberto
-
4. Несмотря на то, что разделяемая директория sales доступна для чтения и записи, пользователь с именем ann должен иметь доступ к данной директории только для чтения.
-
read list = ann
-
5. Несмотря на то, что разделяемая директория budget доступна только для чтения, пользователь с именем sandra должен также иметь доступ к данной директории для записи.
-
write list = sandra
-
6. Разрешите доступ к одной разделяемой директории всем компьютерам из подсети 192.168.1.0/24, а к другой - двум компьютерам с IP-адресами 192.168.1.33 и 172.17.18.19.
-
hosts allow = 192.168.1. hosts allow = 192.168.1.33, 172.17.18.19
-
7. Убедитесь в том, что компьютер с IP-адресом 192.168.1.230 не имеет доступа к разделяемой директории с именем budget.
-
hosts deny = 192.168.1.203
-
8. Убедитесь в том, что пользователи могут видеть лишь те файлы и директории из разделяемой директории с именем budget, к которым они имеют доступ.
-
hide unreadable = yes
-
9. Убедитесь в том, что разделяемая директория с именем sales не отображается при просмотре списка доступных ресурсов сети.
-
browsable = no
-
10. Все файлы, создаваемые в разделяемой директории с именем sales, должны иметь права доступа 640 или боле ограниченные.
-
create mask = 640
-
11. Все директории, создаваемые в разделяемой директории с именем budget, должны иметь права доступа 750 или более расширенные.
-
force directory mode = 750
-
12. Права доступа к файлам из разделяемой директории sales после их изменения не должны быть более расширенными, чем 640.
-
security mask = 750
-
13. Права доступа к файлам из разделяемой директории с именем budget после их изменения не должны быть более ограниченными, чем 500.
-
force security directory mask = 500
-
14. Если позволяет время (или вы ожидаете завершения выполнения данного практического задания другими студентами), попытайтесь скомбинировать директивы "read only" и "writable", чтобы выяснить, какая из этих директив имеет приоритет.
-
15. Если позволяет время, попытайтесь скомбинировать директивы "read list", "write list", "hosts allow" и "host deny". Какие из этих директив имеют приоритет?
Предыдущий раздел: | Оглавление | Следующий раздел: |
Глава 14. Аутентификация клиентов сервера Samba | Глава 16. Сервер Samba в роли участника домена |