Различия

Показаны различия между двумя версиями страницы.


wiki:articles:samba4_br_use [17/09/2013 17:06] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +^   **Практическое применение восстановления Samba AD DC**   ^
 +\\
 +Всю работу по резервированию и восстановлению будем проводить по [[wiki:articles:samba4_br|ЭТОЙ СТАТЬЕ]].
  
 +
 +===== Подготовка =====
 +Контролер домена у нас будет единственным в нашей сети, иначе, статья не имеет смысла, потому-что при наличии дополнительного контролера домена и в случаи сбоя основного, с ним можно будет синхронизировать все данные.\\
 +Контролер домена устанавливался по статье - [[wiki:articles:addc|Контролер домена (на Samba4)]], за тем исключением, что исходный код samba брался не из git хранилища, а из последней версии (на момент написания статьи 4.0.9) и не большими изменениями в названиях:
 +\\
 +|Домен  |  //TEST//  |
 +|Realm  |  //TEST.MY//  |
 +|Контролер домена  |  //DC-LINUX.TEST.MY//  |
 +|IP контролера домена  |  //192.168.100.20//  |
 +
 +\\
 +и созданных в домене пользователей, групп и компьютеров:
 +\\
 +\\
 +{{:wiki:articles:rb_ad2.png?500|}}
 +{{:wiki:articles:rb_ad1.png?500|}}
 +\\
 +\\
 +Организуем на DC-LINUX общий ресурс //4all//. Для этого создадим каталог ///etc/samba/4all//, приведем smb.conf к следующему виду
 +<code>
 +# 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
 +</code> 
 +и дадим права к каталогу 4all.
 +\\
 +\\
 +{{:wiki:articles:rb_ad4.png?500|}}
 +\\
 +\\
 +В этом каталоге создадим иерархию директорий с определенными правами доступа и несколько файлов для конкретных групп и(или) пользователей.
 +\\
 +\\
 +{{:wiki:articles:rb_ad3.png?500|}} 
 +\\
 +\\
 +Вот так выглядят права на каталоги и файлы в Windows:
 +<code>
 +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)
 +</code>
 +<note tip>
 +//простые права://
 +  * 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) - не распространять наследование 
 +</note>
 +\\
 +И так, DNS у нас работает, с правами мы определились, пользователи и компьютеры работают в домене.\\
 +Теперь создадим резервную копию, сымитируем "падение" samba, восстановим её из резервной копии и проверим работоспособность. 
 +===== Резервируем =====
 +По статье нам советуют использовать скрип sabma_backup, который идет вместе с исходным кодом. Но, так как samba в Slackware устанавливается не в одно место, а в разные и при сборке, в опциях //configure// я указывал эти пути, то мне пришлось немного изменить данный скрипт.
 +==== скрипт samba_backup для Slackware====
 +[[http://slackware.su/forum/files/ad_dc_br/samba_backup| Скрипт samba_backup для Slackware]], и согласно скрипта у нас получается следующее:
 +<code>
 +FROMWHERE="/etc/samba/private /etc/samba/smb.conf /var/lib/samba/sysvol"
 +WHERE=/etc/samba/backups
 +DAYS=90
 +</code>
 +
 +Создадим директорию назначения, которую мы прописали в переменной $WHERE, и установим разрешения:
 +<code>
 +# mkdir /etc/samba/backups
 +# chmod 750 /etc/samba/backups
 +</code>
 +
 +Копируем скрипт куда-нибудь в ///usr/sbin//, даем права на запуск и запускаем.
 +<code>
 +# cp ./samba_backup /usr/sbin 
 +# chown root:root /usr/sbin/samba_backup 
 +# chmod 750 /usr/sbin/samba_backup
 +# samba_backup
 +
 +</code>
 +
 +Если ошибок нет, то в каталоге ///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
 +<code>
 +# /etc/rc.d/rc.samba_ad stop
 +Shutting down samba4:                                      [  OK  ]
 +</code>
 +Удаляем каталоги, которые будем восстанавливать:
 +<code>
 +# rm /etc/samba/smb.conf 
 +# rm -rf /etc/samba/private 
 +# rm -rf /var/lib/samba/sysvol
 +</code>
 +И распакуем резервные копии
 +<code>
 +# tar -jxf smb.conf.дата_создания_архива.tar.bz2 -C /
 +# tar -jxf samba4_private.дата_создания_архива.tar.bz2 -C /
 +# tar -jxf sysvol.дата_создания_архива.tar.bz2 -C /
 +</code>
 +Переименуем файлы *.ldb.bak в каталоге private в *.ldb
 +<code>
 +# find /etc/samba/private/ -type f -name '*.ldb.bak' -print0 | while read -d $'\0' f ; do mv "$f" "${f%.bak}" ; done
 +</code>
 +и на всякий случай подправим DNS
 +<code>
 +# 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
 +</code>
 +===== Проверяем =====
 +Для проверки запускаем samba
 +<code>
 +# /etc/rc.d/rc.samba_ad start
 +Starting samba4:                                            OK  ]
 +</code>
 +запустилась, проверим DNS
 +<code>
 +# 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
 +</code>
 +
 +DNS работает, проверим разрешения на папки и файлы
 +<code>
 +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)
 +</code>
 +Если сравним с теми, что были до сбоя, то увидим полную идентичность!
 +И если войдем в домен каким-либо пользователем домена, то и там с правами будет все так же как и до сбоя. 
 +
 +=== В написании статьи использовал.... ====
 +
 +----
 +
 +[[http://forum.oszone.net/thread-129646.html| Синтаксис команды icacls]] \\
 +[[wiki:articles:samba4_br|Резервное копирование и восстановление Samba AD DC (перевод)]] \\
 +
 +
 +[[http://slackware.su/forum/index.php/topic,199.0.html | Обсуждаем на форуме.]]
Навигация
Печать/экспорт
QR Code
QR Code wiki:articles:samba4_br_use (generated for current page)