Налаштування Samba (SMB/CIFS) для файлового сервера під ключ

Перехід на Linux або створення файлового сховища часто впирається в сумісність з Windows і звичними правами доступу. Ми налаштовуємо Samba (SMB/CIFS) під ключ, забезпечуючи безшовний обмін файлами між системами та інтеграцію з Active Directory. Наша команда бере на себе весь цикл робіт — від аудиту до впровадження та подальшої підтримки, щоб ви отримали надійне та масштабоване рішення.
Часті запитання

Ми налаштовуємо Samba-сервери під ключ для організації надійного та безпечного файлового обміну між Linux і Windows. Наш досвід — понад 50 проектів, від невеликих офісних NAS до високонавантажених кластерів з реплікацією. Гарантуємо доступність 99.9% і повну інтеграцію з існуючою інфраструктурою — Active Directory, LDAP, системами моніторингу.

Типова ситуація: компанія переходить з Windows Server на Linux, але потрібно зберегти звичні UNC-шляхи та права доступу. Або потрібне бюджетне рішення для файлового сховища без втрати функціональності. Samba з правильно налаштованими ACL та оптимізованими параметрами SMB2/3 вирішує ці завдання.

Як інтегрувати Samba з Active Directory?

Для корпоративного використання інтеграція з AD обов'язкова. Ми налаштовуємо Samba як член домену за допомогою net ads join. На етапі конфігурації підключаємо winbind для маппінгу користувачів і груп AD на Linux-ідентифікатори. Це дозволяє використовувати єдиний обліковий запис для доступу до файлів.

# Встановлення Samba з підтримкою AD
apt install samba smbclient winbind
# Налаштування /etc/samba/smb.conf
[global]
workgroup = DOMAIN
security = ads
realm = DOMAIN.LOCAL
# ... інші параметри
# Введення в домен
net ads join -U administrator
# Запуск winbind
systemctl enable --now winbind

Після цього користувачі AD можуть підключатися до шар без створення локальних акаунтів. Права призначаються через групи AD — Samba автоматично застосовує їх до ACL.

Чому Samba може гальмувати і як це виправити?

Повільна робота Samba часто пов'язана з неправильним alignment мережевих буферів або використанням SMB1. Насамперед вимкніть SMB1 і увімкніть SMB3. Оптимізуйте socket options:

[global] socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072 

Також перевірте продуктивність дискової підсистеми: використовуйте SSD для метаданих і налаштуйте кеш запису. Для WAN-з'єднань збільште server max protocol = SMB3 і увімкніть server signing = mandatory. Наші інженери проводять навантажувальне тестування за допомогою smbclient та dd для пошуку вузьких місць.

Базова конфігурація Samba

Починаємо з встановлення пакетів та мінімального конфігураційного файлу:

apt install samba samba-common-bin 

Файл /etc/samba/smb.conf складається з глобальної секції та секцій шар:

[global]
workgroup = MYGROUP
server string = File Server
netbios name = FILESERVER
server role = standalone server
log file = /var/log/samba/log.%m
max log size = 1000
map to guest = bad user
usershare allow guests = no
min protocol = SMB2
max protocol = SMB3

[data]
path = /srv/samba/data
valid users = @sambagroup
browseable = yes
writable = yes
create mask = 0664
directory mask = 0775
force group = sambagroup

[public]
path = /srv/samba/public
browseable = yes
guest ok = yes
writable = no
read only = yes

Параметр map to guest = bad user автоматично перенаправляє невідомих користувачів на гостьовий доступ, інакше Windows-клієнти отримають помилку аутентифікації при спробі підключення до публічної шари.

Користувачі та групи

Samba зберігає паролі у власній базі, окремо від системних облікових записів:

# Створення системного користувача та групи
useradd -M -s /sbin/nologin jsmith
groupadd sambagroup
usermod -aG sambagroup jsmith
# Додавання до бази Samba
smbpasswd -a jsmith
smbpasswd -e jsmith
# Перевірка
pdbedit -L -v jsmith

Для великих організацій рекомендуємо бекенд LDAP (passdb backend = ldapsam), що спрощує централізоване управління.

Права доступу: Linux ACL + Samba

Правильна схема прав — комбінація групових ACL та успадкованих прав:

# Група sambagroup може читати та писати
setfacl -R -m g:sambagroup:rwX /srv/samba/data
setfacl -R -d -m g:sambagroup:rwX /srv/samba/data
# Інші — лише читання
setfacl -R -m o::r-X /srv/samba/data

Параметри create mask та directory mask у smb.conf обмежують максимальні права для нових файлів, створених через Samba.

Етапи роботи

  1. Аудит поточної інфраструктури (мережа, домен, ємність дисків).
  2. Проектування структури шар та схеми прав.
  3. Встановлення та налаштування Samba, оптимізація під навантаження.
  4. Створення користувачів/груп, інтеграція з AD/LDAP.
  5. Налаштування ACL на файловій системі.
  6. Конфігурація файрвола та виявлення (wsdd).
  7. Підключення моніторингу (Prometheus + Grafana + samba_exporter).
  8. Тестування з Windows та Linux-клієнтами, стрес-тест.
  9. Передача документації та навчання адміністраторів.

Що входить у налаштування під ключ

  • Розгортання Samba standalone або в домені.
  • Налаштування ACL із успадкуванням прав.
  • Інтеграція з AD/LDAP через winbind.
  • Оптимізація продуктивності (буфери, кеш, SMB3).
  • Моніторинг: samba_exporter для Prometheus, алерти в Grafana.
  • Резервне копіювання конфігурації та даних (rsync + snapshot).
  • Документація з адміністрування та відновлення після збоїв.
  • 30 днів супроводу після введення в експлуатацію.
Детальніше про налаштування ACL

Ми використовуємо setfacl з рекурсивними правилами та успадкуванням прав. create mask та directory mask у smb.conf обмежують максимальні права створюваних файлів. Для тонкого налаштування використовуйте acl group control = yes у глобальній секції.

Порівняння протоколів: SMB vs NFS vs FTP

Критерій SMB (Samba) NFS FTP
Підтримка Windows Вбудована, UNC-шляхи Потрібен клієнт Через клієнт
Безпека Шифрування SMB3 Kerberos/SSH FTPS
Продуктивність Висока (async) Вища для Linux Середня
ACL POSIX + Windows POSIX Обмежений

Моніторинг та діагностика

Перевіряйте синтаксис, статус та логи через утиліти командного рядка:

# Перевірка синтаксису testparm
# Список активних підключень smbstatus
# Тест підключення smbclient //fileserver/data -U jsmith
# Логи journalctl -u smbd tail -f /var/log/samba/log.smbd

Для мережевої фільтрації відкрийте порти та встановіть wsdd для виявлення сервера в Windows:

# Дозвіл трафіку SMB та WS-Discovery
ufw allow from 192.168.1.0/24 to any port 445,139 proto tcp
ufw allow from 192.168.1.0/24 to any port 137:138 proto udp
# Встановлення та запуск wsdd
apt install wsdd
systemctl enable --now wsdd

Типові проблеми: NT_STATUS_ACCESS_DENIED при записі — перевірте і Samba ACL, і права файлової системи. NT_STATUS_CONNECTION_REFUSED — перевірте, чи запущений smbd і чи відкриті порти.

Строки та вартість

Стандартний файловий сервер налаштовується за 1-2 дні. При інтеграції з AD/LDAP або складній схемі ACL — до 5 днів. Вартість розраховується індивідуально після аудиту. Економія порівняно з Windows Server досягає 50% без втрати функціональності.

Ми пропонуємо налаштування Samba під ключ — отримайте консультацію інженера з 5+ років досвіду. Ми гарантуємо надійність та продуктивність вашого файлового сховища.

Зв'яжіться з нами для оцінки вашого проекту — відповімо протягом 2 годин.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141