Управление доступом к файловым серверам Samba в домене Windows на базе AD

Samba 4 — доступ к публичным шарам без логина/пароля — blog [dot] hook

Внимание!
Данный пост был опубликован более года назад и, возможно, уже утратил свою былую актуальность. Но это не точно.

Наткнулся на одну интересную особенность Samba 4, связанную с анонимным доступом к публичным шарам. Делается это для того, чтоб пользователи могли спокойно заходить на файл-сервер и не запариваться с вводом, например, пользователя guest
и пустого пароля (и в то же время существовали шары, доступ к которым возможен только после ввода пары логин:пароль

).

Ранее (до третьей версии включительно
) для реализации данной задачи мы пользовались указанием в секции [global]
директивы security = share
, а в секции самой шары — просто guest ok = yes
и всё работало как надо. Теперь же надо делать чуть-чуть иначе, а именно:

Необходимо использовать
директивы security = user
и map to guest = Bad Password
в секции [global]
, а так-же указывать guest ok = yes
в секции шары.

Дело в том, что директивы security = share|server
считаются устаревшими, именно поэтому нам и остается пользоваться security = user
. Для отделения
же пользователя от гостя применяется новая директива map to guest = Bad Password
(смысл которой заключается в том, что если пользователь Samba существует в системе и введен неверный пароль, то вход этого пользователя отклоняется, если пользователя не существует, тогда ему присваивается статус гость
). Ну а для того чтобы открыть доступ к общему ресурсу для гостей осталась старая добрая директива guest ok = yes
которую необходимо указывать непосредственно в секции шары.

Ниже полный пример настройки моей самбы:

[global]   realm = WORKGROUP   server string = Your server description    # Setup charsets   dos charset = cp1251   unix charset = utf8    # Disable printers   load printers = No   show add printer wizard = no   printcap name = /dev/null   disable spoolss = yes    # Setup logging   log file = /var/log/samba/smbd.log   max log size = 50   max xmit = 65536   debug level = 1    # Setup daemon settings   domain master = No   domain master = No   preferred master = Yes   socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=65536 SO_RCVBUF=65536 SO_KEEPALIVE   os level = 65   use sendfile = Yes   dns proxy = No   dont descend = /proc,/dev,/etc   deadtime = 15    # Enable synlinks   unix extensions = No   wide links = yes   follow symlinks = yes    # Securtity settings   security = user   map to guest = Bad Password   guest account = nobody   auth methods = guest, sam_ignoredomain   create mask = 0664   directory mask = 0775   hide dot files = yes  [public]   comment = Public share   path = /shares/public   create mask = 0666   directory mask = 0775   read only = No   guest ok = Yes  [user1]   path = /shares/user1   valid users = user1   write list = user1  [user2]   path = /shares/user2   valid users = user2   write list = user2 

Для того, чтоб добавить в самбу пользователей можно воспользоваться smbpasswd
:

$ smbpasswd -a user1 

А для проверки корректности конфигов самбы:

$ testparm -s 

Все манипуляции проверялись на:

$ yum list samba | grep samba samba.x86_64                      4.1.12-23.el7_1                       @updates 

Быстрая и простая настройка samba

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

Теоретический курс по основам сетевых технологий
. Позволит системным администраторам упорядочить и восполнить пробелы в знаниях. Цена очень доступная, есть бесплатный доступ. Все подробности по . Можно пройти тест на знание сетей, бесплатно и без регистрации.

Мне, к примеру, недавно подобное понадобилось, чтобы открыть доступ к резервным копиям, которые хранились на сервере. Самому разбираться и искать информацию не хотелось, нужно было быстро дать человеку доступ на чтение, чтобы он сам нашел все, что ему нужно.

Я не буду специально оперировать версиями операционных систем. У самбы конфиги одинаковые почти везде, где мне приходилось с ними работать, тем более в самых простых конфигурациях.

Итак, устанавливаем самбу любым подходящим способом для вашей операционной системы. Конфигурации справедливы для 3-й версии самбы. Дальше решаем, что нам нужно:

  • доступ по пользователю и паролю,
  • доступ по ip адресу,
  • доступ всем подряд без ограничений.

В зависимости от этого настройки будут немного разные.

Для доступа по паролю
рисуем такой конфиг:

[global] security = user passdb backend = tdbsam workgroup = MYGROUP server string = Samba  [share] path = /mnt/shara valid users = @users force group = users create mask = 0660 directory mask = 0771 writable = yes browseable = yes

Перезапускаем самбу. Дальше добавляем пользователя в систему примерно так:

# useradd share-user -M -G users -s /sbin/nologin

Импортируем этого пользователя в самбу и задаем пароль:

# smbpasswd -a share-user

И пробуем зайти на шару по адресу:

\ip-сервераshare

Чтоб организовать доступ в зависимости от ip адреса
, делаем такие настройки в smb.conf:

[global] security = share workgroup = MYGROUP server string = Samba map to guest = bad user  [share] path = /mnt/files browsable = yes writable = yes guest ok = yes read only = no hosts allow = 192.168.0.171

В данном случае полный доступ будет у адреса 192.168.0.171. Чтобы добавить всю подсеть, то указать нужно следующее:

hosts allow = 192.168.0.

Комбинировать можно разные подсети и адреса, разделяя их пробелами. Для того, чтобы отключить доступ каким-то отдельным адресам из разрешенной подсети, можно сделать вот так:

hosts allow = 192.168.0. except 192.168.0.15

Доступ будет разрешен всей подсети 192.168.0.0/24, кроме адреса 192.168.0.15.

Делаем перезапуск самбы и проверяем.

Если у вас установлена samba 4, то эта конфигурация не заработает и вы получите ошибку:

 WARNING: Ignoring invalid value 'share' for parameter 'security'

Чтобы доступ по ip нормально заработал, вам необходимо внести следующие изменения в приведенный выше конфиг:

security = user map to guest = Bad Password

Остальные параметры оставляете те же. После этого доступ по ip будет работать и на 4-й версии самбы.

Если доступ будет предоставлен всем без ограничений
, то простейшая конфигурация самбы будет такой:

[global] security = user workgroup = MYGROUP server string = Samba guest account = nobody map to guest = Bad User  [share] path = /mnt/files browseable = Yes guest ok = Yes writeable = Yes public = yes

Не забываем сделать права для всех на папку:

# chmod 0777 /mnt/files

Перезапускаем самбу и пробуем зайти. Должно пустить без лишних вопросов.

Вот так буквально за 5 минут можно организовать простейший файловый сервер с помощью samba. А часто сложнее и не надо. Для какой-нибудь файловой помойки подойдет самый последний вариант.

Для более сложных конфигураций у меня есть отдельные статьи:

Онлайн курс Основы сетевых технологий

Теоретический курс с самыми базовыми знаниями по сетям
. Курс подходит и начинающим, и людям с опытом. Практикующим системным администраторам курс поможет упорядочить знания и восполнить пробелы. А те, кто только входит в профессию, получат на курсе базовые знания и навыки, без воды и избыточной теории. После обучения вы сможете ответить на вопросы:

  • На каком уровне модели OSI могут работать коммутаторы;
  • Как лучше организовать работу сети организации с множеством отделов;
  • Для чего и как использовать технологию VLAN;
  • Для чего сервера стоит выносить в DMZ;
  • Как организовать объединение филиалов и удаленный доступ сотрудников по vpn;
  • и многое другое.

Уже знаете ответы на вопросы выше? Или сомневаетесь? Попробуйте пройти тест по основам сетевых технологий. Всего 53 вопроса, в один цикл теста входит 10 вопросов в случайном порядке. Поэтому тест можно проходить несколько раз без потери интереса. Бесплатно и без регистрации. Все подробности на странице .

  • Настройка samba с интеграцией в домен AD и правами windows acl.
  • Логирование операций с файлами.
  • Настройка сетевой корзины в samba.

Помогла статья? Есть возможность отблагодарить автора

Ссылка на основную публикацию