Подробный гайд: Установка и настройка Samba 4.12.5 в Astra Linux 1.7

Пошаговая инструкция по установке и настройке Samba 4.12.5 в Astra Linux 1.7. Разбор конфигурации, управление правами, брандмауэр и особенности МЗИ

2026.05.12                  


Подробный гайд: Установка и настройка Samba 4.12.5 в Astra Linux 1.7Подробный гайд: Установка и настройка Samba 4.12.5 в Astra Linux 1.7

Важно:

Astra Linux поставляется в редакциях Common Edition (CE) и Special Edition (Smolensk). В Smolensk применяется механизм защиты информации (МЗИ) на базе parsecd, обязательный контроль доступа (MAC) и усиленные политики безопасности. Гайд учитывает обе редакции, но для Smolensk добавлены специальные разделы.


1. Подготовка системы

# Обновление пакетной базы и системы
sudo apt update
sudo apt upgrade -y

# Установка необходимых зависимостей
sudo apt install -y samba samba-common-bin samba-client \
  libnss-winbind libpam-winbind winbind \
  net-tools iproute2 ufw \
  curl wget build-essential

Проверка версии в репозитории:

apt-cache policy samba

Если версия < 4.12.5, а требуется строго 4.12.5, используйте либо обновление до актуального репозитория Astra (через fly-admin-repo), либо сборку из исходников (см. раздел 2.2). В большинстве случаев версия 4.12.x доступна в обновлённых репозиториях Astra 1.7.x.


2. Установка Samba 4.12.5

2.1. Установка из репозитория (рекомендуется)

sudo apt install -y samba=4.12.5* samba-common=4.12.5* samba-common-bin=4.12.5*

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

smbd --version

2.2. Сборка из исходников (если строго требуется 4.12.5)

sudo apt install -y python3-dev python3-cryptography libssl-dev \
  libgnutls28-dev libldap2-dev libpam0g-dev libkrb5-dev \
  libaio-dev libattr1-dev libblkid-dev libcap-dev \
  libsystemd-dev bind9 libncurses5-dev libtasn1-bin

curl -O https://download.samba.org/pub/samba/stable/samba-4.12.5.tar.gz
tar -xzf samba-4.12.5.tar.gz
cd samba-4.12.5

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
  --with-systemd --enable-fhs --with-pam --with-shared-modules=idmap_rid,idmap_ad

make -j$(nproc)
sudo make install
sudo ldconfig

Сборка требует ~15-30 мин. После установки проверьте smbd --version.


3. Базовая настройка smb.conf

Создайте резервную копию и отредактируйте конфигурацию:

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

Минимальный рабочий конфиг для файлового сервера:

[global]
   workgroup = WORKGROUP
   server string = Astra Samba File Server
   server role = standalone server
   security = user
   map to guest = Bad User

   # Безопасность (совместимо с 4.12)
   server min protocol = SMB2_10
   ntlm auth = no
   lanman auth = no
   client min protocol = SMB2_10

   # Логирование
   log file = /var/log/samba/log.%m
   max log size = 1000
   logging = file

   dns proxy = no
   bind interfaces only = yes

[public]
   path = /srv/samba/public
   browseable = yes
   read only = no
   guest ok = no
   valid users = @sambashare
   create mask = 0664
   directory mask = 0775
   force group = sambashare

Проверьте синтаксис:

testparm

4. Управление пользователями и ресурсами

4.1. Подготовка директории

sudo mkdir -p /srv/samba/public
sudo groupadd sambashare
sudo chown -R root:sambashare /srv/samba/public
sudo chmod -R 0770 /srv/samba/public

4.2. Создание пользователей

# Системный пользователь (без входа в shell, если только для Samba)
sudo useradd -M -N -g sambashare -s /usr/sbin/nologin user1

# Добавление в базу Samba
sudo smbpasswd -a user1

# Активация пользователя
sudo smbpasswd -e user1

Пароль Samba должен совпадать с системным или задаваться отдельно. Для централизованного управления в домене используйте pdbedit или интеграцию с AD.


5. Запуск и автозагрузка

sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd
sudo systemctl status smbd nmbd

Проверка прослушиваемых портов:

ss -tulpn | grep -E '139|445'

6. Настройка сетевого экрана

Astra Linux может использовать ufw или fly-admin-firewall (на базе iptables).

Вариант A: ufw

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

Вариант B: iptables (если UFW отключён)

sudo iptables -A INPUT -p tcp --dport 139 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 445 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 137 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 138 -j ACCEPT
sudo netfilter-persistent save

Для Smolensk: убедитесь, что правила не перекрываются политиками МЗИ. Проверьте sudo iptables -L -n -v.


7. Особенности Astra Linux 1.7 (МЗИ и безопасность)

7.1. Редакция Common Edition (CE)

Работает аналогично Debian. Ограничений на Samba нет.

7.2. Редакция Special Edition (Smolensk)

В режимах «Усиленный» и «Максимальный» применяется обязательный контроль доступа (MAC) через parsecd. Без корректных меток безопасности Samba не получит доступ к файлам.

Настройка контекстов безопасности:

# Просмотр текущих меток
ls -Z /srv/samba/public

# Установка меток (пример для стандартного профиля)
sudo setsecurity -u "samba_share_t" /srv/samba/public
sudo setsecurity -u "samba_share_t" /srv/samba/public/* -R

Точные имена типов зависят от установленного профиля безопасности. В графическом режиме используйте fly-admin-sec → «Управление метками» → назначьте тип samba_share_t или user_home_t для директории.

Отключение проверок для тестирования (только в CE или временно):

sudo fly-admin-sec --set-policy standard
sudo systemctl restart parsecd

Логи МЗИ:

sudo journalctl -u parsecd | grep samba
sudo dmesg | grep parsec

8. Проверка и диагностика

8.1. Локальная проверка

smbclient -L //localhost -U user1
smbclient //localhost/public -U user1 -c "ls"

8.2. Подключение с Windows

  1. Откройте Проводник → \\<IP-АДРЕС-Astra>\public
  2. Введите логин/пароль пользователя Samba
  3. При ошибке доступа: проверьте testparm, права chmod/chown, брандмауэр, логи.

8.3. Мониторинг логов

tail -f /var/log/samba/log.*
journalctl -u smbd -f

9. Устранение типовых проблем

Симптом Решение
Connection refused Проверьте systemctl status smbd, порты ss -tulpn, брандмауэр
Access denied Проверьте valid users, права chmod/chown, smbpasswd -e user, метки МЗИ (Smolensk)
NT_STATUS_LOGON_FAILURE Пароль не добавлен/не активирован: sudo smbpasswd -a user && sudo smbpasswd -e user
Protocol negotiation failed Добавьте в [global]: server min protocol = SMB2_10, client min protocol = SMB2_10
Samba не стартует в Smolensk Проверьте journalctl -u smbd, убедитесь, что /var/lib/samba и /etc/samba имеют корректные контексты безопасности

Заключение

  • Samba 4.12.5 полностью совместима с Astra Linux 1.7.
  • В Common Edition настройка аналогична Debian/Ubuntu.
  • В Smolensk обязательно учитывайте МЗИ: метки безопасности, политики parsecd, ограничения на создание файлов.

Для продакшена рекомендуется:

  • Использовать server min protocol = SMB2_10
  • Отключить ntlm auth и lanman auth
  • Вести аудит через /var/log/samba/
  • Регулярно обновлять систему через официальные репозитории Astra