|
||||||||||||||||||||||||
|
9Протокол 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 ; Профиль для совместно используемых ресурсов [Profiles] path = /usr/local/samba/proflies browseable = no printable = no guest ok = yes ; Каталог, используемый пользователем admin ; Пользователь admin должен существовать на сервере Samba [admin] comment = admin's directory path = /home/admin valid users = admin root read only = no 9.3. Доступ к SMB-ресурсам из LinuxБудем смотреть правде в глаза, ОС Windows разрабатывалась для домохозяек. Каждая домохозяйка, чтобы просмотреть ресурсы сети Microsoft, использует пиктограмму «Сетевое окружение» на рабочем столе Windows. A теперь представьте, что эта домохозяйка работает в ОС Linux и хочет просмотреть ресурсы сети. Скорее всего, у нее возникнут определенные трудности. Попробуем их сейчас решить. Для просмотра ресурсов сети Microsoft используется программа smbclient. Допустим, вы хотите подключиться к общему каталогу share компьютера nt_ws1. При этом допустим, что ваше имя пользователя user и пароль 123456. В этом случае использование команды smbclient выглядит следующим образом: $ smbclient //nt_ws1/share –U user%123456 Если пароль не нужен, то указывается только имя пользователя без знака процента. После подключения к общему ресурсу, если точнее, к каталогу, вы можете использовать те же команды, что и при работе с клиентом ftp (см. табл. 9.1). Команды программы smbclient Таблица 9.1
Использовать программу smbclient не очень удобно. Гораздо удобнее использовать программу smbmount, которая умеет монтировать удаленный общий ресурс как обычную файловую систему. При этом впоследствии использовать общий ресурс становится гораздо приятнее и удобнее. Ниже приведен пример команды, которая монтирует общий ресурс customers компьютера nt, используя имя пользователя user. Точка монтирования — каталог /mnt/customers, идентификатор пользователя (UID) равен 500, а группы (GID) — 100: smbmount //nt//customers –U user –c 'mount /mnt/customers –u 500 –g 100' Для этих же целей можно воспользоваться командой: smbmount //nt/customers/ /mnt/customers –U user
Рис. 9.4. Общие ресурсы Просмотреть общие ресурсы компьютера можно с помощью опции –L (см. рис. 9.4). Список Browse list (см. рис. 9.4) показывает другие smb-сервера в сети с доступными ресурсами. Опция –I разрешает программе smbclient работать с именами DNS. Например, если домен называется domain.ru, то просмотреть общие ресурсы компьютера nt_ws1 можно командой: $ smbclient –L –I nt ws1.domain.ru 9.4. Доступ к принтеру Linux для Windows-машинДля обеспечения поддержки печати мы уже сделали почти все возможное. Параметр секции [global] load printers загружает принтеры из файла /etc/printcap (см. листинг 9.1). Используется система печати BSD. Теперь осталось определить секцию [printers] файла smb.conf (см. листинг 9.5). В этой секции задаются глобальные параметры для всех принтеров, поэтому нет необходимости указывать их отдельно для каждого принтера. Листинг 9.5. Секция [printers][printers] comment = All Printers security=server path = /var/spool/lpd/lp browseable = no printable = yes public = yes writable = no create mode = 0700 Некоторые параметры, используемые в этой секции (browseable, writable, comment), имеют те же значения, что и в секции [homes]. Параметр path задает буферный каталог, в который файлы будут копироваться перед печатью (так называемый спул принтера). Параметр public в значении yes разрешает печать из-под гостевой учетной записи, то есть всем желающим. Чтобы запретить печать из-под гостевой учетной записи укажите public=no. В этом случае доступ к принтеру будут иметь только зарегистрированные на сервере пользователи. Вместо параметра public иногда используется его синоним — параметр guest ok. Параметр writable установлен в значении по для того, чтобы в буферный каталог принтера (спул) могли записываться только печатаемые файлы. Возможно, вам потребуется разрешить печать только одному или нескольким определенным пользователям на каком-то определенном принтере. Сделать это можно так, как это показано в листинге 9.6. Листинг 9.6. Разрешение печати определенному пользователю[admprn] valid user = root admin administrator path = /home/admin printer = canon public = no writeable = no printable = yes Подключение к Windows-компьютеру сетевого принтера, подключенного к Linux-серверу или Linux-станции, осуществляется аналогично подключению обыкновенного сетевого принтера, подключенного к рабочей станции Windows. В операционной системе Windows 98 для этого проделайте следующие действия: 1. Выполните команду меню Пуск→Настройка→Принтеры. 2. Активизируйте мастера Установки принтера. 3. Выберите тип принтера: сетевой. 4. Укажите путь к принтеру или нажмите на кнопку «Обзор» для автоматического выбора ресурса (см. рис. 9.5). 5. Далее установка сетевого принтера аналогична установке локального. Рис. 9.5. Подключение сетевого принтера 9.5. Доступ к Windows-принтеру с компьютеров, работающих под LinuxПрежде всего, вам нужно создать правильные записи в файле /etc/printcap. С форматом этого файла вы можете ознакомиться в листинге 9.7. Листинг 9.7. Файл printcap# /etc/printcap # # //nt_wsl/hp5m via smbprint # lp:\ # просто комментарий :cm=HP 5MP Postscript hp5m on nt_wsl:\ # имя устройства, открываемого для вывода :lp=/dev/lp0:\ # директория спула принтера (на локальной машине) :sd=/var/spool/lpd/lp:\ # файл учета использования принтера :af=/var/spool/lpd/lp/acct:\ # максимальный размер файла. # Если указано, значение «ноль», то ограничение снимается :mx#0:\ # имя фильтра :if=/usr/bin/smbprint: В листинге 9.7 приведено (в комментариях) описание полей файла printcap, но, я думаю, не помешает отдельно привести их перечень: cm — задает комментарий; lp — имя устройства, открываемого для вывода; sd — директория спула принтера на локальной машине; af — файл учета использования принтера; mx — максимальный размер файла. Если указано значение «ноль», то ограничение снимается; if — имя входного фильтра. Возвращаясь к настройке доступа, убедитесь, что каталог для спула принтера существует и разрешен для записи. Также нужно указать существующее устройство для вывода. В листинге 9.7 этим устройством является /dev/lp0. В пакет Samba входит сценарий smbprint. С помощью этого сценария можно распечатывать документы на сетевом принтере, используя сервисы SMB. Возможно, в состав вашего пакета он не входит, поэтому я воссоздал его в листинге 9.8. Этот листинг частично позаимствован из руководства по пакету Samba. Листинг 9.8. Сценарий smbprint#!/bin/sh –x # (с) Andrew Tridgell # Этот скрипт является фильтром для системы печати, использующей # файл /etc/printcap # Он использует программу smbclient для печати файла на сетевом # принтере, который подключен к рабочей станции Windows. # # smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint # # Запись создает unix-принтер, названный "smb", который будет # печатать с помощью этого скрипта. Вам необходимо создать директорию # спула /usr/spool/smb с соответствующими правами и владельцем # Установите здесь имя сервера и принтер, на который вы хотите печатать. # Далее скрипт был изменен Майклом Гамильтоном (Michael Hamilton) # так что сервер, сервис и пароль могут быть считаны из файла # /usr/var/spool/lpd/PRINTNAME/.config # # Для того, чтобы это работало, запись в /etc/printcap должна # включать файл учета использования (af=…): # #cdcolour:\ # :cm=CD IBM Colorjet on 6th: \ # :sd=/var/spool/lpd/cdcolour: \ # :af=/var/spool/Ipd/cdcolour/acct: \ # :if=/usr/local/etc/smbprint:\ # :mx=0:\ # :lp=/dev/null: # # Файл /usr/var/spool/lpd/PRINTNAME/.config должен содержать # server=PC_SERVER # service=PR_SHARENAME # password="password" # # Например, # server=PAULS_PC # service=CJET_371 # password="" # # Файл для отладочной информации, можно изменить на /dev/null # logfile=/tmp/smb-print.log # logfile=/dev/null spool_dir=/var/spool/Ipd/lp config_file=$spool_dir/. config eval `cat $config_file ` echo "server $server, service $service" >> $logfile ( echo translate echo "print –" cat ) | /usr/bin/smbclient "\\\\$server\\$service" $password –U $user –N –P >> $logfile Теперь вы можете печатать на сетевом принтере. Но, тем не менее, я все же рекомендую прочитать руководство по пакету Samba для получения более подробной информации о печати на сетевых принтерах. 9.6. Пример файла smb.confВ листинге 9.9 приведен пример моего файла /etc/smb.conf. Скорее всего он и у вас тоже будет корректно работать. Листинг 9.9. Файл smb.conf[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 [admin] comment = admin's directory path = /home/admin valid users = admin root read only = no [homes] comment = Home browseable = yes writable = no [public] comment = Public Directory path = /home/samba read only = no [printers] comment = All Printers path = /var/spool/lpd/lp browseable = no printable = yes writable = no create mode = 0700 guest ok = yes 9.7. Конфигуратор SWATКонфигуратор SWAT (Samba Web-based Administrative Tool) предназначен для настройки пакета Samba через Web-интерфейс. Как и другие конфигураторы, например, netconf или linuxconf, SWAT предоставляет удобный графический интерфейс для администрирования сервера Samba. Основным преимуществом данного конфигуратора является то, что вам не нужно находиться за компьютером, который вы администрируете. Администрировать сервера Samba вы можете из любого компьютера вашей сети. Как и при работе с другими конфигураторами, при работе со SWAT вам не нужно знать ни формат конфигурационных файлов, ни их название, ни расположение. Для установки SWAT нужно установить пакет samba-swat. Обычно данный пакет находится на втором компакт-диске вашего инсталляционного набора Linux. Установите пакет командой: rpm –ihv samba-swat-2.2.la-4.1386.rpm После установки пакета проследите за тем, чтобы в вашем файле /etc/services была следующая запись: swat 901/tcp Конфигуратор SWAT для своей работы использует протокол TCP и порт 901. Тем не менее, вы можете назначить любой другой порт. При изменении номера порта не забудьте изменить номер порта в файле /etc/inetd.conf или /etc/xinetd.conf. Если вы используете суперсервер inetd, добавьте в файл /etc/inetd.conf следующую строку (если ее там нет): swatstream tcp nowait.400 root/usr/sbin/swat swat При использовании суперсервера xinetd в каталог /etc/xinetd.conf будет добавлен файл swat следующего содержания (листинг 9.11): Листинг 9.11. Файл /etc/xinetd.conf/swat# default: off # description: SWAT is the Samba Web Admin Tool. Use swat \ # to configure your Samba server. To use SWAT, \ # connect to port 901 with your favorite web browser, service swat { disable = no port = 901 socket_type = stream wait = no only_from = 127.0.0.1 user = root server = /usr/sbin/swat log_on_failure += USERID } Если вы хотите конфигурировать сервер Samba с любого компьютера вашей сети, закомментируйте запись only_from = 127.0.0.1 или установите любые другие параметры доступа к SWAT. Теперь нужно перезапустить суперсервер. Для этого введите команду: /etc/init.d/xinetd restart Можно также воспользоваться командой: killall -HUP xinetd При использовании inetd перезапустить суперсервер можно командой: killall -HUP inetd Все! Настройка SWAT завершена и теперь можно приступить к конфигурированию Samba с помощью SWAT. Для этого запустите свой любимый браузер и введите URL: http://host:901 После установления соединения вы увидите окно, запрашивающее имя пользователя и пароль (см. рис. 9.6). Рис. 9.6. Окно авторизации Введите имя пользователя и пароль. Потом вы увидите основное окно конфигуратора (см. рис. 9.7). Рис. 9.7. Samba Web Administration Tool Из рис. 9.7 видно, что в конфигураторе SWAT все самое нужное находится «под рукой» администратора: от документации до паролей пользователей. В разделе Globals определяются значения глобальных переменных (рис. 9.8). Вы можете получить подсказку по тому или иному параметру, перейдя по ссылке Help. Установить значение по умолчанию можно, нажав на кнопку Set Default. Рис. 9.8. Глобальные переменные Samba В разделе Shares определяются общие ресурсы, а в разделе Printers — общие принтеры. Состояние сервера Samba можно посмотреть в разделе Status (см. рис. 9.9). Здесь же можно запустить, остановить и перезапустить сервисы SMB и NMB. В этом разделе можно завершить любое соединение с сервером Samba, а также просмотреть состояние соединения. Рис. 9.9. Раздел Status В разделе Passwords определяются пользователи, которые имеют доступ к серверу Samba. |
|
||||||||||||||||||||||
Главная | В избранное | Наш E-MAIL | Прислать материал | Нашёл ошибку | Наверх |
||||||||||||||||||||||||
|