4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое samba

Samba

сетевая файловая система

3.5.19 (5 ноября 2012 [2] )

4.0.0-rc5 (13 ноября 2012 [3] )

GNU GPL
версии старше 3.2 — только GPLv3

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

Начиная с третьей версии Samba предоставляет службы файлов и печати для различных клиентов Microsoft Windows и может интегрироваться с операционной системой Windows Server, либо как основной контроллер домена (PDC), либо как член домена. Она также может быть частью домена Active Directory.

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.

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

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

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

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

Версия 3.3.0 выпущена 27 января 2009 года. Последнее обновление 3.3.16 от 26 июля 2011 года [4] .

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

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

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

Версия 4.0.0 находится в разработке с 2003 года. Основным нововведением будет возможность использовать Samba сервер в качестве контроллера домена Active Directory. На данный момент идёт постепенное слияние кода веток 3.x и 4.x. После трёх лет разработки первый технический релиз 4.0.0TP1 был выпущен в январе 2006 года. Впоследствии регулярно выпускались альфа, бета и RC — релизы. Последняя версия (4.0.0-rc5) выпущена 13 ноября 2012 [2] .

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

Главными отличиями от серверных версий Windows являются:

  • отсутствие поддержки для групповых политик (косвенная поддержка для версии 3.х в принципе возможна [6] , версия Samba 4 будет включать поддержку групповых политик [7][8] )
  • отсутствие настроек профилей пользователей и компьютеров
  • отсутствие поддержки инфраструктуры узлов (sites) и репликации каталога в соответствии с настройками межузловых связей

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

По утверждениям ITLabs, в условиях многопользовательского доступа, скорость работы в качестве ролей файлового и принт-сервера более чем в два раза выше по сравнению с Windows Server 2003 с теми же ролями [9] .

Установка и настройка Samba сервера и клиентов

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

Установка Samba

Samba легко устанавливается из менеджера пакетов, но перед установкой нового пакета нужно выполнить обновление. Воспользуйтесь следующими командами (здесь и далее приводятся примеры для Ubuntu 16.04):

Служба NetBios для Samba (nmbd) в наших примерах не требуется, поэтому в целях безопасности вы легко можете отключить ее командами:

Установка глобальных опций Samba

Параметры конфигурации Samba хранятся в файле /etc/samba/smb.conf. В нем есть два раздела, global и shares. В разделе global прописаны параметры самого сервера (имя сервера, его тип, интерфейсы и другие сетевые настройки), а в разделе shares — параметры ресурсов. Вместо редактирования файла создадим новый. Предварительно сохранив оригинал:

Внесем в наш новый файл /etc/samba/smb.conf следующий код

Рассмотрим значение этих параметров.

server string: информация, передаваемая во время подключения. Можно использовать любое имя для идентификации сервера. Далее будут рассмотрены названия для ресурсов Samba.
server role: тип создаваемого Samba-сервера. В данном примере используется выделенный сервер (standalone). Другие типы — член домена и контроллер домена.
interfaces: сетевые интерфейсы, к которым привязан сервер. Здесь указан “lo”, loopback-интерфейс. Кроме него нужно указать внешний интерфейс, обычно это eth0.
bind onterface only: гарантирует, что сервер Samba будет привязан только к тем интерфейсам, которые указаны в строке interfaces, и будет игнорировать пакеты с других интерфейсов.
disable netbios: отключает на сервере все функции NetBios, чтобы немного облегчить процесс разрешения имени сервера и разгрузить трафик.
smb ports: номер порта, на котором будет работать сервер. По умолчанию Samba использует порт 445.
log file: имя и месторасположение файла лога Samba.
max log size: максимальный размер файла лога. Рекомендуется указывать его настолько большим, насколько позволяют ресурсы стстемы. Если размер будет превышен, будет создан новый файл, а предыдущий файл будет перемещен в дубликат с расширением .old. При повторном превышении первый файл с расширением .old будет удалён. Данный параметр помогает предотвратить заполнение диска.
Если нужны более подробные логи, можно воспользоваться командой:

Читать еще:  Можно ли запускать игры PS3 на PS4

Уровень лога 3 означает, что сохраняется более детальная информация, чем при стандартном ведении лога. Стандартный уровень — 1, максимальный — 5. Здесь он установлен для параметров passdb и auth, чтобы получать более подробную информацию об аутентификации пользователей. После определения параметров ведения лога сохраните и закройте файл. При необходимости файл smb.conf нужно протестировать на синтаксические ошибки при помощи утилиты Samba testparm:

Будет выведен следующий результат:

После нажатия на клавишу Enter будут выведены глобальные параметры:

Если в результате выводится “Load services files OK”, значит, в файле нет ошибок и сервер можно запускать.

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

Создание пользователей Samba

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

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

Для каждого пользователя нужно создать домашнюю директорию. Вместо использования стандартной директории /home/user лучше создать пероснальную директорию в /samba/ для разделения данных и более удобного резервного копирования. Сначала создадим группу sambashare, директорию для хранения данных samba и назначим ее владельцем группу sambashare

Затем нужно создать директорию пользователя (в примере мы рассмотрим создание пользователя ivan, для нескольких пользователей создание будет аналогичным): Добавим системного пользователя:

В команде используются параметры:
—home: месторасположение домашней директории пользователя.
—no-create-home: указывает команде adduser не создавать домашнюю директорию, чтобы не заполнять ее ненужными файлами конфигурации.
—shell: определяет, какая оболочка будет использоваться при входе через SSH. В данном примере SSH не используется, поэтому значение /usr/sbin/nologin отключает вход через SSH.
—ingroup sambashare: внесение пользователя в группу sambashare, чтобы обеспечить ему возможность чтения и записи для своего ресурса и общих ресурсов.

Более подробно про создание пользователей и групп можно прочитать в этой статье

После запуска команды потребуется создать пароль.

Теперь нужно установить владельца и права доступа к директории:

Права доступа 2770 означают, что новые файлы или директории, созданные в /samba/david/, будут наследовать группу владельцев от родительской директории, а не от группы пользователей, которая их создала. Например, если администратор создаст новую директорию в ресурсе пользователя ivan, то ivan будет иметь к ней доступ на чтение и запись.

Далее командой smbpasswd необходимо добавить пользователя на сервере Samba (флаг -a) и активировать его (флаг -e):

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

Другие пользователи создаются аналогичным образом. Для создания пользователя admin нужно выполнить следующие команды, его домашней директорией будет everyone:

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

Настройка системы завершена, теперь нужно настроить ресурсы.

Настройка общих ресурсов Samba

У каждого ресурса есть свой раздел в файле конфигурации /etc/samba/smb.conf. Разделы ресурсов расположены после глобальных параметров и имеют следующий вид

share_name — имя ресурса, используемое при доступе.
path — полный путь к ресурсу в файловой системе.
browsable — опоеделяет видимость ресурса для других пользователей, но не дает им прав доступа.
read only — определяет возможность доступа на запись для пользователей, указанных в параметре valid users.
force create mode — задает указанные права доступа к любому файлу, создаваемому в ресурсе.
force directory mode — задает указанные права доступа к любой директории, создаваемой в ресурсе
valid users — список пользователей, имеющих доступ к ресурсу. Здесь можно указывать имена или группы, перед группами нужно указывать символ @, например, @admins.

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

Для ресурса everyone блок будет выглядеть следующим образом:

Все пользователи будут иметь доступ на чтение и запись, так как были добавлены в группу sambashare при создании. Теперь нужно протестировать параметры

Если все настроено корректно, результат будет следующим:

После проверки конфигурации запустим сервер и добавим его в автозагрузку командой systemctl:

Сервер работает и готов принимать пользователей.

Читать еще:  Можно ли носить линзы несколько дней

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

Для доступа к ресурсам из командной строки в Linux используется утилита smbclient. В большинстве дистрибутивов она не установлена по умолчанию, если нет то нужно воспользоваться менеджером пакетов:

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

Например, для доступа к ресурсу ivan на сервере samba.example.com нужно ввести:

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

Например, можно создать директорию:

Доступ из командной строки используется в основном для тестирования, на практике доступ чаще всего осуществляется из графических оболочек, например, KDE. Возможен также доступ из других платформ (Windows, MacOS).

Например для доступа с windows наберите в строке поиска samba.example.comivan. И введите логин пароль

После чего вы сможете получить доступ к сетевым ресурсам.

Заключение

При помощи Samba мы создали мультиплатформенные сетевые ресурсы и протестировали доступ к ним. Ресурсы Samba очень распространены и могут использоваться различными приложениями. Например, VLC Player может проигрывать музыку и видео из ваших ресурсов Samba, а утилита резервного копирования BackupPC — записывать туда резервные копии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Настройка Samba

Пожалуй нет ни одного офиса, в котором не применялись бы общие ресурсы локальной сети, будь то папки или принтеры. Крупные и средние компании используют возможности Active Directory, компании поменьше — используют штатные средства ОС Windows или Samba, но на серверах под управлением ОС Linux. Рассмотрим все случаи.

Что такое Samba?

Samba — серверное приложение, реализующее доступ клиентских терминалов к папкам, принтерам и дискам про протоколу SMB/CIFS.

Настройка общих папок

Linux

Установка и настройка Samba-сервер для Ubuntu выполняется следующими этапами.

1. Обновляем информацию о репозиториях и устанавливаем обновления для существующих пакетов в системе:

apt-get update && apt-get upgrade

2. Устанавливаем пакет Samba:

apt-get install -y samba samba-client

3. Создадим резервную копию файла конфигурации:

cp /etc/samba/smb.conf /etc/samba/smb.conf_sample

4. Создадим директории для файлов, например в каталоге /media:

Важно! По умолчанию, директория /media располагается в корне системы /, для нее редко создается свой раздел. По этой причине возможно переполнение корневого раздела. Во избежание этой неприятной ситуации, рекомендуем монтировать отдельный жесткий диск в /media/samba.

5. Создаем каталог для всех пользователей:

6. Изменим права доступа к каталогу:

chmod -R 0755 /media/samba/public

Также следует воспользоваться командой chown для смены владельца и/или группы.

7. Создаем директорию для ограниченного круга лиц:

8. С помощью системных инструментов создадим группу пользователей:

9. Добавляем пользователей Samba:

10. Созданных пользователей добавляем в группу:

usermod -aG smbgrp user1

11. Изменим группу, которой принадлежит приватная директория:

chgrp smbgrp /media/samba/private

12. С помощью инструментов Samba создадим пароль для добавленного пользователя:

smbpasswd -a user1

13. С помощью текстового редактора, например, nano, редактируем конфигурационный файл samba:

Удаляем все строки из файла. Вставляем следующие:

map to guest = bad user

wins support = no

force user = nobody

valid users = @smbgrp

Сохраняем используя сочетание Ctrl + X, затем нажимаем Y и Enter.

Объясним значения строк. конфигурационный файл состоит из трех секций:

global — данная секция отвечает за общие настройки Samba-сервера;

public и private — секции описания настроек директорий общего доступа.

В секции global присутствуют пять параметров:

  • workgroup — рабочая группа. Для упрощения работы пользователей WORKGROUP указывается, как группа по умолчанию. Если в вашей сети имя рабочей группы изменено, то следует изменить это значение и для Samba;
  • security — уровень безопасности сервера. Значение user означает авторизацию по паре логин/пароль;
  • map to guest — параметр определяет способ обработки запросов. Значение bad user означает, что запросы с неправильным паролем будут отклонены, даже если такое имя пользователя существует;
  • wins support — включить или выключить поддержку WINS;
  • dns proxy — возможность проксирования запросов к DNS.

Настройки директорий выполняются в соответствующих секциях:

path — полный путь до директории на жестком диске;

guest ok — возможность доступа к каталогу без пароля (гостевой);

browsable — показывать ли каталог (“шару”) на сервере среди прочих. Если параметр установлен как “no”, то доступ будет возможен по полному пути, например ip-addresshidden_directory;

force user — пользователь от которого ведется работа с каталогом. Для повышения безопасности сервера, обычно используют nobody. Главное, не использовать пользователя root — это небезопасно.

writable — установка значения как “yes” позволяет пользователю выполнять действия над файлами внутри каталога — переименование, добавление, удаление, перемещение в подкаталог и копирование;

valid users — список пользователей у которых есть доступ к каталогу. Если пользователей несколько, их имена указываются через запятую. Если необходим доступ для пользователей принадлежащих группе, перед именем группы устанавливается символ ”at” @ (“собака”).

Важно! Имя директории общего доступа, отображаемое пользователям, равно имени секции в которой оно описано.

Проверяем настройки с помощью команды:

service smbd restart

service nmbd restart

Настроим межсетевой экран. Для этого в правилах откроем TCP-порты 139 и 445, а также UDP-порты 137 и 138, но только для тех подсетей, которым доверяете. Для указания собственного диапазона адресов, замените значение после ключа “-s”:

Читать еще:  Как избежать мозолей от новой обуви

iptables -A INPUT -p tcp -m tcp —dport 445 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m tcp —dport 139 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp —dport 137 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp —dport 138 -s 10.0.0.0/24 -j ACCEPT

Для сохранения правил и применения их после перезагрузки сервера следует воспользоваться пакетом iptables-persistent. Установим его:

apt-get install iptables-persistent

Входе установки пакета, программа предложит запомнить существующие правила iptables. Подтверждаем это действие.

Для проверки существующих правил используем:

Windows

По аналогии с Linux, настроим общий доступ к папкам public и private, но в ОС Windows.

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

Панель управления → Сеть → Центр управления сетями и общим доступом → Расширенные настройки общего доступа.

В обновленном окне открываем раздел “Все сети” и ищем секцию “Общий доступ с парольной защитой”. Устанавливаем параметр в положение “Отключить общий доступ с парольной защитой”. Для сохранения значений параметра кликаем по кнопке “Сохранить изменения”.

Теперь откроем доступ к самому каталогу. Кликаем по папке правой кнопкой мыши, в контекстном меню выбираем “Свойства”. Открываем вкладку “Доступ” и кликаем по “Расширенная настройка”.

В открывшемся окне расширенных настроек общего доступа отмечаем галочкой “Открыть общий доступ к этой папке”, в поле “Имя общего ресурса” указываем название, которое будет отображено пользователям. Кликаем по кнопке “Разрешения”.

В открывшемся окне, в группах пользователей выбираем “Все”, а в разрешениях для группы, устанавливаем галку “Полный доступ”. Нажимаем “OK” в этом и остальных окнах.

В окне свойств папки public кликаем по кнопке “Общий доступ”.

В открывшемся окне добавляем пользователя “Все”, а также делегируем права на “Чтение и запись”. Кликаем по кнопке “Поделиться”.

В обновленном окне нажимаем “Готово”.

Настроим папку общего доступа, но для ограниченного круга лиц.

Кликаем правой кнопкой мыши по папке, выбираем “Свойства”.

В открывшемся окне переходим на вкладку “Доступ”. Кликаем по кнопке “Расширенные настройки”.

В новом открывшемся окне, устанавливаем галку “Открыть общий доступ к этой папке”. Затем кликаем по кнопке “Разрешения”.

В открывшемся окне, в поле “Группы или пользователи” выбираем “Все” и нажимаем кнопку “Удалить”.

Таким образом установлен запрет на анонимный доступ к папке.

Окно обновится. Кликаем по кнопке “Добавить”.

В открывшемся окне кликаем по кнопке “Дополнительно”.

Окно изменится в размере. Кликаем по кнопке “Поиск”. Двойным кликом выбираем пользователя, которому необходим доступ к этому каталогу, например, buhgalter.

В открывшемся окне, при желании, можем добавить еще одного пользователя через “Дополнительно” — “Поиск”. Аналогичным образом можно добавить группу пользователей, например, “Администраторы”, при этом следует понимать, что доступ будет предоставлен всем пользователям из этой группы.

Установим права доступа для пользователя “buhgalter”. Если требуется полный доступ к директории, устанавливаем галку в соответствующем месте.

Нажимая кнопки “OK” возвращаемся к окну свойств папки, в котором кликаем по кнопке “Общий доступ”.

В данном окне необходимо найти и добавить пользователя “бухгалтер”.

В окне выбора пользователей и групп кликаем по кнопке “Дополнительно”.

Окно снова изменит свои размеры. Кликаем по кнопке “Поиск”. В найденном ниже списке пользователей и групп выбираем искомого пользователя. Выбираем его двойным кликом.

В оставшемся окне проверяем правильно ли указан пользователи и нажимаем кнопку “OK”.

Устанавливаем требуемый уровень разрешений для пользователя и кликаем по кнопке “Поделиться”.

Кликаем по кнопке “Готово”.

Подключение к общим папкам

Из Linux

Для подключения к общим папкам из среды Linux требуется установка отдельного программного обеспечения — smbclient. Установим:

sudo apt-get install smbclient

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

smbclient -U buhgalter 10.0.0.1public

Для того, Чтобы не вводить эту команду каждый раз, можно настроить монтирование общей директории как сетевого диска. Для этого установим пакет cifs-utils:

sudo apt-get install cifs-utils

Монтирование выполняется по следующему шаблону:

mount -t cifs -o username= ,password= // /

mount -t cifs -o username=Everyone,password= //10.0.0.1/public /media

Важно! Если требуется подключение к общим папкам расположенным на Windows-сервере, то в для не защищенных паролем директорий, в качестве имени пользователя, следует использовать “Everyone”. Для подключения к Linux-серверу рекомендуем использовать в качестве имени пользователя “nobody”. В случае доступа к защищенным директориям следует использовать те учетные данные, которые вы указали.

Из Windows

Подключение к удаленным папкам из среды Windows выполняется немного иначе. Для этого в проводнике или окне запуска программ (Windows + R), следует использовать следующий шаблон:

Указав просто IP-адрес сервера вы получите список общих папок.

При подключении к Windows-сервер, система безопасности может потребовать ввод учетных данных. Для подключения к общей открытой папке используем Everyone, а поле пароля оставляем пустым.

При подключении к Linux-серверу из ОС Windows, следует использовать указанный ранее шаблон:

Источники:

http://dic.academic.ru/dic.nsf/ruwiki/241543
http://itproffi.ru/ustanovka-i-nastrojka-samba-servera-i-klientov/
http://serverspace.by/support/help/nastroika-samba/

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector