Best practiсe» для системных администраторов Samba

Samba список компьютеров в сети

У многих начинающих администраторов ОС Linux возникают те или иные проблемы при настройке и запуске в эксплуатацию системы Samba. Правильно настроенный пакет позволит избежать головной боли в дальнейшем. Итак, начнем…

Лучше день потерять,
зато за десять минут долететь.
(с) Крылья, ноги и хвост

Описание тестовой среды

Для начала — несколько слов о тестовой среде. Условия следующие:

  • Samba-сервер называется TROUBLE и имеет IP-адрес 192.168.7.75 и маску 255.255.255.0.
  • smbd и nmbd запускаются как демоны.
  • Windows-клиент называется win-client.
  • Windows-клиент использует адрес 192.168.7.135 с сетевой маской 255.255.255.0.
  • И win-client, и TROUBLE находятся в одной подсети, так что широковещательный запрос дойдет с одного хоста на другой.
  • И win-client, и TROUBLE являются членами рабочей группы LAB.
  • Samba-сервер использует следуюший smb.conf:

УРОВЕНЬ 1

Работоспособность сетевого соединения и файла конфигурации

Основание нашей «пирамиды» составляют три основных проблемы:

  • корректно работающее TCP/IP подключение;
  • соответствие маски и широковещательных адресов на серверах и клиентах;
  • работоспособность файла smb.conf.

Права на основе IP адреса клиента

Решается задача при помощи макро-подстановок (man 5 smb.conf, раздел Variable substitutions).

Создаем директорию /etc/samba/per-ip-configs

В директории создаем файл с именем 192.168.0.2.conf (права на чтение-запись)

[public]
comment = Read Write access
path = /var/spool/samba/public
valid users = user
write list = user
create mask = 644
directory mask = 755
printable = no

В директории создаем файл с именем 192.168.0.3.conf (права на чтение)

[public]
comment = Read onluy access
path = /var/spool/samba/public
valid users = user
create mask = 644
directory mask = 755
printable = no

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

Настройка общего ресурса с гостевым доступом

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

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

  • comment — описание ресурса, необязательный параметр;
  • path — путь к директории;
  • read only — режим только чтения, указываем no;
  • guest ok — разрешен ли гостевой доступ, указываем yes;

Теперь создадим саму директорию:

и установим на нее необходимые права, для гостевого ресурса это 777:

Если у вас предполагается только гостевой доступ на этом можно остановиться, в случае наличия ресурсов с требованием аутентификации могут возникнуть проблемы. Дело в том с какими правами будут записаны файлы на общий ресурс, если не указано иного, то по умолчанию Samba использует 0744 для файлов и 0755 для директорий. Т.е. полный доступ остается только у владельца файла, остальные получают права только на чтение. Чтобы исправить это следует явно указать режим для новых файлов и папок, для этого добавим в секцию еще две строки:

В этом случае итоговые права будут рассчитаны с учетом отображения прав доступа DOS в разрешения UNIX, что имеет некоторые особенности, в частности права на файлы будут установлены как 766 или rwx-rw-rw. Это значит, что запустить исполняемый файл сможет только тот, кто является его владельцем. Остальные получат сообщение об отсутствии прав доступа:

samba-debian-006.png

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

Это полностью снимет права на выполнение для всех, но оставит полный доступ к исполняемым файлам. Если же требуется разрешить возможность запуска, то вместо create mode следует использовать опцию force create mode, которая будет устанавливать разрешения без учета прав доступа DOS:

Теперь перезапускаем Samba и пробуем получить доступ с любого Windows-клиента.

samba-debian-002.png

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

Автоматическое соединение с сетевой папкой со стороны STB

Image Documentation

Image Documentation

2. В папке WORKGROUP отображаются сетевые компьютеры рабочей группы.
Откройте ярлык необходимого сетевого компьютера — My_Computer (в разделе My_Computer отображаются папки одноименного сетевого компьютера, для которых открыт доступ).

Image Documentation

3. Чтобы убедиться, что автоматическое определение сетевого ресурса состоялось и проверить тип протокола необходимо выделить папку и воспользоваться кнопкой «i» (INFO) на ПДУ:

Image Documentation

4. Открыть папку Video_E1. Внутри папки пройти по пути, по которому находится медиа-файл, который необходимо воспроизвести.

Image Documentation

5. Если для папки установлен доступ по паролю, либо по каким-либо причинам STB не может «примонтировать» папку (то есть получить к ней доступ — см. раздел Проблемы получения доступа к сетевым ресурсам), то при попытке открыть данную папку открывается окно Network connection.

Для авторизации необходимо выбрать ОК — открывается окно Authorization, в котором следует ввести параметры доступа к папке: Login и Password.

Image Documentation

Image Documentation

6. Запустить медиа-файл.

Исходные данные (подготовка хостов для осуществления общего доступа)

Сначала я опишу возможность организации доступа к ресурсам на Windows (Сервер) со стороны Linux (Клиент). Для организации данного взаимодействия нам необходимо наличие соединения по протоколу TCP/IP между хостами (то есть присвоен корректный IP, заданы правильные маски, в каждой системе должен быть корректный файл hosts и правильно настроена служба ДНС, если таковая используется), а так же наличие расшаренного ресурса в системе Windows. В примере, машина Windows будет иметь IP 192.168.2.1 и имя host, Linux — 192.168.2.2 и имя samba. Рабочую группу будем использовать WORKGROUP. Ресурс в общем доступе будет называться share.

Пакет Samba для своей работы требует наличия модулей ядра и инструментов для доступа к удаленной системе. Прежде всего, должна быть поддержка файловых систем smbfs и cifs ядром Linux. Старые версии ядра — ниже 2.6.х может не поддерживать cifs в начальной комплектации компиляции. Хотя, по поводу поддержки smbfs в современных дистрибутивах можно поспорить, т.к. данный модуль устарел и не поддерживает символы кириллицы и . ну в общем я его рассматривать не буду ввиду устаревания. Для включения поддержки cifs в старые ядра 2.4 необходимо ознакомиться с документацией на сайте: http://linux-cifs.samba.org/. Новые версии ядра Linux 2.6 в большинстве дистрибутивов имеют встроенную поддержу cifs (если, конечно, ядро не самосборное). Убедиться в поддержке ядром — cifs можно, выполнив команду grep над файлом текущей конфигурации ядра:

Посмотрев на вышеприведенный код, хорошо видно, что текущее ядро не поддерживает SMB_FS (нам оно в принципе и не нужно), а вот cifs поддерживается в виде модуля (что, собственно, нас так же устраивает). Если в Вашем ядре нет поддержки CIFS, то необходимо будет его пересобрать с необходимым параметром. О том как это сделать, я описывал в статьях Ядро Linux (получение информации и управление) и Управление ядром Linux (сборка, компилирование, конфигурирование). Итак, мы убедились, что наше ядро поддерживает нужную файловую систему. Теперь нам необходимо установить саму SAMBA и кое-какие инструменты. Выбор того, каким способом устанавливать ПО в Linux оставляю Вам. Скажу лишь, что при установке из исходных текстов, получив их (исходники) с samba.org можно получить более новую версию, нежели при установке в бинарном виде из репозитория, в котором скорее всего будет более старая и проверенная версия. Я пошел по пути наименьшего сопротивления и установил SAMBA через пакетный менеджер (apt-get install samba). Так же, необходимо установить пакет smb-fs (без данного пакета я столкнулся с ошибкой CIFS VFS: cifs_mount failed w/return code = -22).

Мы начнем с самого простого примера и предположим, что DNS для разрешения имен не используется и машины имеют статичные IP-адреса. Поэтому нам необходимо в /etc/hosts добавить следующую строку:

Утилитой ping мы проверили возможность разрешения имени и связь с удаленным хостом Windows. И как можно понять — все работает.

Почитать в разделе: Сеть

  • Всего статей в разделе: 9
  • Показано статей в списке: 8
  • Сортировка: название по алфавиту

IP-адрес — уникальный сетевой адрес узла в компьютерной сети, построенной на основе стека протоколов TCP/IP. В сети Интернет требуется глобальная уникальность адреса; в случае работы в локальной сети требуется уникальность адреса в пределах сети. В версии протокола IPv4 IP-адрес имеет длину 4 байта, а в версии протокола IPv6 IP-адрес имеет длину 16 байт. Протокол IPv4 IPv4 (англ. Internet Protocol version 4) — четвёртая версия интернет протокола (IP). Первая широко используемая версия. Протокол описан в RFC 791 (сентябрь 1981 года). IPv4 использует 32-битные (четырёхбайтные) адреса, ограничивающие адресное пространство 4 294 967 296 (232) возможными уникальными.
(Читать полностью. )

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

Настройка Samba-сервера выполняется в несколько этапов. Так как все данные пользователей и машин хранятся в LDAP, вначале неободимо выполнить настройку OpenLDAP-сервера, а затем — настройку LDAP для хранения учётных записей пользователей Linux. Это необходимо для работы Linux-клиентов. После этого можно настроить Samba-сервер.

Настройка LDAP

Настройте LDAP-сервер согласно руководству.

Настройка Samba

Перед настройкой Samba-сервера настройте LDAP для хранения учётных записей Unix-пользователей. Для этого выполните:

Для настройки Samba-сервера выполните:

В качестве параметров вы можете указать netbios и workgroup.

  • — устанавливает имя NetBIOS, под которым будет работать Samba сервер. По умолчанию оно устанавливается равным первому компоненту DNS-имени хоста.
  • — имя домена или рабочей группы NT для компьютеров, которые будут получать доступ к этому серверу.

Задайте пароль администратора (пользователь с логином ):

Новый пароль:
Повторите новый пароль:
* Пароль пользователя admin Samba сервиса изменен

Пользователь используется только для ввода клиентского компьютера с ОС Windows в домен. Admin не имеет домашней директории.

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

Пример создания администратора домена:

Добавление и удаление пользователей

Для работы с пользователями используйте аналоги стандартных Unix-команд: cl-useradd , cl-userdel , cl-usermod , cl-passwd , cl-groupadd , cl-groupdel , cl-groupmod . Синтаксис этих команд будет во многом совпадать с одноименными системными утилитами.

Для примера добавьте пользователя test и задайте ему пароль:

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

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

$sudo apt-get install smbclient

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

$smbclient //имя_или_адрес_сервера/ресурс -U пользователь

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

$smbclient //samba.example.com/ivan -U ivan

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

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

smb: > mkdir test smb: > ls

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

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

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

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector