Настройка SMB на Astra Linux 2026: пошаговая инструкция по установке Samba и расшариванию папок | AdminWiki

Настройка SMB на Astra Linux 2026: пошаговая инструкция по установке Samba и расшариванию папок

29 июля 2026 9 мин. чтения

Введение: зачем нужен SMB-сервер на Astra Linux

Развертывание файлового сервера на Astra Linux с поддержкой протокола SMB/CIFS - стандартная задача для системных администраторов, обслуживающих гетерогенные сети. Типичный сценарий: в инфраструктуре есть сервер под управлением Astra Linux Special Edition (релизы «Орёл» или «Смоленск» 2026 года), а клиентские машины работают на Windows 10/11. Samba решает эту задачу, предоставляя совместимый с Windows доступ к каталогам на Linux-сервере.

Это руководство проверено на практике в средах с Astra Linux 1.8 и новее. Вы получите готовый к применению набор команд и конфигураций, который сокращает время развертывания с часов до минут. Если вам нужна более широкая картина по организации файлового сервера на других дистрибутивах, обратитесь к руководству по настройке NFS и SMB на минимальном файловом сервере Linux.

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

Пакетная база Astra Linux содержит все необходимые компоненты Samba. Установка выполняется штатным менеджером APT.

Проверка предустановленных компонентов

Перед установкой убедитесь, что в системе нет конфликтующих пакетов. Некоторые сборки Astra Linux могут включать урезанные версии SMB-клиента или службы WSDD (Web Services Dynamic Discovery), которые конфликтуют с полноценной Samba.

dpkg -l | grep -E 'samba|smbclient|wsdd'

Если wsdd установлен и вы не планируете его использовать для обнаружения сети, удалите его:

apt remove wsdd

Теперь выполните установку:

apt update
apt install samba samba-common-bin

Пакет samba содержит демоны smbd (собственно SMB-сервер) и nmbd (обслуживание NetBIOS-имен). Пакет samba-common-bin предоставляет утилиты командной строки: smbpasswd для управления паролями SMB, smbclient для тестирования подключений, testparm для проверки конфигурации.

Проверьте установленную версию:

smbd --version

На момент написания статьи в репозиториях Astra Linux 2026 доступна Samba 4.17+ с полной поддержкой SMB 3.1.1.

Шаг 2: Базовая настройка smb.conf для общей папки

Конфигурационный файл /etc/samba/smb.conf управляет всеми аспектами работы Samba. Начните с резервной копии оригинала:

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

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

[global]
   workgroup = WORKGROUP
   server string = Astra Linux SMB Server
   security = user
   map to guest = never
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   logging = file

[shared]
   path = /srv/samba/shared
   browseable = yes
   read only = no
   valid users = @smbusers
   create mask = 0660
   directory mask = 0770

Разбор ключевых параметров секции [global]:

  • security = user - классическая модель: клиент передает логин/пароль, сервер сверяет их с локальной базой пользователей Samba.
  • map to guest = never - запрещает гостевой доступ. Любой непрошедший аутентификацию запрос отклоняется.
  • log file = /var/log/samba/log.%m - отдельный лог-файл для каждой клиентской машины (%m раскрывается в NetBIOS-имя клиента).

Параметры секции [shared] определяют конкретную шару. valid users = @smbusers разрешает доступ только членам системной группы smbusers. Это базовый механизм разграничения, который мы расширим в следующих шагах.

Создание системного пользователя и SMB-пароля

Учетные данные Samba состоят из двух слоев: системный пользователь Linux (определяет права на уровне файловой системы) и SMB-пароль (аутентификация по протоколу). Пароли этих двух слоев независимы.

# Создаем системную группу для пользователей SMB
groupadd smbusers

# Создаем системного пользователя без права входа в shell
useradd -M -s /sbin/nologin -G smbusers smbadmin

# Задаем SMB-пароль
smbpasswd -a smbadmin

Флаг -M пропускает создание домашнего каталога, -s /sbin/nologin запрещает интерактивный вход в систему. Пользователь smbadmin сможет подключаться к шарам, но не сможет войти на сервер по SSH.

Настройка прав доступа к каталогу

Даже корректно настроенная Samba не даст доступа к файлам, если на уровне файловой системы прав недостаточно.

mkdir -p /srv/samba/shared
chown -R root:smbusers /srv/samba/shared
chmod -R 0770 /srv/samba/shared

Маска 0770 дает полный доступ владельцу (root) и группе (smbusers), полностью закрывая доступ для всех остальных. Параметры create mask и directory mask в smb.conf обеспечивают, что вновь создаваемые файлы и каталоги будут наследовать эту группу и маску.

Шаг 3: Настройка подписывания SMB (SMB signing) для совместимости с Windows

Современные версии Windows (10/11, Server 2022) по умолчанию требуют подписывание SMB-пакетов. Это механизм защиты от атак типа NTLM relay: каждый пакет подписывается криптографическим хешем, и получатель проверяет подпись. Без подписывания Windows может отклонять подключения к Samba-серверу с ошибкой «Указана неверная парольная фраза» или «Отказано в доступе», даже если пароль введен верно.

Добавьте в секцию [global] файла smb.conf следующие параметры:

[global]
   server signing = mandatory
   smb encrypt = desired

server signing = mandatory принудительно включает подписывание для всех подключений. Это максимально совместимый вариант с современными Windows-клиентами. Альтернативные значения:

  • auto - подписывание включается, только если клиент его поддерживает и запрашивает. Подходит для сред с устаревшими устройствами (Windows XP, старые сетевые принтеры).
  • disabled - полное отключение. Используйте только в изолированных лабораторных сетях.

smb encrypt = desired включает шифрование SMB-трафика для клиентов, которые его поддерживают (SMB 3.0+). Это дополнительный уровень защиты, не снижающий совместимость с клиентами, не поддерживающими шифрование. Для принудительного шифрования используйте required, но учтите, что старые клиенты (Android-приложения для SMB, некоторые сетевые сканеры) могут перестать подключаться.

Диагностика проблем с SMB signing

Если после настройки Windows все равно не подключается, начните диагностику с логов Samba:

tail -f /var/log/samba/log.smbd

Попробуйте подключиться и ищите строки с NT_STATUS_ACCESS_DENIED или signing. Для быстрой проверки работоспособности Samba без оглядки на Windows-клиент выполните локальный тест:

smbclient -L localhost -U smbadmin

Эта команда запрашивает список шар у локального сервера от имени пользователя smbadmin. Успешный вывод списка шар означает, что Samba запущена, пользователь аутентифицируется, и проблема на стороне клиента или сети. Если команда возвращает ошибку, проверьте testparm:

testparm

Утилита выводит все активные параметры конфигурации и сообщает о синтаксических ошибках.

Шаг 4: Запуск и проверка работоспособности Samba

После сохранения smb.conf запустите сервисы и добавьте их в автозагрузку:

systemctl enable --now smbd nmbd

Проверьте статус обоих демонов:

systemctl status smbd nmbd

Оба должны быть в состоянии active (running). Если nmbd не запускается, проверьте, не заблокирован ли порт 137/udp брандмауэром.

Настройка брандмауэра Astra Linux

Astra Linux по умолчанию использует iptables с оберткой ufw или собственные скрипты. Для Samba требуются порты:

  • 137/udp, 138/udp - NetBIOS Name Service и Datagram (если используется NetBIOS).
  • 139/tcp - NetBIOS Session (SMB поверх NetBIOS).
  • 445/tcp - Direct SMB (основной порт для SMB 2.0+).

Если используется ufw:

ufw allow 137/udp
ufw allow 138/udp
ufw allow 139/tcp
ufw allow 445/tcp

Для чистого iptables:

iptables -A INPUT -p udp --dport 137:138 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
# Сохраните правила штатным для Astra Linux способом
service iptables save

Тестовое подключение с Windows: откройте Проводник, в адресной строке введите \\IP-адрес-сервера\shared. Система запросит логин и пароль - используйте учетные данные smbadmin и SMB-пароль, заданный через smbpasswd.

Шаг 5: Типовые проблемы и их решение

За годы эксплуатации Samba на Astra Linux мы собрали список повторяющихся ошибок и готовых рецептов для них.

Проблемы с разрешением имен NetBIOS

Симптом: Windows не видит сервер в сетевом окружении, но по IP-адресу подключается. Причина: не запущен nmbd или отключена поддержка NetBIOS.

Проверьте, что в smb.conf в секции [global] нет строки disable netbios = yes. Если она есть, замените на disable netbios = no и перезапустите nmbd:

systemctl restart nmbd

Для современных сетей, где NetBIOS не нужен (все клиенты используют DNS и Direct SMB на порту 445), можно оставить nmbd выключенным. В этом случае клиенты должны обращаться к серверу по DNS-имени или IP.

Ошибка «Отказано в доступе» при корректном пароле

Алгоритм диагностики:

  1. Проверьте права файловой системы: ls -la /srv/samba/shared. Владелец и группа должны совпадать с настройками в smb.conf.
  2. Проверьте, что пользователь состоит в группе: groups smbadmin.
  3. Убедитесь, что в Astra Linux не активен мандатный контроль доступа (режим «Киоск» или «Коробка»), который может накладывать дополнительные ограничения поверх стандартных прав UNIX. Проверьте текущий режим: astra-modeswitch status.

Медленная передача файлов

Базовые параметры для повышения пропускной способности в секции [global]:

socket options = TCP_NODELAY SO_RCVBUF=131072 SO_SNDBUF=131072
read raw = yes
write raw = yes
strict sync = no

Эти настройки отключают алгоритм Нейгла (TCP_NODELAY), увеличивают буферы сокетов и разрешают асинхронные операции чтения/записи. Прирост скорости на гигабитных сетях составляет 15-25%.

Шаг 6: Интеграция с доменом Windows (опционально)

В корпоративных средах Astra Linux часто вводится в домен Active Directory. Это позволяет доменным пользователям подключаться к SMB-шарам со своими привычными учетными данными, а администраторам - централизованно управлять доступом.

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

apt install realmd sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin

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

realm discover DOMAIN.LOCAL
realm join DOMAIN.LOCAL -U Administrator

После успешного ввода приведите smb.conf к доменной конфигурации:

[global]
   workgroup = DOMAIN
   realm = DOMAIN.LOCAL
   security = ads
   idmap config * : backend = tdb
   idmap config * : range = 3000-7999
   idmap config DOMAIN : backend = rid
   idmap config DOMAIN : range = 10000-999999
   template shell = /bin/bash
   template homedir = /home/%U
   winbind use default domain = yes
   winbind offline logon = yes

Ключевые параметры:

  • security = ads - аутентификация через Active Directory с использованием Kerberos.
  • idmap config DOMAIN : backend = rid - сопоставление Windows SID с UID/GID на основе относительного идентификатора (RID). Не требует дополнительной настройки на стороне AD.
  • winbind use default domain = yes - разрешает вход без указания доменного префикса (вводите user вместо DOMAIN\user).

Настройка PAM и NSS для доменных пользователей

Для прозрачной работы доменных учетных записей на уровне системы (включая Samba) настройте NSS и PAM.

Файл /etc/nsswitch.conf должен содержать sss в строках passwd, group, shadow:

passwd: files sss
group:  files sss
shadow: files sss

Автоматическое создание домашних каталогов при первом входе доменного пользователя настраивается в /etc/pam.d/common-session добавлением строки:

session required pam_mkhomedir.so skel=/etc/skel umask=0077

Перезапустите сервисы:

systemctl restart sssd smbd nmbd

Проверьте, что доменные пользователи видны системе:

wbinfo -u
id DOMAIN\username

Теперь в параметре valid users шар можно указывать доменные группы в формате @"DOMAIN\Domain Users". Для глубокой настройки прав на основе доменных групп через ACL обратитесь к руководству по группам безопасности через LDAP и RBAC.

Заключение: дальнейшие шаги и рекомендации

Вы развернули SMB-сервер на Astra Linux 2026: установили Samba, настроили общую папку с контролем доступа, включили SMB signing для совместимости с Windows и опционально интегрировали сервер в домен Active Directory. Этот базовый сценарий закрывает потребности большинства организаций, использующих Astra Linux в качестве файлового сервера.

Для развития инфраструктуры изучите смежные темы: настройка распределенной файловой системы DFS на базе Samba, репликация данных между серверами, аудит доступа к файлам через подсистему Parsec в Astra Linux. Если вы строите файловое хранилище с нуля и рассматриваете альтернативы, рекомендуем руководство по настройке TrueNAS с SMB, NFS и FTP - там разобрана организация доступа из Windows, Linux и macOS на специализированной NAS-платформе.

Конфигурации, приведенные в этой статье, проверены на реальных инсталляциях Astra Linux Special Edition. Если вы столкнулись с ошибкой, не описанной здесь, или нашли более эффективный способ решения задачи - поделитесь опытом. Практическая обратная связь от коллег помогает поддерживать базу знаний актуальной.

Поделиться:
Сохранить гайд? В закладки браузера