Подробный гайд по настройке Samba в Astra Linux
Примечание:
Astra Linux имеет две основные редакции: Common Edition (CE, "Орёл") и Special Edition (SE, "Смоленск"). В SE включён мандатный контроль доступа (Parsec/MAC), который может блокировать работу Samba. В гайде учтены особенности обеих редакций.
1. Подготовка системы
1. Обновите списки пакетов и систему:
sudo apt update && sudo apt upgrade -y
2. Убедитесь, что система использует актуальные репозитории Astra Linux. Для проверки:
cat /etc/apt/sources.list
(Официальные инструкции: docs.astralinux.ru)
3. Определите редакцию ОС:
cat /etc/astra_version
- Если
Special Edition→ обратите внимание на раздел 6. Особенности безопасности Astra Linux. - Если
Common Edition→ дополнительные меры безопасности не требуются.
2. Установка Samba
sudo apt install samba samba-common-bin -y
Пакеты:
samba– серверные демоныsmbd,nmbd,winbindsamba-common-bin– утилитыtestparm,smbpasswd,net
3. Базовая настройка smb.conf
Создайте резервную копию оригинального конфига:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
Откройте конфиг:
sudo nano /etc/samba/smb.conf
Минимальная безопасная конфигурация
Замените содержимое секции [global] на следующее:
[global]
workgroup = WORKGROUP
server string = Astra Linux Samba Server
security = user
map to guest = bad user
server min protocol = SMB2_10
server max protocol = SMB3_11
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = no
hosts allow = 127.0.0.1 192.168.1.0/24
hosts deny = 0.0.0.0/0
SMB1 отключён принудительно. Это критично для безопасности.
4. Создание общих ресурсов (шар)
Добавьте в конец smb.conf нужные секции:
Публичная шара (без пароля)
[public]
path = /srv/samba/public
browsable = yes
writable = yes
guest ok = yes
guest account = nobody
force user = nobody
force group = nogroup
create mask = 0664
directory mask = 0775
Аутентифицированная шара
[secure]
path = /srv/samba/secure
browsable = yes
writable = yes
valid users = @smbusers
force group = smbusers
create mask = 0660
directory mask = 0770
Домашние директории (по умолчанию закомментированы)
Раскомментируйте секцию [homes], если нужно расшаривать домашние каталоги пользователей.
5. Управление пользователями Samba
Samba использует отдельную базу паролей. Системные пользователи должны быть добавлены в неё явно.
1. Создайте группу для администраторов шары:
sudo groupadd smbusers
2. Создайте системного пользователя (если нет):
sudo adduser --no-create-home --shell /usr/sbin/nologin smbuser1
3. Добавьте пользователя в Samba и задайте пароль:
sudo smbpasswd -a smbuser1
sudo smbpasswd -e smbuser1
sudo usermod -aG smbusers smbuser1
smbpasswd -a добавляет, -e активирует, -d отключает, -x удаляет.
6. Особенности безопасности Astra Linux
Common Edition ("Орёл")
Мандатный контроль отключён по умолчанию. Достаточно стандартных прав Linux.
Special Edition ("Смоленск")
В SE работает Parsec/MAC, который может блокировать доступ к каталогам шар даже при корректных chmod/chown.
Решение:
1. Проверьте блокировки:
sudo dmesg | grep -i parsec
sudo journalctl -u smbd | grep -i denied
2. Назначьте корректные метки безопасности (если используется pdpl-file):
sudo chcon -t samba_share_t /srv/samba/public
sudo chcon -t samba_share_t /srv/samba/secure
Если команда chcon недоступна, используйте утилиту astra-mac или временно отключите контроль для каталога:
sudo pdpl-file /srv/samba/public 0 0 0 0 0 0
В production-средах SE рекомендуется создавать политику безопасности через astra-policy или обращаться к администратору ИБ.
7. Права на каталоги
Создайте директории и назначьте права:
sudo mkdir -p /srv/samba/public /srv/samba/secure
sudo chown -R nobody:nogroup /srv/samba/public
sudo chmod -R 0775 /srv/samba/public
sudo chown -R root:smbusers /srv/samba/secure
sudo chmod -R 0770 /srv/samba/secure
8. Запуск и автозагрузка служб
sudo systemctl enable smbd nmbd
sudo systemctl start smbd nmbd
sudo systemctl status smbd
nmbd отвечает за NetBIOS-разрешение имён.
В современных сетях (Active Directory, mDNS) он часто не нужен и может быть отключён:
sudo systemctl disable nmbd
9. Настройка брандмауэра
Astra Linux по умолчанию использует iptables или ufw.
Выберите один способ:
Через ufw (если установлен):
sudo ufw allow samba
sudo ufw reload
Через iptables (стандарт для Astra):
sudo iptables -A INPUT -p tcp -m multiport --dports 139,445 -j ACCEPT
sudo iptables -A INPUT -p udp -m multiport --dports 137,138 -j ACCEPT
sudo netfilter-persistent save
Проверьте открытые порты: sudo ss -tulnp | grep -E '139|445|137|138'
10. Тестирование
1. Проверьте синтаксис конфига:
testparm
Должно вывести Loaded services file OK. и предупреждения только о закомментированных опциях.
2. Тест подключения локально:
smbclient -L //localhost -U smbuser1
3. Подключение с Windows:
\\IP_АСТРА\public
\\IP_АСТРА\secure
Логин: smbuser1, пароль: заданный в smbpasswd.
4. Подключение с Linux:
smbclient //IP_АСТРА/secure -U smbuser1
11. Диагностика проблем
| Симптом | Решение |
|---|---|
NT_STATUS_ACCESS_DENIED |
Проверьте права каталога, valid users, метки SE |
NT_STATUS_CONNECTION_REFUSED |
Служба не запущена или брандмауэр блокирует порты |
| Медленная работа | Добавьте name resolve order = lmhosts host wins bcast в [global] |
| Ошибка аутентификации в Windows | Включите NTLMv2: ntlm auth = yes в [global] |
| Логи Samba | /var/log/samba/log.%m и /var/log/samba/log.smbd |
12. Рекомендации по безопасности
- Никогда не включайте SMB1 – уязвим к WannaCry, NotPetya.
- Используйте
server min protocol = SMB2_10илиSMB3_11. - Ограничьте доступ по IP (
hosts allow). - Регулярно обновляйте:
sudo apt update && sudo apt upgrade samba*. - В Special Edition ведите аудит через
auditdиastra-logs. - Для доменной интеграции используйте
winbind+realmd/sssd.