Samba: автономный сервер на Debian

Привет друзья!. Если мы хотим иметь независимый сервер (Автономные) делиться ресурсами либо с нашего рабочего места; или для небольшой группы машин; или для локальной сети без контроллера домена в стиле Microsoft проще всего это сделать с помощью Samba.

Для этого есть несколько графических инструментов, а также инструмент для администрирования Samba через Интернет «SWAT». Тем не мение, мы рекомендуем новичкам, которые стартуют в этом чудесном мире вручную. Это не так сложно или дьявольски, как многие думают. В процессе вы многое узнаете о сетях SMB / CIFS, а также о разрешениях и правах в файловых системах Linux.

Прежде чем продолжить, рекомендуем прочитать:

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

Основные моменты для рассмотрения

  • Несмотря на всю ауру, которая окружает Active Directory и их контроллеры домена, которые во многих случаях не нужны или плохо используются, установка и настройка независимого сервера Samba ЯВЛЯЕТСЯ допустимым и надежным вариантом.
  • Независимый сервер может быть как безопасным, так и небезопасным, в зависимости от наших потребностей, и мы можем настроить его простым или сложным способом.
  • Аутентификация пользователя выполняется на самом сервере, где находятся ресурсы.
  • Чтобы пользователь мог получить доступ к ресурсам с удаленного компьютера, он также должен быть зарегистрирован в базе пользователей Samba.
  • Мы можем добавить в базу данных пользователей Samba только тех пользователей, которые уже существуют на нашем сервере или настольном компьютере.
  • Автономный сервер Samba НЕ обеспечивает вход в сеть, как это делает контроллер домена. Он также не обеспечивает вход в домен.
  • Чем меньше мы меняем и / или добавляем параметры в файл /etc/smb.conf Если заранее не знать в деталях, чего мы хотим достичь, это будет намного лучше.
  • Служба совместного использования ресурсов в Samba работает в файловой системе Linux, включая присущую ей безопасность. Многие проблемы решаются путем уделения должного внимания разрешениям файлов и каталогов.
  • Важно понимать, как управлять поведением файловой системы из файла. smb.conf, а также понимание того, как работает защита файловой системы UNIX / Linux.
  • Мы не рекомендуем использовать диакритические знаки, знаки или пробелы в именах папок и общих ресурсов. Желательно использовать строчные буквы для имен.
  • Имена общих ресурсов не могут повторяться в локальной сети. Каждое имя уникально.
  • Если в нашей локальной сети НЕТ WINS-сервера, мы можем заставить нашу Samba работать как таковую, добавив «Глобальный»Из файла smb.conf параметр выигрывает поддержку = Да., что настоятельно рекомендуется.

Пример сервера

Имя: миуизи. Домен: друзья.cu. IP: 10.10.10.20. Пользователи: ксеон, зевс и тритон. Дополнительные группы: счетчики

Установка

Через Synaptic или через консоль устанавливаем пакет самба.

sudo aptitude установить самбу

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

В процессе пакеты будут установлены, но мы ранее установили некоторые другие, связанные с Suite- самба, обычная самба, самба-обыкновенная корзина y tdb-инструменты. Также создается файл /etc/самба/smb.conf. Этот файл будет создаваться, пока установлены пакеты. самба y самба-обыкновенная корзина, и не будут удалены из системы, пока мы не удалим их.

Файл smb.conf - самый важный в Samba Suite.

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

Если мы хотим увидеть содержимое файла без учета закомментированных опций, либо с помощью «;"или с"#«, Мы должны выполнить:

 egrep -v '# |; | ^ * $' /etc/samba/smb.conf

Если мы хотим увидеть содержимое файла, не учитывая параметры, отмеченные «#«, Мы должны выполнить:

egrep -v '# | ^ * $' /etc/samba/smb.conf

Первое, что мы должны сделать, это скопировать файл /etc/самба/smb.conf. В самом файле мы находим способ, которым Samba рекомендует создать рабочую копию, о чем мы подробно расскажем ниже. В виде корень выполняем:

cd / etc / samba mv smb.conf smb.conf.master testparm -s smb.conf.master> smb.conf
корень @ miwheezy: / etc / samba # ls -l
всего 32 -rw-r - r-- 1 корень root 8 10 ноября 2002 г. gdbcommands -rw-r - r-- 1 корень root 805 4 августа 12:05 smb.conf -rw-r - r-- 1 root root 12173 4 12 августа, 05:XNUMX smb.conf.master

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

Исходное содержимое файла /etc/самба/smb.conf Это будет (помните, что мы не будем развивать совместное использование принтеров):

[Глобальный]
        рабочая группа = FRIENDS имя netbios = MIWHEEZY security = пользователь
        строка сервера =% h сопоставление сервера с гостем = Плохой пользователь подчиняется ограничениям pam = Да изменение пароля pam = Да passwd program = / usr / bin / passwd% u passwd chat = * Введите \ snew \ s * \ spassword: *% n \ n * Повторите ввод \ snew \ s * \ spassword $ unix password sync = Да syslog = 0 файл журнала = /var/log/samba/log.%m максимальный размер журнала = 1000 DNS прокси = Нет общего доступа, разрешить гостей = Да panic action = / usr / share / samba / panic-action% d idmap config *: backend = tdb [homes] comment = Домашние каталоги допустимые пользователи =% S создать маску = 0700 маска каталога = 0700 просматриваемый = Нет

Значения, выделенные жирным шрифтом, - единственные, которые мы должны изменить изначально. Обратите внимание, что, несмотря на поведение Samba по умолчанию, мы явно объявили параметр безопасность = пользователь учитывая его большое значение.

Если в нашей локальной сети НЕТ WINS-сервера, мы можем заставить нашу Samba работать как таковую, добавив «Глобальный»Из файла smb.conf параметр выигрывает поддержку = Да., что настоятельно рекомендуется.

Золотое правило: Чем меньше мы изменяем и / или добавляем параметры в файл smb.conf, не зная заранее в деталях, чего мы хотим достичь, тем лучше будет.

Вот краткое изложение некоторых из показанных вариантов. Для получения дополнительной информации запустите человек smb.conf.

  • рабочая группа: Контролирует, в какой рабочей группе будет отображаться оборудование при создании веб-браузера. Этот параметр также управляет доменным именем при работе с опцией безопасность = домен и в котором команда присоединяется к домену. Мы увидим это в следующих статьях. Значение по умолчанию - РАБОЧАЯ ГРУППА.
  • имя netbios: Установите имя NetBIOS, под которым сервер Samba будет известен в сети. По умолчанию это то же самое, что и первый компонент Полное доменное имя от хозяина. В нашем примере Полное доменное имя команды miwheezy.amigos.cu. Мы можем использовать имя, отличное от имени хоста для нашего сервера Samba. В этом случае рекомендуется включить запись CNAME в наш DNS.
  • безопасность: Параметр, который влияет на реакцию клиентов на Samba и является одним из самых важных в файле. smb.conf. Значение по умолчанию - пользователь.
  • строка сервера: Определяет, какое имя будет отображаться в комментариях, которые появляются в веб-браузере рядом с названием команды.
  • карта гостю: Параметр, который полезен только при установке безопасность = пользователь o безопасность = домен. Значение "Bad User" указывает Samba отклонить неверный пароль, если пользователь НЕ существует, и в этом случае он будет рассматриваться как гость или "гость«. Если мы не хотим разрешать гостевые сеансы, мы должны изменить его значение на Никогда, что и является значением по умолчанию, а также измените параметр usershare разрешить гостя a нет, которое также является значением по умолчанию.
  • соблюдать ограничения пам: Контролирует, должна ли Samba подчиняться собственным ограничениям PAM «Подключаемый модуль аутентификации«, Что касается Директив по администрированию учетных записей пользователей и сессий. Значение по умолчанию - нет.
  • изменение пароля pam: Указывает Samba использовать PAM для изменения пароля, запрашиваемого SMB-клиентом. Значение по умолчанию - нет.
  • программа passwd: Программа, используемая для установки паролей UNIX для пользователей.
  • passwd чат: Цепочка, которая контролирует разговор, происходящий между демонами. кто-то и локальная программа для изменения пароля, определенная в предыдущем параметре.
  • синхронизация паролей unix: Указывает Samba синхронизировать пароль SMB с паролем UNIX, если первый изменится. Значение по умолчанию - нет.
  • действительные пользователи: Список пользователей, которым разрешено входить в общий ресурс.

Перезапустите или перезагрузите службу Samba

Всякий раз, когда мы вносим существенные изменения, особенно в раздел «[Глобальный]" из smb.conf, мы должны перезапустить службу. Если у нас уже есть пользователи, подключенные к нашему серверу, каждый раз, когда мы перезапускаем Samba, мы будем отключать их. Вот почему и практически с этого момента мы будем перезагружать сервис только при добавлении или изменении общих ресурсов. Чтобы перезапустить службу, мы выполняем как корень:

перезапуск службы самбы

Для пополнения услуги:

сервис самба перезагрузка

Добавляем пользователей в систему и в базу пользователей Samba

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

В нашем примере пользователь Xeon он был добавлен во время установки Wheezy. Поэтому мы не будем добавлять его в командные пользователи. Группа пользователей существует в системе и был создан во время установки.

Некоторые параметры команды smbpasswd являются:

  • -a: Добавить указанного пользователя в локальный файл smbpasswd.
  • -x: Указанного пользователя необходимо удалить из локального файла smbpasswd. Доступно только когда smbpasswd работает как корень.
  • -d: Указанная учетная запись пользователя должна быть отключена. Доступно только когда smbpasswd работает как корень.
  • -e: Противоположно опции -d пока учетная запись пользователя отключена.

Чтобы создать пользователей в нашей команде, мы делаем это известной командой Добавить пользователя.

adduser zeus adduser тритон

Чтобы создать группу contadores:

счетчики addgroup

Чтобы добавить пользователей в базу данных Samba:

smbpasswd -a корень
smbpasswd -a xeon smbpasswd -a zeus smbpasswd -a triton

Присоединяемся к группе contadores пользователям, которых мы хотим:

счетчики adduser xeon adduser счетчики zeus adduser счетчики triton

Рекомендуется присоединять каждого созданного пользователя к группе пользователей, в случае, если мы хотим предоставить разрешения всем пользователям, которых мы создали, на определенном ресурсе. Более простой способ объединить нескольких пользователей в группу - это напрямую отредактировать файл. / etc / group, и добавив список пользователей через запятую. Им может руководить группа contadores. Мы предполагаем, что мы присоединяем пользователей к группе пользователей.

На рабочей станции, чтобы убрать отображение пользователей, созданных с помощью Добавить пользователя, мы должны отредактировать файл /etc/gdm3/greeter.gsettings и раскомментируйте вариант отключить список пользователей = правда, чтобы при входе в систему НЕ отображался список пользователей. Это стандартное поведение любого клиентского компьютера Windows, присоединенного к домену.

Точно так же, если мы хотим, чтобы созданные пользователи не запускали удаленный сеанс через SSH, редактируем файл / И т.д. / SSH / sshd_config и добавить в конец файла инструкцию Разрешить пользователей, пример:

[....] # и ChallengeResponseAuthentication на «нет». UsePAM да AllowUsers xeon

Добавляем общие ресурсы

Пример 1: Мы хотим поделиться папкой / главная / xeon / музыка для всех зарегистрированных пользователей. Разрешение будет только для чтения. Первым делом создаем папку / главная / xeon / музыка и при необходимости настраиваем его владельца и разрешения. Как пользователь Xeon мы выполняем:

mkdir / home / xeon / music ls -l / home / xeon | grep music

Затем в конце файла smb.conf мы добавляем следующее:

[music-xeon] comment = Путь к личной папке с музыкой = / home / xeon / music только для чтения = Да допустимые пользователи = @users список чтения = @users

После внесения изменений в файл выполняем тестпарм как пользователь Xeon и мы пополняем сервис как корень. Мы также можем запустить обе команды, например корень:

testparm сервис самба перезагрузка

Чтобы проверить недавно настроенную службу, мы можем сделать это, выполнив следующую команду на самом компьютере:

smbclient -L локальный хост -U%

Пример 2: Мы хотим поделиться папкой / главная / xeon / музыка для всех зарегистрированных пользователей. Разрешения будут на чтение / запись для Xeon и только чтение для остальных пользователей, принадлежащих к группе пользователей. Нам не нужно изменять владельца или права доступа к папке. Просто немного меняем настройки общего доступа в файле smb.conf.

[music-xeon] comment = Путь к личной папке с музыкой = / home / xeon / music только для чтения = Нет действительных пользователей = @users write list = xeon read list = @users

Пример 3: Мы хотим поделиться папкой / home / xeon / бухгалтерия для группы пользователей contadores. Все участники группы будут иметь разрешение на чтение. Пользователи тритон y Зевс они смогут писать в общую папку.

Теперь ЕСЛИ нам нужно изменить владельца и права доступа к папке учет после создания, чтобы они могли писать тритон y Зевс кто является членом группы contadores. Мы также должны позаботиться о том, чтобы последний пользователь, создавший или изменивший файл, не стал его абсолютным владельцем, чтобы его могли изменять другие пользователи с разрешениями на запись.

Важно понимать, как управлять поведением файловой системы из smb.conf, а также понимание того, как работает защита файловой системы UNIX / Linux.

В этих случаях мы должны:

  • В удобное время объявите, кто будет пользователем-владельцем, а кто - группой владельцев совместно используемого каталога.
  • Разрешить запись в общий каталог группой владельцев.
  • Объявить бит SGID (Установить идентификатор группы) каталога во время его создания.
  • Правильно объявить в файле smb.conf способы создания файлов и каталогов на нашем общем ресурсе.

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

mkdir / home / xeon / Accounting chown -R root: counters / home / xeon / Accounting chmod -R g + ws / home / xeon / Accounting ls -l / home / xeon

И в конец файла smb.conf добавляем следующее:

[бухгалтерский учет] комментарий = Путь к папке для бухгалтеров = / home / xeon / Accounting только для чтения = Нет допустимых пользователей = @ accountants write list = triton, zeus read list = @ accountants force create mode = 0660 force directory mode = 0770

Сразу проверяем базовый синтаксис smb.conf через тестпарм и мы пополняем сервис через сервис самба перезагрузка. Мы также можем запустить smbclient -L локальный хост -U%. на локальном сервере и smbclient -L mywheezy -U% o smbclient -L mywheezy.friends.cu -U% с удаленного компьютера.

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

Внимание: Пользователь корень или пользователь Xeon и вообще любой участник группы contadores, вы можете писать из локального сеанса, запущенного на том же компьютере, или SSH, то есть без использования протокола SMB / CIFS. Если вы создаете папку или файл локально, не забудьте переназначить соответствующие разрешения. Проверить по ls -l. Несоблюдение вышеуказанного является источником большой путаницы.

Друзья, простите меня за объем статьи, и я надеюсь, что она будет вам полезна. До следующего приключения!


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Elav сказал

    Как всегда превосходно. Такие статьи ценятся, когда мы работаем с серверами. 😉

  2.   Юлий Цезарь сказал

    Очень хороший freeke, но для меня лучше использовать FreeNAS для таких вещей
    😉

  3.   Федерико Антонио Вальдес Тужаге сказал

    Спасибо за ваши комментарии!!!. Freeke, FreeNAS от FreeBSD - еще одна дикая история, и я могу посвятить ей статью. В конце концов, это Samba вместо FreeBSD.

  4.   Эрик сказал

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

    1.    Федерико Антонио Вальдес Тужаге сказал

      Как говорится, «никогда не поздно, если счастье хорошо», а другой «лучше поздно, чем никогда». Спасибо за комментарий. Я начал использовать Samba, кажется, примерно в 2007 году. До сих пор я не мог ничего опубликовать об этом.

      1.    Эрик сказал

        Точно так же я использую самбу почти то же время, но я вижу, что вы многое усовершенствовали и правы, что «никогда не поздно, если счастье - это хорошо», мне показалось, я должен сказать, что очень хорошо, что кто-то делится своими знаниями Иногда не решаются или не успевают, в моем случае это первое, Приветствую

  5.   Жискар сказал

    Друг @fico, мне очень нравятся твои статьи. Они очень хорошо объяснены и подробны. Спасибо.

    1.    Федерико Антонио Вальдес Тужаге сказал

      Надеюсь, они вам пригодятся. Это цель !!!.

      1.    Жискар сказал

        Да, это

        Кстати, я только что видел вашу статью, размещенную на другой странице (http://www.infognu.com.ar/2013/08/samba-servidor-independiente-en-debian.html) и ссылки на первоисточник действительно мало. Это не сделано. Черт побери, заслуга перед тем, кто этого заслуживает! Я не знаю, могут ли они отсюда попросить тех людей, которые делают что-то по-крупному. Для неподготовленного глаза это будет выглядеть так, как если бы они его создали и разместили.

  6.   Оскар сказал

    Г-н автор сообщения, что, если вы создадите статью о том, как делиться файлами с помощью самбы для обычных пользователей? Я имею в виду что-то менее обширное и более графическое, например, как делиться из Linux в Linux и из Linux в Windows, но не из одного как профессиональный способ, а как обмен файлами между ПК дома.

    1.    Федерико Антонио Вальдес Тужаге сказал

      В этом случае я рекомендую использовать ssh для Linux - Linux и winscp для Windows - Linux. На этом же сайте есть несколько статей.
      Этот же пост, хотя он может показаться сложным, если вы скопируете и вставите несколько включенных в него команд, он также будет работать в домашней сети.

      1.    элиотайм3000 сказал

        Хотя было бы более практично использовать систему SMB / CIFS, чтобы использовать тот же протокол обмена файлами для Windows (или для краткости общих папок).

        Я проведу свои эксперименты, чтобы иметь возможность сделать руководство по созданию общей папки в GNU / Linux (в моем случае, Debian Wheezy), чтобы сети с Windows распознавали ее как общую папку.

  7.   уровень сказал

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

    1.    Федерико Антонио Вальдес Тужаге сказал

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

  8.   последний новичок сказал

    когда у меня будет время, я буду
    [оффтоп] Я хотел бы опубликовать уроки по GIMP. Оно может?
    [/ не по теме]

  9.   Федерико Антонио Вальдес Тужаге сказал

    Друг @giskard, я только что был http://www.infognu.com.ar/2013/08/samba-servidor-independiente-en-debian.html, и я не видел ссылки на этот пост. Они сделали копию на щеке, Хахахахахаха. Это говорит о том, что, по крайней мере, пост хорошего качества. Я говорю: нет?

    1.    Жискар сказал

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

    2.    Юлий Цезарь сказал

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

  10.   Truko22 сказал

    В вики Arch сказано, что начиная с версии 3.4 рекомендуется использовать pdbedit вместо smbpasswd.

    Один вопрос, по словам друга, перед добавлением пользователя в Samba, пользователь должен быть создан в системе, но с / bin / false
    useradd -s / bin / false myuser
    Это правда 0.o?

  11.   Федерико Антонио Вальдес Тужаге сказал

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

    Например, проблемы с разрешениями можно избежать, если мы разрешим кому угодно писать в общий ресурс, используя CHMOD 777. Конечно, это небезопасное решение.

    Вы можете запретить пользователю запускать локальный сеанс или через ssh, если мы создадим его через пользователь adduser –shell / bin / false. То есть созданный таким образом пользователь не может получить доступ к терминалу или консоли.

    Другими словами, Samba можно настроить разными способами, от самых простых до самых сложных.

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

    @ truko22, Спасибо за то, что правильно подметили предыдущий комментарий !!!

    1.    Truko22 сказал

      Большое спасибо, теперь я понимаю 😀 насчет –shell / bin / false

  12.   Федерико Антонио Вальдес Тужаге сказал

    Друг @ truko22, про пдбедить забыл. Начиная с Etch я привык использовать smbpasswd. Эта команда может быть выполнена любым пользователем в системе, и ее поведение и результаты различаются. pdbedit, также может использоваться, но может быть вызван только пользователем root.

    О Samba вы можете написать целые статьи о многих ее командах.

  13.   Лев сказал

    Это очень хорошо!!
    привет

  14.   Marcos сказал

    Очень хорошая статья. Поздравления и спасибо за такой вклад

  15.   Joseuzin сказал

    Я хотел спросить вас, была ли статья о samba как контроллере домена, и если он уже может управлять доменом с помощью групповых политик, таких как сервер Windows, я имею в виду предотвращение изменения свойств сетевых адресов, использования pendrives и т. Д.

  16.   Рикардо Мехиас сказал

    Здравствуйте, как дела, Фико, я установил Samba 3.6 с LDAP и LAM 3.7 - я хотел бы знать, знаете ли вы, как разрешить пользователям изменять пароль при запуске раздела, поскольку он говорит мне, что "у вас нет разрешения на изменение пароля" Привет ...