Samba применяется даже в сетях, не использующих компьютеры под управлением DOS, Windows, OS/2 и других систем, в которых основным протоколом разделения файлов является SMB/CIFS. UNIX, Macintosh, BeOS и другие системы также поддерживают SMB/CIFS. Если такая поддержка не реализована в самой системе, она обеспечивается продуктами независимых производителей. Linux позволяет работать и с другими протоколами разделения файлов (в частности, Linux поддерживает средства NFS, которые будут подробно рассмотрены в главе 8), однако в некоторых случаях использование Samba предпочтительнее. Модель защиты SMB/CIFS (к которой для аутентификации применяются пользовательские имена и пароли) отличается от модели NFS (где компьютеры идентифицируются по IP-адресам, а за безопасность системы отвечают средства защиты клиента).
Настройка Samba
При настройке Samba устанавливаются опции общего назначения, а также выбирается конфигурация конкретных разделяемых объектов Samba (разделяемыми объектами считаются каталоги и принтеры, которые Samba предоставляет клиентам). Опции общего назначения чрезвычайно важны, так как если они установлены некорректно, то доступ к серверу станет невозможным. Кроме того, эти настройки влияют на выполнение задач, непосредственно не связанных с разделением файлов и принтеров. К таким задачам относится, например, идентификация компьютеров в сети NetBIOS.
Конфигурационный файл Samba
Для настройки Samba используется файл smb.conf. В большинстве дистрибутивных пакетов Linux он помещается в один из следующих каталогов: /etc, /etc/samba или /etc/samba.d. Подобно многим другим конфигурационным файлам Linux, в smb.conf для обозначения комментариев в начало строки включается символ #. Остальные строки файла разбиты на разделы, каждый из которых содержит определение разделяемого объекта. В начале раздела находится имя разделяемого объекта, помещенное в квадратные скобки:
[имя_разделяемого_объекта]
Последующие строки раздела определяют характеристики объекта — имя каталога, соответствующего разделяемому объекту, особенности обработки файлов и т.д. Раздел, содержащий опции общего назначения, выглядит как определение разделяемого объекта, но таковым не является. В начале этого раздела указано имя [global]. Некоторые из опций, указанных в этом разделе, могут быть переопределены для конкретных объектов, а другие опции могут находиться только в разделе [global].
Для настройки Samba используются параметры, которые представляются в следующем формате:
параметр = значение
Samba позволяет использовать при указании параметров символы как нижнего, так и верхнего регистра, но в большинстве случаев имена параметров содержат только символы нижнего регистра, а значения параметров начинаются с прописной буквы. Некоторые значения, например имена файлов Linux, зависят от регистра символов. Ряд параметров предполагает двоичные значения; в этом случае Yes, True и 1 являются синонимами (точно так же синонимами являются значения No, False и 0).
Идентификация сервера Samba
В сетях NetBIOS используется система имен, не связанная с доменными именами, применяемыми в сетях TCP/IP. Например, компьютеру harding.threeroomco.com может соответствовать имя BILLY, принадлежащее домену USPRES. Для того чтобы удобнее было отличать имена TCP/IP от имен NetBIOS, последние будут представляться в данной главе символами верхнего регистра. В системе NetBIOS предусмотрены два уровня имен: имена компьютеров и имена рабочих групп или доменов. (Домены NetBIOS не имеют никакого отношения к доменам TCP/IP.) В Samba предусмотрены средства поддержки как имен компьютеров, так и имен рабочих групп и доменов.
Различие между рабочей группой и доменом NetBIOS не очень существенны. Рабочая группа — это набор компьютеров с общим именем группы. Домен отличается от рабочей группы тем, что в нем присутствует специальный компьютер, называемый контроллером домена, который обеспечивает централизованную аутентификацию и выполняет некоторые другие функции. Домен может занимать несколько сегментов сети; для рабочей группы реализовать такую конфигурацию затруднительно. При необходимости компьютер, на котором выполняется сервер Samba, может выступать в роли контроллера домена (этот вопрос будет обсуждаться далее в данной главе).
Имя рабочей группы или имя домена задается с помощью параметра workgroup:
workgroup = USPRES
Данный параметр указывает на то, что компьютер принадлежит рабочей группе USPRES. Система может взаимодействовать с членами других рабочих групп, но при выполнении ряда функций, например при просмотре сети средствами Windows, используется имя рабочей группы. Если имя группы будет задано некорректно, сервер Samba станет недоступным для броузеров Network Neighborhood и My Network Places. Эта проблема часто возникает при установке исходной конфигурации Samba.
По умолчанию Samba использует в качестве имени узла NetBIOS первый компонент доменного имени TCP/IP этого компьютера. Например, для компьютера harding.threeroomco.com Samba выберет NetBIOS-имя HARDING. Это значение можно изменить с помощью параметра netbios name. Параметр netbios aliases позволяет присвоить одному компьютеру несколько имен NetBIOS. Например, если в конфигурационном файле будут присутствовать приведенные ниже строки, то к компьютеру можно будет обращаться как по имени BILLY, так и по имени WILLIAM.
netbios name = BILLY
netbios aliases = WILLIAM
В большинстве случаев рекомендуется, чтобы имя компьютера, входящее в состав домена TCP/IP, и имя NetBIOS, совпадали. Это исключит недоразумения при обращении к узлу сети.
Защита системы
В ранних реализациях SMB/CIFS пароли передавались по сети в незашифрованном виде. Это давало возможность для перехвата их другими узлами локальной сети, а если в обмене данными участвовали маршрутизаторы, то пароль мог быть перехвачен и внешними компьютерами. В последующих реализациях SMB/CIFS были использованы средства шифрования паролей. Однако способы кодирования SMB/CIFS не совместимы со способами, которые используются для поддержки локальных паролей Linux. Закодированный пароль SMB/CIFS невозможно сравнить с записями, хранящимися в локальной базе Linux, поэтому в Samba была реализована собственная база паролей. Эта база называется smbpasswd, а для управления ею используется одноименная утилита.
В системе Windows, начиная с версий Windows 95 OSR2 и Windows NT 4.0 SP3, по умолчанию используются зашифрованные пароли. Если сервер Samba настроен для передачи незакодированных паролей, взаимодействие с Windows будет невозможным. Для того чтобы устранить эту проблему, надо переконфигурировать либо сервер Samba, либо систему Windows. Чтобы изменить конфигурацию Samba, придется затратить меньше усилий, кроме того, такой подход гораздо предпочтительнее с точки зрения безопасности системы.