Наши партнеры

UnixForum





Библиотека сайта 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 в роли участника домена