23.5. Включение аутентификации на сервере Samba
Проблема
Либеральные, незащищенные методы общего доступа к файлам, рассмотренные ранее, могут представлять риск для безопасности. Для более надежной защиты и управления доступом к файлам стоит использовать централизованный файловый сервер Samba с управлением правами пользователей на доступ к общим каталогам.
Решение
Чтобы настроить аутентификацию на сервере Samba, начните с конфигурации файла smb.conf
. Включите режим безопасности уровня пользователей, требуйте шифрования паролей и настройте разрешенные IP-адреса для подключения. Такие параметры включены по умолчанию в Samba 3.0 и выше, однако для точности лучше указать их явно.
Настройка безопасности уровня пользователей в smb.conf
Откройте файл smb.conf
и добавьте или измените следующие строки для конфигурации безопасности:
[global]
workgroup = WORKGROUP
netbios name = SERVERNAME
server string = Samba File Server
security = user
encrypt passwords = yes
browseable = no
hosts allow = 192.168.1.
Настройки секции [global]
определяют параметры безопасности для всех подключений к серверу. Важно указать security = user
, чтобы требовать у пользователей учетные записи и пароли. Опция encrypt
passwords = yes
обеспечит шифрование паролей, а hosts allow
ограничит доступ для указанных IP-адресов.
Настройка общего каталога
Создайте секцию для общих файлов, задав путь к каталогу и параметры доступа:
[share]
path = /sharedstuff
comment = Shared Files
read only = no
Эта настройка создаст доступный каталог /sharedstuff
с правами на запись. Теперь, когда конфигурация завершена, перезапустите Samba для применения изменений:
# systemctl restart smbd
Создание учетных записей Samba
Чтобы пользователи могли аутентифицироваться на сервере, создайте для них учетные записи в Samba с помощью команды smbpasswd
. Эти пользователи должны также иметь системные учетные записи на сервере. Создайте учетную запись следующим образом:
# smbpasswd -a username
New SMB password:
Retype new SMB password:
Added user username.
Внимание: Пользователи Samba должны существовать в системе Linux. Если учетная запись пользователя отсутствует в /etc/passwd
, команда smbpasswd
выдаст ошибку.
Пример ошибки:
Failed to initialize SAM_ACCOUNT for user <username>.
Failed to modify password entry for user <username>.
Комментарий
Схема с отдельными базами данных для паролей Samba и системных учетных записей объясняется различиями между системами Unix и Windows в вопросах хранения паролей и управления доступом к файлам. Команда smbpasswd
позволяет связать обе системы, чтобы пользователи могли беспрепятственно подключаться с различных платформ.
Для преобразования учетных записей из /etc/passwd
в формат Samba (например, /etc/samba/smbpasswd
) можно использовать команду mksmbpasswd
:
# mksmbpasswd < /etc/passwd > /etc/samba/smbpasswd
Дополнительные рекомендации по безопасности
- Регулярное обновление паролей: В целях безопасности рекомендовано требовать смену паролей у пользователей по истечении определенного времени.
- Ограничение доступа: Опция
hosts allow
позволяет установить доступ к серверу только для указанных диапазонов IP-адресов, что помогает защитить сервер от нежелательных подключений. - Логирование действий: Убедитесь, что на сервере включено логирование действий пользователей для отслеживания подозрительной активности.
- Использование автоматизации: Настройка автоматизированного мониторинга доступа и оповещений при обнаружении подозрительных попыток входа может значительно повысить уровень безопасности.
См. также