Чтение онлайн

ЖАНРЫ

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

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_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\VNETSUP

Для Windows NT это:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parametrs

В Windows 2000:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters

Если соответствующего параметра не существует, то его следует создать. Он должен иметь тип 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\n *Retype*new*password* %n\n

*passwd:*all*authentication*tokens*updated*successfully*

Помимо этого, необходимо использовать директивы

encrypt passwords
и
smb passwd file
;

username map = файл
— указание на файл, где хранится список пользователей Samba-сервера для Windows 9x– клиентов (о нем подробнее мы поговорим в разд. 6.3).

6.1.3. Сеть

В этом разделе нам предстоит рассмотреть директивы настройки сетевого протокола:

□ 

include = файл
— позволяет подключить конфигурационный файл smb.conf с другого компьютера. Имя файла задается в формате
путь.%m
. В данном случае
путь
— это полное имя файла на удаленной машине, а
%m
— это NetBIOS-имя компьютера. Например: /etc/samba/smb.conf.robert;

□ 

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
задает параметры протокола и размер входного и выходного буфера.

В данном случае:

 • 

TCP_NODELAY
— позволяет быстрее передавать данные (без задержек);

 • 

SO_RCVBUF
— размер принимающего буфера;

 • 

SO_SNDBUF
— размер передающего буфера;

□ 

interfaces = интерфейсы
— если у вас установлено две сетевые карты, которые направлены на разные сети, то с помощью этой директивы можно позволить работать с Samba пользователям из обеих сетей.

6.1.4. Как домен

Если проанализировать все параметры, которые мы будем рассматривать в этом разделе, то станет очевидно, что Samba способна заменить Windows- сервер, и рабочие станции на базе Windows не заметят неудобств:

□ 

local master = yes
— позволяет сделать ваш Samba-сервер основным браузером сети;

□ 

domain master = yes
— позволяет сделать Samba-сервер главным браузером домена. Не устанавливайте значение
yes
, если в вашей сети есть Windows NT контроллер домена;

Поделиться с друзьями: