6.1.2. Безопасность
6.1.2. Безопасность
В этом разделе мы рассмотрим директивы, которые напрямую или косвенно влияют на безопасность:
? guest account = имя — указывается учетная запись, с правами которой пользователь сможет входить в систему. Если ваш сервер не содержит секретной информации и используется для открытого обмена файлами, то можно завести гостевую учетную запись, иначе такой вход не безопасен;
? log file = файл — название файла-журнала, например, можно написать /var/log/samba/%m.log. Обратите внимание, что в имени присутствует символ процента, вместо которого во время работы будет подставляться имя пользователя, активность которого сохраняется. Так, например, для пользователя robert будет создан журнал /var/log/samba/robert.log;
? max log size = n — определяет максимальный размер журнала в килобайтах. Укажите значение 0, если ограничения не должно быть;
? security = уровень — определяет степень доступа, параметр может принимать одно из следующих значений:
• user — на уровне пользователя;
• share — аутентификация на основе имени и пароля;
• server — задаст имя сервера, на котором хранятся пароли (с помощью директивы password server = ИмяСервера), т.к. пароли держатся на другом smb-сервере;
• security = domain — включает сервер в домен Windows NT, пароль для доступа указывается в файле, определенном с помощью директивы smb passwd file = ИмяФайла;
? encrypt passwords = yes — позволяет шифровать пароли, передаваемые по сети. Данная опция требует пояснении, потому что могут возникнуть проблемы при авторизации с компьютеров с Windows-системой.
Суть в том, что Windows так шифрует пароли, что они могут быть восстановлены. Зашифрованный пароль передается по сети, и на сервере происходит его дешифровка. Linux же использует необратимую схему хэширования по алгоритму MD5. Для проверки правильности пароля он шифруется по тому же алгоритму, а затем сравнивается результат (хэш-сумма). Таким образом, шифрование Linux и Windows не совместимы.
Чтобы пользователи Windows смогли авторизоваться на Samba-сервере, необходимо передавать пароль в незашифрованном виде. Для этого значение encrypt passwords должно быть равно no. При этом в Windows-системе необходимо в реестре изменить параметр EnablePlainTextPassword, установив в нем значение 1. В Windows 9х этот параметр находится в реестре по адресу:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesVxDVNETSUP
Для Windows NT это:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRdrParametrs
В Windows 2000:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkStationParameters
Если соответствующего параметра не существует, то его следует создать. Он должен иметь тип dword.
Если возникли проблемы с входом в систему, то переключите систему в режим работы с незашифрованными паролями. В этом случае Samba использует для авторизации файлы /etc/passwd и /etc/shadow. Полученный открытый пароль шифруется по алгоритму MD5 и сравнивается со значениями из этого файла.
Если вы используете шифрованный пароль, то при авторизации будет использоваться файл /etc/samba/smbpasswd (можно изменить с помощью директивы smb passwd file). Он необходим из-за отличий в шифровании Windows и Linux.
Не применяйте открытые пароли без особой надобности. Не забывайте о существовании программ-снифферов, которые анализируют сетевой трафик и позволяют найти пароли, передаваемые по сети. Если они не зашифрованы, то злоумышленник сможет проникнуть в вашу систему;
? smb passwd file = файл — указывает на расположения файла с паролями. По умолчанию это та же директория, где расположены конфигурационные файлы Samba;
? ssl CA certFile = файл — указывает на файл сертификата, необходимый для работы протокола SSL, гарантирующего безопасность передачи данных;
? unix password sync = yes — разрешает пользователям Windows менять пароль Samba, одновременно обновляя системные пароли в Linux. Если нет такой необходимости, то установите значение параметра no. Для работы этой директивы нужно указать программы, которые будут изменять пароли (команда passwd program) и сообщения, появляющиеся перед пользователем (команда passwd chat). Приведу пример использования:
unix password sync = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n *Retype*new*password* %n
*passwd:*all*authentication*tokens*updated*successfully*
Помимо этого, необходимо использовать директивы encrypt passwords и smb passwd file;
? username map = файл — указание на файл, где хранится список пользователей Samba-сервера для Windows 9x-клиентов (о нем подробнее мы поговорим в разд. 6.3).
Данный текст является ознакомительным фрагментом.