Файловый сервер под SAMBA? Без
проблем
Юрий Лушня
Данная статья была изначально
написана для
LinuxRSP (www.citycat.ru/linux)
ВНИМАНИЕ: при использовании данной статьи в
целях создания и разработки своего файлового
сервера под управлением пакета Samba, ОЧЕНЬ
РЕКОМЕНДУЕТСЯ прочитать SMB-HOWTO, NET-HOWTO, а также
использовать команды man smbclient и man smbmount для более
подробной информации.
В данной статье речь пойдет о настройке
файлового сервера под управлением Samba. Причем, здесь будут даны
только начальные сведения по настройке Samba. Более
подробнее об этом можно узнать в SMB-HOWTO, а также в
NET-HOWTO. Ну а в этой статье я попробую ввести
начинающих пользователей
Linux в процесс установки своего собственного
файлового сервера под управлением Samba, а так же
попытаюсь остановиться на некоторых аспектах
файла smb.config.
То, что Linux может работать продолжительно и
бесперебойно - это ФАКТ. Возникает вопрос: почему
бы не оснастить какую-нибудь "четверку"
Linux'ом и не
сделать из нее сервер? Наверное, это не плохое
предложение. Более того, большинство знакомых
мне администраторов сети так и делают.
Попробуем реализовать данную догадку на базе
пакета Samba. Данный пакет работает на основе
протокола SMB. Очень много плюсов он заслуживает
за широкую распространенность и
нетребовательность к ресурсам (достаточно
наличия компьютера на базе 80486 и 4 МБ оперативной
памяти *вот до чего техника дошла :)*).
Первым делом инсталлируем пакет Samba. Данный пакет
состоит из двух отдельных программ (демонов): smbd
(носитель протокола SMB) и nmbd (поддержка имен NetBIOS).
Сначала их нужно правильно сконфигурировать и
запустить. Только тогда ваша система (Linux) будет
отображаться в сети.
Есть несколько вариантов загрузки smbd и nmbd
демонов. Один из них, это когда запуск демонов
производится автоматически при инсталляции.
Если же вам это не нравится, то можно
использовать сценарий Start-and-Stop в каталоге
/etc/rc.d/init.d. Данный сценарий используется для
загрузки вышеописанных демонов в память. Если и
это не подходит, тогда используйте Super-Demon Inetd
(конфигурационный файл /etc/inetd.conf). При
использовании последнего будьте предельно
внимательны и из соображений безопасности лучше
используйте (при запуске посредством inetd) TCP-Swapper.
Этот модуль фильтрует поступающие запросы в
соответствии с записями в файлах /etc/hosts.allow и
/etc/hosts.deny, которые разрешают другим компьютерам
доступ к системе (allow) или запрещают его (deny). На
основе всего этого попробуем сделать корректные
(правильные) записи в файл /etc/inetd.conf. Они будут
выглядеть следующим образом:
netbios-ssn stream tcp nowait root
usr/sbin/tcpd/usr/sbin/smbd
или же
netbios-ns dgram udp wait
root/usr/sbin/nmbd nmbd
Характер предоставляемых ресурсов и разрешений
на их использование определяется файлом /etc/smb.conf.
Данный файл имеет очень большое значение при
настройке Samba. Ниже я приведу "примитивный
пример" файла smb.conf и попытаюсь вкратце описать
функции той или иной строки.
Все разделы в файле smb.conf разбиты по спецификации
и заключены в прямоугольные скобки [ ]. Отдельные
записи созданы в соответствии с формулой Set_name =
значение.
Первый раздел именуется [global]
[global]
guest account = guest
security = share
printing = bsd
printcap name = /etc/printcap
load printers = yes
Теперь попытаемся разобраться со всеми этими
записями. Запись
guest account = guest говорит о том, что пользователи
получают доступ без регистрации согласно
учетной записи пользователя-гостя (guest). Наверное,
все-таки есть смысл оставить эту запись (у меня,
например, таковая имеется в /etc/smb.conf). Но все же
следует приделать внимание и осторожность при
предоставлении прав доступа записи
пользователя-гостя.
Дальше следует запись security = share. Она определяет,
каким образом задается имя пользователя. Что это
такое? В security можно задать одно из трех значений:
share, user, server. Если указывается в качестве значения
security = share, то при каждом доступе запрашивается
имя пользовательского ресурса. Запись security = user
задействует имя пользователя компьютера Windows
(нужно указать имя пользователя, под которым вы
входите в сеть Windows. Пароль - соответственно). И,
наконец, если security = server, тогда данная запись
использует для проверки пароля возможности
NT-Server.
Переходим ко второму разделу файла smb.conf. Этот
раздел называется [directory] и служит для
совместного доступа к каталогам. Для совместного
использования отдельного каталога необходимо
указать полный путь к этому каталогу. При этом
воспользуемся следующей последовательностью
записей:
[directory]
comment = elk's directory #комментарий
path = совместно используемый каталог
read only = yes
Здесь запись path устанавливает, какой каталог
должен использоваться совместно (например,
/usr/doc/SMB-HOWTO). Ресурсы, предоставляемые для
совместного использования, должны иметь
отдельную запись для каждого каталога. Для
собственных же каталогов пользователей
коллективный доступ реализуется следующим
образом:
[homes]
comment = #здесь можно написать комментарий
browserable = yes
read only = no
Пояснения. В качестве имени сетевого ресурса, Samba
использует имя пользователя, относящегося к
числу "родных" ("своих"). Следовательно,
запись browserable = yes обеспечивает отображение в сети
Windows совместно используемых каталогов. Следующая
запись read only = no обеспечивает возможность записи
в каталогах (если здесь no поменять на yes, тогда
записывать в каталоги не будет возможности).
Проблемы
Проблема љ 1. Закодированные пароли
С появлением Windows NT 4 (ох уж этот Windows) в
операционных системах Microsoft происходит передача
закодированных паролей по сети. Этот процесс
происходит так же, как и в среде Windows 98 (начиная с NT Service Pack 3). К сожалению, Samba не
поддерживает ЭТОГО.
Что же делать? Так как безвыходных ситуаций не
бывает (хотя, чем Windows не шутит :), то попытаемся
что-то сделать.
Рабочее окружение формируется с помощью записи в
системном реестре (Windows): создаем запись типа DWORD в
ключе (для Windows NT 4) HKEY_LOCAL_MACHINE\System\Current
ControlSet\Services\Rdr\Parameters или же (для Windows 95/98) HKEY_LOCAL_MACHINE\
System\CurrentControlSet\Services\VxD\Parameters. Даем ей название
EnablePlainTextPassword и присваиваем значение 1.
Это один из способов решения данной проблемы.
Кроме этого, можно установить себе последнюю
версию пакета Samba (например, 2.05а), которая
поддерживает закодированные пароли.
Но, и в том и другом случае управление
пользователями должно происходить с помощью
команды smbpassword, а в файл smb.conf должна добавляться
запись encrypt passwords = yes.
Проблема љ 2. Использование Windows-машин из Linux
Вряд ли начинающие пользователи Linux OS смогут
быстро разобраться с системой доступа к
Linux-файлам из под Windows и наоборот. Но, не все так
сложно. Доступ к Linux-ресурсам из под Windows был
кратко описан выше, а доступ к Windows-ресурсам из
под Linux'а мы сейчас рассмотрим.
Программа smbclient, вызываемая с различными
параметрами (справка вызывается командой man
smbclient), делает ресурсы Windows доступными из Linux. Тем
пользователям, которые работали с Ftp, данная
программа не покажется сложной. С помощью smbclient
вы можете проверять также конфигурацию
собственного Samba-сервера или другие компьютеры
вашей сети. Делается это при помощи команды smbclient
-L компьютер -U имя_пользователя Можно также
непосредственно встроить сетевые ресурсы Windows
или Samba с помощью команды smbmount:
smbmount//имя_компьютера/каталог/Mountpoint -U
имя_пользователя
И заключение. Можно с уверенностью сказать, что
настройка своего файлового сервера под Linux -
"дело популярное". Если же еще и учесть, что
NT- и Samba-сервер в одной сети с трудом терпят друг
друга (Windows:) есть Windows:), поскольку Samba в
конкурентной борьбе за домены имеет приоритет по
отношению к NT-серверу,то стоит задуматься о более
эффективном выходе из сложившейся ситуации.
Все предложения и замечания принимаются по этому адресу |