Подробный гайд по установке и настройке Samba в Astra Linux
Данный гайд охватывает установку, базовую настройку, безопасность и особенности работы Samba в Astra Linux Common Edition (ОС) и Special Edition (СН). Все команды выполняются от имени пользователя с правами sudo или root.
1. Подготовка и системные требования
- Astra Linux 1.8 (или новее) / 2.12 (Смоленск)
- Настроенные репозитории (основные, обновления)
- Статический IP-адрес (рекомендуется для серверов)
- Отключённый NetworkManager для серверных интерфейсов (опционально, но рекомендуется)
2. Установка пакетов Samba
sudo apt update
sudo apt install samba samba-common-bin acl xfsprogs
acl и xfsprogs необходимы для корректной работы расширенных атрибутов и квот, что критично в Astra Linux СН.
Проверка установки:
smbd --version
Ожидается вывод: Version 4.x.x-Debian (или Astra).
3. Конфигурация /etc/samba/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 Samba Server
netbios name = ASTRA-SRV
server role = standalone server
server min protocol = SMB2_02
server max protocol = SMB3_11
encrypt passwords = yes
ntlm auth = no
lanman auth = no
client min protocol = SMB2_02
log file = /var/log/samba/log.%m
max log size = 5000
dns proxy = no
vfs objects = full_audit
full_audit:prefix = %u|%I|%S
full_audit:success = mkdir rename rmdir unlink
full_audit:failure = none
full_audit:facility = local7
full_audit:priority = notice
Важно:
- SMBv1 отключён. В Astra Linux СН это требование безопасности. Параметр vfs objects = full_audit обязателен для соответствия требованиям контроля целостности и аудита.
Примеры шар (в конец файла)
Публичная шара (только чтение, без пароля)
[public]
comment = Public Share
path = /srv/samba/public
browseable = yes
writable = no
guest ok = yes
force user = nobody
force group = nogroup
create mask = 0644
directory mask = 0755
Приватная шара (по пользователям, с записью)
[private]
comment = Private Department Share
path = /srv/samba/private
browseable = yes
writable = yes
valid users = @smbusers
force group = smbusers
create mask = 0664
directory mask = 0775
4. Создание пользователей и настройка прав
4.1. Создание системных пользователей
Samba использует системных пользователей Linux.
Создайте их заранее:
sudo groupadd smbusers
sudo useradd -M -s /usr/sbin/nologin -G smbusers user1
sudo useradd -M -s /usr/sbin/nologin -G smbusers user2
4.2. Регистрация в базе Samba
sudo smbpasswd -a user1
sudo smbpasswd -a user2
Пароль Samba может отличаться от системного. Пользователь обязан существовать в ОС.
Проверка базы:
sudo pdbedit -L
4.3. Создание директорий и прав
sudo mkdir -p /srv/samba/{public,private}
sudo chown root:smbusers /srv/samba/private
sudo chmod 0770 /srv/samba/private
sudo chmod 0755 /srv/samba/public
5. Брандмауэр и автозапуск служб
5.1. Настройка ufw (по умолчанию в Astra CE)
sudo ufw allow samba
sudo ufw enable
5.2. Если используется iptables (часто в СН)
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 iptables-save | sudo tee /etc/iptables/rules.v4
5.3. Запуск и включение служб
sudo systemctl enable --now smbd nmbd
sudo systemctl status smbd nmbd
Проверка конфигурации:
testparm -s
Ожидается:
- Loaded services file OK.
6. Проверка работы
С локальной машины:
smbclient -L //127.0.0.1 -U user1
С Windows:
- Откройте Проводник → \<IP_сервера>\private → введите логин/пароль Samba.
С Linux:
sudo apt install smbclient
smbclient //IP/private -U user1
7. Особенности Astra Linux Special Edition (СН)
В СН действует Мандатный контроль доступа (MCP/Parsec). Без учёта меток безопасности Samba может отказывать в доступе даже при верных правах chmod.
7.1. Назначение совместимой метки
# Просмотр текущей метки
ls -Z /srv/samba/private
# Назначение метки "Конфиденциально:Нет" (пример, зависит от политики)
sudo chcat -R +s0:c0.c1023 /srv/samba/private
# или через утилиту fly-admin-se-linux / mc
В production-средах метки согласовываются с ИБ-офицером. Для тестов используйте домен open или отключите принудительную проверку на время отладки (не рекомендуется).
7.2. Совместимость с MCP
- Убедитесь, что smbd запущен в домене, совместимом с шарами.
- При использовании force user/group метка наследуется от процесса smbd.
Для соответствия требованиям ФСТЭК/Минобороны включите аудит:
full_audit:success = all
full_audit:failure = all
Логи пишутся в /var/log/syslog или journalctl -u smbd.
7.3. Интеграция с ALD (Astra Linux Directory)
Если сервер входит в домен ALD:
sudo apt install realmd sssd samba-winbind
sudo realm join --user=admin your.domain
В smb.conf:
security = ADS
realm = YOUR.DOMAIN
workgroup = DOMAIN
idmap config * : backend = tdb
idmap config DOMAIN : backend = ad
idmap config DOMAIN : schema_mode = rfc2307
idmap config DOMAIN : range = 10000-999999
8. Диагностика и устранение неполадок
| Симптом | Решение |
|---|---|
| Connection refused | Проверьте systemctl status smbd, порты ss -tulpn | grep :445, брандмауэр |
| Access denied | Проверьте valid users, права каталога, метки MCP в СН |
| SMBv1 required | В Windows отключите требование SMBv1, включите SMB2/SMB3 в smb.conf |
| Логи пусты | Проверьте log level = 3 в [global], затем верните 1 |
| testparm ругается на security = user | В новых версиях server role = standalone server заменяет security |
Просмотр логов:
sudo tail -f /var/log/samba/log.smbd
sudo journalctl -u smbd -n 50
9. Рекомендации по безопасности
- Отключите гостевой доступ в приватных шарах: guest ok = no, map to guest = never
- Ограничьте подсети: hosts allow = 192.168.1.0/24 10.0.0.0/8
- Регулярно обновляйте: sudo apt upgrade samba
- Резервное копирование: используйте rsync + smbclient или bacula/bacula-fd
- Мониторинг: настройте auditd на /srv/samba/ и алерты в SIEM
Сертификаты TLS (опционально, для SMB3.1.1):
tls enabled = yes
tls keyfile = /etc/ssl/private/samba.key
tls certfile = /etc/ssl/certs/samba.crt
tls cafile = /etc/ssl/certs/ca.pem
Итог
- Вы развернули безопасный файловый сервер на базе Samba в Astra Linux, отключили устаревшие протоколы, настроили аудит и учли особенности мандатного контроля в Special Edition. При соблюдении политик ИБ и регулярном обновлении решение готово к эксплуатации в корпоративной или госсреде.