Exchange Server Client Access Rules EAC/RemotePowerShell Engelleme

Merhaba, bu yazıda Exchange Server 2019’da Exchange Admin Center (EAC) ve Remote PowerShell erişimini belirli IP adresleri veya aralıklar için nasıl engelleyeceğinizi ele alacağız.

Exchange Server 2019‘a kadar, EAC‘ye erişimi IP bazında engellemek için net bir yöntem mevcut değildi. Exchange 2019 ile birlikte, bulut ortamlarında kullanılan özelliklerden bazıları yerel (on-premise) ortamlara entegre edilmiştir, bu sayede belirli IP adreslerinden veya aralıklarından EAC veya Remote PowerShell erişimini kısıtlamak mümkün hale gelmiştir.

Bu yeni özellikler, öncelikle Hub Transport servisinde bulunan kurallara benzer şekilde çalışır ve IP tabanlı veya kullanıcı özelliklerine bağlı olarak kimlerin erişebileceğini yönetmenize olanak tanır.

Client Access Rules Nedir

Client Access Rules (CAR), Exchange Management Shell (EMS) aracılığıyla yönetilir; bu kuralları yönetmek için grafiksel bir kullanıcı arayüzü (GUI) mevcut değildir. CAR kullanarak yapabileceğiniz engellemeler aşağıdaki gibidir:

  • Tekil IP adresi için engelleme (Örnek: 192.168.1.1)
  • Belirli bir IP adresi aralığı için engelleme (Örnek: 192.168.1.1 – 192.168.1.50)
  • Subnet bazında engelleme (Örnek: 192.168.1.1/24)
Microsoft, genel performansı artırmak ve sistem kaynaklarını etkin bir şekilde yönetmek için Client Access Rules'ta önbellek kullanmaktadır. Bu önbellek mekanizması nedeniyle, yeni oluşturulan veya güncellenen kuralların etkinleştirilmesi hemen gerçekleşmeyebilir. 

Bir organizasyonda oluşturulan ilk kuralın aktif hale gelmesi yaklaşık 24 saat sürebilirken, mevcut bir kuralın değiştirilmesi veya kaldırılması ise yaklaşık bir saat içinde tamamlanabilir.


Client Acces Rules Bileşenleri

  1. Conditions (Koşullar): Bu bileşen, kuralın hangi istemci bağlantılarına uygulanacağını tanımlar ve kuralların temelini oluşturur. Koşullar, belirli kullanıcılar, IP adresleri, veya istemci türleri gibi kriterlere dayanabilir.
  2. Exceptions (İstisnalar): Bu bileşen, belirli koşullar altında kuralın uygulanmaması gereken istemci bağlantılarını belirler. İstisnalar, kuralların daha esnek ve hedef odaklı uygulanmasını sağlar.
  3. Action (Aksiyon): Bu bileşen, koşulların karşılanması durumunda uygulanacak eylemleri tanımlar. Örneğin, belirli bir IP aralığından gelen istemcilere erişimi engelleme veya yalnızca belirli protokolleri kullanmalarına izin verme gibi aksiyonlar alınabilir.
  4. Priority (Öncelik): Bu bileşen, kuralların uygulanma sırasını belirler. Her kurala bir öncelik numarası atanır; bu numara ne kadar düşükse kuralın önceliği o kadar yüksektir. Sistem, düşük numaralı kuralları önce değerlendirir, böylece öncelikli işlemler daha önce gerçekleşir. Varsayılan olarak, ilk oluşturulan kurallar en yüksek önceliğe sahiptir, ancak bu sıralama ihtiyaçlar doğrultusunda yönetici tarafından değiştirilebilir.

Client Access Rule için Kullanılan Komutlar

Client Access Rules yönetimi için kullanılabilen PowerShell cmdlet’lerini aşağıda bulabilirsiniz:

  • Get-ClientAccessRule: Mevcut tüm Client Access Rules’ları listeler. Bu cmdlet, sistemde yapılandırılmış tüm kuralları görüntülemenizi sağlar, böylece mevcut yapılandırmaları değerlendirebilirsiniz.
  • New-ClientAccessRule: Yeni bir kural oluşturmanıza olanak tanır. Bu cmdlet, belirli koşullar ve eylemlerle yeni kurallar eklemenizi sağlayarak, sistem güvenliğini özelleştirmenize yardımcı olur.
  • Set-ClientAccessRule: Var olan bir kuralı değiştirmek için kullanılır. Bu cmdlet ile mevcut kurallarda değişiklik yapabilir, güncellemeleri uygulayabilirsiniz.
  • Test-ClientAccessRule: Belirli bir kuralın doğru şekilde yapılandırıldığını ve istenen davranışları sergilediğini doğrulamak için kullanılır.
  • Remove-ClientAccessRule: Var olan bir kuralı sistemden kaldırmak için kullanılır. Bu cmdlet, artık gerekli olmayan veya güncellenmiş politikaların temizlenmesi sürecinde kullanılır.

Client Access Rule Kurallarını Kontrol Etme

Ortamınızda mevcut kuralları kontrol etmek için ilk adım olarak aşağıdaki komutu çalıştırabilirsiniz:

Get-ClientAccessRule

Bu komut, sistemde yapılandırılmış olan kuralları listeler ve herhangi bir mevcut kuralın olup olmadığını kontrol etmenize olanak tanır. Eğer kurallar mevcutsa, oluşturulacak yeni kuralların öncelik numarasını bu mevcut kurallar doğrultusunda planlamanız gerekecektir. Öncelik numarası, kuralların işlenme sırasını belirleyen önemli bir faktördür.

En düşük numaralı kural en yüksek önceliğe sahiptir.

Client Access Rules ile ECP Engelle/İzin Verme Adımları

New-ClientAccessule komutunu kullanarak, belirlediğimi bir Subnet için EAC erişim izni sağlayacağız.

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

Kullandığımız komut üzerindeki parametreleri açıklamak gerekirse;

  • Name: Kurala atanan isim “Block-ECP Servers”. Bu isim, kuralın amacını açıklar şekilde seçilmiştir.
  • Action: Kuralın eylemi DenyAccess olarak belirlenmiştir. Bu, belirtilen koşullar altında erişimin engelleneceği anlamına gelir.
  • AnyOfProtocols: Bu parametre, kuralın hangi protokoller için geçerli olduğunu belirler. Burada ExchangeAdminCenter kullanılmıştır, yani bu kural yalnızca EAC protokolü için uygulanacaktır.
  • ExceptAnyOfClientIPAddressesOrRanges: Bu parametre, kuralın uygulanmayacağı istisna IP adreslerini veya aralıklarını tanımlar. 192.168.1.1/24 olarak belirtilmiş olan bu aralık, kuralın uygulanmayacağı IP adreslerini kapsar. Yani, bu IP aralığındaki cihazlar EAC’ye erişmeye devam edebileceklerdir.
  • Priority: Kuralın önceliğini belirler. 1 olarak ayarlanmış bu değer, bu kuralın diğer tüm kurallardan daha öncelikli olduğunu gösterir. Yani, bu kural, önceliği daha yüksek olan (daha düşük numaralı) kurallar listesinin en başında yer alacak ve ilk olarak uygulanacaktır.

Client Access Rule ile RemotePowerShell Engelleme

EAC’ye uyguladığımız erişim kısıtlamalarının ardından, güvenlik önlemlerimizi bir adım daha ileriye taşıyarak Remote PowerShell erişimini de sınırlayacağız. Bu işlem için Client Access Rule kullanarak, belirli bir IP adresi aralığına erişim izni verirken diğerlerinden erişimi engelleyeceğiz.

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

Yukarıdaki komut, Remote PowerShell protokolü için genel bir erişim yasağı tanımlar, ancak 10.190.65.1/24 IP adresi aralığını bu yasağın dışında tutar. Öncelik sıralaması olarak ‘2’ numarasını atadık.

Client Access Rule ile Proirity Değiştirme

Block-PowerShell kuralımız da Priority değerini 2 olarak yapılandırmıştık ve Block-ECP Servers kuralı içinde Priority değerini 1 olarak yapılandırmıştık. Şimdi Block-PowerShell kuralının Proirity değerini değiştirelim ve EAC kuralının önceliğini güncellememiz gerekip gerekmediğini kontrol edelim.

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

Değişiklik yapmış olduğumuz kuralımızın detaylarını görmek için;

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

EAC için oluşturduğumuz kural otomatik olarak Proiority 2 olarak güncellendi, böylelikle tüm kurallarımız da Priority değişikliği yapmamız gerekmemektedir.

Client Access Rule ile Aktif Kuralları Listeleme

Kurulum sürecinin tamamlanmasının ardından, Exchange Server ortamımızda aktif olarak bulunan Client Access kurallarını listeyebiliriz. Bu inceleme işlemi için aşağıdaki PowerShell komutunu kullanabiliriz:

Get-ClientAccessRule

Client Access Rules ile Test Adımları

Oluşturduğumuz ECP erişim kuralının etkinliğini doğrulamak amacıyla, Microsoft tarafından sağlanan Test-ClientAccessRule cmdlet’ini kullanarak gerçekleştirilen bir test işlemi planlamaktayız.

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

Bu test işlemi, IP adresi 192.168.2.30 olan bir cihazdan, ECP’ye (Exchange Admin Center) 443 portu üzerinden BasicAuthentication yöntemi kullanılarak yapılan bir erişim denemesini simüle eder. Administrator kullanıcısı için bu erişimin mümkün olup olmadığını test eder. Test sonucu, belirlediğimiz kuralın beklenen şekilde çalışıp çalışmadığını göstermektedir.

Client Access Rule ve Depolama Mantığı

Exchange Server yapılandırmalarında olduğu gibi, Client Access Rules (CAR) da Active Directory‘nin bir parçası olarak ADSI (Active Directory Service Interfaces) yapısında saklanmaktadır. Bu kurallar, özellikle Active Directory’nin “Client Access Rules” adlı nesnesi altında depolanır.

Sonuç: Exchange Server’da Client Access Rules (CAR), yöneticilere, kullanıcıların EAC, Remote PowerShell gibi Exchange hizmetlerine erişimini sınırlama gücü verir. Bu kurallar, IP adresleri veya kullanıcı öznitelikleri gibi belirli parametrelere dayanarak uygulanabilir. Yapılandırmaların merkezi bir şekilde ADSI üzerinde saklanması, yönetim sürecini güvenli ve verimli kılar. Bu özellikler, Exchange ortamınızın güvenliğini artırırken, yönetim iş yükünü azaltır ve IT altyapınızın genel performansını iyileştirir.

Yorum yapın