Это старая версия документа!


Практическое применение восстановления Samba AD DC


Всю работу по резервированию и восстановлению будем проводить по ЭТОЙ СТАТЬЕ.

Подготовка

Контролер домена у нас будет единственным в нашей сети, иначе, статья не имеет смысла, потому-что при наличии дополнительного контролера домена и в случаи сбоя основного, с ним можно будет синхронизировать все данные.
Контролер домена устанавливался по статье - Контролер домена (на Samba4), за тем исключением, что исходный код samba брался не из git хранилища, а из последней версии (на момент написания статьи 4.0.9) и не большими изменениями в названиях:

Домен TEST
Realm TEST.MY
Контролер домена DC-LINUX.TEST.MY
IP контролера домена 192.168.100.20


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



Организуем на DC-LINUX общий ресурс 4all. Для этого создадим каталог /etc/samba/4all, приведем smb.conf к следующему виду

# Global parameters
[global]
        workgroup = TEST
        realm = TEST.MY
        netbios name = DC-LINUX
        server role = active directory domain controller
        server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate

[netlogon]
        path = /var/lib/samba/sysvol/test.my/scripts
        read only = No

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

[4all]
path = /etc/samba/4all
comment = Share for all
read only = no

и дадим права к каталогу 4all.



В этом каталоге создадим иерархию директорий с определенными правами доступа и несколько файлов для конкретных групп и(или) пользователей.



Вот так выглядят права на каталоги и файлы в Windows:

C:>\icacls \\dc-linux\4all\* /T

\\dc-linux\4all\it TEST\administrator:(OI)(CI)(F)
                   BUILTIN\:(F)
                   :(OI)(CI)(IO)(F)
                   :(OI)(CI)(IO)(RX)
                   TEST\Domain Admins:(OI)(CI)(F)
                   TEST\it:(OI)(CI)(F)

\\dc-linux\4all\distr TEST\administrator:(OI)(CI)(F)
                      BUILTIN\:(F)
                      :(OI)(CI)(IO)(F)
                      :(OI)(CI)(IO)(RX)
                      TEST\Domain Admins:(OI)(CI)(F)
                      TEST\it:(OI)(CI)(F)
                      TEST\m_isk:(OI)(CI)(RX)

\\dc-linux\4all\public TEST\administrator:(OI)(CI)(F)
                       BUILTIN\:(F)
                       :(OI)(CI)(IO)(F)
                       TEST\Domain Users:(F)
                       :(OI)(CI)(IO)(RX)
                       TEST\Domain Admins:(OI)(CI)(F)

\\dc-linux\4all\buh TEST\administrator:(OI)(CI)(F)
                    BUILTIN\:(F)
                    :(OI)(CI)(IO)(F)
                    :(OI)(CI)(IO)(RX)
                    TEST\Domain Admins:(OI)(CI)(F)
                    TEST\buh:(OI)(CI)(F)

\\dc-linux\4all\it\Pupkin Vasya.doc TEST\administrator:(I)(F)
                                    TEST\v_pupkin:(I)(F)
                                    TEST\Domain Users:(I)(RX)
                                    TEST\Domain Admins:(I)(F)
                                    TEST\it:(I)(F)

\\dc-linux\4all\public\my.txt TEST\administrator:(I)(F)
                              BUILTIN\:(I)(F)
                              TEST\Domain Users:(I)(RX)
                              TEST\Domain Admins:(I)(F)

\\dc-linux\4all\buh\V.Primudraya  TEST\administrator:(I)(F)
                                  TEST\v_prim:(I)(F)
                                  TEST\Domain Users:(I)(RX)
                                  TEST\Domain Admins:(I)(F)
                                  TEST\buh:(I)(F)
простые права:
  • F - полный доступ
  • M - доступ на изменение
  • RX - доступ на чтение и выполнение
  • R - доступ только на чтение
  • W - доступ только на запись

в скобках список определенных прав:

  • D - удаление
  • RC - чтение
  • WDAC - запись DAC
  • WO - смена владельца
  • S - синхронизация
  • AS - доступ к безопасности системы
  • MA - максимально возможный
  • GR - общее чтение
  • GW - общая запись
  • GE - общее выполнение
  • GA - все общие
  • RD - чтение данных, перечисление содержимого папки
  • WD - запись данных, создание файлов
  • AD - добавление данных, создание папок
  • REA - чтение дополнительных атрибутов
  • WEA - запись дополнительных атрибутов
  • X - выполнение файлов и обзор папок
  • DC - удаление вложенных объектов
  • RA - чтение атрибутов
  • WA - запись атрибутов

права наследования могут предшествовать любой форме и применяются только к папкам:

  • (OI) - наследуют объекты
  • (CI) - наследуют контейнеры
  • (IO) - только наследование
  • (NP) - не распространять наследование


И так, DNS у нас работает, с правами мы определились, пользователи и компьютеры работают в домене.
Теперь создадим резервную копию, сымитируем «падение» samba, восстановим её из резервной копии и проверим работоспособность.

Резервируем

По статье нам советуют использовать скрип sabma_backup, который идет вместе с исходным кодом. Но, так как samba в Slackware устанавливается не в одно место, а в разные и при сборке, в опциях configure я указывал эти пути, то мне пришлось немного изменить данный скрипт.

скрипт samba_backup для Slackware

Скрипт samba_backup для Slackware, и согласно скрипта у нас получается следующее:

FROMWHERE="/etc/samba/private /etc/samba/smb.conf /var/lib/samba/sysvol"
WHERE=/etc/samba/backups
DAYS=90

Создадим директорию назначения, которую мы прописали в переменной $WHERE, и установим разрешения:

# mkdir /etc/samba/backups
# chmod 750 /etc/samba/backups

Копируем скрипт куда-нибудь в /usr/sbin, даем права на запуск и запускаем.

# cp ./samba_backup /usr/sbin 
# chown root:root /usr/sbin/samba_backup 
# chmod 750 /usr/sbin/samba_backup
# samba_backup

Если ошибок нет, то в каталоге /etc/samba/backups мы найдём 3 файла:

  • samba4_private.дата_создания_архива.tar.bz2
  • smb.conf.дата_создания_архива.tar.bz2
  • sysvol.дата_создания_архива.tar.bz2

Восстанавливаем

Повторю все предупреждения:

  • Никогда не восстанавливайте из резервной копии DC, если хотя бы один другой DC все еще работает!
  • Никогда не делайте восстановление и изменение версии samba одновременно!
  • Всегда восстанавливайте в системе, которая использует ту же версию Samba, что была во время создания резервной копии!
  • Восстанавливайте в системе с тем же IP-адресом и именем хоста.
  • Рекомендуем: Восстанавливать в той же ОС, в которой была создана резервная копия.

От себя добавлю. Если у вас случился сбой повлекший переустановку системы, то сначала установите Slackware со всеми обновлениями и той же версии, что были при последнем резервном копировании samba, т.е. сделайте систему идентичной той, что была до сбоя. Потом установите samba той же версии, что была до сбоя и только потом восстанавливайте её из резервной копии.

А мы просто сымитируем сбой samba представив, что наши пользователи потеряли доступ к общему ресурсу и (или) вообще не могут войти в домен.

Для восстановления из резервной копии обязательно останавливаем samba

# /etc/rc.d/rc.samba_ad stop
Shutting down samba4:                                      [  OK  ]

Удаляем каталоги, которые будем восстанавливать:

# rm /etc/samba/smb.conf 
# rm -rf /etc/samba/private 
# rm -rf /var/lib/samba/sysvol

И распакуем резервные копии

# tar -jxf smb.conf.дата_создания_архива.tar.bz2 -C /
# tar -jxf samba4_private.дата_создания_архива.tar.bz2 -C /
# tar -jxf sysvol.дата_создания_архива.tar.bz2 -C /

Переименуем файлы *.ldb.bak в каталоге private в *.ldb

# find /etc/samba/private/ -type f -name '*.ldb.bak' -print0 | while read -d $'\0' f ; do mv "$f" "${f%.bak}" ; done

и на всякий случай подправим DNS

# samba_upgradedns --dns-backend=BIND9_DLZ
Reading domain information
DNS accounts already exist
No zone file /etc/samba/private/dns/TEST.MY.zone
DNS records will be automatically created
DNS partitions already exist
dns-dc-linux account already exists
See /etc/samba/private/named.conf for an example configuration include file for BIND
and /etc/samba/private/named.txt for further documentation required for secure DNS updates
Finished upgrading DNS

Проверяем

Для проверки запускаем samba

# /etc/rc.d/rc.samba_ad start
Starting samba4:                                           [  OK  ]

запустилась, проверим DNS

# nslookup win-w7
Server:         192.168.100.20
Address:        192.168.100.20#53

Name:   win-w7.test.my
Address: 192.168.100.60

# nslookup win-server
Server:         192.168.100.20
Address:        192.168.100.20#53

Name:   win-server.test.my
Address: 192.168.100.10

# nslookup dc-linux  
Server:         192.168.100.20
Address:        192.168.100.20#53

Name:   dc-linux.test.my
Address: 192.168.100.20

DNS работает, проверим разрешения на папки и файлы

C:\> icacls \\dc-linux\4all\* /T

\\dc-linux\4all\it TEST\administrator:(OI)(CI)(F)
                   BUILTIN\:(F)
                   :(OI)(CI)(IO)(F)
                   :(OI)(CI)(IO)(RX)
                   TEST\Domain Admins:(OI)(CI)(F)
                   TEST\it:(OI)(CI)(F)

\\dc-linux\4all\distr TEST\administrator:(OI)(CI)(F)
                      BUILTIN\:(F)
                      :(OI)(CI)(IO)(F)
                      :(OI)(CI)(IO)(RX)
                      TEST\Domain Admins:(OI)(CI)(F)
                      TEST\it:(OI)(CI)(F)
                      TEST\m_isk:(OI)(CI)(RX)

\\dc-linux\4all\public TEST\administrator:(OI)(CI)(F)
                       BUILTIN\:(F)
                       :(OI)(CI)(IO)(F)
                       TEST\Domain Users:(F)
                       :(OI)(CI)(IO)(RX)
                       TEST\Domain Admins:(OI)(CI)(F)

\\dc-linux\4all\buh TEST\administrator:(OI)(CI)(F)
                    BUILTIN\:(F)
                    :(OI)(CI)(IO)(F)
                    :(OI)(CI)(IO)(RX)
                    TEST\Domain Admins:(OI)(CI)(F)
                    TEST\buh:(OI)(CI)(F)

\\dc-linux\4all\it\Pupkin Vasya.doc TEST\administrator:(I)(F)
                                    TEST\v_pupkin:(I)(F)
                                    TEST\Domain Users:(I)(RX)
                                    TEST\Domain Admins:(I)(F)
                                    TEST\it:(I)(F)

\\dc-linux\4all\public\my.txt TEST\administrator:(I)(F)
                              BUILTIN\:(I)(F)
                              TEST\Domain Users:(I)(RX)
                              TEST\Domain Admins:(I)(F)

\\dc-linux\4all\buh\V.Primudraya  TEST\administrator:(I)(F)
                                  TEST\v_prim:(I)(F)
                                  TEST\Domain Users:(I)(RX)
                                  TEST\Domain Admins:(I)(F)
                                  TEST\buh:(I)(F)

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

В написании статьи использовал....

Навигация
Печать/экспорт
QR Code
QR Code wiki:articles:samba4_br_use (generated for current page)