Подготовка
- Если необходимо развернуть в виртуальной среде, то подготовить виртуальный роутер (можно использовать routeros или же openwrt, или на ваш вкус) и пару виртуальный коммутаторов – один для LAN другой для WAN (сеть между виртуалками и внешка соответственно)
- Установить Linux Ubuntu Server 22.04. Взять можно здесь: https://releases.ubuntu.com/jammy/ (выбрать в списке ниже ubuntu-22.04.2-live-server-amd64.iso)
- Так же при необходимости установить клиентские машины
Настройка в Ubuntu:
- Настроим статический адрес в Ubuntu. У меня интерфейс называется eth0:
/etc/netplan/00-installer-config.yaml
network: ethernets: eth0: dhcp4: no addresses: - 10.35.10.1/16 routes: - to: default via: 10.35.0.1 nameservers: addresses: - 10.35.0.1 version: 2
Применяем конфигурацию:
netplan apply
или с выводом
netplan --debug apply
- Установка имени сервера:
hostnamectl set-hostname dc-1
- Редактируем файл /etc/hosts
127.0.0.1 localhost 127.0.1.1 dc-1.testdomain.lz dc-1 10.35.10.1 dc-1.testdomain.lz dc-1
- Проверяем имя хоста:
root@dc-1:/home/admindc# hostname -f dc-1.testdomain.lz
root@dc-1:/home/admindc# ping -c3 dc-1.testdomain.lz PING dc-1.testdomain.lz (127.0.1.1) 56(84) bytes of data. 64 bytes from dc-1.testdomain.lz (127.0.1.1): icmp_seq=1 ttl=64 time=0.014 ms 64 bytes from dc-1.testdomain.lz (127.0.1.1): icmp_seq=2 ttl=64 time=0.024 ms 64 bytes from dc-1.testdomain.lz (127.0.1.1): icmp_seq=3 ttl=64 time=0.024 ms
- Выключаем DNS-Resolver
root@dc-1:/home/admindc# systemctl disable --now systemd-resolved Removed /etc/systemd/system/multi-user.target.wants/systemd-resolved.service. Removed /etc/systemd/system/dbus-org.freedesktop.resolve1.service. root@dc-1:/home/admindc# unlink /etc/resolv.conf
- Создаем собственный resolv.conf
root@dc-1:/home/admindc# touch /etc/resolv.conf
- Редактируем conf
# Samba server IP address nameserver 10.35.10.1 # fallback resolver nameserver 77.88.8.8 # main domain for Samba search testdomain.lz
- Запрещаем редактирование файла conf
root@dc-1:/home/admindc# chattr +i /etc/resolv.conf
- Устанавливаем Samba
apt update apt upgrade apt install -y acl attr samba samba-dsdb-modules samba-vfs-modules smbclient winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user dnsutils chrony net-tools
- Выключаем Samba-сервисы:
root@dc-1:/home/admindc# systemctl disable --now smbd nmbd winbind Synchronizing state of smbd.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install disable smbd Synchronizing state of nmbd.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install disable nmbd Synchronizing state of winbind.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install disable winbind Removed /etc/systemd/system/multi-user.target.wants/smbd.service. Removed /etc/systemd/system/multi-user.target.wants/winbind.service. Removed /etc/systemd/system/multi-user.target.wants/nmbd.service.
- Активируем samba-ad-dc
root@dc-1:/home/admindc# systemctl unmask samba-ad-dc Removed /etc/systemd/system/samba-ad-dc.service. root@dc-1:/home/admindc# systemctl enable samba-ad-dc Synchronizing state of samba-ad-dc.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable samba-ad-dc Created symlink /etc/systemd/system/multi-user.target.wants/samba-ad-dc.service → /lib/systemd/system/samba-ad-dc.service.
Конфигурируем Samba Active Directory
- Делаем бэкап оригинального conf
root@dc-1:/home/admindc# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
- Реализуем домен
root@dc-1:/home/admindc# samba-tool domain provision Realm [TESTDOMAIN.LZ]: <Enter> Domain [TESTDOMAIN]: <Enter> Server Role (dc, member, standalone) [dc]: <Enter> DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: <Enter> DNS forwarder IP address (write 'none' to disable forwarding) [10.35.10.1]: 77.88.8.8 Administrator password: Administrator password does not meet the default quality standards. Administrator password: <Пароль отличный от системного> Retype password: <Пароль отличный от системного (повторить)>
- Бэкапим и копируем Kerberos Config
root@dc-1:/home/admindc# mv /etc/krb5.conf /etc/krb5.conf.orig root@dc-1:/home/admindc# cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
- Стартуем и проверяем samba-ad-dc
root@dc-1:/home/admindc# systemctl start samba-ad-dc root@dc-1:/home/admindc# systemctl status samba-ad-dc
-
samba-ad-dc.service - Samba AD Daemon
Loaded: loaded (/lib/systemd/system/samba-ad-dc.service; enabled; vendor p> Active: active (running) since Thu 2023-06-01 08:22:54 UTC; 11s ago… <q>
Настройка синхронизации времени
- Установка прав доступа
root@dc-1:/home/admindc# chown root:_chrony /var/lib/samba/ntp_signd/ root@dc-1:/home/admindc# chmod 750 /var/lib/samba/ntp_signd/
- Добавить следующее в /etc/chrony/chrony.conf
# bind the chrony service to IP address of the Samba AD bindcmdaddress 10.35.10.1 # allow clients on the network to connect to the Chrony NTP server allow 10.35.0.0/16 # specify the ntpsigndsocket directory for the Samba AD ntpsigndsocket /var/lib/samba/ntp_signd
- Рестартуем chrony и проверяем его статус
root@dc-1:/home/admindc# systemctl restart chronyd root@dc-1:/home/admindc# systemctl status chronyd
-
chrony.service - chrony, an NTP client/server
Loaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset> Active: active (running) since Thu 2023-06-01 09:40:37 UTC; 5s ago
- Проверка Samba AD
root@dc-1:/home/admindc# host -t A testdomain.lz testdomain.lz has address 10.35.10.1 root@dc-1:/home/admindc# host -t A dc-1.testdomain.lz dc-1.testdomain.lz has address 10.35.10.1 root@dc-1:/home/admindc# host -t SRV _kerberos._udp.testdomain.lz _kerberos._udp.testdomain.lz has SRV record 0 100 88 dc-1.testdomain.lz. root@dc-1:/home/admindc# host -t SRV _ldap._tcp.testdomain.lz _ldap._tcp.testdomain.lz has SRV record 0 100 389 dc-1.testdomain.lz. root@dc-1:/home/admindc# kinit administrator@TESTDOMAIN.LZ Password for administrator@TESTDOMAIN.LZ: Warning: Your password will expire in 41 days on Чт 13 июл 2023 08:19:44 root@dc-1:/home/admindc# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@TESTDOMAIN.LZ Valid starting Expires Service principal 01.06.2023 09:45:56 01.06.2023 19:45:56 krbtgt/TESTDOMAIN.LZ@TESTDOMAIN.LZ renew until 02.06.2023 09:45:52
Настройка Windows:
- Установить имя компьютера
- Установить IP адрес, адрес DNS сервера (должен соответствовать адресу Samba AD)
- Добавляем рабочую станцию в домен:
# add Windows 10 to Active Directory using POWERSHELL Add-Computer -DomainName "testdomain.lz" -Restart
Либо через «Свойства системы»:
- Устанавливаем средства удаленного администрирования Windows 10 (RSAT) https://www.microsoft.com/ru-RU/download/details.aspx?id=45520
- Устанавливаем политики паролей:
sudo samba-tool user setexpiry administrator --noexpiry sudo samba-tool domain passwordsettings set --complexity=off sudo samba-tool domain passwordsettings set --max-pwd-age=92 sudo samba-tool domain passwordsettings set --min-pwd-length=8 sudo samba-tool domain passwordsettings set --account-lockout-threshold=5 sudo samba-tool domain passwordsettings show