Muhtemelen Bilmediğiniz 5 Ücretsiz Exchange Güvenlik Aracı
Exchange e-posta güvenliği, savunulması gereken büyük bir cephedir. Artık o kadar çok saldırı yüzeyi var ki, nasıl başlayacağınıza karar vermek zor olabilir. Exchange altyapısı güvenlik kurulumunuzu düşünürken göz önünde bulundurmak isteyebileceğiniz birkaç noktayı burada bulabilirsiniz.
Bu kesinlikle tam bir liste değildir.
1. Tam Erişim ve Farklı Gönderme İzinleri
Exchange'in mükemmel bir özelliği, kullanıcılara başkalarının posta kutularına erişim izni verme yeteneğidir. Bunu, posta kutusunun sahibiyle etkili bir şekilde aynı hakları veren "Tam Erişim" iznini kullanarak veya yalnızca "Farklı Gönder" iznini vererek, yalnızca "posta kutusunun sahibiyle" değiştirme izinlerini vererek yapabilirsiniz. From” alanından belirli bir kullanıcıya.
Tam erişim vermek için aşağıdaki gibi bir PowerShell komutunu kullanabilirsiniz:
Get-Mailbox “MailboxToView” | Add-ADPermission -User “PersonWhoNeedsPermission” -ExtendedRights “Full Access”Exchange 2013 ve sonraki sürümlerde, 'Etki Alanı Yöneticileri'nin herhangi bir üyesinin diğer kullanıcıların posta kutularını görüntüleyemediğini unutmayın.
Posta kutusuna kimin erişimi olduğunu öğrenmek için aşağıdaki PowerShell komutunu çalıştırabilirsiniz:
Get-Mailbox | Get-MailboxPermission | Where { $_.AccessRights -eq “FullAccess” -and $_.User.ToString() -ne “NT AUTHORITYSYSTEM” -and $_.User.ToString() -ne “NT AUTHORITYSELF”} | Select Identity, User | flBu size, onlara erişebilecek kullanıcı ve grupların bulunduğu posta kutularının bir listesini verecektir.
Not: Bu işlemin birçok posta kutusunda çalışması biraz zaman alabilir!
2. Taşıma Kuralları
Exchange'in en sık gözden kaçan güvenlik noktalarından biri mütevazi taşıma kuralıdır. Kötü niyetli bir yöneticiniz varsa, yalnızca bir aktarım kuralı ayarlayarak potansiyel olarak herkesin e-postasını görüntüleyebilir.
Birisinin, şirketten ayrılan her e-postada karbonu kör edecek şekilde varsayılan imza taşıma kuralını değiştirdiği bir organizasyon biliyorum. Başka bir sistem yöneticisinden imzayı değiştirmesi istendiğinde bunu fark etmeleri tesadüfen oldu.
Bu tür davranışları tespit etmek oldukça zordur ancak basit bir PowerShell komutu şunu ortaya çıkarabilirdi:
Get-TransportRule | Where {$_.BlindCopyTo -ne $null} | fl Name, BlindCopyToKötü niyetli amaçlarla kullanılabilecek diğer eylemler şunlardır:
Get-TransportRule | Where {$_.ModerateMessageByUser -ne $null} | fl Name, ModerateMessageByUserBu komut, mesaj teslim edilmeden önce onayın gerekli olduğu kuralları listeleyecektir.
Get-TransportRule | Where {$_.DeleteMessage -eq $true} | fl Name
Bu komut, mesajı silen tüm kuralları listeleyecektir.
3. Değişim Rolleri
Microsoft, Exchange 2010'dan bu yana Rol Tabanlı Erişim Denetimi modelini (RBAC) kullanıyor ve Exchange 2013 ve sonrasında bu model daha da ön plana çıktı. Temel olarak, kullanıcılara ve gruplara eylemleri ve görevleri gerçekleştirme izinlerini "kim, ne, nerede" yöntemini kullanarak atarsınız.
Örnek olarak, SampleCo'nun Londra ofisinin bir şube müdürünü (kim) ele alalım. Yönetim, şube yöneticisinin kendi şubesi (nerede) için ofis dışında yanıtlarını (ne) değiştirebilmesini istiyor.
Exchange rolü güvenliği, özel bir rol grubu oluşturarak bunu yapmamıza olanak tanır:
New-RoleGroup -Name ExampleCo_London -Roles (See Later) -Members BranchMgr1Bu, kapsamın uygulanmadığı bir rol grubu oluşturacaktır; "nerede" bilgisi yoktur, yani BranchMgr1, kendisini destekleyen tüm Exchange nesnelerinde izinlerini kullanabilecektir.
-Members'ı atlayıp bunun yerine -RecipientOrganizationalUnitScope sağlayarak kapsamı tek bir kuruluş birimiyle sınırlandırabiliriz:
New-RoleGroup -Name ExampleCo_London -Roles (See Later) -RecipientOrganizationalUnitScope “LondonOU”BranchMgr1'in ofis dışı yanıtlarını değiştirmesine izin verme hedefimize ulaşmak için onlara "Yardım Masası" yerleşik rolünü atayabiliriz:
New-RoleGroup -Name ExampleCo_London -Roles “Help Desk”Ayrıca özel bir izin kümesiyle kendi rollerinizi de oluşturabilirsiniz.
Yakın zamanda Exchange sunucularımızdan birindeki aktarım kuralını kimin değiştirdiğini bulmamız gereken bir durumla karşılaştık; Neyse ki, bir posta kutusunu veya sunucuyu değiştirme iznine sahip olanları görüntülemek için kolay bir PowerShell komutu vardır:
Get-ManagementRoleAssignment -Role “Transport Rules” -WritableServer Exchange -GetEffectiveUsersBunu ortamımızda çalıştırmak, bu görevi gerçekleştirebilecek grupların bir listesini verdi:
4. Exchange Uç Sunucuları
Exchange Edge sunucusuna sahip olmanın ne kadar önemli olduğunu yeterince vurgulayamıyorum. Bunlar, yalnızca 25 numaralı bağlantı noktasını (SMTP) dış dünyaya maruz bırakan oldukça kesilmiş sunuculardır. Bu, saldırı yüzeylerini önemli ölçüde daraltır ve spam ve antivirüs işlemlerini başka bir (sanal) sunucuya aktarır.
Edge sunucuları, aktif dizin etki alanınızın üyesi değildir, dolayısıyla yönetici hesapları arasında şifre paylaşmadığınız sürece (değilsiniz, değil mi?), bu durumda kontrolü ele geçirmeyi başaran bir saldırgan olur Edge Sunucunuzun pek bir dayanağı yok.
Örneğin, erken alıcı reddi için kullanılan Active Directory'den gerekli bilgiler, tek yönlü bir Edge Sync işlemi aracılığıyla gönderilir.
5. Hibrit Yapılandırmalar
Dikkatinizi Office 365 ve Hibrit yapılandırmalarına çekerek bitireceğim. Şirket içi konfigürasyonların çoğunu Exchange konfigürasyonunuzun bulut veya hibrit kısmına uygulamanız mümkündür.
Exchange Online sunucularına bağlantı kurmak için aşağıdaki komutu kullanabilirsiniz:
$creds = Get-Credential $eonlinesession = New-PSSession – ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $creds -Authentication Basic -AllowRedirection Import-PsSession $eonlinesessionget-mailbox gibi bir komut göndererek başarılı bir şekilde bağlanıp bağlanmadığınızı kontrol edin ve site dışında olduğunu bildiğiniz posta kutularını döndürüp döndürmediğine bakın.
İşiniz bittiğinde bağlantıyı kesmeyi unutmayın; aksi takdirde, daha sonra kullanıcınız için mevcut tüm PowerShell oturumlarını kullandığınızda sorunlarla karşılaşabilirsiniz (daha sonra zaman aşımına uğramalarını beklemeniz gerekir ki bu da eğlenceli değildir).
Remove-PsSession $eonlinesession

