Реклама:

info.krc.karelia.ru

win -:|:- koi -:|:- iso -:|:- dos -:|:- mac

Start -:|:- Проекты -:|:- О нас

Файловый сервер под 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-серверу,то стоит задуматься о более эффективном выходе из сложившейся ситуации.

Все предложения и замечания принимаются по этому адресу