|
|||||||
Сетевой диск (samba), настройка 1С в файловом режиме
Время создания: 04.02.2012 12:43
Автор: Кузнецов Константин
Текстовые метки: linux, samba
Раздел: Компьютер - Linux - Samba
Запись: xintrea/mytetra_syncro/master/base/13283486221oqzt4e2v9/text.html на raw.github.com
|
|||||||
|
|||||||
1. Введение 2. Сведения о пакете SAMBA 3. Настройка анонимного samba-сервера 4. Настройка samba для авторизованного доступа 5. Дополнительные возможности 1. Введение Многие сталкивались с работой с данными по сети через "сетевое окружение". Сразу же вспоминаются такие термины, как "расшарить каталог" и "сетевой принтер". Все это относится к протоколу SMB SMB (сокр. от англ. Server Message Block) — сетевой протокол прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессного взаимодействия. Первая версия протокола была разработана компаниями IBM, Microsoft, Intel и 3Com в 1980-х годах; вторая (SMB 2.0) была создана Microsoft и появилась в Windows Vista. В настоящее время, SMB связан главным образом с операционными системами Microsoft Windows где используется для реализации «Сети Microsoft Windows» (англ. Microsoft Windows Network) и «Совместного использования файлов и принтеров» (англ. File and Printer Sharing). Для реализации этого протокола (как серверной его части, так и клиентской) в операционной системе Linux присутствует программное обеспечение SAMBA Samba — программа, которая позволяет обращаться к сетевым дискам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GPL. Начиная с третьей версии Samba предоставляет службы файлов и печати для различных клиентов Microsoft Windows, и может интегрироваться с операционной системой Windows Server, либо как основной контроллер домена (PDC), либо как член домена. Она также может быть частью домена Active Directory. Samba работает на большинстве Unix-подобных систем, таких как GNU/Linux, POSIX-совместимых Solaris и Mac OS X Server, на различных вариантах BSD; в OS/2 портирован samba-клиент, являющийся плагином к виртуальной файловой системе NetDrive. Samba включена практически во все дистрибутивы GNU/Linux. О настройке данного инструмента мы поговорим в этой статье. 2. Сведения о пакете SAMBA Пакет SAMBA дает нам возможность выступать в локальной сети в качестве smb-сервера, т.е. предоставлять доступ к некоторым данным. Конфигурационный файл /etc/samba/smb.conf имеет следующий синтаксис: [секция1] опция1 = значение опция2 = значение [секция2] опция1 = значение опция2 = значение При этом, согласно man smb.conf, имеются три зарезервированные секции: [global] , [homes] и [printers].
С помощью SAMBA можно настроить наш сервер как PDC (Primary Domain Controller), в этом случае добавляются еще две зарезервированные секции: [netlogons] и [Profiles]. Остальные секции, например [somesection] будут соответствовать шарам, т.е. клиент на данном компьютере увидет шару somesection с правами, описанными в данной секции. При всем при этом обращаю внимание на то, что все опции делятся на 3 типа:
Так же упомяну одну интересную опцию, смысл которой необходимо понять и запомнить - security (G). Она может принимать следующие значения: 1) security = share В этом случае доступ к нашему серверу будет открыт как для зарегистрированных, так и для анонимных пользователей 2) security = user Доступ только зарегистрированным пользователям - при подключении к серверу или к шаре будет сразу же появляться приглашение авторизоваться. 3) security = server не рассматривается в данной статье 4) security = domain не рассматривается в данной статье С этим понятно. Приступим к настройке. 3. Настройка анонимного samba-сервера Если наш конфигурационный файл будет совсем пустым, то служба включится, к компьютеру можно будет подключиться по протоколу SMB с правами системного (существующего в системе) пользователя, но смысла от такой настройки нет, т.к. никаких общих ресурсов мы не увидим. Итак, добавляем первые опции в файл конфигурации: [global] # рабочая группа, в которой будет виден наш сервер workgroup = WORKGROUP # сетевое имя компьютера netbios name = SERVER # тип предоставления доступа security = share После чего можно нормально (анонимно) зайти на сервер, но шар все еще нет. Добавляем: # имя сетевого ресурса, под которым он будет виден по сети [share] # комментарий, его можно не писать comment = share # путь к каталогу, содержимое которого будет отображаться в данной шаре path = /home/ftp/upload После перезапуска сервиса мы анонимно сможем зайти на сервер и увидеть там шару "share", но зайти в неё не сможем, так как согласно man smb.conf по умолчанию у нас guest ok = no и guest only = no, что запрещает доступ анонимным пользователям к шаре. Как же так, вы же сами сказали... Секция [global] определяет некоторые опции, значения которых будут распространяться на все остальные секции, если в них явно не указано обратное. Мы в неё записали security = share, и явно обратное у нас не указано. Так то оно так, но опция security определяет тип авторизации при подключении к серверу, а guest ok и guest only - к шаре, и в данном случае они друг к другу никак не относятся и отменять друг друга не могут. Продолжим. Подключиться к такой шаре сможет только авторизованный пользователь, но т.к. у нас security = share, то у нас при подключении к серверу не спрашивают логин и пароль. Для анонимного доступа к шаре необходимо добавить опцию "guest ok = yes" в глобальную секцию либо в секцию шары. Название опции говорит само за себя - разрешить подключаться гостям (анонимным пользователям). Значит теперь к этой шаре могут подключаться пользователи и гости. Если мы хотим, чтоб подключались ТОЛЬКО гости, добавляем "guest only = yes". [global] workgroup = WORKGROUP netbios name = SERVER security = share [share] comment = share path = /home/ftp/upload guest ok = yes guest only = yes Отлично, теперь для анонимного подключения к ресурсу smb://server/share нам ничто не мешает (не забудьте проверить права на каталог /home/ftp/upload !!!) 4. Настройка samba для авторизованного доступа Для запрета анонимного подключения к серверу можно пойти разными путями:
Путь №1 мы рассматривать не будем, т.к. во-первых это топорное (глупое) решение, а во-вторых, потому что это решение никак не связано с темой данной статьи. Рассмотрим подробнее путь №2. Итак, анонимный пользователь подключился к серверу, увидел шары, но зайти не сможет. Для решения данной проблемы необходимо подключать удаленный ресурс с принудительной авторизацией (под другим именем). Такая возможность присутствует у smb-клиентов даже в windows-like операционных системах. Но сначала необходимо добавить пользователя в систему: useradd test а потом назначить ему samba-пароль: smbpasswd -a test Системный пароль пользователю test можно даже не задавать, если под его именем будут подключаться только удаленные smb-клиенты. Путь №3 отличается от второго лишь тем, что логин и пароль у нас будут спрашивать еще на момент подключения к серверу и никаких дополнительных танцев плясать не нужно. Стоит заметить, что доступ к шаре можно ограничить определенным пользователям или группе пользователей с помощью опции valid users valid users = user1,user2,@group1 5. Дополнительные возможности Помимо базовых функций samba-сервера хотелось бы упомянуть некоторые часто используемые администраторами дополнительные его возможности, которые могут понадобиться сразу же после его запуска. Оптимальная конфигурация для предоставления доступа к базам 1С:Бухгалтерии Вот как рекомендуют настроить samba для предоставления доступа к базам 1С наши соотечественники - разработчики из компании etersoft: http://www.etersoft.ru/content/view/56/156/#linuxsamba-cifs Вот выдержка оттуда: Настройка совместной работы по протоколу CIFS WINE@Etersoft позволяет настроить совместное использование файловой базы данных в гетерогенной среде. В качестве файлового сервера при этом может быть использован SAMBA 3.0.14 и выше, Windows 2000 и выше, или другой файловый сервер, работающий по протоколу CIFS. При этом используется специальный модуль ядра Linux (CIFS@Etersoft), модифицированный для корректной работы WINE. Поставляется он в пакете etercifs. Настройка Linux/Samba-сервера для совместной работы по протоколу CIFS Никаких особенных настроек делать не требуется. Если у вас сервер уже настроен и работает с Windows-клиентами, то он будет работать и с WINE@Etersoft. Замечание: При использовании одной и той же машины в качестве файлового и терминального сервера одновременно, следует устроить так, чтобы терминальные клиенты также работали с общим ресурсом посредством протокола CIFS, иначе взаимодействия не получится. Советы по настройке SAMBA-сервера Как правило, SAMBA-сервер поставяется с настройками по умолчанию, которые подходят для работы WINE, но следует проверить настройки, запустив на сервере команду: testparam -v Будет выведены все текущие значения параметров. Изменить их можно в конфигурационном файле smb.conf, который обычно находится в каталоге /etc/samba. Рекомендуется, чтобы oplocks были включены (включены по умолчанию)- это улучшит производительность в монопольном режиме. kernel oplocks (включены по умолчанию) можно выключить, это немного снизит загрузку на систему. Включенные логи (log level в значении больше 0) могут в несколько раз замедлить производительность. Проверьте, что указано use sendfile = yes (ускоряет передачу больших блоков файлов). Какие-либо другие параметры, особенно связанные с доступом к файлам и блокировкам, использовать не рекомендуется. Таким образом пример оптимальных настроек может быть таким: ; oplocks = yes kernel oplocks = no use sendfile = yes log level = 0 Остальные параметры по поводу locks/oplocks должны быть установлены по умолчанию. Параметр strict sync включает выполнение команд по сбросу буфера на диск (flush). По умолчанию он выключен, и это ускоряет работу.Частой проблемой является несоответствие прав, под которым обращается самба-сервер, с правами на файлы, к которым он обращается. Например, при использовании security = share и обращении к серверу без указания пользователя/пароля он может обращаться к файлам от имени пользователя nobody или pcguest, которые вряд ли имеют права на изменение разделяемых файлов.В примере ниже Самба с ресурсом sharewine всегда будет обращаться от имени wine: winetester к файлам в каталоге/var/local/share [sharewine] path = /var/local/share public = yes force user = wine force group = winetester writable = yes guest ok = yes Настройка корзины Для любой samba-шары можно настроить так-называемую корзину, в которую будут перемещаться все удаляемые клиентами данные. Это может быть удобно для хранения и последующего восстановления случайно стертых файлов. Сам процесс происходит довольно прозрачно - клиент даже не знает, что данные НЕ удаляются. Перемещаться же файлы могут куда угодно (т.е. не обязательно в пределах этой шары). Добавляем в секцию шары следующие строки: vfs objects = recycle # куда бедет перемещаться удаляемые файлы recycle:repository = /mnt/hdd2/lost_n_found # сохранять структуру каталогов recycle:keeptree = yes # при дублировании имен файлов делать разные версии recycle:versions = yes # исключить из перемещения в корзину файлы, подходящие под шаблоны recycle:exclude = *.tmp | *.TMP | ~$* | ~WRL* # исключить из перемещения в корзину директории recycle:excludedir = /mnt/hdd1/temp # размер корзины recycle:maxsize = 104805760 # FIXME - не знаю recycle:touch = yes |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|