Для установки домена с нуля Компания RedSoft при покупке коммерческого дистрибутива предоставляет инструкцию. Рассмотрим особенности установки RedDC в имеющейся инфраструктуре Microsoft AD (в моменте это дистрибутив redos 7.3.4, reddc-4.19.0-5, redadm-enterprise-1.1.0-22)
Отключить DNSSEC
Создать учетную запись для RedADM (права read-only)
В качестве примера берем следующие данные:
Необходимые открытые порты для взаимодействия:
DNS 53 TCP/UDP
Kerberos 88 TCP/UDP
NTP 123 UDP
DCE/RPC Locator Service 135 TCP
NetBIOS Name Service 137 UDP
NetBIOS Datagram 138 UDP
NetBIOS Session 139 TCP
LDAP 389 TCP/UDP
SMB 445 TCP
Kerberos kpasswd 464 TCP/UDP
LDAPS 636 TCP
Global Catalog 3268 TCP
Global Catalog SSL 3269 TCP
Dynamic RPC Ports 49152–65535 TCP
Отлючить SELinux (любимое действие горе-админов, позже необходимо будет включить и обучить)
setenforce permissive
sed -i "s/SELINUX=enforcing/SELINUX=permissive"/"
/etc/selinux/config
Присвоить серверу доменное имя
hostnamectl set-hostname reddc.domain.ru
Контроллер домена должен иметь статический IP-адрес
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.0.2
PREFIX=24
GATEWAY=192.168.0.254
DNS1=192.168.0.1
DNS2=192.168.0.2
SEARCH=domain.ru
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=0686e35f-7be2-396d-839e-7a26daacf1dd
DEVICE=eth0
ONBOOT=yes
либо файл /etc/NetworkManager/system-connections/eth0.nmconnection:
[connection]
id=eth0
uuid=0686e35f-7be2-396d-839e-7a26daacf1dd
type=ethernet
interface-name=eth0
[ethernet]
mtu=1500
[ipv4]
address1=192.168.0.1,192.168.0.254
dns=192.168.0.1,192.168.0.2
search=domain.ru
[ipv6]
addr-gen-mode=stable-privacy
ip6-privacy=0
method=auto
[proxy]
method=0
Перезапустить интерфейс:
ifdown eth0 && ifup eth0
Перезапустить NetworkManager для принятия настроек
systemctl restart NetworkManager
Важно - DNS1 - это существующий контроллер домена, который резолвит в том числе интернет, DNS2 - новый контроллер домена
cat /etc/resolv.conf
Отклик на команду должен иметь вид:
# Generated by NetworkManager
search domain.ru
nameserver 192.168.0.1
nameserver 192.168.0.2
dnf makecache && dnf upgrade –y
dnf install /tmp/reddc-4.19.0-5.el7.x86_64.rpm bind krb5-workstation -y
chown root:named /etc/krb5.conf
Содержание файла /etc/krb5.conf:
includedir /etc/krb5.conf.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
spake_preauth_groups = edwards25519
dns_canonicalize_hostname = fallback
qualify_shortname = ""
default_realm = DOMAIN.RU
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
DOMAIN.RU = {
kdc = msdc.domain.ru
admin_server = msdc.domain.ru
}
[domain_realm]
.domain.ru = DOMAIN.RU
domain.ru = DOMAIN.RU
Содержание файла /etc/krb5.conf.d/crypto-policies:
[libdefaults]
default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 RC4-HMAC DES-CBC-CRC DES3-CBC-SHA1 DES-CBC-MD5
default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 RC4-HMAC DES-CBC-CRC DES3-CBC-SHA1 DES-CBC-MD5
preferred_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 RC4-HMAC DES-CBC-CRC DES3-CBC-SHA1 DES-CBC-MD5
Содержание файла /etc/named.conf:
options {
listen-on port 53 { 192.168.0.2; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; };
recursion yes;
dnssec-validation no;
managed-keys-directory "/var/named/dynamic";
geoip-directory "/usr/share/GeoIP";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
tkey-gssapi-keytab "/opt/reddc/bind-dns/dns.keytab";
minimal-responses yes;
forwarders { 192.168.0.1; };
include "/etc/crypto-policies/back-ends/bind.config";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/opt/reddc/bind-dns/named.conf";
/opt/reddc/bin/samba-tool domain join domain.ru DC -U Administrator --dns-backend=BIND9_DLZ --realm=DOMAIN.RU --backend-store=mdb --backend-store-size=40Gb –-option="ad dc functional level = 2016"
Результат выполнения:
INFO 2023-03-03 18:21:40,227 pid:3673 /opt/reddc/lib64/python3.8/site-packages/samba/join.py #1544: Joined domain EXAMPLE (SID S-1-5-21-4085579788-2882808393-2576280794) as a DC
Выполнить:
source /etc/bashrc
systemctl enable reddc named --now
systemctl status reddc named
Добавить в конец файла /etc/krb5.conf следующие строки, заменив domain.ru на текущее имя домена:
[appdefaults]
pam = {
validate = false
ccache_dir = /tmp
domain.ru = {
debug = true
keytab = FILE:/etc/krb5.keytab
}
}
Изменить в /etc/sssd/sssd.conf DOMAIN.RU на текущее имя домена:
[sssd]
config_file_version = 2
Services = nss, pam
domains = DOMAIN.RU
[domain/DOMAIN.RU]
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = simple
simple_allow_groups = domain admins
Создайть keytab-файл, который создастся по пути /etc/krb5.keytab:
Указать имя администратора текущего домена:
net ads keytab create -U administrator
Ошибку Client not found in Kerberos database можно проигнорировать.
Включить возможность создания домашней папки пользователя
authconfig --enablesssd --enablesssdauth --enablemkhomedir --update
Назначить права 755 на папку домена после первого входа Администратора
chmod 755 /home/DOMAIN.RU
Отредактировать файл /opt/reddc/etc/smb.conf и добавить в секцию [global] следующие строки (либо отредактировать существующие):
map acl inherit = yes
allow dns updates = nonsecure
dsdb:schema update allowed = true
Выполнить:
/opt/reddc/bin/testparm
Результат выполнения:
Load smb config files from /opt/reddc/etc/smb.conf
vfs objects specified without required AD DC module: dfs_samba4
Loaded services file OK.
Weak crypto is allowed
Server role: ROLE_ACTIVE_DIRECTORY_DC
Press enter to see a dump of your service definitions
Проверить работу динамического обновления DNS:
/opt/reddc/sbin/samba_dnsupdate --verbose --all-names
Через некоторое время проверить репликацию:
samba-tool drs showrepl
Успешный результат:
==== KCC CONNECTION OBJECTS ====
Connection --
Connection name: 09f8315a-7f54-4a99-b3ba-ca918776a462
Enabled : TRUE
Server DNS name : msdc.domain.ru
Server DN name : CN=NTDS Settings,CN=MSDC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=ru
TransportType: RPC
options: 0x00000001
Warning: No NC replicated for Connection!
Вместе с дистрибутивом RedADM поставляется инструкция по установке ПО и руководство администратора. В инструкции по установке только 1 вариант - установка через Web GUI первичного контроллера домена. Мы же рассмотрим установку через sh-скрипт и в существующей конфигурации - 2 контроллера домена (MS Windows Server 2016, RedDC)
Взаимодействие с клиентом
SSH 22/tcp
VNC 5900-5906/tcp
HTTP 80/tcp
HTTPS 443/tcp
Взаимодействие с контроллером домена
DNS 53/udp, 53/tcp
LDAP 389/tcp
LDAPS 636/tcp
Взаимодействие с браузером
HTTP 80/tcp
HTTPS 443/tcp
Взаимодействие с Базой данных
firebird 3050/tcp
dnf install -y firebird
isql-fb security.db -user SYSDBA -password masterkey
Задать пароль:
> create user SYSDBA password 'your_password';
> exit;
Запустить службу:
systemctl enable --now firebird-superserver.service
systemctl status firebird-superserver.service
Настройка БД:
mkdir /db
chown firebird:firebird /db/
Создайть базу данных для РЕД АДМ Сервер и её пользователя, делегировать
права этому пользователю:
isql-fb -user SYSDBA -password your_password
Далее (не копировать, вводить в ручную с использованием своих данных):
> set sql dialect 3;
> create database '/db/redadm_db.fdb' page_size 16384;
> commit;
> connect '/db/redadm_db.fdb';
> commit;
> create user redadm password 'redadm' grant admin role;
> commit;
> grant all database to redadm;
> grant all table to redadm;
> grant all view to redadm;
> grant all procedure to redadm;
> grant all function to redadm;
> grant all package to redadm;
> grant all generator to redadm;
> grant all sequence to redadm;
> grant all domain to redadm;
> grant all exception to redadm;
> grant all role to redadm;
> grant all character set to redadm;
> grant all collation to redadm;
> grant all filter to redadm;
> commit;
> exit;
Права к БД:
chown -R firebird. /db/
dnf install -y firebird-utils
Пробное подключение к БД:
isql-fb <IP-адрес>:/db/redadm_db.fdb -user redadm -password redadm
> exit;
К БД вернемся, при настройке скрипта install.
dnf install -y redadm-enterprise-1.1.0-22.el7.x86_64.rpm
Скорректировать файл установки RedADM:
/opt/redadm/install-redadm.sh:
#Default RedAdm configuration params
IP_REDADM="192.168.0.3"
DOMAIN_NAME="domain.ru"
FQDN="reddc.domain.ru"
PORT="636"
WORK_DIR="/opt/redadm/"
Скорректировать файл лицензии:
/opt/redadm/license.json
{"key": "<Имеющийся ключ лицензии>"}
Запуск конфигурирования RedADM:
cd /opt/redadm/
./install-redadm.sh
Продолжение следует…