UnixMountainSkiFun

Unix Горы Лыжи

02-06-2008 15:19

Другая сторона медали: Samba в качестве сервера


Помните насколько мало требовалось усилий по конфигурированию для того, чтобы клиентская часть Samba заработала? Так вот дружок, эти дни прошли. Теперь придется изменить куда больше конфигурационных параметров, тем не менее мы опишем каждый из них. Однако довольно ходить вокруг да около, вот он, наш подправленный smb.conf.

 ;
 ; /etc/smb.conf
 ;
 [global]
     workgroup = CURTIS
     guest account = nobody
     keep alive = 30
     os level = 2
     security = user
     encrypt passwords = yes
     socket options = TCP_NODELAY
     map to guest = Bad User
     interfaces = 192.168.2.102/255.255.255.0
     wins support = no

 [cdrom]
     comment = Linux CD-ROM
     path = /cdrom
     read only = yes
     public = yes
     locking = no

 [music]
     comment = My Music Files
     browseable = yes
     public = no
     writeable = no
     create mode = 755
     path = /MyMusic
  • workgroup: Все мои Windows-компьютеры принадлежат рабочей группе CURTIS, поэтому имеет смысл и Samba сделать членом этой рабочей группы.
  • guest account: Этот параметр установлен в nobody. Этот параметр не столь важен для нас, так как вряд ли вы предоставите доступ по записи кому-либо без имени и пароля.
  • keep alive: Устанавливает число секунд меж "keepalive"-пакетами, которые используются для того, чтобы определить "жив" ли клиент, и способен ли он отвечать. Значение в 30 секунд является наиболее общим для всех случаев, -- его зачастую вполне достаточно, чтобы достаточно быстро определить не "подвис" ли клиент, и вместе с тем оно достаточно мало для того, чтобы не "зафлудить" сеть "keepalive"-пакетами.
  • os level: Устанавливает "значимость" Samba-сервера с точки зрения "выборов master browser-а" (master browser elections). Рабочие станции и серверы Windows NT постоянно пребывают в состоянии войны за то, кто же будет главным (а точнее кто станет master browser-ом), и чем выше такое значение, тем больше шансов, что такой сервер победит. Я устанавливаю это значение поменьше, так как у меня в сети есть другой Samba-Сервер, со значением этого параметра 65, что означает, что он должны выиграть при любом раскладе (election).
  • security: Допустимыми значениями этого параметра являются user, share, server и domain. Я установил его как user, что означает пользовательскую безопасность. Я поступил так потому, что во-первых я убежден, что это правильно, и во-вторых потому, что я использую одних и тех же пользователей как для Windows, так и для Unix-компьютеров. Если в этих системах имена пользователей не совпадают, то наверное стоит остановиться на ресурсной безопасности (share-based security). Ресурсная безопасность весьма удобна для ресурсов незащищенных паролем, например таких как принтеры. Настройки безопасности сами по себе достаточно важная и обширная часть конфигурационного файла, а значит и всей инсталляции Samba. Рекомендуем прочитать соответствующую часть страниц руководства Samba, чтобы разобраться какой подход к безопасности более приемлим в вашем случае. Кроме этого найдите и прочитайте хорошую книгу по инсталляции Samba.
  • encrypt passwords: Если вы используете Windows 98 или NT 4.0 SP3, то установите значение этого параметра в yes. В противном случае -- в no. Если у вас в сети "солянка" из Windows разного вида, то Бог вам в помощь. Однако, если быть серьезным, -- есть несколько статей о случаях, когда в одной сети Windows 9x, NT и 2000. И снова, читайте документацию по Samba, -- это поможет.
  • socket options: Значение TCP_NODELAY позволит достичь максимальной производительность. Установите этот параметр именно так.
  • map to guest: Этот параметр не используется если уровень безопасности установлен в share. Говоря кратко, этот параметр определяет того, какой пользователь то будет выступать как гостевой пользователь (guest user). Значение Bad User означает, что если кто-либо введет имя пользователя, несуществующее в файле smbpasswd, то в результате таких действий соединение будет осуществлено под гостевым пользователем. Остальными опциями являются Bad Password, Never и Bad Andy. Суть значения Never понятна из его названия, а значение Bad Andy -- это особый случай для всякого рода шутников.
  • interfaces: Это строка описывает IP-адрес и сетевую маску, для того случая когда требуются широковещательные запросы. Если эта опция не установлена, то Samba будет определять эти значения автоматически.
  • wins support: Не стоит устанаваливать этот параметр в true если только у вас не сложная сеть с подсетями и вы желаете установить некоторый компьютер, в качестве WINS-сервера.

Параметры, касающиеся ресурсов

  • [sharename]: Каждый ресурс должен иметь внутреннюю метку. Иначе как Samba разберется где какой ресурс?
  • comment: Поместите здесь все, что считаете нужным сообщить о ресурсе. Эта строка будет видимой, когда Вы просматриваете Сетевое Окружение (Network Neighborhood) в детальном режиме (Detail mode).
  • path: Это полный путь к ресурсу в Linux-системе.
  • read-only: Настройка говорящая о том, могут ли пользователи иметь доступ по изменению к этому ресурсу.
  • locking: Этот параметр может быть полезным для файловых систем, доступных только для чтения (по типу CD-ROMов). В соответствии со страницами руководств, этот параметр не требуется. Однако SuSE устанавливает его, а так как разработчики этого дистрибутива достаточно умны, то считаю, что я последую их примеру.
  • browseable: Определяет будет ли данный ресурс показан в окне просмотра Сетевого Окружения (Network Neighborhood). Если установить этот параметр в no или false, то ресурс не будет виден.
  • public: Это синоним параметра "guest ok."
  • writable: Определяет будет ли у пользователей возможность получить доступ к ресурсу по записи. Явный антипод read-only, не так ли?
  • create mode: Значение прав доступа по-умолчанию для файлов вновь созданных на этом ресурсе. Формат такой же как для численного аргумента прав доступа команды chmod.

Конечно же имеется намного больше параметров. Вы можете потратить недели на то, чтобу изучить их все, однако для того, чтобы настроить и запустить Samba-сервер все они не потребуются, поэтому они и не рассматриваются в этой части главы. Но точно могу сказать одно, -- вы действительно можете довольно тонко настроить Samba. Это полнофункциональная замена Windows NT server -- тут вряд ли кто поспорит.

smbpasswd

Утилита smbpasswd позволяет добавлять, удалять и изменять пароль для учетных записей пользователей из локальной базы данных Samba. Этот функционал полезен только вот случае, если у вас установлен параметр security = user. Это означает, что Samba будет использовать "свою собственную" ("roll its own") аутентификацию, вместо той, которую предоставляет контроллер домена. Когда кто-либо пытается соединиться с Samba-компьютером с Windows-компьютера, то ему потребуется ввести одно из таких имен пользователей и правильный пароль.

Когда вы только-только установили Samba, то потребуется добавить некоторых пользователей в локальную базу данных. Для этого используйте следующую команду:

 $ smbpasswd -a username

Отметим, что такие пользователи должны быть также и пользователями Linux-компьютера. Samba конечно же не предоставит пользователям Windows удаленный root-доступ, лишь по той причине, что так уж вышло. что они знают пароль. Вместо этого удаленные пользователи получают привилегии того пользователя Linux, который соответствует этому имени. Права доступа на Linux-системе влияют на то, что допустимо пользователям этого ресурса.

Другими опциями smbpasswd являются: -x для удаления пользователя, -d для деактивирования (disable) пользователя и -n чтобы создать пользователя без пароля. Однако, пожжжжжалуйста, не используйте -n. Это глупо.

Теперь, когда пользователи и ресурсы настроены, любой Windows-клиент в моей сети должен быть способен соединиться с ресурсом music, подключением сетевого диска к \\SAMBASERVER\MUSIC. Если они зашли в Windows-сеть под тем же самым именем пользователя и паролем как тот, что я установил с помощью smbpasswd, то они могут выполнить такую операцию сразу же. В противном случае, появится окошко аутентификации, в котором необходимо ввести имя пользователя и пароль. Я не буду здесь говорить о рабочих станциях Linux, так как мы уже знаем как соединиться с ресурсами в таком случае.

Становимся сервером в существующем домене

Правда же грустно добавлять в Ваш Linux-компьютер пользователей, которые уже имеют учетные записи в Windows-домене? И это еще ничего, а ведь надо еще и с изменением паролей возиться. Если у вас уже есть Windows-домен с первичным контроллером домена, то думается, проще будет предписать Samba-серверу использовать аутентификацию в Windows-домене.

Для этого просто установите в конфигурационном файле параметр security = domain, и затем используйте smbpasswd -j, чтобы сказать первичному контроллеру домена о том, что вы желаете быть добавленным в домен. Кроме того необходимо указать параметр password server = <myPDC>. Отметим, что ваш PDC может быть как Samba-компьютером, так и NT-компьютером. Вне зависимости от того, насколько хороша или плоха эта мысль, но тем не менее не указывайте Samba-серверу на себя! Вы слышали о понятии бесконечный цикл (infinite loop)? Я уверен слышали. Тем не менее, внимательно прочтите в документации относительно password server и параметров безопасности, и тогда все вопросы отпадут сами собой.

Несколько слов о Windows 2000

О чем думаем? Прикупить очередной MS upgrade? Вах! Есть такое дело, -- можно и купить. Кстати, Samba 2.2.0 и выше может действовать как первичный контроллер домена W2K (Primary Domain Controller for W2K), с некоторыми ограничениями функциональности. Доступ к файловым ресурсам точно такой же как и в Samba 2.0.7. Народ, более умный чем я, давно уже пересел на эту новую версию. Наверняка появилось что-то более новенькое с момента публикации этой книги, потому проверьте web-страничку Samba, почитайте свежую документацию. Некоторая дополнительная документация по использованию Samba 2.2.0, в качестве PDC может быть доступна на http://us1.samba.org/samba/docs/samba-pdc-faq.html.

SWAT

SWAT это web-инструмент для администрирования Samba (Samba Web Administration Tool). Он позволит настроить и конфигурировать ваш smb.conf посредством броузера. Перед тем как я продолжу, необходимо заметить, -- я ненавижу GUI-конфигураторы. Они действительно меня раздражают. Такой подход не привносит ничего сверх того, что можно сделать с помощью командной строки, и кроме того они редко работают без глюков. Сказав это, теперь можно сказать о SAWT вот что, -- я люблю этот инструментарий. Это действительно вылизанная система, которая имеет в своем составе даже аутентификацию.

SWAT запускается через inetd и имеет всего две опции: -a и -s. Опция -s определяет корректный путь к конфигурационному файлу (SWAT предполагает, что он располагается в /usr/local/samba/lib/smb.conf, а опция -a отключает аутентификацию. Вполне возможно что вы не пожелаете использовать -a. Мда. Надо же. А вот я воспринимаю эту опцию всерьез.

Чтобы запустить SWAT потребуется добавить строку в /etc/services и еще одну в /etc/inetd.conf. Итак, добавляем в /etc/services следующее:

 swat            901/tcp

Число 901 может быть любым (до 1024) портом, важно только убедиться, что этот номер еще не используется. Страницы руководства SWAT предупреждают о "черной дыре" в безопасности, которая может появиться, когда вы надумаете использовать номер порта выше чем 1024.

Теперь добавьте следующую строку в /etc/inetd.conf:

 swat  stream  tcp  nowait.400  root  /usr/local/samba/bin/swat swat -s /usr/samba/smb.conf

Обратите внимание на опцию -s. Она указывает месторасположение конфигурационного файла Samba на моей Debian-системе. После того как изменены оба файла, небоходимо "сказать" демону inetd, чтобы он перечитал свою конфигурацию:

 # kill -HUP `pidof inetd`

или

 # /etc/rc.d/init.d/inetd reload

Теперь запускайте свой броузер и набирайте http://localhost:901/. И всех дел!

Предостережения

Желательно использовать SWAT только с localhost. Хоть и имеется парольная аутентификация, тем не менее пароль пересылается по сети открытым текстом и таким образом подвержен "вынюхиванию" (sniffing), точно так же как и Telnet. Одним словом, как только вы хоть разок "проколетесь" с паролем, то мигом откажетесь от удобства испльзования SWAT удаленно.

Предупредим любителей конфигурирования с помощью редактора: SWAT удаляет комментарии, дупликаты и include-параметры из вашего конфигурационного файла Samba. Если у вас уже есть настроенный файл smb.conf, то либо не используйте SWAT, либо для начала сохраните его.

Рисунок 5-4 демонстрирует начальный экран SWAT-а, при просмотре сети на месте работы Mr.Anderson-а. Рисунок 5-5 -- это экран выбора, на момент указания того, с каким ресурсом мы будем работать. Рисунок 5-6 представляет некоторые параметры, которые можно установить в окне управления ресурсом.

Рисунок 5-4. Главное окно SWAT.

Рисунок 5-5. Выбор ресурса в SWAT.

Рисунок 5-6. Работа с ресурсом в SWAT.

Я люблю SWAT. В нем реализованы прекрасные Help-ссылки для каждого из параметров. Это самый простой способ начать создавать свои собственные общедоступные ресурсы и управлять практически всем, что есть в вашем Samba-сервере.

<< Практикум | Multi Tool Linux | Выводы >>


edit RightSideBar