Юрий Лушня
ВНИМАНИЕ: при использовании данной статьи в целях создания
и разработки своего файлового сервера под управлением
пакета 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-серверу,то стоит задуматься
о более эффективном выходе из сложившейся ситуации.
Все предложения и замечания принимаются по
этому адресу
|