Софт-Портал

Samba 4.2

Рейтинг: 4.0/5.0 (179 проголосовавших)

Категория: Linux

Описание

Winbind в samba 4

Здаров, господа.
Не знаю, в каком направлении уже смотреть. wbinfo показывает мне все, кроме списка пользователей. Просто после попытки обновиться до samba4 из стандартных репозиториев centos 6.7 он перестал это делать. Гугл рассказал про заговор с 4й самбой и libnss_winbind.so,который мне неоткуда было взять. Снес пакеты samba-*, взял оф. мануал и в результате. так никуда и не продвинулся.

Основано на конфигах:

И вот что я вижу: Пользователей в АД включая отключенных менее 300. Я не хочу делать на папки chmod 777, а без списка юзеров далеко не уехать. Где то я что то очевидное упускаю, подскажите если заметите.
getent с группами отрабатывает.

Samba 4.3.8 AD-DC отвалился /sysvol

Прилетело (19.04.2016) обновление для самбы, утром благополучно отказались работать все групповые политики. ни /SYSVOL, ни одна из шар не дает себя просматривать. При попытках выдает такую шляпу: NT_STATUS_OBJECT_NAME_NOT_FOUND Заходит. Пользователей видит (у меня samba-internal dnsserver). https://bugzilla.samba.org/show_bug.cgi?id=11869 Ждем.

mrPresident, Я бы даже сказал, что в твоем случае лучше было бы попробовать использовать samba-internal DNS. И при этом лучше экспериментировать на втором (подопытном) компьютере, взяв его либо через remastersys, либо просто сконфигурировав аналогично твоему.

Надо тестить пакеты, пакеты похоже дико сырые либо что-то не то. dist-upgrade во всяком случае не помогает.

Samba 4.2:

  • скачать
  • скачать
  • Другие статьи, обзоры программ, новости

    С выходом крупного релиза Samba 4

    С выходом крупного релиза Samba 4.2.0 прекращена поддержка ветки 3.x

    Логотип Samba
    Иллюстрация с сайта En.Wikipedia.Org

    В рассылке samba-announce вчера появилась информация о выходе нового крупного релиза Samba — 4.2.0.

    Релиз Samba 4.2.0 содержит многочисленные улучшения и нововведения:

    • поддержка «прозрачного» сжатия файлов и директорий в VFS-модуле для файловой системы Btrfs;
    • новый VFS-модуль Snapper, позволяющий хранить историю состояния файловой системы;
    • новый VFS-модуль WORM для реализации технологии Write Once, Read Manу ;
    • множество улучшений и исправлений в winbindd/netlogon (напоминаем, что совсем недавно в netlogon была найдена критическая уязвимость );
    • новая концепция SMB2 leases, позволяющая сократить трафик для SMB2-соединений;
    • увеличен размер сетевых буферов по умолчанию для протоколов SMB2 и SMB3 (приведен в соответствие со стандартом для Windows 2012R2, составляющем 8Мб для «smb2 max read», «smb2 max write» и «smb2 max trans»);
    • улучшена поддержка системы мьютексов в библиотеке tdb;
    • внутренняя система обмена сообщениями переписана для использования unix domain сокетов;
    • smbclient теперь использует библиотеку libarchive, что дает большие возможности работы с архивами (в частности, появилась поддержка формата ZIP);
    • и многое другое.

    Полный (весьма объемный) список изменений приведен в оригинальном сообщении из рассылки. Кроме того, там же сообщается, что с этого момента прекращается поддержка ветки Samba 3.x. Все возможности Samba 3.x поддерживаются и в ветке Samba 4, поэтому для конечного пользователя переход на новую ветку не должен составить каких-либо проблем.

    CentOS7 Samba4

    Поставлена задача поднять на linux AD и FS

    Домен поднялся, Dns заработала.
    Через виндовый RSAT пользователи и пк заводятся.
    А вот с папками проблемы, тоесть создаю расшаренную папку в Centos /usr/public даю ей права 777,
    в smb.conf прписываю :
    # Global parameters
    [global]
    workgroup = KMSCH9
    realm = KMSCH9.ORG
    netbios name = DC
    server role = active directory domain controller
    dns forwarder = 8.8.8.8
    server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns, smb
    dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver, winreg, srvsvc
    idmap_ldb:use rfc2307 = yes
    allow dns updates = nonsecure
    nsupdate command = /usr/bin/nsupdate -g

    [netlogon]
    path = /var/lib/samba/sysvol/kmsch9.org/scripts
    read only = No

    [sysvol]
    path = /var/lib/samba/sysvol
    read only = No

    [public]
    path = /usr/public
    read only = No
    valid users = +KMSCH9\'domain admins'

    Пытаюсь с помощью setfacl назначить права, выдает вот это :

    setfacl -m g:KMSCH9\\Domain\Admins:rwx /usr/public
    setfacl: Option -m: Недопустимый аргумент near character 3

    Со стороны Windows XP расшаренная папка видна. но назначить какие - либо права не дает.

    Помогите пожалуйста, уже 2 недели пытаюсь, всю башку в хлам уже разбил, на Вас осталась надежда.

    AlfaStriker

    Просмотр профиля

    Nov 5 2015, в 07:19

    Хоть и некропост.
    Сам недавно установил самбу 4.

    Тебе надо чтобы доменные пользователи были видны как локальные.
    Для этого настраивают:
    1. Winbind, sssd или nslcd
    2. Редактируют файл /etc/nsswitch.conf

    И далее уже будет работать команда setfacl

    Samba - скачать бесплатно Samba 4

    Samba 4.4.5

    GRUB 2.00
    Загрузчик операционной системы от проекта GNU. Позволяет установить несколько операционных систем и при включении компьютера выбирать одну из них для загрузки.

    Ubuntu Tweak 0.8.7
    Упрощает конфигурирование Ubuntu - предоставляет множество настроек, недоступных по умолчанию

    Adobe Reader 9.5.5
    Приложение для просмотра и печати документов формата PDF

    NTFS-3G 2016.2.22
    Драйвер, позволяющий производить чтение и запись на разделы NTFS

    Midnight Commander 4.8.17
    Файловый менеджер с текстовым интерфейсом

    RAR for Linux 5.40
    Новая версия архиватора. Консольная версия для Linux

    FreeFileSync 8.4
    Программа с открытым исходным кодом для сравнения и синхронизации папок

    Webmin 1.810
    Удобный интерфейс для системного администрирования Unix (Linux) с использованием любого браузера, поддерживающего формы и таблицы

    Nautilus 3.20.2
    Файловый менеджер для Gnome

    PeaZip 6.1.0
    Мультиплатформенный (Linux, Windows) архиватор

    Установка Samba4 AD (контроллера домена) часть 1 - Петр Бубнов

    Данная статья не претендует на право быть истиной в последней инстанции, а призвана помочь лично мне (а возможно, ещё кому-то) установить и настроить "Домен Windows" на базе SAMBA4. Это - первая часть, об установке и настройке первичного контроллера домена; рекомендации по настройке вторичного контроллера планирую написать позже.
    Итак, что мы имеем:
    - операционная система Linux (пример создавался на CentOS 6.4. в других дистрибутивах приведённые пути файлов могут отличаться);
    - требуется настроить единый центр авторизации для использования как для входа в рабочие станции, так и для доступа к почте;
    - предполагается использовать сервисы DNS, авторизации (там всё непросто, но в основном будет kerberos), LDAP.
    Что нам известно:
    - ни в одном из изученных бесплатных дистрибутивов Linux (CentOS, openSUSE, Ubuntu) в штатных репозиториях нет более-менее свежего пакета samba4-server;
    - более-менее полная реализация домена совместимого с Active Directory реализована начиная с samba4;
    - в реализациях samba до 4.0.5 было несколько ошибок, действительно сильно мешающих её эксплуатации (на момент написания статьи актуальным является релиз 4.0.7, в котором критических для меня ошибок пока выявить не удалось).

    Порядок действий (основная часть сценария взята из соответствующей статьи на сайте samba ).
    UPD: Пока писал статью, в поисках дополнительной информации натолкнулся на весьма подробное описание процесса установки и настройки samba - подробнее я описать данный процесс не смогу, а лишь обращу внимание, что в моей версии установка производится из репозитария, ну и ещё есть пара отличий, итак:
    1. Ставим настолько минимальную установку Linux, на сколько нам позволяет дистрибутив (настоятельно рекомендую отказаться от установки графической оболочки - всё равно на сервере от неё пользы практически нет, а ресурсы она потребляет, особенно это заметно при включении/перезагрузке сервера); критической рекомендацией является не устанавливать samba-server (рекомендация родилась из чтения форумов, где весьма много проблем возникает как раз из-за остатков предыдущей установки сервера samba). IP-адрес должен присваиваться статически .
    2. Регистрируем репозиторий, содержащий актуальную версию samba4-server (я использовал рекомендованный на сайте проекта samba ресурс http://enterprisesamba.com/ - для доступа к нему требуется регистрация, но она на момент написания статьи, бесплатная и ни к чему не обязывающая).

    [root@centserv bin]# cd /etc/yum.repos.d
    [root@centserv yum.repos.d]# curl -O https:// USERNAME:ACCESSKEY@download. sernet.de/packages/samba/4.0/centos/6/sernet-samba-4.0.repo
    --2013-07-25 15:24:57-- https:// USERNAME:*password*@download. sernet.de/packages/samba/4.0/centos/6/sernet-samba-4.0.repo
    Распознаётся download.sernet.de. 193.175.80.229
    Устанавливается соединение с download.sernet.de|193.175.80.229|:443. соединение установлено.
    Запрос HTTP послан, ожидается ответ. 401 Authorization Required
    Повторное использование соединения с download.sernet.de:443.
    Запрос HTTP послан, ожидается ответ. 200 OK
    Длина: 282 [text/plain]
    Saving to: «sernet-samba-4.0.repo»

    2013-07-25 15:25:03 (5,89 MB/s) - «sernet-samba-4.0.repo» saved [282/282]

    * в написании адреса выше и ниже умышленно допущена ошибка - два пробела (после "https://" и перед "sernet.de"), иначе движок сайта пытается их отобразить в виде совершенно нечитаемой конструкции.
    В данном примере USERNAME:ACCESSKEY следует заменить на имя пользователя и код доступа, полученные при регистрации на enterprisesamba.com и отображаемые на https://portal.enterprisesamba.com/ ; после скачивания шаблона sernet-samba-4.0.repo следует отредактировать его, заменив USERNAME:ACCESSKEY на ту же пару имени пользователя и кода доступа, что и при скачивании, затем необходимо импортировать GPG-ключи данного сервера:

    [root@centserv log]# curl -O http:// ftp. sernet.de/pub/sernet-build-key-1.1-3.noarch.rpm
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 4402 100 4402 0 0 716k 0 --:--:-- --:--:-- --:--:-- 1074k
    [root@centserv log]# yum install sernet-build-key-1.1-3.noarch.rpm
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    * base: mirror.yandex.ru
    * extras: mirror.yandex.ru
    * updates: mirror.yandex.ru
    Setting up Install Process
    Examining sernet-build-key-1.1-3.noarch.rpm: sernet-build-key-1.1-3.noarch
    Marking sernet-build-key-1.1-3.noarch.rpm to be installed
    Resolving Dependencies
    --> Running transaction check
    ---> Package sernet-build-key.noarch 0:1.1-3 will be installed
    --> Finished Dependency Resolution

    Total size: 822
    Installed size: 822
    Is this ok [y/N]: y
    Downloading Packages:
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
    Installing. sernet-build-key-1.1-3.noarch 1/1
    importing SerNet build key to rpm keyring. done.
    Verifying. sernet-build-key-1.1-3.noarch 1/1

    Installed:
    sernet-build-key.noarch 0:1.1-3

    В данном примере вместо привычного wget использован curl. т.к. wget при минимальной установке отсутствует.
    3. Устанавливаем сами компоненты сервера samba; если в качестве поставщика пакета был выбран enterprisesamba.com, требуемый пакет будет называться sernet-samba-ad (SerNet Samba AD domain controller) и все недостающие пакеты он подтянет самостоятельно:

    [root@centserv /]# yum install sernet-samba-ad
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Loading mirror speeds from cached hostfile
    * base: mirror.yandex.ru
    * extras: mirror.yandex.ru
    * updates: mirror.yandex.ru
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package sernet-samba-ad.i686 0:4.0.7-4.el6 will be installed
    base/filelists_db | 4.9 MB 00:00
    extras/filelists_db | 10 kB 00:00
    sernet-samba-4.0/filelists | 52 kB 00:00
    updates/filelists_db | 3.1 MB 00:00
    --> Processing Dependency: sernet-samba-libs = 4.0.7-4.el6 for package: sernet-samba-ad-4.0.7-4.el6.i686
    .
    --> Processing Dependency: libauthkrb5.so(SAMBA_4.0.7_SERNET_REDHAT_4.EL6) for package: sernet-samba-ad-4.0.7-4.el6.i686
    --> Running transaction check
    ---> Package sernet-samba.i686 0:4.0.7-4.el6 will be installed
    ---> Package sernet-samba-client.i686 0:4.0.7-4.el6 will be installed
    ---> Package sernet-samba-libs.i686 0:4.0.7-4.el6 will be installed
    --> Processing Dependency: sernet-samba-common = 4.0.7-4.el6 for package: sernet-samba-libs-4.0.7-4.el6.i686
    ---> Package sernet-samba-libsmbclient0.i686 0:4.0.7-4.el6 will be installed
    ---> Package sernet-samba-libwbclient0.i686 0:4.0.7-4.el6 will be installed
    ---> Package sernet-samba-winbind.i686 0:4.0.7-4.el6 will be installed
    --> Running transaction check
    ---> Package sernet-samba-common.i686 0:4.0.7-4.el6 will be installed
    --> Finished Dependency Resolution

    ========================================================================================================================
    Package Arch Version Repository Size
    ========================================================================================================================
    Installing:
    sernet-samba-ad i686 4.0.7-4.el6 sernet-samba-4.0 3.8 M
    Installing for dependencies:
    sernet-samba i686 4.0.7-4.el6 sernet-samba-4.0 1.4 M
    sernet-samba-client i686 4.0.7-4.el6 sernet-samba-4.0 400 k
    sernet-samba-common i686 4.0.7-4.el6 sernet-samba-4.0 229 k
    sernet-samba-libs i686 4.0.7-4.el6 sernet-samba-4.0 4.1 M
    sernet-samba-libsmbclient0 i686 4.0.7-4.el6 sernet-samba-4.0 46 k
    sernet-samba-libwbclient0 i686 4.0.7-4.el6 sernet-samba-4.0 41 k
    sernet-samba-winbind i686 4.0.7-4.el6 sernet-samba-4.0 346 k

    Total download size: 10 M
    Installed size: 50 M
    Is this ok [y/N]: y
    Downloading Packages:
    (1/8): sernet-samba-4.0.7-4.el6.i686.rpm | 1.4 MB 00:06
    (2/8): sernet-samba-ad-4.0.7-4.el6.i686.rpm | 3.8 MB 00:13
    (3/8): sernet-samba-client-4.0.7-4.el6.i686.rpm | 400 kB 00:01
    (4/8): sernet-samba-common-4.0.7-4.el6.i686.rpm | 229 kB 00:00
    (5/8): sernet-samba-libs-4.0.7-4.el6.i686.rpm | 4.1 MB 00:15
    (6/8): sernet-samba-libsmbclient0-4.0.7-4.el6.i686.rpm | 46 kB 00:00
    (7/8): sernet-samba-libwbclient0-4.0.7-4.el6.i686.rpm | 41 kB 00:00
    (8/8): sernet-samba-winbind-4.0.7-4.el6.i686.rpm | 346 kB 00:00
    ------------------------------------------------------------------------------------------------------------------------
    Total 234 kB/s | 10 MB 00:44
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
    Installing. sernet-samba-common-4.0.7-4.el6.i686 1/8
    Installing. sernet-samba-libwbclient0-4.0.7-4.el6.i686 2/8
    Installing. sernet-samba-libs-4.0.7-4.el6.i686 3/8
    Installing. sernet-samba-libsmbclient0-4.0.7-4.el6.i686 4/8
    Installing. sernet-samba-client-4.0.7-4.el6.i686 5/8
    Installing. sernet-samba-4.0.7-4.el6.i686 6/8
    Installing. sernet-samba-winbind-4.0.7-4.el6.i686 7/8
    Installing. sernet-samba-ad-4.0.7-4.el6.i686 8/8
    Verifying. sernet-samba-ad-4.0.7-4.el6.i686 1/8
    Verifying. sernet-samba-4.0.7-4.el6.i686 2/8
    Verifying. sernet-samba-client-4.0.7-4.el6.i686 3/8
    Verifying. sernet-samba-libsmbclient0-4.0.7-4.el6.i686 4/8
    Verifying. sernet-samba-libs-4.0.7-4.el6.i686 5/8
    Verifying. sernet-samba-winbind-4.0.7-4.el6.i686 6/8
    Verifying. sernet-samba-libwbclient0-4.0.7-4.el6.i686 7/8
    Verifying. sernet-samba-common-4.0.7-4.el6.i686 8/8

    Installed:
    sernet-samba-ad.i686 0:4.0.7-4.el6

    Dependency Installed:
    sernet-samba.i686 0:4.0.7-4.el6 sernet-samba-client.i686 0:4.0.7-4.el6 sernet-samba-common.i686 0:4.0.7-4.el6
    sernet-samba-libs.i686 0:4.0.7-4.el6 sernet-samba-libsmbclient0.i686 0:4.0.7-4.el6 sernet-samba-libwbclient0.i686 0:4.0.7-4.el6
    sernet-samba-winbind.i686 0:4.0.7-4.el6


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

    [root@centserv /]# /usr/bin/samba-tool domain provision --use-rfc2307 --interactive
    Realm [LOCALDOMAIN]: TEST.LAN
    Domain [TEST]:
    Server Role (dc, member, standalone) [dc]:
    DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
    DNS forwarder IP address (write 'none' to disable forwarding) [192.168.122.1]:
    Administrator password:
    Retype password:
    Looking up IPv4 addresses
    Looking up IPv6 addresses
    No IPv6 address will be assigned
    Setting up secrets.ldb
    Setting up the registry
    Setting up the privileges database
    Setting up idmap db
    Setting up SAM db
    Setting up sam.ldb partitions and settings
    Setting up sam.ldb rootDSE
    Pre-loading the Samba 4 and AD schema
    Adding DomainDN: DC=test,DC=lan
    Adding configuration container
    Setting up sam.ldb schema
    Setting up sam.ldb configuration data
    Setting up display specifiers
    Modifying display specifiers
    Adding users container
    Modifying users container
    Adding computers container
    Modifying computers container
    Setting up sam.ldb data
    Setting up well known security principals
    Setting up sam.ldb users and groups
    Setting up self join
    Adding DNS accounts
    Creating CN=MicrosoftDNS,CN=System,DC=test,DC=lan
    Creating DomainDnsZones and ForestDnsZones partitions
    Populating DomainDnsZones and ForestDnsZones partitions
    Setting up sam.ldb rootDSE marking as synchronized
    Fixing provision GUIDs
    A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
    Setting up fake yp server settings
    Once the above files are installed, your Samba4 server will be ready to use
    Server Role: active directory domain controller
    Hostname: centserv
    NetBIOS Domain: TEST
    DNS Domain: test.lan
    DOMAIN SID: S-1-5-21-1277046508-1680134345-2292655608

    Здесь хочется сделать пару "лирических отступлений": во-первых, имя домена я написал заглавными буквами неспроста - для авторизации GSSAPI/KERBEROS применяется понятие Realm, которое в Linux указывается заглавными буквами, и чувствительно к регистру; во-вторых, важно правильно выбрать имя домена - если домен будет оканчиваться на .LOCAL, вас ждут некоторые (иногда весьма серьёзные) затруднения. ну и напоследок, для обеспечения более корректной настройки, рекомендую в файле /etc/sysconfig/network вписать правильное значение переменной HOSTNAME. если оно не было внесено установщиком Linux.
    Создадим в /etc ссылку на файл настройки kerberos созданный на данном этапе командой ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf
    5. Устанавливаем режим запуска samba-server в "ad", для чего изменяем строчку в файле /etc/default/sernet-samba:

    [root@centserv default]# cat /etc/default/sernet-samba | grep START_MODE
    SAMBA_START_MODE="ad"
    [root@centserv default]#


    6. Запускаем сервер samba:

    [root@centserv default]# service sernet-samba-ad start
    Starting SAMBA AD services. [ OK ]
    [root@centserv default]# service sernet-samba-ad status
    Checking for SAMBA AD services. [FAILED]

    Данный сбой возникает не всегда - от чего зависит, доподлинно выяснить не удалось. В результате samba аварийно (и практически без диагностических сообщений на любом уровне логирования) выгружается из памяти сервера, даже не удалив pid-файлы, но при запуске из командной строки /usr/sbin/samba -D (как указано в официальном wiki), всё стартует.
    *Судя по всему, сборщики пакета не предусмотрели полной автоматической настройки selinux, т.к. контекст старта демона и контекст запуска из командной строки отличаются; если имеет место внезапное закрытие процессов samba, настоятельно рекомендую изучить материалы по selinux (для RHEL/CentOS/Fedora) или apparmor (для Ubuntu/openSUSE)
    **Уже после написания данной статьи обнаружил весьма подробную инструкцию, в том числе и про selinux .
    7. Указываем в качестве DNS-сервера контроллер домена, для чего приводим файл /etc/resolv.conf примерно к такому виду:

    search test.lan
    nameserver 127.0.0.1

    Если DNS настраивается скриптом автостарта интерфейса, вносим правку в него, т.к. в данном случае resolv.conf будет перезаписан при следующей перезагрузке.
    8. Проверяем локально доступность сетевой папки netlogon:

    [root@centserv]# smbclient //localhost/netlogon -U Administrator -c 'ls'
    Enter Administrator's password:
    Domain=[TEST] OS=[Unix] Server=[Samba 4.0.7-SerNet-RedHat-4.el6]
    . D 0 Thu Jul 25 14:24:51 2013
    . D 0 Thu Jul 25 14:25:43 2013

    34409 blocks of size 524288. 28172 blocks available
    [root@centserv]#

    Минимальный требуемый результат получен!
    На всякий случай, приведу ссылку на описание контекстов selinux для общих (share) ресурсов ; мне не пригодилось, но вдруг.
    Не лишним будет так же убедиться, что samba слушает запросы DNS и LDAP:

    [root@centserv log]# netstat -l -n -p | grep ":53"
    tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 1936/samba
    udp 0 0 0.0.0.0:53 0.0.0.0:* 1936/samba
    [root@centserv log]# netstat -l -n -p | grep ":389"
    tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1927/samba
    udp 0 0 192.168.122.252:389 0.0.0.0:* 1928/samba
    udp 0 0 0.0.0.0:389 0.0.0.0:* 1928/samba
    [root@centserv log]#

    Ремарка:
    Одной из причин неработоспособности samba могут быть проблемы с selinux - на одной из тестовых установок у меня не стартовала samba, а в /var/log/messages можно было увидеть примерно следующее:

    Jul 26 16:15:43 centserv setroubleshoot: SELinux is preventing /usr/sbin/smbd from search access on the directory lock. For complete SELinux messages. run sealert -l f0758470-f0dc-4957-8e5a-8a277483a08f
    Jul 26 16:15:43 centserv setroubleshoot: SELinux is preventing /usr/sbin/smbd from search access on the directory lock. For complete SELinux messages. run sealert -l f0758470-f0dc-4957-8e5a-8a277483a08f
    Jul 26 16:15:43 centserv setroubleshoot: SELinux is preventing /usr/sbin/smbd from search access on the directory lock. For complete SELinux messages. run sealert -l f0758470-f0dc-4957-8e5a-8a277483a08f

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

    [root@centserv var]# sealert -l f0758470-f0dc-4957-8e5a-8a277483a08f
    SELinux is preventing /usr/sbin/smbd from search access on the каталог lock.

    Если вы хотите предоставить smbd доступ search к lock directory
    То необходимо изменить метку на «lock»
    Сделать
    # semanage fcontext -a -t samba_share_t 'lock'
    # restorecon -v 'lock'

    ***** Модуль catchall_boolean (12.2 ) предлагает ***************************

    Если вы хотите выполнить следующее: allow samba to share any file/directory read only.
    То установите переменную «samba_export_all_ro», чтобы сообщить об этом SELinux.
    Сделать
    setsebool -P samba_export_all_ro 1

    ***** Модуль catchall_boolean (12.2 ) предлагает ***************************

    Если вы хотите выполнить следующее: allow samba to share any file/directory read/write.
    То установите переменную «samba_export_all_rw», чтобы сообщить об этом SELinux.
    Сделать
    setsebool -P samba_export_all_rw 1

    Если вы считаете, что smbd следует разрешить доступ search к lock directory по умолчанию.
    То рекомендуется создать отчет об ошибке.
    Чтобы разрешить доступ, можно создать локальный модуль политики.
    Сделать
    чтобы разрешить доступ, выполните:
    # grep smbd /var/log/audit/audit.log | audit2allow -M mypol
    # semodule -i mypol.pp

    После нескольких итераций ввода предложенных команд, ругань прекратилась и всё заработало.
    9. Для обеспечения синхронизации времени в нашем домене, понадобится ntp-сервер; установить и запустить демона ntp можно и с настройками по умолчанию, для чего потребуется ввести команды: yum install ntp. затем chkconfig ntpd on и наконец service start ntp
    Дополнительно нелишне будет установить сервер CUPS (в документации на SAMBA4 говорится, что общий доступ к принтерам [на данный момент] не реализован, но если CUPS не установлен, в логах появляются многочисленные "жалобы" на его отсутствие).
    10. Проверяем доступность сервисов с машин в сети - здесь стоит обратить внимание на наличие файрвола - в принципе, стоит объявить интерфейс, слушающий пользователей, доверенным, добавив в файл /etc/sysconfig/iptables примерно следующее:

    -A INPUT -i eth0 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
    -A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

    Здесь первая приведённая строка разрешает любые подключения на интерфейс eth0, а три последующие открывают доступ к ssh и DNS на всех интерфейсах. Такой блок резонно размещать сразу после строки -A INPUT -i lo -j ACCEPT. присутствующей по умолчанию.
    Подробнее про IPTables: http://wiki.centos.org/HowTos/Network/IPTables
    Проверку я выполнял с машины под управлением Windows (в большинстве случаев samba разворачивается как раз для управления windows-клиентами):

    C:\Users\User>nslookup test.lan 192.168.122.252
    Server: UnKnown
    Address: 192.168.122.252

    Name: test.lan
    Address: 192.168.122.252

    Замечательно, DNS по крайней мере знает о существовании домена, теперь перенацеливаем DNS клиента на наш сервер и регистрируем машину в домене. Если всё сделано правильно, машина будет введена в домен и дальнейшее администрирование домена можно осуществлять из-под учётной записи Administrator. созданной на шаге 4, не особо задумываясь над тем, что контроллер домена "не очень" Windows Server.
    Если есть какие-то проблемы, скорее всего опять виноват SELinux - читаем /var/log/messages и /var/log/samba/log.* .
    LDAP-сервер samba по умолчанию отвергает анонимный доступ, так что для администрирования следует подключаться с параметрами:

    Сервер LDAP: centserv.test.lan // можно по IP
    DN Администратора: cn=Administrator,cn=Users,dc=test,dc=lan
    Пароль сервера LDAP: /пароль сервера/

    Для служебного доступа (например, для сопоставления расширенных атрибутов в приложениях с kerberos-авторизацией, об этом планирую написать отдельную статью) резонно использовать отдельно созданную служебную учётную запись.

    После ввода windows-машины в домен, провёл тест dcdiag /s:centserv.test.lan и получил несколько ошибок, часть из которых были ожидаемыми и не вызвали вопросов, а часть - вполне поправимыми, например ругань типа "ForestDnsZones: CheckSDRefDom: В разделе каталога приложений DC=ForestDnsZones,DC=test,DC=lan отсутствует домен ссылок дескрипторов безопасности. Администратор должен задать для атрибута msDS-SD-Reference-Domain объекта перекрестной ссылки CN=71dd3587-5fa6-5a71-aef4-a2a26fde964a,CN=Partitions,CN=Configuration,DC=test,DC=lan значение DN домена" или то же самое про DomainDnsZones, лечится ручным внесением значения DN домена (DC=test,DC=lan) в указанный параметр (до правки он пустой) с помощью любого ldap-браузера, например:

    Очень похоже правятся и другие пустые ссылки - для жалобы на пустой serverReferenceBL вносим в соответствующей ветке значение параметра serverReference равное CN=NTDS Settings,CN=CENTSERV,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=lan (естественно, в соответствии со своей структурой домена. ).
    Ну а проверку windows-сервисов, linux-сервер с установленным samba вполне ожидаемо не пройдёт, сколько ни бейся. Примерно так же я отнёсся и к ошибкам проверки FRS, т.к. вроде бы поддержку FRS в samba ещё не реализовали.

    Простейшая Samba на FreeBSD с авторизацией для доступа

    Простейшая Samba на FreeBSD с авторизацией для доступа

    Задача:
    Дать доступ к ресурсам, расположенным на FreeBSD-сервере, клиентам с операционной системой от M$ посредством Samba-сервера (протокол SMB/CIFS). Доступ должен предоставляться по логину/паролю хранящихся в самой samb’e, а не в разных протоколах для доступа к службам каталогов.
    Задача такого уровня, можно сказать, простая, но с ней сталкиваются довольно часто(особенно дома), тем более она актуально не только для FreeBSD, но и для других Unix-like систем.
    Приступим.
    Ставим samba34:
    cd /usr/ports/net/samba34
    make config

    Выбираем опции:
    Options for samba34 3.4.9
    [ ] LDAP With LDAP support
    [ ] ADS With Active Directory support
    [ ] CUPS With CUPS printing support
    [X] WINBIND With WinBIND support
    [X] SWAT With SWAT WebGUI
    [ ] ACL_SUPPORT With ACL support
    [ ] AIO_SUPPORT With Asyncronous IO support
    [ ] FAM_SUPPORT With File Alteration Monitor
    [X] SYSLOG With Syslog support
    [ ] QUOTAS With Disk quota support
    [ ] UTMP With UTMP accounting support
    [ ] PAM_SMBPASS With PAM authentication vs passdb backends
    [ ] DNSUPDATE With dynamic DNS update(require ADS)
    [ ] AVAHI With Bonjour service discovery support
    [ ] EXP_MODULES With experimental modules
    [X] POPT With system-wide POPT library
    [ ] MAX_DEBUG With maximum debugging
    [ ] SMBTORTURE With smbtorture

    ставим:
    make BATCH=yes -C/usr/ports/net/samba34 install clean
    rehash

    в /etc/rc.conf добавляем:
    samba_enable="YES"

    # WORKGROUP - название рабочей группы
    workgroup = WORKGROUP

    # server string -комментарий к серверу, который будет
    # виден клиентам, например в проводнике.
    server string = vbpc003 smb

    # security = user - включаем авторизацию по логину и паролю.
    security = user

    # hosts allow - разрешить доступ только в указаных подсетях
    hosts allow = 10.36.1. 192.168.1. 127.

    # load printers = no - не показывать принтеры
    load printers = no

    # log file - файл журнала
    log file = /var/log/samba/log.%m

    # max log size - максимальный размер журнала
    max log size = 50

    # local master = no - говорим демону nmbd не пытаться стать
    # локальным мастер-браузером. Да и вообще, домена не будет, поэтому
    local master = no
    domain master = no

    # Запрещаем nmbd делать запросы к DNS
    dns proxy = no

    # resurs_01 - название открываемого ресурса
    [resurs_01]
    # comment - комментарий к ресурсу, будет виден пользователям в проводнике m$
    comment = resurs_01

    # path - открываемая для доступа директория
    path = /путь/до/resurs_01

    # browseable = yes - отображать ресурс в списке доступных ресурсов.
    browseable = yes

    # writable = no - запретить запись в открытую директорию
    writable = no

    # guest ok = no - запретить гостям ходить в resurs_01
    guest ok = no

    # resurs_02 - не видим в проводнике, попасть туда можно
    # явно написав полный путь (\\ip_pc\resurs_02).
    # Запрещена запись в resurs_02
    # и гостю в доступе отказано.
    [resurs_02]
    comment = resurs_02
    path = /путь/до/resurs_02
    browseable = no
    writable = no
    guest ok = no

    # resurs_03 - виден в проводнике,
    # запись разрешена
    # гостям вход разрешён
    [resurs_03]
    comment = RW resurs_03
    path = /путь/до/resurs_03
    browseable = yes
    writable = yes
    guest ok = yes

    стартуем самбу:
    /usr/local/etc/rc.d/samba start

    после внесения изменений в /usr/local/etc/smb.conf самбу надо всегда рестартовать:
    /usr/local/etc/rc.d/samba restart

    авторизация для доступа на ресурс samba будет производиться по логину и паролю.
    создаём пользователей в самбе через smbpasswd (выполняем от root’a):
    smbpasswd -a administrator
    New SMB password:
    Retype new SMB password:
    Added user administrator.

    Примечание:
    Пользователь administrator должен присутствовать в системе (выполнить cat /etc/passwd для получения информации о имеющихся в системе пользователях)
    Учётная запись с именем administrator будет внесена в базу пользователей самбы.

    Для отключения учётной записи в самбе:
    smbpasswd -d administrator
    Disabled user administrator.

    Для включения отключённой учётной записи:
    smbpasswd -e administrator
    Enabled user administrator.

    Для удаления пользователя из базы samb’ы:
    smbpasswd -x administrator
    Deleted user administrator.

    Посмотреть активные подключения:
    smbstatus

    Примечание:
    1) не забываем про порты с 137 по 139 в фаерволе для samb’ы, они должны быть открыты.

    2) и ещё не забываем про доступ на уровне файловой системы: Если вы открываете через samb’у, например, /путь/до/resurs_03 на запись для пользователя administrator, то этот же пользователь должен иметь права на запись в /путь/до/resurs_03 во FreeBSD. Так как пример наипростейший(домашний вариант, так сказать), то можно сделать в консоли:
    chmod 0777 /путь/до/resurs_03
    (тоесть дать полный доступ на /путь/до/resurs_03 всем пользователям freebsd) и раздавать права на уровне samb’ы.

    Всё изложенное выше — это минимум для организации домашней файлопомойки клиентам с операционной системой от m$ с авторизацией для доступа.

    Примечание:
    Полезный ресурс со всеми опциями smb.conf

    Навигация по записям Добавить комментарий Отменить ответ

    Для отправки комментария вам необходимо авторизоваться .

    Настройка файл-сервера Samba 4 с авторизацией по логину

    ср, 27/08/2014 - 14:57 — Марат

    Задача:
    Обеспечить доступ по паролю к cетевым smb-ресурсам share1 и share2 пользователей user1, user2 и user3, в соотвествии с правами (уровнем разграничения прав).
    Пользователи user1 и user2 будут иметь полный доступ по паролю соответственно к share1 и share2. Пользователь user3 к обоим ресурсам.

    Создаем каталоги новых пользователей в системе:
    sudo mkdir /home/user1
    sudo mkdir /home/user2
    sudo mkdir /home/user3

    Заводим новых пользователей системы:
    sudo useradd -s /usr/sbin/nologin user1
    sudo useradd -s /usr/sbin/nologin user2
    sudo useradd -G user1,user2 -s /usr/sbin/nologin user3

    Проверяем права:
    id user1 && id user2 && id user3


    uid=1001(user1) gid=1001(user1) группы=1001(user1)
    uid=1002(user2) gid=1002(user2) группы=1002(user2)
    uid=1003(user3) gid=1003(user3) группы=1003(user3),1001(user1),1002(user2)

    Задаем пароли доступа:
    sudo passwd user1
    sudo passwd user2
    sudo passwd user3

    Создаем каталоги сетевых smb-ресурсов:
    mkdir /home/kiosk/share1
    mkdir /home/kiosk/share2

    Меняем каталогам права владельцев (пользователь:группа):
    sudo chown user1:user1 -R /home/kiosk/share1
    sudo chown user2:user2 -R /home/kiosk/share2

    Установим самба-сервер:
    sudo apt-get install samba

    smbd --version
    Version 4.1.6-Ubuntu

    Бекапим файл конфигурации:
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.default

    Cмотрим где хранится база паролей samba:
    testparm -v | grep passdb

    Настраиваем конфиг:
    sudo nano /etc/samba/smb.conf

    ## Browsing/Identification ###
    workgroup = SERVERS
    security = user

    ####### Authentication #######
    passdb backend = smbpasswd

    [user1]
    path = /home/kiosk/share1
    browseable = yes
    writeable = yes
    valid users = user1, user3
    create mask = 0644
    directory mask = 0755
    force user = user1

    [user2]
    path = /home/kiosk/share2
    browseable = yes
    writeable = yes
    valid users = user2, user3
    create mask = 0644
    directory mask = 0755
    force user = user2

    Создаем пользователей samba и задаем им пароли:
    sudo smbpasswd -a user1
    sudo smbpasswd -a user2
    sudo smbpasswd -a user3

    Проверяем на ошибки конфигурацию samba:
    testparm

    Чтобы вновь созданные пользователи не могли зайти по ssh редактируем:
    sudo nano /etc/shells
    Добавим новую строку:
    /usr/sbin/nologin

    Перезапускаем сервис для применения новых параметров:
    sudo service smbd restart

    Проверяем пробуя зайти на сетевые ресурсы.

    CentOS-7 и Samba Member Domain в AD

    CentOS-7 и Samba Member Domain в AD

    Cruiser78 написал 9 месяцев назад #1 Автор

    Имею следующую проблему. Поднял AD-DC на Samba 4.2. На отдельной виртуальной машине (CentOS-7, если что). Завел в него рабочие компьютеры, юзерей. Все работает, юзеря не жужжат. Однако файловая помойка осталась под управлением Samba-3 и в ином домене. Это ерунда, имена, пароли пользователей совпадают, до своих файлов на сети они добираются.

    Теперь настала нужда избавиться от этого старого домена. Перевести всю помойку на Samba 4.2 и сделать файловый сервер членом AD-домена. И всё оно, вроде как получается. Стендовый сервер поднял, ввел его в домен, программка wbinfo показывает мне и юзерей, и группы и говорит, что отношения с контроллером домена в полном порядке. Однако зайти доменный (AD) юзер на этот сервер не может никак. И, к тому же, вызов getent passwd (и аналогичные вызовы вроде id <DomainUser> и так далее) видят только локальных на этом файловом сервере пользователей. Про доменных не знают ничего. Однако керберос до центрального Кербероса добирается и тикеты доменным юзерям выдает (kinit и klist).

    Копал в сторону файлика /etc/nssswitch.conf, но там везде (где требуется) использование winbind'а определено. В PAM-модулях (system-auth)использование winbind'а тоже заказано. Но не выходит каменный цветок.

    Конфигурация самбы более чем типовая, полностью соответствует всем статьям об её настройке, но в статьях getent passwd показывает доменных юзерей, а у меня нет. Кстати, на контроллере домена (а я его клонировал под файловый сервер) всё показывается как положено, и локальные юзера и доменные. Но на отдельном севере - обломс.

    Если кто может что умное сказать на эту тему, то буду очень благодарен.

    Cruiser78 написал 9 месяцев назад #3 Автор

    @ArcFi Ну неужели я этого не делал? Да еще и winbind не запускал, наверное. Я даже про утилиту authconfig-tui знаю. Не первый день над этой загадкой бьюсь. Самба, кстати, не самосборная, сернетовская. И вот что имеем:

    То есть - везде все прописано, но система не получает с контроллера домена доменных юзерей кроме как в wbinfo. Тупо о них не знает. Однако, на доменном контроллере всё честно, есть и локальные юзеря и виртуальные доменные. Спинным мозгом чую, что проблема не самой самбе, а в sssd и в nss. Не общаются они с винбиндом. А почему - не пойму.

    Cruiser78 написал 9 месяцев назад #7 Автор

    @AlfaStriker Разве платный? Там, как я понимаю, немного изменилась политика "лицензирования". Есть у них Samba-4.3. Это надо покупать в ихнем магазине магазине. А доступ к репам 4.0-4.2 как и был, бесплатный. Но только требует регистрации на портале https://portal.enterprisesamba.com/. А после регистрации ты получишь код доступа к репам и можешь оттуда ставить всё, что нужно не заморачиваясь с самостоятельной сборкой.
    Ну в общем, не знаю. Я там зарегистрировался пару лет, наверное, назад. Денег с меня никаких не просят. А самбу - дают. Кроме последней, 4.3. Да мне она и не уперлась.
    И еще - поднять самбовый домен 4.2 - это элементарно делается. Там на полчаса работы с пивом. Дольше виртуалку под DC готовить. А сам домен на раз штатным скриптом разворачивается, ничего интересного. А дальше - начинаются нюансы типа моих.

    @ArcFi Конфиги типовые, во всех интернетах описаны. А вот поведение - не соответствует описываемому в интернете. Мне вообще sssd фиолетов. Не будет его - еще проще, наверное. Но сейчас имею следующее на серверах:

    1. На AD-DC поднята собственно самба, керберос и ldap (из самбовой поставки). Стартует самба там в режиме AD. И, дополнительно, ей указано поднимать winbindd. Проблем с ней полгода как нет.
    2. На файловом сервере (CentOS-7), конфиг самбы сделан под member server, самба настоятельно просит стартовать её в режиме Classic. То есть все бинарники, smbd, nmbd, winbindd порознь. Это не проблема и всё начинает функционировать. Почти.

    В логах криминала нет. Винбинды хорошо вяжутся друг с другом, передают информацию о группах, пользователях. То есть штатная самбовая программа wbinfo показывает всё как надо.
    Однако теперь нюансы.

    • Если в офтопике вызвать "Сетевое окружение" и попытаться там открыть (я администратор) новый домен, то получам отлуп. Нет прав на домен. Но если погасить проблемный "файлсервер", то домен открывается с первой попытки. Хотя файл-серверу сказано сидеть вообще молча и ниже плинтуса:

    И интересный финт - если зайти в домен действующий, на самбе 3.6, то потом этот новый домен открывается без проблем. Права на него получаем каким-то образом.

    • Если попытаться зайти на новый файловый сервер, то облом. Самба (пообщавшись керберосом и винбиндом с АД) в своих логах говорит, что такого юзера нет в системе и выставляет соответствующий код ошибки. Однако, wbinfo -u его прекрасно показывает, керберос выдает ему тикеты. Но вот в локальной системе такой доменный юзер как виртуальный - не определяется. Что собственно и показывает getent passwd. Система ищет юзера только как локального. И, если такого локального линуксового юзера в системе завести, то самба его прекрасно пропустит до своих шар если этот юзер введет правильный доменный пароль (о котором линукс файл-сервера ни сном ни духом). То есть - всё в стиле самбы третьей, для работы которой нужен локальный юзер.

    Моя же задача следующая - научить (если это возможно) работать сам линукс с "виртуальными" доменными пользователями. То есть - оживить работу getent'а. Причем, в логах винбинда я вижу, что запрос (например, getpwnam если спрашиваю getent'ом про доменного юзера) проходит, отправляется. Но ответа - нет.

    Точнее - ответ то есть:

    SID приходит правильный. Такой и есть в AD, но вот отмаппировать его в локальную систему - увы-с.