Подключаем сервер с samba к домену windows

Как подключиться к сетевой папке Windows из Linux

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

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

Для входа в интерактивный режим запустите команду вида:

sudo smbclient //ИМЯ-КОМПЬЮТЕРА/Папка -N

Например, я хочу подключиться к компьютеру //HACKWARE-MIAL/ и выполнить действия с файлами в сетевой папке Share, тогда моя команда следующая:

sudo smbclient //HACKWARE-MIAL/Share -N

Если вы хотите, чтобы при подключении была изменена текущая рабочая директория в сетевой папке, то есть чтобы была открыта другая папка, то используйте опцию -D. К примеру, я хочу подключиться к папке NewFolder, тогда команда следующая:

sudo smbclient //HACKWARE-MIAL/Share -N -D NewFolder

Подключение к SMB папке, требующий авторизации

К примеру, на компьютере //HACKWARE-MIAL/ имеется сетевая папка ShareRestricted, права на просмотр которой есть у пользователя ShareOverlord. Для просмотра шары, защищённой паролем, нужно использовать команду вида:

sudo smbclient //ИМЯ-КОМПЬЮТЕРА/Папка -U ИМЯ-ПОЛЬЗОВАТЕЛЯ

В моём случае это команда:

sudo smbclient //HACKWARE-MIAL/ShareRestricted -U ShareOverlord

Если Samba уже была установлена (настроена)

Если Samba уже была установлена (настроена):

Проверьте, что все процессы Samba остановлены:

ps ax | egrep «samba|smbd|nmbd|winbindd|rkb5-kdc»

sudo systemctl stop smbd nmbd winbind krb5-kdcsudo systemctl mask smbd nmbd winbind krb5-kdc

Обратите внимание:

  • Пакет (apt install winbind) называется winbind с одним ‘d’;
  • Процесс (ps fax | grep winbindd) называется winbindd с двумя ‘dd’;
  • Сервис (sytemsctl status winbind) называется winbind с одним ‘d’;

smbd -b | egrep «LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR»LOCKDIR: /usr/local/samba/var/lock/STATEDIR: /usr/local/samba/var/locks/CACHEDIR: /usr/local/samba/var/cache/PRIVATE_DIR: /usr/local/samba/private/

sudo rm /etc/krb5.conf

Установка Samba

Пакет samba входит в дистрибутивы ОС ОН Орёл и ОС СН Смоленск, и может быть установлен с помощью графического менеджера пакетов, или из командной строки командой

sudo apt install samba

Отдельно установленный пакет samba может быть использован как файловый сервер или сервер печати. Для использования samba в качестве домена AD нужно установить пакет samba и дополнительные пакеты:

sudo apt install samba winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user krb5-kdc bind9

Назначение Samba на роль AD DC

Назначение выполняется с помощью команды samba-tool domain provision. Эта команда поддерживает возможность выполнения настроек в интерактивном или автоматическом режимах. Подробности см.:

samba-tool domain provision —help

  • Числовые идентификаторы пользователей (UID);
  • Пути у домашним каталогам;
  • Идентификаторы групп.

Включение расширений NIS при установке не влечёт за собой никаких отрицательных побочных эффектов, а их включение в существующем домене требует ручного расширения схемы AD.

Подробности см. в:

Step 4 — Configuring the Samba Shares

Each share will have its own section in the main Samba configuration file, , following the global parameters. These sections will define how each share will work.

Use the text editor again to open and edit this file:

The following configuration block will define each user’s personal share:

/etc/samba/smb.conf

These options include:

  • — This is the name of the share that you will use when logging in.
  • — This is the absolute path to the share in the filesystem.
  • — This sets whether or not other users are able to see the share. Enabling this option only allows other users of the Samba server to see the existence of the share. It does not confer any read or write permissions.
  • — This sets whether the are able to write to the share.
  • — This forces the permissions for any file written to the share.
  • — This forces the permissions for any directory created in the share.
  • — This is a list of the users who have access to the share. This setting can take usernames or system groups such as admins. Groups must be listed with an in front e.g. .

Add the following share configuration block for david, defining his home directory, the permissions for this directory’s group ownership, and the users that should have access to his share:

/etc/samba/smb.conf

Note that the directory permissions set the group ownership to that of the parent directory.

Create a share block for mike, jane, and lucy. Change only the share , , and to reflect each of the user’s names.

The share will differ from the others in both , , , and options, and will look like this:

/etc/samba/smb.conf

Giving the group read-write access to the share enables all of the users access to the share, since they were added to this group when they were created.

The complete file will look like this:

/etc/samba/smb.conf

Save and close the file when you have finished editing.

Test the configuration again:

This will produce output that looks like the following:

With the configuration check complete, let’s start the Samba server with :

The Samba server is now running and ready to accept logins. The next step is to log into the Samba server to test that it is working as expected. The following section will cover logging into the Samba server from Windows, Linux, and macOS.

System Config Samba

Графический интерфейс (GUI) способен во многом облегчить процесс настройки Samba в Ubuntu. Как минимум, пользователю, который только перешел на Linux, этот способ покажется более понятным.

Шаг 1: Установка

Изначально нужно установить специальную программу в систему, которая обладает интерфейсом и которая необходима для осуществления настройки. Сделать это можно с помощью «Терминала», выполнив команду:

Если до этого вы не устанавливали все компоненты Samba себе на компьютер, вам нужно будет вместе с ней загрузить и установить еще некоторые пакеты:

После того как все необходимое было установлено, можно переходить непосредственно к настройке.

Шаг 2: Запуск

Запустить System Config Samba можно двумя способами: с помощью «Терминала» и через меню Bash.

Способ 1: Терминал

Если вы решили использовать «Терминал», то вам необходимо сделать следующее:

  1. Нажмите сочетание клавиш Ctrl+Alt+T.
  2. Введите следующую команду:
  3. Нажмите Enter.

Далее вам потребуется ввести системный пароль, после чего откроется окно программы.

Способ 2: Меню Bash

Второй способ многим покажется проще, так как все операции выполняются в графическом интерфейсе.

  1. Нажмите на кнопку меню Bash, которая находится в верхнем левом углу рабочего стола.

Введите в открывшемся окне поисковой запрос «Samba».

Нажмите по одноименной программе в разделе «Приложения».

После этого система запросит у вас пароль пользователя. Введите его и программа откроется.

Шаг 3: Добавление пользователей

Перед тем как приступать непосредственно к настройке папок Samba нужно добавить пользователей. Делается это через меню настроек программы.

  1. Нажмите по пункту «Настройка» на верхней панели.

В меню выберите пункт «Пользователи Samba».

В появившемся окне нажмите «Добавить пользователя».

В выпадающем списке «Имя пользователя Unix» выберите пользователя, которому будет разрешено входить в папку.

Вручную введите имя пользователя Windows.

Введите пароль, а затем повторите его ввод в соответствующем поле.

Нажмите кнопку «ОК».

Таким образом вы можете добавить одного или нескольких пользователей Samba, а в будущем определить их права.

Шаг 4: Настройка сервера

Теперь нужно приступить к настройке сервера Samba. Это действие выполняется на порядок проще в графическом интерфейсе. Вот что нужно сделать:

  1. В главном окне программы нажмите по пункту «Настройка» на верхней панели.

Из списка выберите строку «Параметры сервера».

В появившемся окне, во вкладке «Основной», введите в строке «Рабочая группа» название группы, все компьютеры которой смогут подключаться к серверу Samba.

Введите описание группы. При желании можете оставить значение по умолчанию, этот параметр ни на что не влияет.

Перейдите на вкладку «Безопасность».

Определите режим аутентификации как «Пользователь».

Выберите из выпадающего списка «Шифровать пароли» интересующий вас вариант.

Выберите гостевую учетную запись.

Нажмите «ОК».

После этого настройка сервера будет окончена, можно переходить непосредственно к созданию папок Samba.

Шаг 5: Создание папок

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

  1. Кликните по кнопке с изображением знака плюс.

В открывшемся окне, во вкладке «Основной», нажмите «Обзор».

В файловом менеджере укажите нужную папку для ее расшаривания.

В зависимости от предпочтений, поставьте галочки рядом с «Запись разрешена» (пользователю будет позволено редактировать файлы в общедоступной папке) и «Виден» (на другом ПК добавляемая папка будет видна).

Перейдите во вкладку «Доступ».

На ней есть возможность определить пользователей, которым будет разрешено открывать расшаренную папку. Для этого поставьте отметку рядом с «Предоставить доступ только определенным пользователям». После этого нужно выбрать их из списка.

Если вы собираетесь сделать общедоступную папку, то поставьте переключатель в положение «Предоставить доступ всем».

Нажмите кнопку «ОК».

После этого в главном окне программы будет отображаться только что созданная папка.

При желании вы можете создать еще несколько папок, используя вышеприведенную инструкцию, или же изменить уже созданные, нажав по кнопке «Изменить свойства выбранного каталога».

Как только вы создадите все нужные папки, можете закрывать программу. На этом инструкция по настройке Samba в Ubuntu с помощью программы System Config Samba окончена.

Подключение к шаре

Теперь разберем примеры подключения к нашим шарам из разных систем.

Windows

Для разового подключения можно использовать проводник, прописав в нем адрес сервера через косые линии:

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

В открывшемся окне прописываем путь до сетевой папки и выбираем имя диска:

Сетевой диск настроен.

Но мы может сделать те же действия из командной строки:

net use x: \\samba.dmosk.local\AD ACL /persistent:yes

* где x: — имя сетевого диска; \\samba.dmosk.local\AD ACL — путь до сетевого каталога; persistent:yes — указывает на то, что нужно восстанавливать данный диск каждый раз при входе в систему.

Монтирование

В Linux мы можем монтировать удаленный каталог с помощью команды mount, например:

mount -t cifs «//192.168.1.15/ad» /mnt -o user=dmosk

* где 192.168.1.15 — IP-адрес сервера; mnt — каталог, куда монтируем сетевую шару; dmosk — пользователь, под которым выполняем подключение к сетевому каталогу.
** в систему должен быть установлен пакет cifs-utils.

Подробнее, процесс монтирования описан в инструкции Как в Linux монтировать шару CIFS.

SMB Browser

Также мы можем увидеть содержимое удаленных папок на samba при помощи клиента smb. Для начала установим данного клиента:

а) на Red Hat / CentOS / Fedora:

yum install samba-client

б) на Debian / Ubuntu / Mint:

apt-get install samba-client

После вводим команду:

smbclient -L 192.168.1.15 -U staff@dmosk.local

* где 192.168.1.15 — сервер samba, к которому мы пытаемся подключиться; staff@dmosk.local — учетная запись, под которой выполняется подключение.

… мы получим список каталогов, которые расшарены на сервере.

Также мы можем подключиться к конкретной папке, например:

smbclient \\\\192.168.1.15\\ad -U staff@dmosk.local

Мы подключимся клиентом samba — можно выполнить запрос на показ содержимого:

smb: \> ls

Или полный список возможных команд:

smb: \> help

Описание возможных параметров Назначения

При Назначении будут применяться следующие параметры:

Интерактивный режим Автоматический режим Комментарий
—use-rfc2307 —use-rfc2307 Включает расширения NIS
Realm —realm Область Kerberos. Также, используется как домен DNS AD . Например: samdom.example.com.
Domain —domain Имя домена для NetBIOS.Рекомендуется использовать первую часть имени домена DNS AD.Например, для домена samdom.example.com это будет имя samdom.
Server Role —server-role Устанавливает роль контроллера DC.
DNS backend —dns-backend Выбирает службу DNS.

Варианты служб NONE и BIND9_FLATFILE более не поддерживается.

DNS forwarder IP address недоступно
Administrator password —adminpass Устанавливает пароль администратора домена.

Другие параметры, часто используемые в команде samba-tool domain provision:

—option=»interfaces=lo eth0″ —option=»bind interfaces only=yes»:  Если сервер имеет несколько сетевых интерфейсов, используйте эти параметры для привязки Samba к нужным интерфейсам. Это позволить команде samba-tool зарегистрировать корректный сетевой адрес  при настройке.

Проблемы получения доступа к сетевым ресурсам

1. Выполните следующие действия

    • STB со стороны ПК (убедиться, что оба устройства могут взаимодействовать по сети). При необходимости восстановить сетевое взаимодействие;
    • Убедиться, что на сервере (ПК, с которого настраивается доступ) .
    • На компьютере проверить .
    • На компьютере проверить Открытие доступа к папке.
    • Если автоматическое соединение не устанавливается, используйте режим
      .
    • Перезагрузить STB и ПК и повторить попытку соединения.

2. Если при открытии сетевой папки на STB предлагается выполнить авторизацию, но для папки доступ по паролю не назначался:

    • На сетевом компьютере проверить, чтобы в свойствах папки был открыт доступ для пользователя «Все»;
    • Если доступ не возобновился, перезагрузить STB.

3. Если при открытии папки на STB предлагается выполнить авторизацию (ввести логин, пароль), но значение пароля не задано (пустой пароль):

    • Установить определенное значение пароля пользователя компьютера;
    • Если доступ не возобновился, перезагрузить STB.

4. Если файл не открывается:

    • проверить, проигрывается ли файл локально на ПК;
    • попытаться запустить с STB другие файлы с той же сетевой папки, с других сетевых папок;
    • попытаться проиграть файл другого формата (желательно, проверить файл, который на STB ранее воспроизводился, например, с USB-носителя). Возможно, данный формат файла не поддерживается плеером STB.

На этой странице:

Связанные статьи:

  • Файловый менеджер Home media
  • Настройка медиа-сервера (UPnP)
  • Системные настройки

Решение проблем

Проблемы подключения к Windows 7 — mount error(12): cannot allocate memory

Известная ошибка Windows 7 «mount error(12): cannot allocate memory» может быть исправлена установкой пары ключей в реестре системы Windows:

  • (установить значение )
  • (установить значение )

В качестве альтернативы можно запустить командную строку от имени Администратора и выполнить следующее:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "LargeSystemCache" /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "Size" /t REG_DWORD /d 3 /f

Выполните одно из следующих действий, чтобы изменения вступили в силу:

  • Перезагрузите Windows
  • Перезапустите службу на сервере через services.msc
  • Выполните в командной строке и ; после остановки служба может перезапуститься автоматически

Примечание: Поиск решения в интернете подскажет другое решение, рекомендующее пользователям добавить ключ, изменяющий размер «IRPStackSize». Это неправильное решение для устранения проблемы в Windows 7. Не применяйте его

Проблемы получения доступа к ресурсам, защищенным паролем, из Windows

Обратите внимание, что это должно быть добавлено в локальный файл smb.conf, а не в файл сервера

# lanman fix
client lanman auth = yes
client ntlmv2 auth = no

Диалоговое окно появляется с большой задержкой

У меня была проблема, связанная с тем, что диалоговое окно для ввода пароля появлялось с задержкой около 30 секунд, когда я пытался установить соединение из Windows XP/Windows 7. Когда я посмотрел файл error.log на сервере, я увидел:

[2009/11/11 06:20:12,  0] printing/print_cups.c:cups_connect(103)
Unable to connect to CUPS server localhost:631 - Interrupted system call

Эта опция предотвращает поиск cups и файла /etc/printcap:

printing = bsd
printcap name = /dev/null

Ошибка: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL

Если вы являетесь домашним пользователем, используете samba исключительно для организации общего доступа к файлам с сервера или NAS и не заинтересованы в организации общего доступа к принтерам, вы можете исправить эту ошибку, добавив следующие строки в файл /etc/samba/smb.conf:

load printers = No
printing = bsd
printcap name = /dev/null
disable spoolss = Yes

Перезапустите samba:

systemctl restart smbd

…проверьте ваши логи:

cat /var/log/samba/smbd.log

и больше ошибка не должна появляться.

Не удается предоставить общий доступ к папке

Проблема проявляется в том, что, когда вы пытаетесь предоставить общий доступ к папке через Dolphin (файловый менеджер), и вначале, вроде бы, все работает нормально, после перезапуска Dolphin иконка ресурса исчезла из папки, а в терминале (Konsole) вы видите следующий вывод:

‘net usershare’ returned error 255: net usershare: usershares are currently disabled

Для решения проблемы включите пользовательские общие ресурсы, как это описано в разделе .

И вы используете firewall (iptables), поскольку не доверяете вашей локальной (школа, университет, отель) сети. Это может происходить по следующей причине: когда smbclient просматривает локальную сеть, он посылает широковещательный запрос на udp-порт 137. Затем серверы сети отвечают вашему клиенту, но, поскольку исходный адрес ответа отличается от адреса назначения, который видел iptables при отправке запроса, iptables не признает ответ как «установленное соединение» или «относящийся к запросу», и, следовательно, пакет отбрасывается. Возможное решение — добавление:

iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns

в вашу конфигурацию iptables.

Подключение к серверу завершилось неудачей: (Error NT_STATUS_UNSUCCESSFUL)

Вероятно, вы указываете неправильное имя сервера. Чтобы узнать его, запустите на сервере команду и найдите строку «Transient hostname».

Cетевой обмен по протоколу SMB / SAMBA

Применение протоколов SMB / Samba позволяет осуществлять доступ с STB (работает под управлением ОС Linux) к папкам и файлам, расположенным на сетевых компьютерах (работающих под управлением ОС Linux, Windows и др.). Таким образом, пользователи STB получают возможность проигрывать на STB медиа-файлы (видео, аудио, изображения), которые расположены на сетевых компьютерах, работающих под управлением одного из типов ОС, поддерживающей протокол SMB.

Протокол Протокол SMB / Samba использует архитектуру клиент – сервер: в качестве сервера выступает ПК, на котором размещаются определенные сетевые ресурсы (папки) с медиа-файлами, в качестве клиента – STB, с которого медиа-файлы проигрываются.

Сетевые ресурсы (в виде ярлыков) отображаются в STB, в меню , в соответствии со стандартной сетевой LAN-архитектурой ОС Windows: Сеть / Рабочая группа / Компьютер / Папка.

По умолчанию, доступ к ресурсам компьютера закрыт настройками на стороне компьютера. При необходимости получить доступ к определенной сетевой папке, пользователь компьютера открывает доступ к этой папке. Для управления доступом к папкам используется процедура ОС Windows «Общий доступ к файлам».

Предусмотрены два типа сетевого доступа к папкам (тип доступа определяется на стороне сервера):

  • по паролю — для доступа к сетевой папке со стороны STB используется процедура Авторизации (необходимо ввести имя (login) определенного пользователя компьютера и его пароль (password);
  • без пароля — доступ к сетевой папке открыт для всех пользователей, без необходимости вводить пароль.

Обнаружение общих сетевых ресурсов на стороне STB происходит автоматически (если это не запрещено на стороне компьютера или кроме случаев, связанных с некорректной работой сети). Соединение с сетевой папкой устанавливается, когда пользователь STB открывает сетевую папку. Если используется доступ к папке по паролю, пользователю выдается запрос указать login и password.

Также предусмотрена возможность ручного подключения сетевых папок (если они не были обнаружены автоматически). Настройка и доступ к ресурсам сети по протоколу SMB Samba на STB проводится в меню Home media.

Ниже рассмотрен пример, как подключить сетевую папку ПК с ОС Windows 10 для воспроизведения медиа-файлов с STB.

Настраиваем Samba

Перед непосредственно настройкой, программу нужно установить. Установка Samba выполняется таким же образом, как в случае с другими программами — при помощи ввода в терминал команды:

Сразу же заметьте: все действия, которые будут описаны, включая и установку программы, можно выполнить как на простой Ubuntu, так и на Ubuntu Server. Только на последней доступен исключительно текстовый интерфейс.

После установки следует сделать бэкап файла конфигурации:

Дальше делаем свой документ с глобальными параметрами:

Либо редактируем существующий. В этом файле содержатся основные установки сервера Самбы. Чтобы разобраться, что мы будем делать дальше, нужно понимать, что означают различные строки.

  • Workgroup — рабочая группа. Значение этого параметра также часто будет Workgroup, поскольку в Виндовс домен рабочей группы по умолчанию выглядит именно так.
  • Netbios name — имя компьютера Ubuntu, которое видят пользователи Windows. Здесь можно вводить значение на своё усмотрение.
  • Security — режим авторизации пользователей. По умолчанию стоит User, то есть аутентификация на уровне пользователя. Пока что лучше так и оставить.
  • Os level — указывает приоритет, который имеет Samba над другими клиентами (ПК) в локальной или интернет-сети.
  • Name resolve order — очерёдность разрешения IP-адресов по NetBIOS имени.
  • Read only — привилегия чтения или записи каталога. Значение может быть «yes» — исключительно чтение, «no» — запись.

Создаём пользователя

Это простейшее действие, с которого можно начинать работу с Самбой.

Добавляем пользователя в самой ОС:

Создаём для него пароль:

Занесём нашего пользователя в базу Samba:

При помощи команды $ smbpasswd можно выполнять другие различные действия:

  • $ smbpasswd username — смена пароля
  • $ smbpasswd -x username — удаление пользователя
  • $ smbpasswd -d username — бан пользователя

Сервер необходимо перезагружать, если вносите изменения в конфигурационный файл. Делается это с помощью команды:

Это базовые настройки Samba. Теперь можно попробовать применить программу на практике.

Доступ к папке

Сначала попробуем создать папку, доступ к которой будет открыт всем пользователям, даже тем, кто не авторизован в Samba.

Создаём папку, с которой и будем потом работать на двух компьютерах:

Теперь делаем для этой папки расширенный доступ, чтобы её мог открыть любой клиент нашей локальной сети:

Владельцем согласно коду является nobody.

Теперь в файле с конфигурацией сервера нужно сделать два раздела: первый, содержащий основную информацию:

Следуют разделы друг за другом в таком же порядке.

Обновляем изменения сервера:

Действия с компьютером на Windows

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

  1. Открываем командную строку. Желательно делать это с расширенными правами, т. е. от имени администратора.
  2. Выполняем команду:
  3. notepad C:\Windows\System32\drivers\etc\hosts
  4. Открывается файл, в котором вводим следующую строчку:
  5. 168.0.1 srvr1.domain.com srvr1Благодаря ей папка станет доступна.
  6. Открыть её можно при помощи строки «Выполнить». Жмём Win + R, вводим: После этого нам откроется папка.

Закрытая папка

Настроенный сервер Samba можно использовать и для создания сетевых папок с ограниченным доступом. Такую папку тоже нужно сначала создать, а затем добавить в конфигурацию Samba.

Делаем папку с названием «Closed»:

Делаем специальную группу, которая может иметь доступ к этой папке:

Создаём особые права для разных групп:

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

Перезапускаем сервер.

Как можно понять, мы сделали папку Closed внутри Access. Таким образом Access может открыть каждый пользователь локальной сети, но чтобы смотреть и редактировать Closed, нужно обладать особыми правами.

Чтобы убедиться, что всё работает именно так, как мы это задали в командном файле, можно выполнить несколько простых действий.

Создаём пользователя и добавляем его в нашу закрытую группу:

Пользователя у нас зовут, как пачку сигарет (или премьер-министра Британии).

Делаем для Уинстона пароль:

После этого нам предложат ввести новый пароль, чтобы зайти заново под только что созданным аккаунтом. Не забудьте после этого сделать перезагрузку. Теперь вы знаете, как настроить сервер через Самбу в Убунту.

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

Подготовка системы (Debian 9 Stretch)

Перед началом выполнения ниже описанных действий обновляем систему до актуального состояния:

1 apt-get update&&apt-get upgrade-y

Указываем FQDN (Fully Qualified Domain Name) имя системы, в файле (/etc/hostname):

1 datastore1.jakonda.local

Так же файл (/etc/hosts) приводим к виду таким образом, чтобы в нём была запись с полным доменным именем компьютера и с коротким именем, ссылающаяся на один из внутренних IP:

1
2
127.0.0.1localhost

127.0.1.1datastore1.jakonda.local datastore1

Настраиваем синхронизацию времени с контроллером домена, выполняем установку NTP, выполняем синхронизацию времени с контроллером домена:

1
2
3
apt-get install ntp ntpdate

ntpdate dc1.jakonda.local

Более подробно о синхронизации времени на Debian 8 Jessie/Ubuntu Server 14.04 можно почитать в этой статье

Настройка Active Directory (Windows Server 2012 R2)

В DNS зону (JAKONDA.LOCAL), добавляем A-запись файлового сервера:

Создаем служебного пользователя (прим. datastore1), с бесконечным срок действия пароля.

Создаем KEYTAB-файл (необходим для аутентификации пользователей в Active Directory). В командной строке с правами администраторы выполняем команду (соблюдая регистр):

1 ktpass-princ HTTPdatastore1.jakonda.local@JAKONDA.LOCAL-mapuser datastore1@JAKONDA.LOCAL-pass Aa1234567-crypto RC4-HMAC-NT-ptype KRB5_NT_PRINCIPAL-outC\datastore1.keytab

Полученный KEYTAB-файл, передаем любым удобным способом на файловый сервер (расположение KEYTAB-файла на моем файловом сервере — /root/datastore1.keytab). Как передать файл посредством утилиты PuTTY можно прочитать тут

Настройка Kerberos

Установка пакетов для поддержки аутентификации Kerberos:

1 apt-get install krb5-user

В ходе установки может появится запрос указать область по-умолчанию для Kerberos, область необходимо его указать в заглавном виде (прим. JAKONDA.LOCAL)

Файл конфигурации Kerberos (/etc/krb5.conf), приводим к виду:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
logging

default=FILEvarlogkrb5libs.log

kdc=FILEvarlogkrb5kdc.log

admin_server=FILEvarlogkadmind.log

libdefaults

default_realm=JAKONDA.LOCAL

default_keytab_name=rootdatastore1.keytab

dns_lookup_kdc=false

dns_lookup_realm=false

forwardable=true

ticket_lifetime=24h

realms

JAKONDA.LOCAL={

kdc=dc1.jakonda.local

default_domain=JAKONDA.LOCAL

admin_server=dc1.jakonda.local

}

domain_realm

.jakonda.local=JAKONDA.LOCAL

jakonda.local=JAKONDA.LOCAL

Соответственно подставляем название своего домена вместо jakonda.local/JAKONDA.LOCAL

Проверка работы Kerberos, выполним авторизацию в Active Directory:

1
2
3
4
5
kinit-kV-pHTTPdatastore1.jakonda.local

Using default cachetmpkrb5cc_0

Using principalHTTPdatastore1.jakonda.local@JAKONDA.LOCAL

Authenticated to Kerberos v5

Удаляем полученный билет:

1 kdestroy

Connecting Error

If you get the following error:

You do not have permission to access \\hostname\share-name. Contact your network administrator to request access.

You can try connecting to the Samba share from the command prompt. Open up a command prompt, then run the following command to close current Samba session.

net use \\hostname\share-name /delete

Next, connect to the Samaba share with the following command:

net use \\hostname\share-name /user:samba-username password

Once the above command completed successfully, go to the Network tab in File Explorer and now you should be able to access the Samba share.

Авторизация с Active Directory

Разберем пример конфигурирования файлового сервера samba в домене Windows и настроим авторизацию пользователей на базе LDAP Active Directory.

Подключение к Active Directory

Введем наш сервер в домен. Сначала необходимо убедиться, что сервер доступен по своему доменному имени. Если серверу так и не было задано вменяемого имени, вводим команду:

hostnamectl set-hostname samba.dmosk.local

* где samba — имя сервера; dmosk.local — домен.

После добавляем в DNS наш сервер samba. Ждем минут 15, если у нас используется доменная инфраструктура с несколькими сайтами.

Устанавливаем необходимые компоненты:

dnf install samba-client samba-winbind samba-winbind-clients krb5-workstation

Открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

В разделе редактируем следующие опции:

workgroup = DMOSK
security = ads

* где DMOSK — NETBIOS имя домена; ads — указывает, что для samba будет использоваться модель безопасности LDAP Active Directory.

Также в добавим следующие строки:

kerberos method = secrets and keytab
realm = DMOSK.LOCAL
winbind enum groups = Yes
winbind enum users = Yes
idmap config * : rangesize = 1000000
idmap config * : range = 1000000-19999999
idmap config * : backend = autorid

* где:

  • kerberos method — метод проверки kerberos. В данном примере сначала используется secretts.tdb, а затем системная таблица ключей.
  • realm — сервер Active Directory. В нашем примере прописан домен, так как по нему можно обратиться к любому из серверов AD.
  • winbind enum groups — задает пределы перечисления групп через setgrent(), getgrent() и endgrent().
  • winbind enum users — задает пределы перечисления пользователей через setpwent(), getpwent()и endpwent().
  • idmap config * : rangesize — определяет количество доступных uids и gids в каждом доменном диапазоне.
  • idmap config * : range — определяет доступные совпадающие диапазоны uid и gid, для которых серверная часть является авторитетной.
  • idmap config * : backend — задает idmap плагин для использования в качестве SID/uid/gid подсистемы

Вводим сервер в домен:

net ads join -U Administrator@dmosk.local

* где Administrator — учетная запись пользователя AD с правами на ввод компьютеров в домен; dmosk.local — наш домен.

Мы должны увидеть, примерно, следующее:

Using short domain name — DMOSK
Joined ‘SAMBA’ to dns domain ‘dmosk.local’

Разрешаем автозапуск winbind и стартуем его:

systemctl enable winbind —now

Выбираем профиль для аутентификации:

authselect select winbind —force

Проверяем, что наш сервер может получить список пользователей Active Directory:

wbinfo -u

… и групп:

wbinfo -g

Если мы увидели список пользователей и групп, то присоединение сервера к домену завершено.

Настройка шары

Открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

Создаем шару:

comment = Folder for AD users
path = /data/ad
public = no
writable = yes
read only = no
guest ok = no
valid users = «@DMOSK\Domain Users» «@DMOSK\Domain Admins»
create mask = 0777
directory mask = 0777
force create
mode = 0777
force directory mode = 0777
inherit owner = yes

* в данном примере мы будем шарить папку на сервере /data/ad; мы предоставим доступ всем пользователям групп Domain Users и Domain Admins домена DMOSK.

Создаем каталог и задаем права:

mkdir /data/ad

chmod 777 /data/ad

Теперь можно перезапустить самбу:

systemctl restart smb

Пробуем подключиться к серверу. У нас должна появиться еще одна папка ad.

Права ACL

И в продолжение разговора о интеграции с AD, попробуем настроить ACL для более тонкого предоставления прав доступа.

Для этого снова открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

В раздел добавим:

acl compatibility = auto

… и создадим новую шару:

comment = Folder for AD ACL
path = /data/adacl
public = no
writable = yes
read only = no
guest ok = no
admin users = «@DMOSK\Domain Admins»
inherit acls = yes
inherit owner = yes
inherit permissions = yes
map acl inherit = yes

* где admin users — пользователи, которые могут менять права папки; inherit acls — наследование acl прав; inherit permissions — наследование прав от папки родителя; map acl inherit — использовать ли схему контроля доступа, хранимую в Windows ACL.

Создаем каталог и задаем права:

mkdir /data/adacl

chmod 777 /data/adacl

Перезапускаем самбу:

systemctl restart smb

Подключаемся к нашей созданной общей папке. Кликаем по ней правой кнопкой мыши — выбираем свойства. На вкладке «Безопасность» мы можем менять права:

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