FAQ Samba

Discussion in 'Linux, Freebsd, *nix' started by YaBtr, 6 Jun 2013.

  1. YaBtr

    YaBtr Members of Antichat

    Joined:
    30 May 2012
    Messages:
    601
    Likes Received:
    350
    Reputations:
    652
    Служба Samba
    Здравствуйте,ачатовцы!Сегодня хочу представить Вам небольшой FAQ по замечательной службе Samba. Недавно пришлось настраивать ее в универе - все получилось далеко не с первого раза :)
    Данный продукт представляет собой комплект серверного и клиентского программного обеспечения для осуществления связи UNIX-машин с сетями Microsoft и LanManager, которые сами по себе представляют собой подклассы сетей, использующих протокол SMB (Server Message Block) и его расширение – протокол CIFS (Common Internet File System protocol – Общий протокол доступа к файловым системам через Интернет).
    С помощью этой службы можно:
    • предоставлять доступ к разделам Linux для рабочих станций Windows;
    • получать доступ к ресурсам сети Microsoft, в том числе к ресурсам доменов Windows NT и доменов Active Directory;
    • распечатывать документы на сетевых принтерах сети Microsoft и использовать локальный принтер в качестве сетевого;
    • использовать Unix-машину в качестве первичного контроллера домена Windows NT.​
    [Клиентская часть]

    Клиентская часть службы samba представлена следующими программами:

    findsmb – программа на Perl, выводящая список машин в данной подсети, отвечающих на запрос об имени по протоколу SMB;
    nmblookup – клиент, служащий для запросов имен NetBIOS по IP-адресам и для опроса состояния удаленных машин. Для посылки запросов используется протокол UDP;
    rpcclient – клиент для исполнения функций Microsoft Remote Procedure Call. Первоначально утилита была разработана для тестирования самой Samba. Может быть использована для управления клиентами Windows из Unix;
    smbcacls – программа для управления списками контроля доступа (ACL) на файловых ресурсах SMB;
    smbclient – программа-клиент для доступа к ресурсам SMB/CIFS на серверах. Имеет пользовательский интерфейс, подобный ftp, и обладает схожей функциональностью;
    smbtar – сценарий оболочки для резервного копирования файловых ресурсов SMB непосредственно на ленту на Unix-машине. Представляет собой надстройку над smbclient;
    smbtree – браузер ресурсов для текстового режима, аналог "Сетевого окружения" на Windows-компьютерах;
    mount.cifs, mount.smb, mount.smbfs, smbmnt, smbmount, smbumount – утилиты для подключения/отключения файловых систем. Обычно непосредственно используется только команды smbmount/smbumount, остальные вызываются автоматически из них или из команды mount при указании соответствующего типа файловой системы. Формат команды smbmount аналогичен формату команды mount, только не указывается тип файловой системы. Имя подключаемого ресурса задается в виде //сервер/ресурс. Следует помнить, что для корректного отображения символов кириллицы в подключаемых windows-ресурсах, надо корректно указать параметры iocharset (набор символов, используемый в Unix, например, koi8-r, cp1251 или utf8) и codepage (кодовая страница, для кириллицы – cp866). Имя пользователя с правами доступа к ресурсу указываются в параметре username в виде имя_пользователя/рабочая_группа%пароль. Рабочая группа и/или пароль могут не указываться, в последнем случае пароль будет запрошен интерактивно.
    smbspool – программа для печати файлов на SMB-принтерах. Для указания принтера должна быть установлена переменная среды DEVICE_URI, значение которой задается в форме smb://имя_пользователя:пароль@рабочая_группа/сервер:порт/принтер. При этом имя пользователя, пароль, рабочая группа и порт могут не указываться. Файл для печати и другие параметры, такие как число копий, заголовки и т. д. задаются в командной строке.

    [Серверная часть]

    Серверная часть представлена следующими программами, выполняющимися в фоновом режиме:
    smbd – основная серверная программа, которая предоставляет файловые ресурсы и ресурсы печати Windows-клиентам по протоколу SMB (или CIFS), также поддерживаются клиенты, работающие по протоколу LanManager;
    nmbd – сервер, который воспринимает запросы протокола NetBIOS over IP и может отвечать на них, а также он участвует в протоколах обзора сети, при помощи которых строится отображение Network Neighborhood в Windows. Также nmbd может выступать в качестве WINS-сервера, поддерживая базу данных на основе запросов о регистрации имен. В дополнение, он может выступать в роли WINS-proxy, перенаправляя запросы от клиентов, не поддерживающих протокол WINS;
    winbindd – сервер разрешения имен путем обращения к Windows-серверам. Обеспечивает также аутентификацию для Samba-сервера и для приложений через подключаемые модули (PAM). Этот сервер должен быть запущен, когда Samba-сервер является членом домена Windows.
    Запуск служб производится стандартным способом через сценарии /etc/rc.d/init.d/smb и /etc/rc.d/init.d/winbind для процессов smbd и nmbd и для winbindd соответственно.
    При работе сервер Samba использует следующие конфигурационные файлы:
    lmhosts – предназначен для преобразования IP-адресов в имена NetBIOS. Формат аналогичен формату файла /etc/hosts. Как правило содержит только одну запись: 127.0.0.1 localhost,
    но можно заносить туда хосты из других подсетей (когда по ряду причин невозможно надежно провести преобразование IP-адресов в имена NetBIOS ни широковещательными запросами, ни с использованием WINS) или наоборот — ключевые серверы собственного домена;
    secrets.tdb – ключевой файл для идентификации машины в домене сети Microsoft. С точки зрения безопасности имеет ту же ценность, что и файлы /etc/shadow — а потому права доступа должны быть 0600;
    smb.conf – основной конфигурационный файл Samba. Он нужен не только серверной части, но и всем остальным компонентам этой системы;
    smbpasswd – аналог /etc/passwd и /etc/shadow – файл пользователей сервера Samba с паролями. С точки зрения безопасности имеет ту же ценность, что и /etc/shadow — а потому права доступа должны быть 0600. Соответствие пользователей Samba и системных производится на основе общего UID; данный файл используется Samba при отсутствии данных о пользователе на PDC или при отсутствии самого PDC;
    smbusers – файл соответствий имен сетевых и локальных пользователей SMB; это удобный метод для организации административных и гостевых входов на сервер. Соответствие пользователей Samba и системных производится на основе символьных имен.
    Основной файл конфигурации samba-сервера – /etc/samba/smb.conf – состоит из секций, которые начинаются с имени в квадратных скобках и заканчиваются с началом следующей секции. Внутри секций задаются параметры в виде "параметр = значение", при этом пробелы вокруг знака равенства игнорируются. В файле всегда присутствуют три секции, определенные по умолчанию: [globals], содержащая общие параметры сервера, [printers], в которой описываются локальные принтеры, и [homes], в которой описываются параметры автоматически подключаемых домашних каталогов пользователей. Все остальные секции представляют собой описание ресурсов сервера, которые будут доступны из сети (либо файловых ресурсов, либо ресурсов печати – локальных принтеров). Вот пример конфигурационного файла для обычного сервера, не входящего в домен.
    #========= Глобальные установки ============
    [global]
    # рабочая группа = имя домена NT или рабочей группы
    workgroup = UMCNIT
    # Описание сервера (будет видно в "Сетевом Окружении")
    server string = Simple Samba Server
    # Задание набора символов на компьютере с Samba и на
    # клиентских машинах (для корректного использования символов
    # кириллицы в именах файлов
    unix charset = utf8
    ...dos charset = cp866
    # следующие две строки требуются, если вы хотите автоматически
    # подгружать список локальных принтеров
    printcap name = /etc/printcap
    load printers = yes
    # Тип системы печати (необязательно, если один из
    # bsd, sysv, plp, lprng, aix, hpux, qnx )
    ; printing = cups
    # Параметры системы печати – не обрабатывать данные
    cups options = raw
    # Разрешить гостевой вход. Пользователь pcguest должен быть
    # добавлен в систему
    guest account = pcguest
    # Использовать отдельный журнал для каждой машины-клиента
    # that connects
    log file = /var/log/samba/%m.log
    # Режим безопасности. Для простейшего сервера доступ
    # определяется по имени пользователя.
    # Детальное описание режимов см. в файле security_level.txt.
    security = user
    # Сервер паролей в нашем случае не требуется
    ; password server = <NT-Server-Name>
    # Шифрование паролей – в простейшем случае не используется
    ; encrypt passwords = yes
    ; smb passwd file = /etc/samba/smbpasswd
    # Файл соответствия пользователей Unix и Windows
    username map = /etc/samba/smbusers
    # Параметры для увеличения производительности сервера.
    # Детали см. в файле speed.txt и справочной документации
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    # Порядок разрешения имен NetBIOS – указано значение по
    # умолчанию
    name resolve order = wins lmhosts bcast
    # Использовать DNS-запросы для разрешения имен NetBIOS
    dns proxy = no
    #=========== Определения ресурсов ==============================
    idmap uid = 16777216-33554431
    idmap gid = 16777216-33554431
    template shell = /bin/false
    winbind use default domain = no
    # Специальная секция для организации автоматического доступа
    # к домашним каталогам пользователей.
    [homes]
    comment = Home Directories
    # Пользователи должны видеть только свой каталог
    browseable = no
    writable = yes
    # Специальная секция для принтеров
    [printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    # установите параметр public = yes, чтобы разрешить
    # печать гостевому пользователю
    guest ok = no
    writable = no
    printable = yes
    # Создание разделяемого каталога
    [tmp]
    comment = Temporary file space
    path = /tmp
    read only = no
    public = yes
    # Частный каталог, который может использоваться только
    # пользователем antichat.
    [antichatsdir]
    comment = antichat's Service
    path = /usr/somewhere/private
    valid users = antichat
    public = no
    writable = yes
    printable = no
    # Разделяемый ресурс, в котором каждой клиентской машине
    # предоставляется свой каталог. Также можно использовать
    # макропеременную %u для настройки по имени пользователя
    # Макропеременная %m заменяется именем машины при соединении
    [pchome]
    comment = PC Directories
    path = /usr/pc/%m
    public = no
    writable = yes​

    Протестировать вновь созданную или измененную конфигурацию можно командой testparm, которая проверяет файл smb.conf на внутреннюю непротиворечивость. Если в командной строке задать имя и IP-адрес хоста, то программа проверит, будет ли указанный хост обладать доступом к ресурсам, определенным в конфигурационном файле.
    Учетные записи пользователей хранятся в файле /etc/samba/smbpasswd и делятся на две категории: записи о компьютерах, входящих в домен (используются, только если Samba используется в качестве контроллера домена) и записи о пользователях, зарегистрированных на данном сервере.
    Следует учитывать, что для того, что бы создать и использовать любую учетную запись в /etc/samba/smbpasswd, предварительно необходимо создать соответствующую запись в /etc/passwd. Общее правило – для каждого пользователя в /etc/samba/smbpasswd обязательно должен существовать пользователь в /etc/passwd. Обратное утверждение неверно.
    Для управления учетными записями предназначена утилита smbpasswd; полный список ее возможностей можно узнать из соответствующей man-страницы, здесь же рассмотрим наиболее частые методы использования.
    Создание нового пользователя:
    smbpasswd -a <Имя_пользователя>
    Смена пароля у существующего пользователя:
    smbpasswd <Имя_пользователя>
    Удаление существующего пользователя:
    smbpasswd -x <Имя_пользователя>
    Приостановление учетной записи без удаления:
    smbpasswd -d <Имя_пользователя>
    Для дополнения и замены утилиты smbpasswd предназначена утилита net, появившаяся в Samba начиная с версии 3.0, которая обеспечивает гораздо большие возможности по получению информации о сети и управлению серверами Samba и CIFS. Формат команд утилиты очень похож на формат одноименной команды Windows NT/2000. Основные применения команды net следующие:
    • создание и удаление пользователей: net user;
    • включение машины в домен: net ads join — Active Directory; net rpc join — NT Domain;
    • получение информации о домене, машине, открытых файлах, сессиях: net info, net ads status, net rpc status;
    • создание и удаление разделяемых ресурсов на удаленных машинах: net share;
    • синхронизация времени с windows-сервером: net time.​

    В состав пакета Samba входят также следующие утилиты администрирования:

    pdbedit – для управления учетными записями пользователей;
    smbcontrol – программа предназначена для передачи сигналов работающим процессам smbd, nmbd и winbindd;
    smbcquotas – предназначена для управления квотами дискового пространства на подключаемых ресурсах с файловой системой NTFS 5;
    smbstatus – получение информации по активным samba-подключениям;
    tdbbackup – для проверки целостности и создания резервной копии базы данных аутентификационной информации Samba-сервера;
    testprns – для тестирования принтеров.

    [Web-администрирование]


    Для web-администрирования службы samba предназначен программный продукт SWAT. Запускается оно через суперсервер xinetd и, соответственно, после установки пакета в каталоге /etc/xinetd.d появляется файл swat, который и определяет параметры запуска этой службы. В режиме по умолчанию это средство администрирования отключено. Включить его можно стандартным образом через команду chkconfig, либо же простым редактированием указанного управляющего файла. В режиме по умолчанию web-администрирование возможно только с локального компьютера (на котором установлен сервер Samba), если управление требуется осуществлять удаленно, то нужно в файле конфигурации удалить или отредактировать параметр only_from, добавив в него адреса машин, с которых требуется производить управление, после чего перезагрузить xinetd для обновления конфигурации.
    Для доступа к серверу web-администрирования необходимо в адресной строке браузера ввести "http://сервер:901", где сервер – имя или IP-адрес сервера, затем ввести имя и пароль суперпользователя, после чего будет загружена главная страница. На всех страницах доступна справка по пунктам конфигурационного меню.
    Следует только помнить, что пароль при входе в службу swat передается в открытом виде, и поэтому удаленное управление без дополнительной защиты соединений небезопасно.

    Спасибо за внимание!
    Источник:моя методичка по никсам.
     
    2 people like this.
  2. taha

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    Файловая помойка - это только одна из возможностей данного продукта..

    Используя samba, можно поднять целый контроллер домена, что кстати плохо описано в рунете =) Начиная с 4 версии можно это сделать в процессе установки или же вручную связать с kerberos и openldap (оснастку же можно использовать и виндовую и free)
     
  3. YaBtr

    YaBtr Members of Antichat

    Joined:
    30 May 2012
    Messages:
    601
    Likes Received:
    350
    Reputations:
    652
    ооооо...как раз собираюсь этим заняться :)
     
  4. taha

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    1 person likes this.