Подробный гайд: Установка и настройка 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
- Откройте Проводник →
\\<IP-АДРЕС-Astra>\public - Введите логин/пароль пользователя Samba
- При ошибке доступа: проверьте
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