Открыть сервис

smb.conf

smb.conf — это конфигурационный файл для серверов Samba, реализующих протоколы SMB/CIFS (Server Message Block / Common Internet File System) для обеспечения файлового обмена и совместного использования ресурсов (принтеров, каталогов) в гетерогенных сетях, объединяющих операционные системы семейства Windows, Linux, Unix и macOS. Файл smb.conf определяет параметры работы демона Samba, включая настройки доступа, безопасности, сетевых интерфейсов и общих ресурсов (шары).

История и происхождение

Файл smb.conf появился в 1992 году вместе с первой версией Samba, созданной австралийским программистом Эндрю Триджеллом (Andrew Tridgell). Изначально Samba разрабатывалась как обратная разработка протокола SMB, используемого в операционных системах Microsoft Windows. Первая публичная версия Samba 1.0 была выпущена в 1993 году, и с тех пор smb.conf остаётся основным средством конфигурации сервера.

В последующих версиях Samba (2.x, 3.x, 4.x) формат файла претерпел изменения, но базовая структура (секции, параметры, директивы) сохранилась. Начиная с Samba 4.0 (2012 год), файл smb.conf также используется для настройки контроллера домена Active Directory, что расширило его функциональность.

Местоположение и права доступа

По умолчанию файл smb.conf располагается в следующих директориях в зависимости от операционной системы:

  • Linux/Unix (дистрибутивы на основе Debian/Ubuntu): /etc/samba/smb.conf
  • Red Hat/CentOS/Fedora: /etc/samba/smb.conf
  • FreeBSD: /usr/local/etc/smb.conf
  • macOS: /etc/smb.conf (в некоторых версиях)

Файл должен иметь права доступа, позволяющие чтение только суперпользователю (root) и членам группы samba (если такая группа существует). Обычно устанавливаются права 644 (владелец — root, чтение и запись; группа и остальные — только чтение). Изменение прав доступа может привести к уязвимостям безопасности.

Структура файла

Файл smb.conf состоит из секций, каждая из которых начинается с имени в квадратных скобках ([секция]). Внутри секций задаются параметры в формате ключ = значение (или ключ = значение). Комментарии начинаются с символа # или ;.

Основные секции

  1. [global] — глобальные настройки сервера Samba, применяемые ко всем ресурсам. Включает параметры сетевого имени (NetBIOS), рабочей группы, уровня безопасности, аутентификации, журналирования и т.д.
  1. [homes] — автоматическая секция, создающая домашние каталоги пользователей. По умолчанию каждый пользователь получает доступ к своему домашнему каталогу.
  1. [printers] — секция для управления принтерами, подключёнными к серверу.
  1. Пользовательские секции — определяют конкретные общие ресурсы (шары), например [shared], [backup], [documents]. Каждая такая секция содержит параметры пути (path), прав доступа (read only, valid users, create mask и т.д.).

Пример структуры

```ini [global] workgroup = WORKGROUP server string = Samba Server %v netbios name = FILESERVER security = user map to guest = Bad User log file = /var/log/samba/log.%m max log size = 50

[shared] path = /srv/samba/shared browseable = yes read only = no guest ok = yes create mask = 0755 ```

Основные параметры

Параметры секции [global]

  • workgroup — имя рабочей группы (для Windows-сетей).
  • server string — описание сервера, отображаемое в сетевом окружении.
  • netbios name — сетевое имя сервера (до 15 символов, без пробелов).
  • security — уровень безопасности:
  • userаутентификация по имени пользователя и паролю (рекомендуется).
  • share — доступ без аутентификации (устаревший).
  • domainсервер является членом домена Windows.
  • ads — сервер является членом Active Directory (Samba 4).
  • map to guest — политика для гостевого доступа:
  • Never — гостевой доступ запрещён.
  • Bad User — если пользователь не найден, он отображается как гость.
  • Bad Password — если пароль неверен, доступ предоставляется как гостю (не рекомендуется).
  • log file — путь к файлу журнала.
  • max log size — максимальный размер файла журнала (в килобайтах).
  • interfaces — сетевые интерфейсы, на которых слушает сервер.
  • wins support — включение поддержки WINS (Windows Internet Name Service).

Параметры пользовательских секций

  • path — путь к каталогу на сервере.
  • browseable — отображается ли ресурс в сетевом окружении (yes/no).
  • read only — только чтение (yes/no).
  • guest ok — разрешён ли гостевой доступ (yes/no).
  • valid usersсписок пользователей, имеющих доступ (например, @staff — группа).
  • invalid users — список пользователей, которым доступ запрещён.
  • create mask — права доступа для создаваемых файлов (в восьмеричном формате).
  • directory mask — права доступа для создаваемых каталогов.
  • force user — принудительное выполнение операций от имени указанного пользователя.
  • force group — принудительное выполнение операций от имени указанной группы.

Утилиты для проверки и настройки

Для проверки синтаксиса и корректности smb.conf используются следующие утилиты:

  • testparm — проверяет синтаксис файла smb.conf и выводит предупреждения о неверных параметрах. Пример: testparm /etc/samba/smb.conf.
  • smbclient — клиент для тестирования доступа к общим ресурсам.
  • net — утилита для управления Samba (например, net share для просмотра шаров).

После изменения smb.conf необходимо перезапустить сервис Samba: sudo systemctl restart smbd (или nmbd для NetBIOS-имён).

Безопасность

При настройке smb.conf следует учитывать рекомендации по безопасности:

  • Использовать уровень безопасности user или ads (для доменов).
  • Запрещать гостевой доступ (guest ok = no), если он не требуется.
  • Ограничивать доступ по IP-адресам с помощью параметров hosts allow и hosts deny.
  • Настраивать шифрование передачи данных (параметр server min protocol = SMB2 или выше).
  • Использовать аутентификацию через Active Directory или LDAP.
  • Регулярно проверять журналы (/var/log/samba/).

Примеры конфигураций

Простой файловый сервер для локальной сети

```ini [global] workgroup = HOME server string = File Server netbios name = NAS security = user map to guest = Bad User log file = /var/log/samba/log.%m max log size = 50

[shared] path = /srv/samba/shared browseable = yes read only = no guest ok = yes create mask = 0755 ```

Сервер с аутентификацией и ограничением доступа

```ini [global] workgroup = COMPANY server string = Secure File Server netbios name = SECURE security = user map to guest = Never log file = /var/log/samba/log.%m max log size = 100

[private] path = /srv/samba/private browseable = no read only = no valid users = @staff, admin invalid users = guest, temp create mask = 0700 directory mask = 0700 ```

Интересные факты

  • Файл smb.conf может быть очень большим (до нескольких тысяч строк) в крупных организациях с сотнями общих ресурсов.
  • В Samba 4.0 появилась возможность использовать smb.conf для настройки контроллера домена, что позволило заменить Windows Server в некоторых сценариях.
  • Существуют графические инструменты для редактирования smb.conf, например, system-config-samba (для Red Hat) или swat (Samba Web Administration Tool), но они считаются устаревшими.
  • Параметр server min protocol позволяет отключить устаревшие и небезопасные версии протокола SMB (SMB1), что снижает риск атак типа WannaCry.

Источники

  • Официальная документация Samba: Samba Wiki
  • Руководство по Samba: «Using Samba» (O'Reilly Media, 2003)
  • Man-страницы: man smb.conf, man testparm
  • Статья «Samba: an introduction» (Linux Journal, 1995)
  • Техническая документация Microsoft по протоколу SMB (MS-SMB)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →