# Windows системы занятие №2 - Active Directory
## Роль контроллера домена:
Контроллеры домена хранят данные каталога и управляют взаимодействиями пользователя и домена, включая процессы входа пользователя в систему, проверку подлинности и поиски в каталоги
## Структура домена:
### Физическая структура:
Для функционирования доменной инфраструктуры нужны сервера со следующими ролями:
* Контроллер домена
* DNS
* Глобальный каталог
В маленькой инфраструктуре эти роли часто совмещены в одном физическом сервере(в зависимости от производительности)
Без системы доменных имен Active Directory не работает. А глобальный каталог произволяет произвести быстрый поиск по домену.
## Логическая структура:
**Лес доменов** - это какое-то доменное имя, позволяющее понять, что в рамках данного имени работает набор объектов и устройств, которые администрируются.
Во всех объектах есть **базовые** объекты и **дополнительные**. **Базовые** - пользователи, группы, контейнеры и пр. **Дополнительные** вы создаете самостоятельно
**ADDS это Active Directory Domain Services** - сервис, необходимый для функционирования домена.
Инструменты **AD Users & Computers** - позволяет увидеть объекты, создавать новые, редактировать их. Вызывается из меню Windows Server. Аналогичная оснастка существует и для клиентских Windows систем.
**AD Domain & trusts**
Позволяет регулировать доверительные отношения между различными доменами, выбрать набор операций, которые могут выполнять домены в рамках леса. Пример: Пусть наша организация покупает какую-то компанию. Причем ничего о внутреннем устройстве нам ничего не известно. Более того, внутри этой системы сидит злоумышленник, ожидающий своего часа. Если мы просто внесем эту организацию в общий домен, то злоумышленники спокойно получат доступ к нашей инфраструктуре. Но если мы гибко настроем права доверия, то риск такой угрозы снизится.
**AD Sites & Services**
Позволяет разделить домены по локальным сетям на IP-подсети и настроить таймер синхронизации. Грубо говоря- домен работает в рамках одной локальной сети. Кроме того, при процессе аутентификации приоризируется домен-контроллер локальной сети.

### Виды отношений:
**Односторонние** - мы доверяем домену, но он нам не доверяет.
**Двусторонние** - позволяют обоюдно доверять друг другу
### Инфраструктурные части ADDS:
* **NTDS** - база данных объектов домена(самая важная часть)
* **Контроллеры домена**
* **Глобальный каталог** - позволяет быстро искать по базе данных объекты.
**Свойства объектов:**
Помимо основных свойств у пользователя есть набор атрибутов. Такие атрибуты есть у всех объектов домена.
**Object SID** - важнейший атрибут объекта. Это уникальный идентификатор, который присваивается пользователям, группам, компьютерам или другим объектам безопасности при их создании в Windows или Active Director.
### Базовые контейнеры AD:

Сервисные учетные записи содержат, как правило длинный, но сложный пароль, чтобы как можно реже менять его.
### Основные группы по умолчанию в AD:
Позволяют собирать вместе объекты и применять к ним какие-либо свойства. Есть две группы: для безопасности и доступа к ресурам и для рассылок.

1. Группа создается всегда, может администрировать весь лес доменов. Первый домен, созданный в рамках инсталяции является лесом и родителем.
2. Это описание объектов и их атрибутов.
3. Группа, которая может администрировать определенные домены. Для каждого домена она уникальна.
4. Права на техобслуживание техсистемы
5. Позволяет производить резервное копирование
### Схема домена
Схема службы каталогов Active Directory определяет атрибуты и классы, используемые в службах домена Active Directory Services.
Бзазовая схема, включенная в систему, содержит обширный набор определений классов, таких как **User, Computer** и **OrganizationalUnit**, и определения атрибутов, такие как **userPrincipalName**, **telephoneNumber** и **objectSid**.
### RSAT
Позволяет удаленно выполнять команды, то есть управлять серверными ролями и компонентами на серверах Windows Server с обычной рабочей станции. В RSAT входят как графические ММС оснастки, так и утилиты командной строки с модулями PowerShell.
### PowerShell
Это инструмент администрирования. Это расширяемое средство автоматизации от Microsoft с открытым исходным кодом, состоящее из оболочки с интерфейсом командной строки и сопутствующего языка сценариев. С его помощью можно менять настройки, останавливать и запускать сервисы, а так же производить обслуживание большинства установленных приложений.
## Групповые политики
Основная функция групповых политик - это возможность централизованно управлять пользователями и компьютерами в домене. Различают два вида групповых политик:
**Локальная** - применяется к конкретному компьютеру, настраивается локально. Можно управлять с помощью gpedit.msc
**Доменная** - применяется глобально к объектам(к выбранным объектам домена). При этом возможно применение WMI фильтров, чтобы конкретизировать применение настроек.
### WMI
Это подсистема Power Shell, технология, которая с помощью единого интерфейса позволяет управлять компонентами как локальной, так и удаленной операционной системы.
С его помощью можно изменять различные параметры операционной системы, управлять общими ресурсами, запрашивать информацию об установленных устройствах, запущенных процессах и многое другоею
По умолчанию она использует TCP-порт 135
## Настройка Windows-Server в качестве контроллера домена
Для начала нам необходимо добавить роли и компоненты. Для этого переходим во вкладку Manage -> Add Rules and Features. Откроется майкрософт Wizard
::: warning
Внимание! При установке просьба не обновлять сервер! Это нужно для того, чтобы протестировать уязвимости в конце практики.
:::
Windows Server никогда сам не обновляется
Переходим к следующему пункту - Installation Type - выбираем базовую конфигурацию, так как мы не будем использовать инфраструктуру виртуальных рабочих столов.
Идем дальше - 3 пункт, проверяем, чтобы все данные совпадали с задуманными.
Следующая вкладка - роли. Мы установим три роли: ADDS, DHCP server и DNS сервер.
Остальные вкладки содержат скорее справочную информацию.
Теперь надо сделать наш сервер домен-контроллером.
Флажок справа сверху - нажимаем и видим, что хочет наш сервер. Пока что DHCP не завершаем.
Есть три пункта:
1. Добавить домен-контроллер в существующий домен
2. Добавить домен-контроллер в существующий лес
3. Создать новый лес
Нам нужен именно третий.
Вводим доменное имя (в нашем случае - pt.local)
Далее нас просят настроить **Domain Controller Option**. Тут оставим все по-умолчанию, введем только пароли. Он служат для того, чтобы восстановиться из NTDS.dit в случае поломки всех домен-контроллеров.
**Dns Option** - позволяет дилегировать запросы DNS к другим серверам. Оставим его по умолчанию
Additional Option - настройки NetBIOS - протокол для работы в локальных сетях на персональных ЭВМ типа IBM/PC, разработан в виде интерфейса, который не зависит от фирмы-производителя.
Paths - определяет пути до файлов с базой данных, логами и групповые политики с другими файлами
После этого нам предложат посмотреть ошибки или предупреждения и проверить заданные настройки.
Перезагружаем наш сервер.
Теперь мы находимся в домене.
Пример авторизации: Administrator@pt.local, где Administrator это логин, а pt.local это домен
::: warning
Внимание, мы не можем зайти на домен-контроллер под локальной учетной записью, так как эта функция блокируется.
:::
Далее завершаем DHCP настройку
Переходим во вкладку как на скриншоте ниже:

В ней мы увидим наш домен

**Функционал Guest** - это учетная запись с ограниченными правами. Однако лучше отключить эту технологию, так как существуют уязвимости, позволяющие повысить привелегии и захватить весь домен.
Теперь подключим нашу Windows 10 к нашему домену. Для этого заходим в Windows -> cmd -> ipconfig. Проверяем настройки нашего DNS сервера, так как без него мы не смогли бы подключить нашу систему к домену
Для присоединения к системе заходим в Панель управления -> Система и безопасность -> Система -> Изменить параметры -> Изменить и выбираем вместо пункта рабочая группа - Домен и вводим pt.local. Вводим логин/пароль и перезагружаем его
Данные рабочие столы можно кастомизировать. Например выполнять преднастройки, устанавливать какие-то приложения или же синхронизировать какие-то папки с файловым сервером. Это важно, так как если физически сломается локальный компьютер, то вся информация останется на удаленном сервере и можно будет без проблем просмотреть ее на новом компьютере.
### Скрипт PoweShell
Рассмотрим скрипт для PowerShell. Он имеет расширение ps1
Внутри него мы можем найти:
**New-ADOrganizationalUnit** - создает Organizational Unit
**New-ADUser** - добавляет пользователей. Опция **-AccountPassword** позволяет задать пароль для этого пользователя. Функция **ConvertTo-SecureString** позволяет зашифровать наш пароль на случай, если наши пароли куда-то "утекут"
**New-ADGroup** позволяет создать группу
**Add-ADGroupMember** позволяет добавить пользователей.
Далее открываем наш скрипт через среду разработки PowerShell ISE и запускаем его (зеленая кнопка запуска на панели, или клавиша F5)
В нашем выводе не должно быть никаких красных строк. Если они есть- значит в нашем скрипте есть ошибка.
Обновляем домен(нажимаем на домен) и видим, что информация обновилась

Здесь, в папке Accounts, есть Organizational Unit, а внутри них - обычные пользователи
В папке ADM у нас два администратора
В данном скрипте реализован такой подход, что у двух администраторов есть два аккаунта - один с администраторскими привилегиями, а другой - обычный.
Перейдем на второй Windows Server и проводим аналогичную настройку. Для этого надо настроить:
* IP адрес
* DNS адрес сервера
* Роли сервера аналогично первому
* Добавляем контроллер домена в существующий домен. Важно! Учетные данные должны быть администратора, принадлежащие, в нашем случае, домену pt.local. Для этого наш логин должен быть указан в полном виде (*username*@pt.local)
* Настраимаем параметры
* Параметры репликации - мы можем установить источником репликации домен-контроллер существующий. Тогда репликация произойдет по сети. Но бывает так, что сеть достаточно большая, и канал передачи данных не настолько хороший. Для решения данной проблемы есть пункт Установить с носителя. Остальные настройки аналогично первому серверу.
Опция, которую необходимо включать на сервере - во вкладке View присутствует кнопка Advanced Features, которая показывает расширенные представления нашего домена. Включаем его и переходим в папку User.
В ней мы найдем одного нового пользователя - это **krbtgt**. Эта учетная запись ответствена за аутентификацию Kerberos. Именно ее кэш используется для формирования специального билета, который позволяет нашим машинам получать доступ к различным ресурсам домена.
Более того, если посмотреть повнимательнее аккаунт Administrator, мы увидим набор новых вкладок в свойствах пользователя.
Кроме учетных записей пользователей, есть еще и учетная запись компьютера.
Итоги занятия:
* Внесли Windows 10 под управление доменом
* Создали домен из основного и резервного контроллеров домена
* Применили скрипт для создания эмуляции инфраструктуры.