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 состоит из секций, каждая из которых начинается с имени в квадратных скобках ([секция]). Внутри секций задаются параметры в формате ключ = значение (или ключ = значение). Комментарии начинаются с символа # или ;.
Основные секции
- [global] — глобальные настройки сервера Samba, применяемые ко всем ресурсам. Включает параметры сетевого имени (NetBIOS), рабочей группы, уровня безопасности, аутентификации, журналирования и т.д.
- [homes] — автоматическая секция, создающая домашние каталоги пользователей. По умолчанию каждый пользователь получает доступ к своему домашнему каталогу.
- [printers] — секция для управления принтерами, подключёнными к серверу.
- Пользовательские секции — определяют конкретные общие ресурсы (шары), например
[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 →