---
# System prepended metadata

title: Практическая работа № 5

---

# Практическая работа № 5
## 5.1 Настройка DFS
Установим требуемые компоненты на серверах dc1 и dc2
```powershell=
Install-WindowsFeature -ComputerName dc1 FS-DFS-Namespace, FS-DFS-Replication -IncludeManagementTools
Install-WindowsFeature -ComputerName dc2  FS-DFS-Namespace, FS-DFS-Replication -IncludeManagementTools
```
Компоненты успешно установлены
![](https://i.imgur.com/d5EpTuw.png)

Создадим DFS root, а также папку и шару для него
```powershell=
New-Item -Path "C:\DFSRoots" -Name "pt-dfs" -ItemType Directory 
New-SmbShare -Name "pt-dfs" -Path "C:\DFSRoots\pt-dfs"  -ChangeAccess "Everyone"
New-DfsnRoot -TargetPath "\\dc1\pt-dfs" -Type DomainV2 -Path "\\pt.local\pt-dfs"
```
Корень успешно создан
![](https://i.imgur.com/5S9y2MW.png)

Перейдем в интегрированную консоль Powershell и выполним данный скрипт
```powershell=
# определям базовый путь до шар
$basePath = "C:\share\"
# создаем хештаблицу соответствия шары и доменной группы
$shares = @{
    all_share = "Everyone"
    Buhg = "Buhg-sec"
    HR = "HR-sec"
    Progr = "Progr-sec"
    Sysadmins = "Sysadmins-sec"
    VIP = "VIP-sec"
    }

# бежим по именам шар
$shares.Keys | ForEach-Object{
    # создаем папку для шары
    New-Item -Path $basePath -Name $_ -ItemType Directory
    # расшариваем ее невидимой, настраиваем доступ по сети: выдаем полный доступ группе администраторов домена, доступ на изменение выдаем доменной группе соответствующей шары
    New-SmbShare -Name ($_+"$") -Path ($basePath+$_)  -FullAccess "Domain Admins" -ChangeAccess $shares[$_]
  
    # настраиваем разрешения NTFS
    # Смотрим текущие разрешения
    (Get-Acl -Path ($basePath+$_)).Access | Format-Table -Autosize
    
    # создаем запись доступа для соответствующей доменной группы
    $ACE = New-Object System.Security.AccessControl.FileSystemAccessRule($shares[$_],"Modify", "ContainerInherit, ObjectInherit", "None", "Allow")
    # получаем текущий ACL папки
    $ACL = Get-Acl -Path ($basePath+$_)
    # добавляем к ACL нашу запись доступа ACE
    $ACL.AddAccessRule($ACE)
    # устанавливаем новый ACL на папку
    Set-Acl -Path ($basePath+$_) -AclObject $ACL
    # смотрим разрешения
    (Get-Acl -Path ($basePath+$_)).Access | Format-Table -Autosize
    
}
```

Скрипт выполнился успешно
![](https://i.imgur.com/aHbAZCx.png)
![](https://i.imgur.com/tBuoftE.png)


Подключимся удаленно к серверу dc2 напрямую из Powershell ISE
![](https://i.imgur.com/HAu7uZs.png)
![](https://i.imgur.com/xcnwH86.png)
Выполним на dc2 скрипт создания шар. В русской версии группа "Everyone" называется "Все"
```powershell=
New-Item -Path "C:\DFSRoots" -Name "pt-dfs" -ItemType Directory 
New-SmbShare -Name "pt-dfs" -Path "C:\DFSRoots\pt-dfs" -ChangeAccess "Все"
# определям базовый путь до шар
$basePath = "C:\share\"
# создаем хештаблицу соответствия шары и доменной группы
$shares = @{
    all_share = "Все"
    Buhg = "Buhg-sec"
    HR = "HR-sec"
    Progr = "Progr-sec"
    Sysadmins = "Sysadmins-sec"
    VIP = "VIP-sec"
    }

# бежим по именам шар
$shares.Keys | ForEach-Object{
    # создаем папку для шары
    New-Item -Path $basePath -Name $_ -ItemType Directory
    # расшариваем ее невидимой, настраиваем доступ по сети: выдаем полный доступ группе администраторов домена, доступ на изменение выдаем доменной группе соответствующей шары
    New-SmbShare -Name ($_+"$") -Path ($basePath+$_)  -FullAccess "Domain Admins" -ChangeAccess $shares[$_]
  
    # настраиваем разрешения NTFS
    # Смотрим текущие разрешения
    (Get-Acl -Path ($basePath+$_)).Access | Format-Table -Autosize
    
    # создаем запись доступа для соответствующей доменной группы
    $ACE = New-Object System.Security.AccessControl.FileSystemAccessRule($shares[$_],"Modify", "ContainerInherit, ObjectInherit", "None", "Allow")
    # получаем текущий ACL папки
    $ACL = Get-Acl -Path ($basePath+$_)
    # добавляем к ACL нашу запись доступа ACE
    $ACL.AddAccessRule($ACE)
    # устанавливаем новый ACL на папку
    Set-Acl -Path ($basePath+$_) -AclObject $ACL
    # смотрим разрешения
    (Get-Acl -Path ($basePath+$_)).Access | Format-Table -Autosize
    
}
```
Скрипт выполнился успешно
![](https://i.imgur.com/ail2ajD.png)

![](https://i.imgur.com/WvDLDcc.png)

## 5.2 Настройка репликации
```powershell=
# создаем группу репликации
New-DfsReplicationGroup -GroupName "DFS pt.local replication"
# добавляем в группу членов репликации
Add-DfsrMember -GroupName "DFS pt.local replication" -ComputerName "dc1","dc2" 
# создаем соединение членов репликации
Add-DfsrConnection -GroupName "DFS pt.local replication" -SourceComputerName "dc1" -DestinationComputerName "dc2"
# создаем папку рекликации
New-DfsReplicatedFolder -GroupName "DFS pt.local replication"  -FolderName "share" 
#  указываем настройки папки репликации и ее источники для первого члена dc1
Set-DfsrMembership -GroupName "DFS pt.local replication" -FolderName "share" -ContentPath "C:\share" -ComputerName "dc1" -PrimaryMember $True -StagingPathQuotaInMB 16384 -Force
# и для второго dc2
Set-DfsrMembership -GroupName "DFS pt.local replication" -FolderName "share" -ContentPath "C:\share" -ComputerName "dc2" -StagingPathQuotaInMB 16384 -Force 
```
Репликация успешно настроена
![](https://i.imgur.com/gmCUVaQ.png)


Теперь свяжем наши шары на обоих серверах с адресным простанством DFS
```powershell=
$shares = @{
    all_share = "Everyone"
    Buhg = "Buhg-sec"
    HR = "HR-sec"
    Progr = "Progr-sec"
    Sysadmins = "Sysadmins-sec"
    VIP = "VIP-sec"
    }

$shares.Keys | ForEach-Object{
# публикуем шару dc1 в DFS
    New-DfsnFolder -Path ("\\pt.local\pt-dfs\"+$_)  -TargetPath ("\\dc1\"+$_+"$") -EnableTargetFailback $true
# подключаем реплику с dc2
    New-DfsnFolderTarget -Path ("\\pt.local\pt-dfs\"+$_) -TargetPath ("\\dc2\"+$_+"$")  
    
}

```
Шары успешно опубликованы
![](https://i.imgur.com/V9jHosS.png)
![](https://i.imgur.com/ZXQsKuN.png)
![](https://i.imgur.com/d1SutS8.png)
![](https://i.imgur.com/0kaSIRl.png)
![](https://i.imgur.com/LioFpxM.png)

## 5.3 Настройка мониторинга 
Нстроим аудит папки для действий доменных пользователей
```powershell=
# папка для котроля
$share = "C:\\Share"
# контролируемая учетная запись
$principal = "Domain Users"
# контролируюемы типы действий
$perm = "Delete,DeleteSubdirectoriesAndFiles,ExecuteFile,ReadData,ReadPermissions,ReadAttributes,ReadExtendedAttributes"
# устанавливаем параметры наследования
$inherit = "ContainerInherit,ObjectInherit"
# контролируем как успех так и отказ
$type = "Success,Failure"
# создаем запись
$ACE = New-Object System.Security.AccessControl.FileSystemAuditRule($principal,$perm,$inherit,"None",$type)
# устанавливаем ACL
$ACL = Get-Acl $share
$ACL.SetAuditRule($ACE)
Set-Acl $share -AclObject $ACL
```
Настройки успешно применены (dc1, dc2)
![](https://i.imgur.com/ya1zYlg.png)
![](https://i.imgur.com/JTElYmv.png)

![](https://i.imgur.com/ZL3KlzQ.png)

На шаре \\pt.local\pt-dfs\all_share создадим папку folder-for-delete.
С копьютера pc1 по пользователем Olga удалим эту папку.

![](https://i.imgur.com/DKtHeWq.png)

Данным скриптом определим хендл события
```powershell=
$LogParam = @{
    LogName = "Security";
    ID = "4665","4659","4660","4663"
} 
Get-WinEvent -FilterHashtable $LogParam | Where-Object Message -Like "*folder-for-delete*" | Select-Object TimeCreated, ID, Message | Format-Table -Wrap  -AutoSize
```
Handle ID 0xb9c
![](https://i.imgur.com/slAsM27.png)

Данным скриптом проверим собщения по событию с определенным хендлом
```powershell=
$LogParam = @{
    LogName = "Security";
    ID = "4665","4659","4660","4663"
} 
Get-WinEvent -FilterHashtable $LogParam | Where-Object Message -Like "*0xb9c*" | Select-Object TimeCreated, ID, Message | Format-Table -Wrap  -AutoSize
```
![](https://i.imgur.com/4Ys8p4r.png)



## 5.4 Настройка отправки логов в SIEM
Вклюм сервис сборщика логов командой
```bash=
wecutil qc
```
Сервис успешно включен
![](https://i.imgur.com/b7xSO6e.png)
Создадим и настроим GPO отправки журналов на logcollector
![](https://i.imgur.com/4jQ6t2G.png)
Включим службу WinRM
![](https://i.imgur.com/0YZ8fZq.png)
Настроим путь до логколлектора gj FQDN указав строчку
```bash=
Server=http://dc1.pt.local:5985/wsman/SubscriptionManager/WEC,Refresh=5
```
![](https://i.imgur.com/x4EhRrT.png)

Для доступа по winrm необходимо сконфигурировать файрволл
Создадим новое входящее предустановленное правило для файрволла
![](https://i.imgur.com/Zox0uUt.png)
![](https://i.imgur.com/KXdu6eR.png)
![](https://i.imgur.com/WdCXxWh.png)
![](https://i.imgur.com/pmWqmPN.png)
 Настроим доступ к журналам безопасности
 ![](https://i.imgur.com/kCkbIMS.png)
Дескриптор безопасности журнал посмотрим на машине pc1 следующей командой
```bash=
wevtutil gl security
```
И установим данный дескриптор O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)(A;;0x1;;;S-1-5-20)
![](https://i.imgur.com/4ALaQ8g.png)

Далее через GPP настроим членство в локльной группе читателей журнала событий
и добавим туда администраторов домена
![](https://i.imgur.com/xnC9Xbz.png)

Отфильтруем применение GPO только для машины PC1
![](https://i.imgur.com/3p6v1Fe.png)
![](https://i.imgur.com/XIHmN1W.png)
И прилинкуем политику к домену
![](https://i.imgur.com/Gm1OcNE.png)

Настроим прием логов на коллекторе

Создадим подписку на прием логов
![](https://i.imgur.com/gRo4PRh.png)
![](https://i.imgur.com/P0uxqzZ.png)
Выберем машину с которой будем принимать логи это pc1
![](https://i.imgur.com/tfGS6Ev.png)
Проверим соединение
![](https://i.imgur.com/jPSfqdf.png)
Выберем нужные журналы
![](https://i.imgur.com/17KTuRg.png)
Укажем учетную запись для сбора логов
![](https://i.imgur.com/G7hShGY.png)
Подписка создана
![](https://i.imgur.com/XpvSNHW.png)
Ошибок нет
![](https://i.imgur.com/1gvWD8B.png)

Дадим доступ сетевой службе
```bash=
wevtutil set-log security /ca:O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)(A;;0x1;;;S-1-5-20)
```
Доступ предоставлен

![](https://i.imgur.com/a7mhEVc.png)
Логи передаются
![](https://i.imgur.com/rd9pyhk.png)



Теперь настроим пересылку где инициаторами пересылки будут машины, в нашем случае pc1. Создадим подписку collector-machine-init
![](https://i.imgur.com/Vo4Y8Qa.png)
Инициаторами будет группа "Domain Computers"
![](https://i.imgur.com/OMU2Vod.png)
Укажем логи для сбора
![](https://i.imgur.com/b5wUr6m.png)
В рамках тестирования отключим коллектор collector-get
![](https://i.imgur.com/3FTAwMd.png)
WinRM на сервере коллекторе уже включен
![](https://i.imgur.com/gbvEaeV.png)
Включим службу сборщика
![](https://i.imgur.com/5KLAdEu.png)
Проверим статус нашего коллектора
![](https://i.imgur.com/UxDbMIT.png)

На этом данная работа завершена







