Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-16 исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12


Пакет samba (с поддержкой MIT Kerberos) входит в стандартные дистрибутивы Astra Linux, но по умолчанию не устанавливается.
Дополнительно, в стандартный дистрибутив входит графический инструмент для настройки samba - fly-admin-samba.
Вариант samba с поддержкой Heimdal Kerberos доступен по ссылке.

Быстрая установка

Установку можно сделать из Графический менеджер пакетов synaptic, или из командной строки.
Можно сразу установить графический инструмент администрирования fly-admin-samba, пакет samba при этом установится автоматически:

sudo apt install fly-admin-samba
После установки графического инструмента он станет доступен в меню "Пуск" > "Панель управления" > "Сеть" > "Общие папки (Samba)"

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

Для быстрой настройки сервиса запустите графический инструмент:

"Пуск" > "Панель управления" > "Сеть" > "Общие папки (Samba)"

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

  • Задание имени рабочей группы;
  • Запуск/остановка сервиса;
  • Определение разделяемых ресурсов;
  • Определение списка пользователей;
  • Настройка аутентификации пользователей через Kerberos;

Настройка анонимного разделяемого каталога

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


Для создания разделяемого ресурса, доступного без аутентификации:
  1. Создать разделяемый каталог, к которому будет предоставлен полный доступ (например, каталог /srv/share):

    sudo mkdir /srv/share

  2. Установить на созданный каталог права доступа 0775 и сделать владельцем пользователя nobody ("никто") и группу nogroup ("никакая"):

    sudo chown nobody:nogroup /srv/share
    sudo chmod 775 /srv/share

  3. В конфигурационный файл /etc/samba/smb.conf внести следующие исправления:

    1. Убедиться, что в секции [global] присутствует параметр map to guest, имеющий значение Bad User, в случае отсутствия - добавить его в секцию:

      map to guest = Bad User

      Параметр разрешает работу пользователей, не прошедших аутентификацию, в том числе работу с анонимными разделяемым ресурсами;

    2. Добавить секцию вида:

      [share]
         comment = <Произвольный комментарий>
         guest ok = yes
         force user = nobody
         force group = nogroup
         path = /srv/share
         read only = no
      Параметры force user и force group принудительно обеспечивают для всех подключений к ресурсу подключение от имени nobody ("никто") и группы nogroup ("никакая"), что ограничивает возможность несанкционированных действий, однако применение этих параметров имеет нежелательный побочный эффект: все файловые объекты, создаваемые на ресурсе, получают владельца nobody:nogroup независимо от того, кто их создавал.

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

          read only = yes
  4. Проверить корректность конфигурационного файла:

    testparm

  5. Перезапустить службу samba, чтобы изменения вступили в силу:

    sudo systemctl restart smbd

.

Тонкая настройка

Основной файл настройки сервиса samba - /etc/samba/smb.conf - содержит значительное количество комментариев по проведению настройки.

После изменения имени рабочей группы в файле /etc/samba/smb.conf
для того, чтобы изменения немедленно стали доступны другим машинам
нужно перезапустить не только сервис samba (smbd), но и сервис nmbd, обслуживающий запросы имён netbios:

sudo systemctl restart smbd nmbd

Инструменты командной строки для samba

  • Для того, чтобы проверить разделяемые ресурсы samba, доступные в сети, можно использовать команду

    smbtree
    Эта команда выводит дерево рабочих групп, и принадлежащих им ресурсов (файлов, принтеров и пр.) всех серверов samba, доступных в сети.

  • Для работы с конкретным ресурсом можно использовать команду smbclient:
    • Список ресурсов конкретного сервера с именем hostname:

      smbclient -L hostname

    • Анонимная работа с разделяемым ресурсом share предоставляемым сервером hostname:

      smbclient -N \\\\hostname\\share
      После запуска команды в интерактивном режиме доступны команды для просмотра содержимого разделяемых каталогов, создания и удаления поддиректорий и пр. Полный список команд доступен по команде help

Настройка клиентов

Простой доступ к ресурсам

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

Примеры форматов задания адресов имеются непосредственно в форме ввода.

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

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

sudo apt install cifs-utils
После установки пакета монтирование ресурсов будет доступно командой mount, например:
sudo mount -t cifs //10.0.10.201/share /mnt -o users,sec=none
Где:

  • //10.0.10.201/share - ресурс "share" на сервере 10.0.10.201
  • /mnt - точка монтирования

Автоматическое монтирование ресурсов

Для того, чтобы сетевой ресурс монтировался при загрузке системы, необходимо в конфигурационный файл /etc/fstab добавить строчку вида:

//10.0.10.201/share /mnt cifs credentials=/root/.smbclient,rw,nosharesock,soft,noperm 0 0

Комментарий по используемым и возможным опциям:

ОпцияКомментарий
noautoЗапретить автоматическое монтирование ресурса (при загрузке или по команде mount -a).
credentials=

Имя файла, содержащего логин и пароль samba для автоматического монтирования. Формат файла:

username=samba_user_name
password=samba_user_password
domain=astra.ru

Параметр domain можно не указывать, если доменное имя не используется.

Логин и пароль можно указать непосредственно в файле /etc/fstab (опции username= и password=), однако,
следует помнить, что файл /etc/fstab обычно открыт на чтение для всех пользователей,
так что логин и пароль рекомендуется указывать в отдельном файле, с ограниченным доступом.
noperm

Клиент не выполняет проверку прав доступа. Это позволяет предоставить доступ к файловым объектам этой точки монтирования другим локальным пользователям клиентской системы.
Обычно используется, когда сервер поддерживает Unix-расширения CIFS (CIFS Unix Extensions), а идентификаторы пользователей/групп на клиенте и сервере различаются, что не позволяет корректно проверять права доступа.
Этот параметр не влияет на обычную проверку списков контроля доступа (ACL) на целевой машине, выполняемую на сервере (проверка пользовательских ACL на сервере выполняется при монтировании).

nosharesockПринудительное создание на сервере нового отдельного сокета (позволяет создать несколько независимых точек монтирования для разных пользователей).
rwРазрешение на чтение и на запись.
roРазрешение только на запись.
softПри отказе сервера программы, работающие с примонтированными ресурсами, не зависают, а возвращают ошибку. Это режим по умолчанию.
userРазрешение монтировать от имени непривилегированного пользователя.

Дополнительно можно использовать параметр монтирования vers=, позволяющий выбрать версию протокола монтирования. Если параметр не указан, то в современных обновлениях Astra Linux по умолчанию выбирается максимально доступная версия протокола (версия 3.11). Список доступных версий протокола монтирования доступен в описании параметра в справочной системе man (man mount.cifs). Узнать версию протокола, использующегося для существующего монтирования, можно командой:

cat /proc/fs/cifs/DebugData | grep Dialect

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

nmap -p445 --script smb-protocols localhost

Starting Nmap 7.70 ( https://nmap.org ) at 2024-12-05 17:26 MSK
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00036s latency).
Other addresses for localhost (not scanned): ::1

PORT    STATE SERVICE
445/tcp open  microsoft-ds

Host script results:
| smb-protocols: 
|   dialects: 
|     NT LM 0.12 (SMBv1) [dangerous, but default]
|     2.02
|     2.10
|     3.00
|     3.02
|_    3.11


Автоматическое монтирование ресурсов по запросу

Выполняется с помощью пакета autofs