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.
- 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.
- 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.
- İ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.
- 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