Что такое samba сервер

Введение в Samba для компьютерных сетей

Samba – это технология клиент/сервер, которая обеспечивает совместное использование сетевых ресурсов между операционными системами. С Samba файлы и принтеры могут совместно использоваться клиентами Windows, Mac и Linux/UNIX.

Основные функциональные возможности Samba основаны на реализации протокола SMB. Поддержка SMB на стороне клиента и сервера поставляется со всеми современными версиями Microsoft Windows, дистрибутивов Linux и Apple Mac OSX. Бесплатное открытое программное обеспечение также можно получить на samba.org. Из-за технических различий между этими операционными системами технология довольно сложна.

Что Самба может сделать для вас

Самба может быть использована несколькими различными способами. Например, в интрасети или других частных сетях приложения Samba могут передавать файлы между сервером Linux и клиентами Windows или Mac (или наоборот). Любой, кто использует веб-серверы под управлением Apache и Linux, может использовать Samba вместо FTP для удаленного управления контентом веб-сайта. Помимо простой передачи, клиенты SMB также могут выполнять удаленные обновления файлов.

Как использовать Samba с клиентов Windows и Linux

где имя пользователя – это действительное имя учетной записи Windows NT. (Samba предложит ввести пароль учетной записи, если это необходимо.)

Samba использует пути UNC для обозначения сетевых узлов. Поскольку командные оболочки Unix обычно интерпретируют символы обратной косой черты особым образом, при работе с Samba не забывайте вводить повторные символы обратной косой черты, как показано выше.

Как использовать Samba от клиентов Apple Mac

Параметр Общий доступ к файлам на панели «Общий доступ» в Системных настройках Mac позволяет найти Windows и другие клиенты Samba. Mac OSX автоматически сначала пытается связаться с этими клиентами через SMB и использует альтернативные протоколы, если Samba не работает.

Требования к настройке Samba

В Microsoft Windows службы SMB встроены в службы операционной системы. Сетевая служба Сервер (доступная через Панель управления/Сеть, вкладка Службы) обеспечивает поддержку сервера SMB, а сетевая служба Рабочая станция обеспечивает поддержку клиентов SMB. Обратите внимание, что SMB также требуется TCP/IP для того, чтобы функционировать.

На сервере Unix два демонических процесса, smbd и nmbd, предоставляют все функциональные возможности Samba. Чтобы определить, работает ли Samba в данный момент, введите в командной строке Unix

и убедитесь, что smbd и nmbd присутствуют в списке процессов.

Запускать и останавливать демоны Samba обычным способом Unix:

Samba поддерживает файл конфигурации smb.conf. Модель Samba для настройки таких деталей, как имена общих ресурсов, пути к каталогам, управление доступом и ведение журнала, включает в себя редактирование этого текстового файла и затем перезапуск демонов. Минимальный файл smd.conf (достаточный для просмотра сервера Unix в сети) выглядит следующим образом

Некоторые Gotchas для рассмотрения

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

Проблемы искажения имен могут возникать при передаче файлов между компьютерами Unix и Windows. В частности, имена файлов, которые в смешанном регистре в файловой системе Windows могут стать именами в нижнем регистре при копировании в систему Unix. Очень длинные имена файлов также могут быть сокращены до более коротких имен в зависимости от используемых файловых систем (например, старая Windows FAT).

Системы Unix и Windows по-разному реализуют соглашение end-of-line (EOL) для текстовых файлов ASCII. Windows использует двухсимвольную последовательность возврата каретки/перевода строки (CRLF), тогда как Unix использует только один символ (LF).В отличие от пакета Unix mtools, Samba не выполняет преобразование EOL во время передачи файла. Текстовые файлы Unix (например, HTML-страницы) отображаются в виде одной очень длинной одной строки текста при передаче на компьютер Windows с Samba.

Заключение

Технология Samba существует уже более 20 лет и продолжает развиваться с помощью регулярно выпускаемых новых версий. Очень немногие программные приложения имеют такой долгий срок полезного использования. Отказоустойчивость Samba свидетельствует о его роли в качестве важной технологии при работе в гетерогенных сетях, включающих серверы Linux или Unix. Хотя Samba никогда не будет основной технологией, которую должен понимать средний потребитель, знание SMB и Samba полезно для профессионалов в области ИТ и бизнес-сетей.

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Samba

Samba — пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GNU GPL.

Начиная с четвёртой версии, разработка которой велась почти 10 лет, Samba может выступать в роли контроллера домена и сервиса Active Directory, совместимого с реализацией Windows 2000, и способна обслуживать все поддерживаемые Microsoft Corporation версии Windows-клиентов, в том числе Microsoft Windows 10.

Samba работает на большинстве Unix-подобных систем, таких как Linux, POSIX-совместимых Solaris и Mac OS X Server, на различных вариантах BSD; в OS/2 портирован Samba-клиент, являющийся плагином к виртуальной файловой системе NetDrive. Samba включена практически во все дистрибутивы Linux.

Содержание

Создание

Эндрю Триджелл разработал первую версию Samba Unix в 1992 году в Австралийском национальном университете. Программа «nbserver 1.5» была выпущена в декабре 1993 года. Позже Триджелл выяснил, что протокол был во многом похож на тот, который используется в других сетевых серверных системах, в том числе — Microsoft’s LAN Manager. Эта информация подтолкнула его к решению сосредоточиться на сетевой совместимости с продуктами Microsoft Corporation.

Samba первоначально назывался smbserver, но название было изменено в связи с извещением от компании «Syntax», которая является владельцем товарного знака на «SMBserver», о нарушении права на торговую марку.

История версий

Версия 3.0.0, выпущенная 23 сентября 2003 года, являлась на тот момент одним из самых больших обновлений. Начиная с третьей версии, Samba предоставляет службы файлов и печати для различных клиентов Microsoft Windows и может интегрироваться с операционной системой Windows Server, либо как основной контроллер домена Primary Domain Controller, либо как член домена. Она также может быть частью домена Active Directory. Официально поддержка версии 3.0 прекращена 5 августа 2009 года. Последнее обновление этой версии 3.0.37 выпущено 1 октября 2009 года добровольцами.

Версия 3.1 использовалась только для разработки.

Версии 3.4.0 выпущена 3 июля 2009 года. Это первый релиз, который включает исходный код Samba 3 и Samba 4.

Версия 3.5.0 выпущена 1 марта 2010 года. Первый релиз с экспериментальной поддержкой SMB2.

Версия 3.6.0 выпущена 9 августа 2011 года. Одним из главных нововведений этой ветки является полнофункциональная поддержка SMB2.

Версия 4.0.0 выпущена 11 декабря 2012. Находилась в разработке с 2003 года. Впоследствии регулярно выпускались альфа, бета и RC — релизы. В январе 2006 года был выпущен первый технический релиз 4.0.0TP1. Основным нововведением стала возможность использовать Samba сервер в качестве контроллера домена Active Directory..

Версия 4.1.0 выпущена 11 октября 2013. Добавлена поддержка SMB3.

Версия 4.2.0 выпущена 4 марта 2015. Добавлена поддержка Btrfs компрессия файлов, снимки и интеграция с winbind.

Версия 4.3.0 выпущена 8 сентября 2015. Способность обслуживать все версии Windows (включая Windows 10) и ещё множество изменений.

Версия 4.4.0 выпущена 22 марта 2016.

Сравнение с Windows Server

Главное отличие от серверных версий Windows заключается в отсутствии поддержки инфраструктуры узлов и репликации каталога в соответствии с настройками межузловых связей Ещё одной особенностью следует считать то, что Samba работает только поверх TCP/IP, тогда как аналогичный сервис в Windows может предоставляться также поверх IPX и NetBEUI. Однако, сама Microsoft Corporation в последних версиях Microsoft Windows ориентируется на NBT, так что это отличие Samba неактуально.

Возможности

Применение пакета

SAMBA осуществляет связь между UNIX- и Windows-системами в сети (расширяя сетевые возможности ОС UNIX). Пакет SAMBA представляет собой интерфейс, который обеспечивает связь компьютеров с Microsoft Corporation и компьютеров с UNIX. Благодаря SAMBA пользователь, работая на UNIX–системе, может разрешить доступ к сетевым дискам и принтерам Microsoft Windows. Для клиентов это выглядит таким образом, будто продолжает работать NT-сервер. Клиенты могут использовать сетевое окружение Windows, подсоединять и отсоединять сетевые диски, а также использовать данные на сетевом сервере, не ощущая, работает сервер под UNIX или Microsoft Windows. Клиенты могут обращаться к UNIX–файлам, изменять и удалять их (если позволяют права). Таким образом, SAMBA фактически исполняет функции NT–сервера.

Протокол SMB/CIFS:

Пользователи не могут распознать различие между NT-сервером и SAMBA-сервером при обращении к серверу по сети. В техническом отношении SAMBA является SMB-сервером для Unix. SMB представляет собой протокол, который предлагается или используется всеми операционными системами Microsoft и средами для разрешения доступа по сети. Если применить сетевой дисковод под Windows, то в этом случае используется SMB-протокол. Но SAMBA имеет значительно большие возможности. Начиная с версии 2.0, он может осуществлять функции доменного контроллера. Кроме пакета “SAMBA”, имеются ещё несколько других SMB-серверов для UNIX. Но все они платные и обладают меньшими возможностями. Также для переноса данных между Windows и UNIX платформами существует не только протокол SMB/CIFS, но и FTP, NFS и другие.

Условия сети для работы пакета SAMBA

Для рационального использования пакета “SAMBA” в первую очередь требуется наличие сети. При этом особой роли не играет применяемый тип сетевой технологии, будь это Ethernet, Token-Ring или Arcnet. “SAMBA” можно использовать через аналоговые линии или через ISDN-линию. Важно лишь, что в качестве протокола сети можно использовать только TCP/IP.

Даже в случае, если ОС Microsoft могут использовать разрешения сети через другие протоколы, “SAMBA” эти протоколы не поддерживает. К таким протоколам относятся как NetBeui – протокол от Microsoft и IBM, так и разработанный Novell протокол IPX/SPX.

Источник

Samba (Русский)

Что такое samba сервер. Смотреть фото Что такое samba сервер. Смотреть картинку Что такое samba сервер. Картинка про Что такое samba сервер. Фото Что такое samba серверПеревод этой статьи или раздела не отражает оригинальное содержание.Что такое samba сервер. Смотреть фото Что такое samba сервер. Смотреть картинку Что такое samba сервер. Картинка про Что такое samba сервер. Фото Что такое samba сервер

Samba — это реализация сетевого протокола SMB. Она облегчает организацию общего доступа к файлам и принтерам между системами Linux и Windows и является альтернативой NFS (Русский).

Contents

Настройка сервера

Установка

В связи с тем, что пакет samba поставляется без данного файла, вам нужно создать его перед запуском smb.service.

Настройка межсетевого экрана

Если вы используете межсетевой экран, не забудьте открыть необходимые порты (как правило, 137-139 + 445). Для получения информации о полном списке портов, смотрите использование портов Samba.

Правило UFW

Так как профиль приложения UFW для Samba по умолчанию отсутствует, вы можете захотеть создать его.

Затем загрузите этот профиль в UFW, запустив команду ufw app update Samba как root/sudo.

После этого можно разрешить доступ к Samba командой ufw allow Samba

Использование

Управление пользователями

Добавление пользователя

Для работы Samba требуется какой-нибудь Linux-пользователь — вы можете использовать существующего пользователя или создать нового.

Хотя имена пользователей Samba общие с системными пользователями, Samba использует для них отдельные пароли. Чтобы добавить нового пользователя Samba, воспользуйтесь следующей, заменив пользователь_samba на имя нужного пользователя:

Будет предложено задать пароль для этого пользователя.

Depending on the server role, existing File permissions and attributes may need to be altered for the Samba user account.

Если вы хотите разрешить новому пользователю только доступ к Samba-ресурсам и запретить полноценный вход в систему, можно ограничить возможности входа:

Просмотр списка пользователей

Список добавленных в Samba пользователей можно посмотреть с помощью команды pdbedit(8) :

Смена пароля Samba-пользователя

Чтобы сменить пароль пользователя, используйте smbpasswd :

Создание ресурсов для общего доступа

Со стороны Windows не забудьте изменить файл smb.conf для Windows Workgroup (в Windows по умолчанию: WORKGROUP).

Запуск служб

Расширенная конфигурация

Создание ресурсов общего доступа от имени обычного пользователя

Эта команда создает необходимый каталог в /var/lib/samba :

Эта команда создает группу sambashare:

Эта команда меняет владельца и группу каталога, который вы только что создали, на суперпользователя:

Эта команда меняет разрешения каталога usershares таким образом, что пользователи, входящие в группу sambashare, могут читать, записывать и выполнять файлы:

Задайте эти переменные в конфигурационном файле smb.conf :

Добавьте вашего пользователя в группу sambashare. Замените ваше_имя_пользователя на имя вашего linux-пользователя:

Завершите сеанс и войдите снова, чтобы применилось добавление новой группы к вашему пользователю.

Теперь у вас должна появиться возможность настраивать общий доступ samba, используя графический интерфейс. Например, в Thunar вы можете нажать правую кнопку мыши на любом каталоге и предоставить для него общий доступ в сети.

Для настройки общего доступа через командную строку используйте одну из следующих команд:

Если вы хотите предоставить общий доступ к файлам, находящимся в вашем домашнем каталоге, не забудьте задать доступ как минимум на чтение другим пользователям ( chmod a+rX ).

Установка и форсирование прав доступа

Разрешения могут быть применены и к серверу, и к отдельным ресурсам:

См. smb.conf(5) для более подробной информации о настройке прав доступа.

Ограничение версии протокола для повышения безопасности

В файле /etc/samba/smb.conf добавьте опции server min protocol и server max protocol для ограничения используемых версий протокола:

См. server max protocol в smb.conf(5) для обзора поддерживаемых протоколов.

Использование шифрования SMB

Нативное шифрование транспорта SMB доступно с версии SMB 3.0. Среди клиентов, поддерживающих такое шифрование, имеются Windows 8 и новее, Windows Server 2012 новее, smbclient в Samba 4.1 и новее.

Смотрите smb.conf(5) для более подробной информации, особенно разделы Effects for SMB1 и Effects for SMB2.

Отключение общего доступа к принтерам

По умолчанию Samba предоставляет общий доступ к принтерам, настроенным через CUPS.

Если вам это не нужно, используйте следующие опции для отключения:

Запрет определённых расширений файлов в общем ресурсе Samba

Увеличение пропускной способности

Большинству пользователей подойдут настройки по умолчанию. Однако корректное использование ‘socket options’ может улучшить производительность, но ошибки в настройке также могут и ухудшить её. Проверяйте эффекты, прежде чем вносить какие-либо серьезные изменения.

Читайте smb.conf(5) прежде чем применять описанные здесь опции.

SMB3 multi-channel может улучшить производительности, однако иногда может испортить данные из-за race conditions. В будущих версиях ситуация может улучшиться:

Ограничение времени бездействия полезно для предотвращения исчерпания ресурсов сервера из-за большого количества неактивных подключений:

Использование sendfile улучшает эффективность использования процессора и повышает скорость Samba:

Установка min receivefile size разрешает zero-copy запись непосредственно из буфера сокета в кэш файловой системы (если доступен). Это может улучшить производительность, но требует тестирования:

Асинхронное чтение/запись файлов может повысить производительность:

Увеличение размера буферов приёма/отправки и флаги оптимизации сокетов могут быть полезны для улучшения производительности. Рекомендуется протестировать каждый флаг отдельно, так как они могут вызывать проблемы в некоторых сетях:

Включение доступа для старых клиентов или устройств

Последние версии Samba больше не предлагают старые методы аутентификации и протоколы, которые всё ещё используются некоторыми старыми клиентами (IP-камерами и т.д.). Такие устройства обычно требуют от сервера разрешения аутентификации NTLMv1 и протокола NT1, известного как CIFS. Чтобы эти устройства работали с последней версией Samba, добавьте эти два параметра в секцию [global] :

Для анонимного/гостевого доступа достаточно лишь первого параметра. Если старое устройство использует имя и пароль для доступа, то нужен и второй параметр тоже.

Настройка клиента

Вы можете получать доступ и монтировать локально ресурсы, предоставленные для общего доступа другими компьютерами сети, используя графический интерфейс или интерфейс командной строки. Графический способ ограничен, так как большинство легковесных окружений рабочего стола не имеет родных средств настройки доступа к этим ресурсам.

Существует две «части» предоставления общего доступа. Первая лежит в основе механизма работы файловой системы, а вторая является интерфейсом, который позволяет пользователю выбирать монтируемые ресурсы общего доступа. В некоторых окружениях первая часть уже встроена.

Ручное монтирование

Чтобы вывести список общедоступных ресурсов на сервере:

Создать точку монтирования для ресурса:

Имя системы Windows.

Каталог общего доступа.

Локальный каталог, в который будет примонтирован ресурс.

Смотрите страницу руководства mount.cifs(8) для получения информации.

Добавление ресурса в /etc/fstab

а запись в вашем fstab должна выглядеть примерно так:

Монтирование пользователями

Это позволит пользователям монтировать ресурс, если точка монтирования находится в каталоге, владельцами которого они являются, например, в свою домашнюю директорию. Чтобы пользователи могли монтировать и размонтировать ресурсы Samba в точках монтирования, владельцами которых они не являются, используйте smbnetfs или дайте им необходимые привилегии с помощью sudo.

Имена хостов WINS

Пакет smbclient предоставляет драйвер для использования имен хостов WINS. Чтобы его включить, добавьте “wins” в строку “hosts” файла /etc/nsswitch.conf.

Автоматическое монтирование

Есть несколько способов легко просматривать ресурсы общего доступа:

smbnetfs

Для начала удостоверьтесь, что вам доступны все ресурсы, которые вам нужны для монтирования:

Если это не работает, найдите и измените следующую строку в /etc/samba/smb.conf подобным образом:

Если все работает, как и ожидалось, установите пакет smbnetfs из официальных репозиториев.

Затем добавьте следующую строку в файл /etc/fuse.conf :

Скопируйте каталог /etc/smbnetfs/.smb в вашу домашнюю директорию:

Затем создайте ссылку на файл smb.conf :

Если для доступа к некоторым общим каталогам необходимы имя пользователя и пароль, отредактируйте файл

Также возможно добавление записей для специфичных хостов, чтобы они были примонтированы smbnetfs, если это необходимо. Больше информации можно найти в

Когда вы закончите настройку, необходимо выполнить

В противном случае smbnetfs пожалуется: ‘insecure config file permissions’.

Наконец, чтобы примонтировать сетевое окружение Samba в каталог по вашему выбору, выполните

Демон

autofs

Смотрите статью Autofs для получения информации об автомонтировщике ядра (kernel-based) Linux.

Настройка файлового менеджера

Nautilus, Nemo, Thunar и PCManFM

Нажмите Ctrl+l и введите smb://имя_сервера/ресурс в панель адреса, чтобы получить доступ к ресурсу.

KDE имеет встроенную возможность просмотра ресурсов Samba, в этом случае нет необходимости в дополнительных пакетах. Однако, для графического интерфейса в Системных Настройках KDE установите пакет kdenetwork-filesharing из официальных репозиториев.

Если при использовании Dolphin вы получите ошибку «Time Out», необходимо раскомментировать и отредактировать эту строку в файле smb.conf:

Другие графические окружения

Есть несколько полезных программ, но им могут требоваться пакеты, созданные для них. Это может быть сделано с помощью Arch package build system. Хорошая новость заключается в том, что они не нуждаются в особом окружении, устанавливаемом для их поддержки, так что они «тянут» за собой меньше пакетов.

Решение проблем

Известная ошибка Windows 7 «mount error(12): cannot allocate memory» может быть исправлена установкой пары ключей в реестре системы Windows:

В качестве альтернативы можно запустить командную строку от имени Администратора и выполнить следующее:

Выполните одно из следующих действий, чтобы изменения вступили в силу:

Проблемы получения доступа к ресурсам, защищенным паролем, из Windows

При проблемах получения доступа к ресурсам, защищенным паролем, из Windows попробуйте добавить следующее в файл /etc/samba/smb.conf :[1] [устаревшая ссылка 2020-08-04]

Обратите внимание, что это должно быть добавлено в локальный файл smb.conf, а не в файл сервера

Диалоговое окно появляется с большой задержкой

У меня была проблема, связанная с тем, что диалоговое окно для ввода пароля появлялось с задержкой около 30 секунд, когда я пытался установить соединение из Windows XP/Windows 7. Когда я посмотрел файл error.log на сервере, я увидел:

Эта опция предотвращает поиск cups и файла /etc/printcap:

Ошибка: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL

Если вы являетесь домашним пользователем, используете samba исключительно для организации общего доступа к файлам с сервера или NAS и не заинтересованы в организации общего доступа к принтерам, вы можете исправить эту ошибку, добавив следующие строки в файл /etc/samba/smb.conf:

…проверьте ваши логи:

и больше ошибка не должна появляться.

Не удается предоставить общий доступ к папке

Проблема проявляется в том, что, когда вы пытаетесь предоставить общий доступ к папке через Dolphin (файловый менеджер), и вначале, вроде бы, все работает нормально, после перезапуска Dolphin иконка ресурса исчезла из папки, а в терминале (Konsole) вы видите следующий вывод:

Для решения проблемы включите пользовательские общие ресурсы, как это описано в разделе #Создание ресурсов общего доступа от имени обычного пользователя.

«Просмотр» сети выдает ошибку «Не удалось получить список ресурсов с сервера» (Failed to retrieve share list from server)

в вашу конфигурацию iptables.

Вы не являетесь владельцем каталога

Попробуйте просто перезагрузить систему.

protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE

Подключение к серверу завершилось неудачей: (Error NT_STATUS_UNSUCCESSFUL)

Вероятно, вы указываете smbclient неправильное имя сервера. Чтобы узнать его, запустите на сервере команду hostnamectl и найдите строку «Transient hostname».

Источник

Samba — первые шаги

Введение

В общей структуре корпоративных сетей Microsoft Windows и Linux зачастую существуют как разобщенные миры. Попытки обеспечить «прозрачный» доступ сетевых клиентов Windows к ресурсам UNIX зачастую порождают множество проблем. Одним из способов, позволяющих их решить, является использование в UNIX/Linux протокола Server Message Block (SMB — Samba), который иногда также называется протоколом Session Message Block (SMB), протоколом NetBIOS или протоколом LanManager. Этот протокол не является разработкой Microsoft, однако он хорошо адаптирован для использования в сетях на основе Windows. Хотя эта статья и посвящена Linux, тем не менее Samba может работать на большинстве UNIX-подобных операционных систем. И еще одно замечание: в данной статье мы рассмотрим пакет SMB с точки зрения малого предприятия, которому нужен локальный файл- или принт-сервер, либо домашнего пользователя, имеющего несколько компьютеров и желающего, чтобы машины совместно использовали ресурсы. Поэтому даже начинающий администратор UNIX/Linux может принять эту статью как руководство к действию.

Что умеет Samba

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

Протокол SMB используется Microsoft Windows 2000, NT и 95/98 для организации доступа к дискам и принтерам. Используя набор утилит Samba от Andrew Tridgell (Andrew.Tridgell@anu.edu.au), UNIX-машины (включая Linux) могут организовывать доступ к дискам и принтерам для Windows-машин. Утилиты smbfs, написанные Paal-Kr. Engstad (pke@engstad.ingok.hitos.no) и Volker Lendecke (lendecke@namu01.gwdg.de), дают возможность машинам с UNIX монтировать SMB-ресурсы, доступные на машинах с Windows или Samba.

C помощью Samba можно реализовать следующие наиболее распространенные:

Далее в статье будет дано подробное описание того, как это все реализовать.

Инсталляция и тестирование Samba

А также c чтения документации, доступной на сайте http://www.samba.org/. Следует отметить, что для использования Samba ваша машина должна находиться в одиночном Ethernet-сегменте локальной сети, при этом используя протокол TCP/IP. Samba не будет работать при использовании других сетевых протоколов. Это, в принципе, легко, поскольку Linux и Windows 95/98/NT поставляются с поддержкой TCP/IP. Однако если вы используете машины с Windows 3.x, то вам необходимо добавить поддержку TCP/IP.

Где взять

Для того чтобы получить исходные тексты последней версии Samba, свяжитесь с сайтом http://www.samba.org/ и выберите ближайший к вам сервер-зеркало: ftp://ftp.samba.org/. Пакет Samba входит в состав дистрибутивов ряда UNIX/Linux-систем, например Rad Hat или Suse Linux. Внимательно изучите документацию вашего Linux, и, вполне возможно, что вам будет достаточно только вставить CD и инсталлировать пакеты Samba. В этом случае вы можете продолжать чтение статьи со следующей главы.

После получения данного пакета извлекаем все то, что находится под «грифом» *.tar.gz, например, в директорию /tmp (причем для этого не обязательно быть root’ом :), то есть:

Если у вас не возникло никаких проблем при извлечении данного пакета, вы обнаружите новую директорию, например samba-latest, и в ней извлеченные файлы. Перейдите в нее, загляните в файлы «README» и «Manifest» — инструкция по инсталляции находится в последнем файле и выглядит примерно так:

Теперь надо обратить внимание на то, где находятся ваши файлы конфигурации. Большинство дистрибутивов Samba по умолчанию помещает их в директорию /etc, а себя — в директорию /usr/local/samba.

Конфигурирование Samba

Основная информация о конфигурации Samba находится в файле smb.conf. С этим файлом следует обращаться осторожно. Если вы планируете каким-либо образом изменить работающую версию, обязательно сделайте копию.

Для того чтобы первый раз запустить сервер, необходимо иметь рабочую версию файла smb.conf. Перейдите в директорию, в которой должен находиться ваш конфигурационный файл. Скорее всего это будет /etc или /usr/local/samba/lib. Сделайте копию данного файла, например smb.old, — это возможно при наличии прав root. Теперь, когда у вас есть «чистый» файл, можно ввести самую простую конфигурацию, то есть набрать следующие строки:

Ниже мы разберемся, что означают эти строки в файле конфигурации, но сначала временно отвлечемся от него и перейдем к демонам SMB.

Запуск демонов

Имеется два демона SMB: /usr/sbin/smbd и /usr/sbin/nmbd. Вы можете запустить демоны Samba из inetd или как автономный процесс. Samba будет отвечать чуть быстрее в случае, если она запущена как автономный процесс.

Иногда бывает необходимо проверить наличие в файле /etc/services примерно таких строк:

Убедитесь, что все они не закомментированы. В зависимости от вашего дистрибутива вам, вероятно, даже понадобится добавить их в этот файл. Samba не сможет привязаться к соответствующим портам, до тех пор пока этих строк не будет в файле /etc/services.

Для запуска демонов из inetd поместите следующие строки в конфигурационный файл inetd, /etc/inetd.conf:

Затем перезапустите демон inetd, выполнив команду:

Для запуска демонов из системных стартовых скриптов поместите следующий скрипт в файл /etc/rc.d/init.d/smb (для дистрибутива RedHat) или /etc/rc.d (для дистрибутива Suse Linux) и создайте на него символические ссылки с именами вида /etc/rc.d/rcX.d/S91smb (запускает сервисы SMB в многопользовательском режиме), /etc/rc.d/rcX.d/K91smb (убивает сервисы SMB при выключении), /etc/rc.d/rc6.d/K91smb (убивает сервисы SMB при перезагрузке), где X — номер загрузочного уровня системы, обычно это цифра 2 или 3.

Если при старте Samba вы получаете сообщение, в котором говорится, что демон не может подключиться к порту 139, то скорее всего у вас уже есть запущенные процессы Samba, которые не были завершены. Посмотрите список процессов (используя команду ‘ps ax | grep mbd’) для того, чтобы определить, есть ли еще запущенные сервисы Samba. Если же демоны отказываются запускаться по каким-либо другим причинам, то вероятнее всего этот скрипт не подходит к вашему UNIX/Linux и вам придется еще раз покопаться в документации, что-то в нем поправить, а может быть, и переписать.

Простой тест

Будем надеяться на лучшее и считать, что Samba при запуске не выдала никаких сообщений об ошибках. А для того, чтобы проверить, работает ли это реально, надо набрать в командной строке:

Выполняющаяся программа попросит вас ввести пароль. Здесь можете просто нажать Enter. Вот какие строчки должны появиться на мониторе (рис. 2).

Основная настройка smb.conf

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

Каждый раздел файла начинается с заголовка раздела, такого как [global], [homes], [printers] и т.п.

Секция [global] определяет некоторые переменные, которые Samba будет использовать для определения доступа ко всем ресурсам. Раздел [homes] позволяет удаленным пользователям иметь доступ к своим (и только своим) домашним директориям на локальной Linux-машине. Так что если пользователи Windows попытаются подключиться к этому разделу со своих Windows-машин, то они будут соединены собственными домашними директориями. Заметим, что для этого они должны быть зарегистрированы на Linux-машине.

Используем текстовый интерфейс

Многие системные администраторы при инсталляции Linux ограничиваются только текстовым интерфейсом, не устанавливая графический (X Windows). Это положительно сказывается на безопасности и быстродействии системы, но делает недоступными утилиты вроде SWAT, работе с которой посвящена нижеследующая часть этой статьи.

Простой файл smb.conf, приведенный ниже, позволяет удаленным пользователям иметь доступ к своим домашним директориям на локальной машине и помещать информацию во временную директорию. Пользователи Windows могут увидеть эти ресурсы, подключив сетевые диски, при этом естественно — машина с Linux должна иметь выход в локальную сеть. Заметим, что будут приведены дополнительные записи для этого файла, чтобы дать доступ к большему количеству ресурсов.

Написав новый файл smb.conf, полезно проверить его правильность. Для этого можно использовать утилиту ‘testparm’ (предварительно заглянув на справочную страницу testparm); если testparm сообщает об отсутствии проблем, то smbd правильно загрузит файл настроек.

Имейте в виду: если ваш сервер Samba имеет больше одного Ethernet-интерфейса, то smbd может подключиться к неправильному. Чтобы заставить ее подключаться к нужному, можно добавить в раздел [global] файла /etc/smb.conf следующую строку:

Теперь можно запускать Sambа. При этом необходимо учитывать, что чем больше сервисов настроено на вашем сервере, тем более он оказывается уязвим.

Вот как это делается с помощью ipfwadm:

Это запретит (deny) все входящие и исходящие TCP- и UDP-пакеты для портов 137-139 на интерфейсе eth0. Для получения более подробной информации рекомендуем почитать man ipfwadm.

При наличии ядер 2.1-2.2 вы сможете сделать это с помощью ipchains:

Как видите, здесь нет ничего нового и сложного. Как ipfwadm, так и ipchains выполняют одинаковые функции, только для разных версий ядер.

Однако если вам не нравится редактировать конфигурационные файлы вручную и на вашем Linux-сервере установлен графический интерфейс, то вы можете упростить настройку smb.conf, воспользовавшись Samba Web Administration Tool (SWAT).

Используем SWAT

Для использования SWAT проверим два конфигурационных файла: services (/etc/services) и inetd.conf (/etc/inetd.conf).

По умолчанию SWAT запускается с 901-го порта, но при желании это можно изменить. Итак, проверяем вышеуказанные конфигурационные файлы:

Если эта строка присутствует в /etc/service, то все нормально. Если строки нет, добавьте ее в конец файла. Данная строка говорит нам о том, что SWAT запускается на 901-м порте.

Теперь в файл inetd.conf (/etc/inetd.conf) добавляем следующую строку:

Затем перезапустим inetd:

Далее в браузере набираем:

В случае если все настроено правильно, вы увидите форму, в которой нужно ввести имя пользователя (username) и пароль (password). Здесь введите имя и пароль пользователя «root».

Итак, SWAT запущен. Теперь можно ознакомиться с его работой. Как вы видите, SWAT — это программа с прекрасным интерфейсом, которая создает конфигурационный файл /etc/smb.conf.

Детальная настройка

Файловый сервер под Linux

Как показано выше, организация доступа к дискам Linux для пользователей Windows с помощью файла smb.conf является довольно простым делом. Однако Samba позволит вам в большой степени контролировать этот процесс. Приведем несколько примеров.

Для организации доступа для всех добавьте в smb.conf следующие строчки:

Вы получили возможность запустить Samba и просмотреть доступные ресурсы с компьютера под управлением Windows. Однако все может оказаться не так-то просто. Начиная с Windows NT 4 в операционных системах Microsoft, в том числе и в среде Windows 98 (начиная с NT Service Pack 3), происходит передача закодированных паролей по сети. Вы непременно столкнетесь с этой проблемой, если версия пакета Samba, установленная на вашем UNIX/Linux-сервере, ниже 2.0.5а и не поддерживает закодированные пароли.

В случае несоответствия типов паролей между клиентом и сервером при попытках подключиться к ресурсу в окне диалога будет указано примерно следующее: «You are not authorized to access that account from this machine».

Подобную проблему можно решить двумя путями. Во-первых, можно настроить Samba-сервер для использования шифрованных паролей. Во-вторых, заставить Windows работать с нешифрованными паролями SMB. Если это Windows 98, то последовательность ваших действий должна быть такова: используя редактор registry (regedit), создайте ключ registry:

Добавьте значение типа DWORD:

Имя значения: EnablePlainTextPassword Данные: 0x01.

Для Windows NT эта же последовательность действий выглядит так:

Добавьте значение типа DWORD:

Имя значения: EnablePlainTextPassword Значение: 0x01.

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

При использовании вашими клиентами и вашим сервером шифрованных паролей вы не сможете просмотреть списки доступных ресурсов до тех пор, пока начальное соединение не будет сделано с правильными параметрами входа. Для того чтобы сделать первоначальное соединение, в диалоговом окне Windows File Manager или Explorer введите вручную имя ресурса в форме \\hostname\sharename. Подключитесь к серверу посредством правильных для данного сервера имени и пароля.

Если вы подозреваете, что ваш сервис имен NetBIOS неправильно настроен (возможно, потому, что вы получаете сообщение об ошибке «host not found (машина не найдена)» при попытке подключения), попытайтесь использовать IP-адрес сервера: \\host ip address\sharename.

Если вы хотите видеть Samba-директорию в качестве сетевого диска, то вам следует сделать на Windows-машинах следующие настройки.

Сначала удостоверимся, что свойства сети настроены так, как нам надо. Для этого заходим в свойства сети (щелкаем правой клавишей мыши на значке рабочего стола «Сетевое окружение» (Network Neighborhood) и выбираем «Свойства»). Далее заходим на закладку «Компьютер» (Identification). В поле «Имя компьютера» (Computer name) прописываем Galka, в закладке «Рабочая группа» (Workgroup) — PTO, а в закладке «Описание компьютера» (Computer Description) можете прописать что угодно (рис. 3).

Дальше переходите на закладку «Управление доступом» (Access Control) и поставьте флажок в поле «На уровне ресурсов» (Share-level access control).

Теперь переходите в самую первую закладку «Конфигурация» (Configuration) и нажмите на кнопке «Доступ к файлам и принтерам» (File and print sharing). В появившемся окне необходимо поставить флажки в поле «Файлы этого компьютера можно сделать общими» (I want to be able to give others access to my files) и «Принтеры этого компьютера можно сделать общими» (I want to be able to allow others to print to my printer(s)).

И наконец, мы указываем Windows, что Samba является сервером WINS и именно он будет browse master’ом. Для этого переходим в свойства TCP/IP-протокола (рис. 4). В появившемся окне выбираем «Конфигурация WINS» (WINS Configuration). Ставим флажок в поле «Включить распознавание WINS» (Enable WINS Resolution). В появившемся поле «Основной сервер WINS» (WINS Server Search Order) прописываем IP-адрес сервера (Samba) — 192.168.0.1 и нажимаем «Добавить» (Add) или просто [Enter]. Переходим на закладку «Дополнительно» (Advanced) и нажимаем на «Browse Master» в левом окне, а в правом устанавливаем значение «Disabled». Вот и все. Теперь остается только несколько раз нажать кнопку «ОК» и перезагрузить Windows.

В Windows NT экраны свойств сети немного различаются (показаны на рисунках), но главная концепция построения остается той же.

После перезагрузки Windows смело жмите на «Сетевое окружение» (Network Neighborhood) и вы сможете увидеть Samba-сервер, а также свою домашнюю директорию на Linux-сервере. Теперь вы можете просто подключить данные ресурсы как сетевые диски и присвоить им drive letters.

Немного усложним конфигурацию: сделаем директорию /home/public доступной для чтения всеми, но разрешим помещать в нее информацию только людям из группы ADMINS. Для этого изменим запись следующим образом:

Можно привести еще много разных примеров настроек файлового сервера Samba, но будет лучше, если вы заглянете в документацию Samba или в справочные страницы и разберете их самостоятельно.

Доступ к дискам Windows из Linux

Вряд ли начинающие пользователи Linux OS смогут быстро разобраться с системой доступа к Linux-файлам из-под Windows, и наоборот. Но не все так сложно. Доступ к Linux-ресурсам из под Windows был кратко описан выше, а доступ к Windows-ресурсам из под Linux мы сейчас рассмотрим.

Программа клиента SMB для UNIX/Linux-машин включена в дистрибутив Samba. Она обеспечивает ftp-подобный интерфейс командной строки. Вы можете использовать эту утилиту для переноса файлов между «сервером» под управлением Windows и клиентом под Linux.

Для того чтобы увидеть, какие ресурсы доступны на данной машине, выполните команду:

где host — это имя машины, которую вы хотите видеть. Эта команда вернет список имен сервисов — то есть имен дисков или принтеров, к которым может быть получен доступ. До тех пор пока SMB-сервер не будет настроен без управления доступом, он будет запрашивать у вас пароль. Введите в ответ на запрос пароль для пользователя «гость (guest)» или ваш персональный пароль на этой машине.

Для использования клиента выполните следующую команду:

где service — имя машины и сервиса. Например, если вы пытаетесь обратиться к директории, которая доступна под именем public на машине, названной galka, то имя сервиса должно звучать как \\galka\public.

Вы получите приглашение smbclient:

Команды для использования Samba аналогичны командам ftp, но если вы не умеете пользоваться ни тем ни другим, напечатайте h, чтобы получить помощь.

Вы, конечно, можете использовать smbclient для тестирования, однако очень скоро вам это надоест. Для работы вам вероятнее всего понадобится пакет smbfs. Smbfs поставляется с двумя простыми утилитами — smbmount и smbumount. Они работают подобно mount и umount для SMB-ресурсов. Например,

В итоге вы получите «подмонтированный» ресурс с возможностью обращения к нему привычными методами проводника.

Принт-сервер под Linux

Для организации доступа к Linux-принтеру с Windows-машин вам необходимо убедиться, что принтер работает под Linux. Если вы можете печатать под Linux, то организация доступа к принтеру будет очень проста.

Добавьте настройку принтера в ваш файл smb.conf:

Убедитесь, что путь к принтеру (в нашем случае для [ljet]) соответствует буферной директории, указанной в файле /etc/printcap, то есть проверьте наличие строк:

Эти строки контролируют, должны ли все принтеры, перечисленные в /etc/printcap, быть загружены по умолчанию. В этом случае нет нужды в настройке каждого принтера в отдельности. Раздел [printers] указывает настройки для принтеров, которые вы хотите определить явно. Если используемая вами подсистема печати не работает подобным образом (BSD), то вам необходимо настроить фальшивый файл printcap (либо использовать ‘print command’, см. ниже). Для получения дополнительной информации о системе printcap см. Printing-HOWTO.

Доступ к принтеру Windows с машин, работающих под Linux

Для доступа к принтеру на Windows-машине необходимо соблюдение следующих условий:

Запись в приведенном ниже файле /etc/printcap сделана для принтера HP 5MP на сервере Windows NT. Используются следующие поля файла /etc/printcap:

Фрагмент файла /etc/printcap:

Убедитесь, что буферные директории и директория, применяемая для учета пользования, существуют и имеют право на запись. Убедитесь, что строка «if» содержит правильный путь к скрипту smbprint (дан ниже) и что записи указывают на правильное устройство вывода (специальный файл /dev).

Большинство дистрибутивов Linux поставляется с программой nenscript для преобразования ASCII-документов в PostScript.

Заключение

Еще совсем недавно возможности Samba ограничивались лишь перечисленными выше. Однако можно с уверенностью говорить о том, что новая версия Samba 2.2 догоняет Windows 2000 по функциональным возможностям и содержит дополнительные усовершенствования. Один из ведущих разработчиков Samba Джереми Эллисон (Jeremy Allison) называет ее «важным обновлением», которое поможет системам Samba легче внедряться в сети Microsoft. ПО обеспечивает экономию не только потому, что не нужно платить за серверную ОС, но и потому, что не приходится оплачивать «клиентские» лицензии за все компьютеры, которые используют сервер.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *