Exchange Server 2019 ile hayatımıza giren Client Acces Rules(CAR), istemci erişim kuralları, istemci özelliklerine veya istemci erişim isteklerine göre Exchange Yönetim merkezine ve uzak Powershell’deki mail sunucularımıza erişimimizi kontrol etmemize yardımcı olur.
CAR sayesinde kullanıcıların IP adreslerine, kimlik doğrulama türlerine ve kullanıcı özellik değerlerine göre mail sunucularımıza bağlanmasını önleyebiliriz.
Client Access Rules temel bileşenler aşağıdaki gibidir;
Conditions- Koşullar
Hangi koşullarda oluşturduğumuz kuralların çalışacağını tanımladığımız bölümdür. Detaylı bilgi için Microsoft kaynağına göz atabilirsiniz.
Exceptions – Harici Durumlar
Oluşturduğumuz kuraldan etkilenmeyecek istemcileri tanımladığımız bölümdür.
Action – Eylem
Oluşturduğumuz kuraldaki koşula uyan istemcilerin ne yapılacağını belirttiğimiz bölümdür .(izin verilmesi veya engellenmesi gibi)
Priority – Öncelik
Uyguladığımız kuralların öncelik sırasını belirttiğimiz bölümdür. Öncelik değeri en düşük olan kural en baskın kuraldır. . Detaylı bilgi için Microsoft kaynağına göz atabilirsiniz.
Oluşturulan ilk kuralın aktif olabilmesi 24 Saat’i bulabilir. Bundan sonraki oluşturulan kuralların aktif olması da bir Saat’i bulabilir. Kuralları oluşturduktan sonra biraz sabır.
Eğer Client Access Rules uygulayacağınız Exchange sunucusu Core işletim sistemi üzerinde çalışıyorsa uzak Powershell’e erişimimizi engelleyen kurallar konusunda dikkat etmemiz gerekiyor. Powershell erişimimizi korumak için önceliği (Priority) en yüksek, değeri en küçük olan kuralımızı oluşturmamız gerekiyor.
Bunun için aşağıdaki komut setini kullanabiliriz.
New-ClientAccessRule -Name “PowerShell Izin” -Action Allow -AnyOfProtocols RemotePowerShell -Priority 1
Resim-1
Aşağıdaki komut ile oluşturduğumuz Client Access Rules’ ları görüntüleyebiliriz.
Get-ClientAccessRule
Resim-2
Oluşturduğumuz kuralların detayını görüntülemek için aşağıdaki komutu kullanabilirsiniz.
Get-ClientAccessRule -Identity “PowerShell Izin” | Format-List
Resim-3
Oluşturulduğumuz kuralın herhangi bir ayarını görüntülemek için aşağıdaki komut setini kullanabilirsiniz.
Get-ClientAccessRule -Identity “PowerShell Izin” | Format-List Name,Priority,Enabled,Scope,Action
Resim-4
ECP erişimini tüm networkümüze kapatmak ve sadece belirli bir IP den erişim sağlamak için aşağıdaki kuralı uygulayabilirsiniz.
New-ClientAccessRule -Name “IP Izin” -Action DenyAccess -AnyOfProtocols ExchangeAdminCenter -ExceptAnyOfClientIPAddressesOrRanges 172.25.87.20 -Priority 2
Resim-5
Kuralımızı yazdıktan sonra test ettiğimizde karşımıza resimdeki uyarı ekranı geliyor.
Resim-6
Oluşturduğumuz kuralı aynı zaman da Shell ekranından test etmek için aşağıdaki komutu uygulayabilirsiniz.
Test-ClientAccessRule -RemoteAddress 172.25.87.30 -RemotePort 443 -Protocol ExchangeAdminCenter -User Administrator -AuthenticationType BasicAuthentication
Resim-7
Kullanıcıların ECP erişim izinlerini herhangi bir niteliğine göre izin vermek için aşağıdaki adımları uygulayabilirsiniz.
Kullanıcının özelliklerine girdiğimizde Department bölümüne IT Office yazan tüm kullanıcılara ECP erişim izni tanımlayacağız.
Resim-8
Kuralımızı oluşturmak için aşağıdaki komut setini kullanıyoruz.
New-ClientAccessRule -Name “IT Office Izin” -Action DenyAccess -AnyOfProtocols ExchangeAdminCenter -UserRecipientFilter {Department -ne “IT Office”} -Priority 3
Resim-9
İzin verdiğimiz kullanıcı ile erişim sağladığımızda başarı bir şekilde bağlandığını görmekteyiz.
Resim-10
Ayrıca kullanıcımızı Shell ekranından test etmek için aşağıdaki komut setini kullanıyoruz.
Test-ClientAccessRule -AuthenticationType BasicAuthentication -RemotePort 443 -User eyilmaz -Protocol ExchangeAdminCenter -RemoteAddress 172.25.87.30
Test komutumuzdan sonra herhangi bir sonuç döndürmesse komutumuz doğru bir şekilde çalışıyor demektir.
Resim-11
Test komutumuzu Departmanı farklı olan bir kullanıcıda test ettiğimizde çıkan sonuç aşağıdaki gibi olacaktır.
Resim-12
Test-ClientAccessRule -AuthenticationType BasicAuthentication -RemotePort 443 -User bdemirdal -Protocol ExchangeAdminCenter -RemoteAddress 172.25.87.30
Resim-13
Herhangi bir kuralı silmek istersek aşağıdaki komut setini kullanabilirsiniz.
Remove-ClientAccessRule -Identity “IP Izin”
Resim-14
Herhangi bir kuralın Priority değerini değiştirmek için aşağıdaki komutu uygulayabilirsiniz.
Set-ClientAccessRule -Identity “IP Izin” -Priority 2
Resim-15
Bir kuralımızı aktif durumdan pasif duruma çekmek için aşağıdaki komutu uygulayabilirsiniz.
Set-ClientAccessRule -Identity “IP Izin” -Enabled $false
Resim-16
Kurallarımızı yapımıza veya ihtiyaçlarımıza göre çeşitli şekillerde oluşturabiliyoruz. Daha detaylı bilgi için Microsoft kaynağına göz atabilirsiniz.