Exchange Server 2019’da EAC/RemotePowerShell Engelleme (Client Access Rules)

Merhaba, bu yazımızda Exchange Server 2019‘da EAC (Exchange Admin Center) ve Remote PowerShell‘i engellemek için yeni seçenekleri çalıştıracağız.

Exchange Server 2019‘dan önceki sürümlerde IP adresini veya IP aralığını EAC için engellemek için sabit bir yöntem bulunmamaktaydı. Exchange 2019, EAC veya Remote PowerShell’i belirli IP adreslerinden veya IP adresi aralıklarından engellemek için cloud tarafında kullanılan özelliklerin bir kısmını on-premis ortamlarımıza getirdi. Aslında bu özellik Hub Transport’a benziyor bu kurallar sayesinde IP Temelli ve kullanıcı özelliklerine bağlı olarak kimlerin erişebileceğini karar verebiliyorsunuz.

Client Access Rules öncesinde bu engellemeyi WAF, IIS (IP And Domain Restrictions) vb. gibi servislerle yapabiliyorduk.

Client Access Rules’un Tanımı

Client Access Rules‘u yönetmek için yalnızca EMS seviyesinde çalışabilmektedir, yani Client Access Rules’u yönetebileceğiniz bir GUI bulunmamaktadır. Client Access Rules ile aşağıdaki gibi engellemeler yapabilmeniz mümkündür.

Microsoft genel performansı iyileştirmek adına Client Access Rule için bir önbellek kullanmaktadır; önbellekten dolayı kurallarda yapılan değişiklikler hemen aktif olmuyor. Organizasyon içerisinde oluşturduğunuz ilk kuralın aktif olması için 24 saate kadar sürebiliyor ve oluşturulan kural değişikliği veya kaldırılmasının aktif hale gelmesi 1 saate kadar sürebilmektedir.

Client Access Rules Bileşenleri

Conditions – Koşullar: Kuralın uygulanacağı istemci bağlantısını tanımlamaktadır. Aslında bu bileşen kuralın en temel halidir.

Exceptions – İstisnalar: Kuralın uygulanmaması gereken istemci bağlantısını tanımlamaktadır.

Action – Aksiyon: İstemci bağlantısı koşulu karşıladığında hangi eylemlerin yapılması gerektiğini tanımlamaktadır.

Priority – Öncelik: Kuralların yürütüldüğü sırayı tanımlamaktadır. Her kuralın atanmış bir öncelik numarası bulunmaktadır. Öncelik numarası ne kadar düşükse, öncelik o kadar yüksek oluyor. Varsayılan olarak, en eski kurallar en yüksek önceliğe sahiptir.

Client Access Rule için kullanılan Komut Setleri

Client Access Rule yönetimi için kullanılabilen cmdlet’ler aşağıdaki gibidir;

Get-ClientAccessRule – Ortamınız da yapılandırılmış bütün kuralların listesini gösterir.

New-ClientAccessRule – Ortamınız için yeni kurallar oluşturmanıza olanak sağlamaktadır.

Set-ClientAccessRule – Mevcut kurallarınızı değiştirmek için kullanılır.

Test-ClientAccessRule – Oluşturmak istediğiniz kuralların yapılandırmasını test etmenize olanak sağlamaktadır.

Remove-ClientAccessRule – Oluşturduğunuz kuralları kaldırmak için kullanılır.

Kural oluşturma işlemine başlamadan önce ortamımız da çalışan kural var mı diye kontrol edelim. Kontrol işlemi için aşağıdaki komut setini kullanmanız yeterlidir.

Get-ClientAccessRule

Ortamımızda oluşturulmuş hiç kural bulunmamakta, kuralları kontrol etmek önemli, çünkü oluşturulan kuralların Priority numarasını buna göre ayarlamamız gerekiyor.

ECP Engelleme/Erişime İzin Verme

New-ClientAccessRule komutunu kullanarak, yalnızca belirlediğimiz VLAN’ın EAC’ye erişmesine izin vereceğiz.

New-ClientAccessRule -Name “Block-ECP Servers” -Action DenyAccess -AnyOfProtocols ExchangeAdminCenter -ExceptAnyOfClientIPAddressesOrRanges 192.168.1.1/24 -Priority 1

Kullandığımız bu komut EAC’yi engellerken, belirtmiş olduğumuz VLAN’ı Except olarak ekliyor ve sadece o IP aralığından gelen isteklere izin veriyor. Bu durumuda önceliği 1 olarak eklediğimiz kural EAC’yi engellerken, except olarak eklediğimiz VLAN’ınn bu kuraldan etkilenmemesi için bir istisna oluşturuyor.

Yeni oluşturduğumuz kuralın tüm ayrıntılarını görüntülemek için aşağıdaki komutu kullanabilirsiniz.

Get-ClientAccessRule “Block-ECP Servers” | fl

Tüm Exchange yapılandırmaları gibi Client Access Rule’da ADSI üzerinden depolanmaktadır. Oluşturduğunuz her kural ADSI içerisinde “Client Access Rules” nesnesi altında depolanmaktadır.

Remote PowerShell Engelleme

EAC engellemesini yaptık ve bu engelleme için bir istina belirledik. Şimdi ikinci güvenlik noktamız PowerShell olacak, ClientAccessRule üzerinden PowerShell engellemesini yapacağız

New-ClientAccessRule -Name “Block-PowerShell” -Action DenyAccess -AnyOfProtocols RemotePowerShell -ExceptAnyOfClientIPAddressesOrRanges 10.190.65.1/24 -Priority 2

Remote PowerShell için istisnaa VLAN’ı belirttik ve Prority numarasını 2 olarak ekledik. Ama ortamımız büyüdü ve farklı senaryolar izlemeye başladık ve oluşturduğumuz kuralların Priority numaralarını değiştirmemiz gerekti. İlgili değişikliği için aşağıdaki komut seti ile yapabiliriz.

Set-ClientAccessRule -Identity “Block-PowerShell -Priority 1

Peki, bu durumda “Block-ECP Servers” kuralının Priority numarası değişti mi kontrol edelim.

Get-ClientAccessRule -Identity “Block-ECP Servers” | FL Name,Priority,Enabled,Scope

Daha önceleri Client Access Rule ile Active Directory Özniteliklerine bağlı engelleme/izin verme işlemi yapılabiliyordu, fakat Microsoft tarafından yayımlanan dökümanda ilgili komut setinin artık sadece Exchange Online üzerinde kullanıldığı belirtilmiş.

New-ClientAccessRule (ExchangePowerShell) | Microsoft Docs

Kurallarımızı oluşturduk, şimdi ortamımızda aktif bulunan kurallara bir göz atalım.

Get-ClientAccessRule

ECP için oluşturduğumuz kuralı test etmek istersek, Microsoft’un bize sunduğu Test cmdlet’ini kullanabiliriz.

Test-ClientAccessRule -RemoteAddress 192.168.2.30 -RemotePort 443 -Protocol ExchangeAdminCenter -User Administrator -AuthenticationType BasicAuthentication

Oluşturmuş olduğumuz bir kuralı ortamımızdan silmek istersek Remove-ClientAccessRule cmdlet’ini kullanabiliriz.

Yukarıda yapmış olduğumuz örnekler, Client Access Rules için temel yapılandırmalardır. Siz kendi ortamınıza ve senaryonuza göre bu yapılandırmaları değiştirebilirsiniz.

Exit mobile version