Time 4.04

Тайм 4.04

vk Time4.04 telegram Time4.04 tenchat Руслан Абузяров

Вторичный (резервный) DC AD Samba4 на базе Ubuntu

Создадим резервный контроллер AD на базе Ubuntu Linux.

 За основу берем предыдущую статью, тупо копипастим часть информации и местами ее модифицируем ))

И так, как и в прошлый раз, у нас все будет базироваться на Ubuntu-Server 16.04.4

Данные для будущего сервера:

  • IP адрес сервера: 192.168.55.12/24
  • Шлюз в сети: 192.168.55.1
  • DNS: 192.168.55.11, 192.168.55.1
  • Доменное имя: DOMAIN.NAME
  • Имя сервера: ad2

Настроим сетевую карту, но сперва узнаем, как она обзывается в системе командой

# ifconfig -a
 ens160    Link encap:Ethernet  HWaddr 00:0b:29:02:21:ac  
          inet addr:192.168.55.12  Bcast:192.168.55.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe02:22ac/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:523579 errors:0 dropped:808 overruns:0 frame:0
          TX packets:31913 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:47263740 (47.2 MB)  TX bytes:8491826 (8.4 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:6852 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6852 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:699385 (699.3 KB)  TX bytes:699385 (699.3 KB)

в нашем случае это ens160, 

далее правим файл настроек:

$ sudo nano /etc/network/interfaces

нужно чтоб выглядело вот так:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

iface ens160 inet static
address 192.168.55.12
gateway 192.168.55.1
netmask 255.255.255.0
dns-nameservers 192.168.55.11 192.168.55.1
dns-search domain.name
auto ens160

Следом нужно просмотреть файл fstab командой:

$ sudo nano /etc/fstab

для проверки активации ACL.

Если такое отсутствует, то нужно дописать acl:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=0a0e8c94-72a4-4325-ad63-126f871bef62 /               ext4    errors=remount-ro,acl 0       1
# /home was on /dev/sda2 during installation
UUID=6bd8b8d0-5650-4422-a414-c8d5a3bcd44f /home           ext4    defaults,acl        0       2
# swap was on /dev/sda3 during installation
UUID=18fc300a-8a86-11e8-a4a1-000c290222ac none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0

И перезагружаем наш сервер:

$ sudo reboot

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

Обновляем все что можно:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

Задаем имя нашего сервера в будущем домене:

$ sudo hostnamectl set-hostname ad2

Можно проверить или скорректировать, открыв файл

$ sudo nano /etc/hostname
GNU nano 2.5.3
File: /etc/hostname                                                  
ad2

Устанавливаем необходимые нам пакеты, в отличии от первого случая, на понадобится еще одно приложение:

$ sudo apt-get install samba krb5-user krb5-config winbind libpam-winbind libnss-winbind bind9

В процессе установки Kerberos, система задаст несколько вопросов, отвечаем также как и в случае, когда мы создавали основной сервер ActiveDirecotry на Samba4:

Default Kerberos version 5 realm : DOMAIN.NAME   (!!большими буквами)
Kerberos servers for your realm: domain.name
Administrative server for your Kerberos realm: domain.name

После окончания установки удаляем стандартный конфигурационный файл Samba, т.к. в процессе предоставления домена, Самба создаст новый conf-файл и если не удалить, то выкинет с ошибкой. Хотя, лучше не удалять, а просто переименовать:

$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.back

Сразу подготовим службу синхронизации времени, все как и в прошлый раз, но без одного пункта:

Устанавливаем его командой:

$ sudo apt-get install ntp ntpdate

Далее  правим config-файл службы:

$ sudo nano /etc/ntp.conf

Как и в прошлый раз,  я поменял в блоке серверов NTP серверы точного времени с дефолтных на родные, российские

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
# pool 0.ubuntu.pool.ntp.org iburst
# pool 1.ubuntu.pool.ntp.org iburst
# pool 2.ubuntu.pool.ntp.org iburst
# pool 3.ubuntu.pool.ntp.org iburst

pool ntp1.stratum2.ru iburst
pool ntp2.stratum2.ru iburst
pool ntp3.stratum2.ru iburst
pool ntp4.stratum2.ru iburst
pool ntp5.stratum2.ru iburst

# Use Ubuntu's ntp server as a fallback.
pool ntp1.stratum1.ru

Также после строк: # Needed for adding pool entries
restrict source notrap nomodify noquery

добавляем строку

restrict default kod nomodify notrap nopeer mssntp

Закрываем, сохраняем…

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

$ sudo systemctl restart ntp

Тестируем работу NTP:

$ sudo ntpdate -du ad1.domain.name

Убеждаемся, что наша служба синхронизации времени работает как положено.

Вводим сервер в наш домен:

$ sudo samba-tool domain join domain.name DC --realm=domain.name --dns-backend=BIND9_DLZ -UAdministrator

В процессе система попросит ввести пароль администратора домена, который мы задавали в прошлый раз…  Пишем его и снова жмем Enter.

После ввода сервера в домен, открываем conf-файл Самбы:

$ sudo nano /etc/samba/smb.conf

и в блоке [global]  приписываем строчку:

idmap_ldb:use rfc2307 = yes
# Global parameters
[global]
        workgroup = DOMAIN
        realm = domain.name
        netbios name = AD2
        server role = active directory domain controller
        server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsu$
        idmap_ldb:use rfc2307 = yes

[netlogon]
        path = /var/lib/samba/sysvol/ids.group/scripts
        read only = No

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

Командой:

$ named -v 

определяем версию службы bind9, в моем случае:

BIND 9.10.3-P4-Ubuntu 

Редактируем файл:

$ sudo nano /var/lib/samba/private/named.conf

в нем открываем строку с нужной нам версией… если открыта другая, соответственно закрываем ее:

# This DNS configuration is for BIND 9.8.0 or later with dlz_dlopen support.
#
# This file should be included in your main BIND configuration file
#
# For example with
# include "/var/lib/samba/private/named.conf";

#
# This configures dynamically loadable zones (DLZ) from AD schema
# Uncomment only single database line, depending on your BIND version
#
dlz "AD DNS Zone" {
    # For BIND 9.8.x
    # database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9.so";

    # For BIND 9.9.x
    # database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_9.so";

    # For BIND 9.10.x
    database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_10.so";
};

Настраиваем bind дальше:

$ sudo nano /etc/bind/named.conf

и в самом конце пишем строку include "/var/lib/samba/private/named.conf";

// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
include "/var/lib/samba/private/named.conf";
$ sudo nano /etc/bind/named.conf.options

после символа }; дописываем:

 tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";
options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        // forwarders {
        //      0.0.0.0;
        // };

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};

tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";

Честно говоря, вот все эти манипуляции с bind мне не совсем понятны… По большому счету, оно и не особо нам нужно, тем более, что я не стал использовать его на основном сервере, но «раз пацаны ставят…»… скажем так, на будущее, на вырост..

Возвращаемся к основной теме — вроде все на этом готово, резервный контроллер AD готов, но как всегда есть «но»… Но, в отличии от «винды глюкавой», здесь при добавлении второго контроллера, Samba не создает записи о нем в DNS, поэтому ручками, батенька, ручками… А иначе никто о нем не узнает и нафига он такой вообще будет нужен…

Подключаемся к нашему первому основному серверу, ad1 и следующие манипуляции выполняем на нем…

Для начала установим программу ldb-tools, она на пригодится позже:

$ sudo apt-get install ldb-tools

Теперь будем добавлять запись о втором сервере в зону А:

$ sudo samba-tool dns add 192.168.55.11 domain.name ad2 A 192.168.55.12 -UAdministrator

С помощью установленного выше пакета, узнаем objectGUID сервера ad2:

$ sudo ldbsearch -H /var/lib/samba/private/sam.ldb '(invocationid=*)' --cross-ncs objectguid

В ответ получаем:

# record 1
dn: CN=NTDS Settings,CN=AD1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=name
objectGUID: 409ee42b-f852-4a2f-b025-802f7fd863e3

# record 2
dn: CN=NTDS Settings,CN=AD2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=name
objectGUID: bcdb5c30-a0ee-4fb7-ba0e-5c46d7e61baf

# returned 2 records
# 2 entries
# 0 referrals

Где bcdb5c30-a0ee-4fb7-ba0e-5c46d7e61baf  наши искомые данные

Добавляем CNAME запись:

$ sudo samba-tool dns add 192.168.55.11 _msdcs.domain.name bcdb5c30-a0ee-4fb7-ba0e-5c46d7e61baf CNAME ad2.domain.name -UAdministrator

Проверяем

$ sudo nslookup
> ad2
Server:     127.0.0.1
Address:    127.0.0.1#53

Name:   ad2.domain.name
Address: 192.168.55.12
>
>
> bcdb5c30-a0ee-4fb7-ba0e-5c46d7e61baf._msdcs.domain.name
Server:     127.0.0.1
Address:    127.0.0.1#53

bcdb5c30-a0ee-4fb7-ba0e-5c46d7e61baf._msdcs.domain.name canonical name = ad2.domain.name.
Name:   ad2.domain.name
Address: 192.168.55.12

Перезапускаем сервер, а лучше оба… оно никогда лишним не будет.. На этом создание вторичного контроллера AD закончено.

RusLan
Комментарии:

Социальные сети:

© 2011- 2025 

Блог Тайм4.04 - Авторский проект практикующего системного администратора.

Все права защищены©. При копировании материалов, активная ссылка на сайт https://time404.ru обязательна.