Linux-сервер своими руками — страница 45 из 119

Протокол Server Message Block (SMB)

9.1. Установка Samba

В этой главе вам предстоит настроить пакет Samba, предназначенный для использования протокола SMB (Server Message Block), который также еще называется протоколом NetBIOS. С помощью пакета samba ваш компьютер, работающий под управлением linux, ничем не будет отличаться от рабочей станции или сервера сети Microsoft. Дополнительную документацию по этому поводу можно найти по адресу http://www.samba.org, а также на всевозможных форумах.

С помощью Samba вы сможете следующее:

1. Предоставлять доступ к разделам Linux для рабочих станций Windows.

2. Получать доступ к ресурсам сети Microsoft.

3. Распечатывать документы на сетевых принтерах сети Microsoft, а также позволить использовать свой принтер в качестве сетевого.

При установке, на первом этапе нужно установить пакеты samba, samba-common и samba-client:

# rpm –ih /mnt/cdrom/Mandrake/RPMS/samba*

При этом, если вы используете другой дистрибутив (не Mandrake, как указано в примере), перейдите в нужный каталог.

Пакет samba состоит из двух основных файлов — smbd и nmbd. Первый из них является носителем протокола 8MB, а второй обеспечивает поддержку имен NetBIOS. Сразу же после их настройки ваш компьютер будет отображаться в сети.

После установки сервисы smbd и nmbd конфигурируются как автозапускаемые, то есть вам не придется самостоятельно производить никаких действий по их запуску. Возможно, вас не устраивает такой вариант (например, в тех случаях, если обращение к ним будет производиться редко, и вы хотите освободить память). В этой ситуации никто не мешает добавить их в файл конфигурации суперсервера /etc/inetd.conf и запускать «по востребованию». При этом не забудьте только отключить их автозагрузку с помощью конфигуратора системы.

В этой главе будет рассмотрена настройка пакета Samba «вручную», то есть не прибегая к помощи конфигуратора. Вы же можете использовать конфигуратор netconf (см. рис. 9.1), но в этом случае есть одно «но»: если вы будете настраивать Samba или любую другую службу сервера в другом дистрибутиве (не Red Hat или Mandrake), привычного вам конфигуратора может и не быть, поэтому вы должны знать хотя бы назначение и расположение системных файлов той или иной службы сервера.

Рис. 9.1. Конфигурирование Samba


Если же вы все-таки решили использовать конфигуратор, запустите netconf и, перейдя на вкладку Server Tasks, выберите конфигурирование samba (см. рис. 9.1).

С помощью конфигуратора netconf вы можете полностью настроить пакет Samba — от указания общих параметров (см. рис. 9.2) до определения общих ресурсов (см. рис. 9.3).

Рис. 9.2. Общие параметры

Рис. 9.З. Определение общих ресурсов

9.2. Настройка файлового сервера

Основным конфигурационным файлом сервера Samba является файл /etc/smb.conf. Именно в нем задаются все используемые и предоставляемые ресурсы. Формат данного файла напоминает формат INI-файла программ для Windows, например, win.ini. Файл /etc/smb.conf состоит из нескольких секций, в начале каждой из которых в квадратных скобках указывается ее имя. Параметры в каждой секции указываются в виде записей Имя=3начение. Основной является секция [global], ее пример приведен в листинге 9.1.

Листинг 9.1. Пример секции global

[global]

workgroup = WORK

comment = Linux Server

guest account = guest

security = share

printing = bsd

printcap name = /etc/printcap

load printers = yes

client code page = 866

character set = koi8-r

encrypt passwords = Yes

log file = /var/log/samba/log.%m

max log size = 50

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

dns proxy = no

wins support = yes

domain master = yes

interfaces = 192.168.1.1/24 192.168.2.1/24

Параметр workgroup определяет рабочую группу или имя домена NT. Параметр comment аналогичен параметру NT Description для ОС Windows NT или Description (Описание компьютера) для ОС Windows 9x. Параметр guest account задает имя пользователя. Указание guest в качестве пользователя означает, что пользователи получают доступ без регистрации. Вернее, регистрация все же происходит, но используется гостевая учетная запись.

Следующий параметр — параметр security может принимать три значения:

share — при каждом доступе будет запрашиваться имя пользовательского ресурса.

user — для аутентификации будет использоваться имя пользователя и пароль, которые используются для входа в сеть Windows. Это значение используется по умолчанию.

server — для проверки пароля будет использоваться сервер NT.

Записи printing и printcap name относятся к подсистеме печати. Первая из них задает систему печати типа BSD, а вторая — указывает, где расположен файл, содержащий информацию о принтерах. О настройке принтеров мы поговорим немного позже.

Параметры client code page и character set необходимы для корректного отображения русскоязычных имен файлов файловой системы Windows.

В ОС Windows NT, начиная с Service Pack 3, передача паролей по сети происходит в закодированном виде. Последние версии Samba позволяют поддерживать эту возможность. Для этого нужно установить значение параметра encrypt password равным yes. Если ваша версия Samba не поддерживает данную возможность, то вы можете отключить использование закодированных паролей в Windows. Учитывая, что вам придется вручную изменять параметр реестра всех рабочих станций Windows, мне кажется, что проще обновить Samba. Но если вас все же интересует, какой именно параметр реестра Windows нужно изменить, я укажу его. В разделе реестра ОС Windows NT:

[NT HKEY_LOCAL_MACHINE\System\Current ControlSet\Services\Rdr\Parameters]

нужно создать ключ EnablePlainTextPassword типа DWORD и установить его значение, равное 1. В ОС Windows 9x вам нужно создать тот же ключ, но в разделе

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\Parameters] 

В ОС Windows 2000 нужно внести изменения в раздел реестра

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters]

Параметры log file и max log size определяют имя файла протокола (журнала) и его максимальный размер. Опции сокетов задаются с помощью параметра socket option.

Прежде, чем задавать опции сокета, рекомендую прочитать справочное руководство по файлу smb.conf.

Если в вашем компьютере установлено несколько сетевых интерфейсов, вы можете сконфигурировать пакет Samba так, чтобы он использовал все интерфейсы. Как это сделал я, показано в листинге 9.1.

Теперь перейдем к следующей секции, которая определяет параметры совместно используемых ресурсов. Данная секция называется [homes]. Пример содержимого этой секции приведен в листинге 9.2.

Листинг 9.2. Секция [homes]

[homes]

comment = Home 

browseable = yes 

writable = yes

Параметр browseable=yes (см. листинг 9.2) разрешает отображение совместно используемых ресурсов в сети Microsoft. Параметр writable =yes разрешает запись в каталоги (вместо этого параметра может использоваться параметр read only=no).

Теперь создадим общий каталог (см. листинг 9.3). Делается это в секции [public].

Листинг 9.3. Секция [public]

[public]

comment = Public 

Directory path = /home/samba 

read only = no

Ваших знаний уже достаточно, чтобы самому произвести дальнейшую настройку. В качестве завершения этого раздела я приведу пару практических примеров (см. листинг 9.4). Обратите внимание, что в файле smb.conf комментарии могут обозначаться либо решеткой (#), либо точкой с запятой (;).

Листинг 9.4.

; Каталог NETLOGON для входа в домен

[netlogon]

comment = Samba Netlogon Service 

path = /var/netlogon

; He устанавливайте значение yes

case sensitive = no

guest ok = yes

locking = no

writable = yes

browseable = yes

; Профиль для совместно используемых ресурсов