Post

Mass AD Security and Any Folder [ACL-ACE] Reporter

Mass AD Security and Any Folder [ACL-ACE] Reporter

ACL (Access Control List) Nedir?

Güvenlik denetimleri, belirli kullanıcıların veya grupların bir kaynağa örneğin, (dosya, klasör, network cihazı, server vb.) erişim düzeyini kontrol etmek için kullanılır. Bu tür bir güvenlik denetimi, sistem yöneticilerinin ve organizasyonların verilere ve kaynaklara erişimi sınırlamak, izlemek ve güvence altına almak için kullanılan bir güvenlik yöntemidir. Gelin biraz inceleyelim.

  1. Erişim İzinleri ve Kontrol: ACL'ler, kullanıcılara veya gruplara, belirli kaynaklara (dosyalar, klasörler, paylaşımlar, vb.) erişim düzeyini belirleme yetkisi verir. Örneğin, bir belgeye sadece belirli bir kullanıcının veya grup üyelerinin erişmesine izin verilebilir.
  2. Gizlilik ve Güvenlik: Hassas verilere sahip organizasyonlar, bu verilere yetkisiz erişimi engellemek için ACL'leri kullanabilir. Bu, verilerin gizliliğini ve güvenliğini korur.
  3. İzleme ve Denetim: ACL'ler, kimin hangi kaynaklara erişebildiğini izlemek ve denetlemek için kullanılabilir. Erişim günlükleri, belirli kaynakların kullanımını izlemek için önemlidir.
  4. Paylaşılan Kaynaklar ve Klasörler: Paylaşılan dosyalar veya klasörler, işbirliği yapmak için farklı kullanıcılar veya gruplar arasında erişim düzenlemeleri yapılmasını gerektirebilir.

ACL vs ACE

  • ++ACL (Access Control List), bir bilgisayar sistemi veya ağdaki kaynaklara (dosyalar, klasörler, ağ kaynakları, vb.) erişimi kontrol etmek için kullanılan bir güvenlik mekanizmasıdır. ACL'ler, bu kaynaklara kimin erişebileceğini ve hangi işlemleri yapabileceğini belirleyen kurallar listesini içerir.
  • +ACE (Access Control Entry), bir ACL içindeki her bir erişim kontrol girişini ifade eder. ACE'ler, kaynağa erişim izinlerini veya kısıtlamaların belirlenmesidir.
Örnek 1: Dosya Sistemi İçin ACL

Diyelim ki bir dosya sistemi üzerinde çalışıyorsunuz ve belirli bir dosyayı paylaşmanız gerekiyor. 
Bu dosya için bir ACL oluşturalım ve ACE'leri inceleyelim:

Dosya Adı: "gizli_dosya.txt"

ACL:

ACE 1: Kullanıcı "Ahmet" -> Okuma İzni
ACE 2: Grup "Çalışanlar" -> Okuma ve Yazma İzni
ACE 3: Kullanıcı "Mehmet" -> Okuma ve Yazma İzni
Bu ACL, "gizli_dosya.txt" dosyasına erişim kontrolünü tanımlar. Ahmet sadece dosyayı okuyabilir, Çalışanlar grubundaki kullanıcılar okuyabilir ve yazabilir, Mehmet ise okuyabilir ve yazabilir.
Örnek 2: Ağ Cihazı İçin ACL

Bir ağ yöneticisi olarak, ağ cihazınızda bir erişim denetimi listesi oluşturmanız gerekebilir:

ACL:

ACE 1: Kaynak IP: 192.168.1.10, Hedef Port: 443 (HTTPS) -> İzin Ver
ACE 2: Kaynak IP: 192.168.1.20, Hedef Port: 22 (SSH) -> İzin Ver
ACE 3: Kaynak IP: 192.168.1.30, Hedef Port: 80 (HTTP) -> Reddet
Bu ACL, ağ cihazınıza gelen trafiği kontrol eder. 192.168.1.10 IP'sinden gelen HTTPS trafiğine izin verilir, 192.168.1.20 IP'sinden gelen SSH trafiğine izin verilir ve 192.168.1.30 IP'sinden gelen HTTP trafiği reddedilir.

🚩 🚩 Her iki örnek de ACL ve ACE kavramlarını gösterir. ACL, bir kaynağa (dosya, ağ cihazı vb.) erişimi kontrol etmek için kullanılırken, ACE 'ler, belirli kullanıcılar veya kaynaklar için izinlerin veya reddetmelerin ayrıntılarını içerir. ACL, bu ACE'leri bir araya getirir.

#AD Spesific OU ACL Reporter:
# | TheGuler0x |

# Active Directory module import
Import-Module ActiveDirectory

# OU [DistinguishedName]
dsacls "OU=test,DC=guler,DC=com"
#Group/User ACL Report
dsacls "CN=HelpDesk,CN=users,DC=guler,DC=com"
# Object ACL Report
# [DistinguishedName]
dsacls "CN=DESKTOP-N035,OU=MUHASEBE,DC=GULER,DC=COM"
# Folder ACL Reporter Script 
# | TheGuler0x |
#####################
function Get-FolderAcl {
    param (
        [string]$FolderPath
    )

    # Ana klasörün ACL bilgilerini al
    $Acl = Get-Acl -Path $FolderPath

    Write-Host "ACL bilgileri: $FolderPath"
    Write-Host "-------------------------------------"

    # Ana klasörün ACL bilgilerini görüntüle
    $Acl.Access | ForEach-Object {
        $AccessRule = $_
        Write-Host "User/Group: $($AccessRule.IdentityReference)"
        Write-Host "Permissions: $($AccessRule.FileSystemRights)"
        Write-Host "Access Control Type: $($AccessRule.AccessControlType)"
        Write-Host "Is Inherited: $($AccessRule.IsInherited)"
        Write-Host "--------"
    }

    # Alt klasörlerin ACL bilgilerini al ve görüntüle
    Get-ChildItem -Path $FolderPath -Recurse -Directory | ForEach-Object {
        $Subfolder = $_.FullName
        $SubfolderAcl = Get-Acl -Path $Subfolder

        Write-Host "ACL bilgileri: $Subfolder"
        Write-Host "-------------------------------------"

        $SubfolderAcl.Access | ForEach-Object {
            $AccessRule = $_
            Write-Host "User/Group: $($AccessRule.IdentityReference)"
            Write-Host "Permissions: $($AccessRule.FileSystemRights)"
            Write-Host "Access Control Type: $($AccessRule.AccessControlType)"
            Write-Host "Is Inherited: $($AccessRule.IsInherited)"
            Write-Host "----------------------------"
        }
    }
}

# Directory
Get-FolderAcl -FolderPath "C:\Users\Administrator\Desktop\My_folder"

🚩 🚩 🚩 Active Directory [Inheritance-Miras] Organizasyon Birimleri (OU) bağlamında, izinlerin ve ayarların üst birimden alt birimlere ve bu birimlerdeki nesnelere nasıl aktarılmasıdır. Eğer alt OU ağacı altında bazı yetkiler eksik görünüyorsa Inheritance-Miras konrol edilmelidir.

I recommend you to use the Professional Tools.....

Link: https://github.com/faruk-guler/Microsoft-Active-Directory-Tools/blob/main/Mass-ACL-Reporter.ps1

Öğrenmeye aç kalın - Be hungry to learn

This post is licensed under CC BY 4.0 by the author.

© faruk-guler. Some rights reserved.

Mastering Systems with a Decentralized Mentality