Microsoft Exchange Server SE ECP/EAC Erişimini Kısıtlamak

Merhaba

Exchange Server Subscription Edition (SE), Exchange 2019’un mimarisini devralan ve uzun vadeli destek alan sürümdür. Yönetim arayüzü olan Exchange Control Panel (ECP) yeni adıyla Exchange admin center (EAC) varsayılan olarak https://sunucu/ecp adresinden erişilebilir.

Aynı IIS sitesi hem Outlook Web Access (OWA)’yı hem Exchange admin center (EAC)’yi yayınladığından, ECP çoğu kurulumda internete de açık kalır. Bu, saldırganlar için ciddi bir hedef yüzeyidir: geçmişte Exchange admin center (EAC) üzerinden sömürülen birçok kritik güvenlik açığı (ProxyShell, ProxyNotShell vb.) yaşandı. Bu yazıda Exchange admin center (EAC)/Exchange Control Panel (ECP) erişimini yalnızca yönetim ağıyla sınırlamak için üç yöntemi Exchange Server SE üzerinde ele alıyoruz:

  1. IIS – IP and Domain Restrictions (sunucu üzerinde IP bazlı kısıtlama)
  2. PowerShell – Client Access Rules (Exchange’in kendi kuralları ile Exchange admin center (EAC) ve Remote PowerShell kısıtlaması)
  3. WAF – F5 iRule / FortiWeb (sunucuya dokunmadan, merkezi kısıtlama)
Önemli Not: OWA’nın Seçenekler / Options sayfası da /ecp sanal dizinini kullanır. /ecp tümüyle dışarıya kapatıldığında, dış ağdan bağlanan kullanıcılar OWA seçeneklerine (kural, imza, otomatik yanıt ayarları) erişemez. Bu, ECP kısıtlamasının bilinen bir yan etkisidir ve üç yöntem için de geçerlidir.

Ön Hazırlık: Yönetim Ağını Belirleyin

Başlamadan önce ECP’ye erişebilecek kaynakları netleştirin:

  • Yönetici iş istasyonlarının / yönetim VLAN’ının IP aralığı (Örn. 192.168.171.0/24)
  • Sunucunun kendisi için loopback: 127.0.0.1 (ve ::1)
  • DAG kullanıyorsanız tüm düğümlerin listesi (yapılandırma her düğümde tekrarlanmalıdır)

Yöntem 1 – IIS: IP and Domain Restrictions

Bu yöntem, Exchange sunucusundaki IIS üzerinde /ecp sanal dizinine sadece izin verilen IP’lerden erişilmesini sağlar.

Neden Default Web Site, Exchange Back End değil?

Exchange mimarisinde IIS’te iki site vardır: Default Web Site (Front End / Client Access, 80–443 portları) ve Exchange Back End (444 portu). Dış istemciler her zaman önce Front End‘e gelir; istek buradan Exchange tarafından Back End’e proxy’lenir. Yani gerçek istemci IP’sini gören ve dış erişimi karşılayan kat Front End’dir.

Bu yüzden kısıtlama Default Web Site → ecp üzerinde yapılmalıdır. Kısıtlamayı Exchange Back End → ecp üzerinde yaparsanız iki sorun oluşur:

  • IP filtresi yanlış çalışır: Back End’e ulaşan trafik artık gerçek istemcinin IP’si değil, Front End’in (yani sunucunun kendi / localhost) IP’sidir. Dolayısıyla kaynak IP’ye göre izin/ret kararı doğru verilemez.
  • Servisler kırılabilir: Back End’i yanlış kısıtlamak sunucunun kendi iç proxy trafiğini engelleyerek OWA dahil diğer hizmetleri de bozabilir.

Kısacası: yalnızca Default Web Site → ecp üzerinde yapılandırma yapın, Exchange Back End‘e dokunmayın.

1.1. IP and Domain Restrictions özelliğini yükleyin

Not: IP Address and Domain Restrictions özelliği, Exchange Server SE kurulumuyla birlikte varsayılan olarak gelmez. Bu nedenle IIS’te bu özelliği kullanabilmek için önce rol hizmeti olarak yüklememiz gerekir. (Yüklenmeden IIS Manager’da “IP Address and Domain Restrictions” simgesi görünmez.)

Server Manager konsolunu açıyoruz.

Dashboard ekraninda Add roles and Features tıklıyoruz. Dilerseniz sağ üst köşedeki Manage menüsünden Add Roles and Features ile rol ekleme sihirbazını açabiliriz.

Add Roles and Features Wizard ekranı geliyor karşımıza.

Before you begin ekranında herhangi rol ve özellik) kurulumu için gerekli ön bilgileri görüyoruz:

  • Administrator hesabının güçlü bir parolası olmalıdır
  • Network ayarları Statik IP adresi olarak yapılandırılmalıdır
  • Sunucu üzerinde Windows Update ile en güncel güvenlik güncelleştirmeleri yüklenmelidir

Before you begin ekranında Next ile devam ediyoruz.

Select Installation Type ekranında Role-based or feature-based installation seçeneğini tercih ediyoruz. Bu seçenek, Windows Server üzerinde ihtiyaç duyulan rollerin ve özelliklerin manuel olarak seçilerek kurulmasını sağlar ve Web Server (IIS) gibi altyapı bileşenleri için kullanılan standart kurulum yöntemidir.

Select Installation Type ekranında Next ile devam ediyoruz.

Select destination server ekranında Select a server from the server pool seçeneği ile kurulumun yapılacağı W25EXCSE sunucusunu seçiyoruz.

Select destination server ekranında Next ile devam ediyoruz.

Select server roles ekranında Web Server (IIS) rolü altında bulunan IP Adress and Domains Restrictions özelliğini işaretlememiz gerekiyor.

Web Server (IIS) rolü altında bulunan IP Adress and Domains Restrictions özelliği kurulum için hazır Next diyerek devam ediyoruz.

Select features ekranında IP Adress and Domains Restrictions özelliğini herhangi bir şey şeçmemize gerek olmadığı için Next diyerek devam ediyoruz.

Confirm installation selections ekranında Web Server (IIS) rolü altında bulunan IP Adress and Domains Restrictions özelliği kurulum için seçildiğini görüyoruz.

Kurulumlar tamamlandıktan sonra sunucunun otomatik olarak restart etmek istersek eğer Restart the destination server automatically if required seçeneğini işaretlememiz gerekiyor. Ancak Web Server (IIS) rolü altında bulunan IP Adress and Domains Restrictions özelliği için sunucumuzu yeniden başlatmamıza gerek yok.

Install diyerek Web Server (IIS) rolü altında bulunan IP Adress and Domains Restrictions özelliğinin kurulumunu başlatıyoruz.

Web Server (IIS) rolü altında bulunan IP Adress and Domains Restrictions özelliği kurulumunu başarılı bir şekilde tamamlandığını görüyoruz.

Close diyerek Add Roles and Features Wizard ekranını kapatıyoruz.

1.2. Exchange Control Panel (ECP) sanal dizinini seçin

Windows Tools altında Internet Information Services (IIS) Manager konsolunu açıyoruz.

Internet Information Services (IIS) Manager → Sunucu Adı → Sites → Default Web Site → ecp yolunu açın ve orta panelde IP Address and Domain Restrictions simgesine çift tıklayın.

1.3. Belirtilmeyen istemcileri reddedin

Önemli – Sıralamaya Dikkat: Bu adımı 1.4’teki izin (Allow) girişini ekledikten sonra yapın. Access for unspecified clients: Deny ayarı kaydedildiği anda etkili olur; henüz kendi yönetim IP’nizi izin listesine eklemediyseniz (özellikle uzaktan bir oturumda çalışıyorsanız) kendi erişiminizi de kesebilirsiniz. Önce Allow, sonra Deny.

IP Address and Domain Restrictions menüsünde sağ tuş Edit Feature Settings yada Actions panelinden Edit Feature Settings‘i açın:

Edit IP and Domain Restrictions Settings ekranında

  • Access for unspecified clients: Listede kuralı olmayan istemciler için varsayılan davranış. Bizim senaryoda Deny seçilir yani yalnızca izin verilenler girer, geri kalan herkes engellenir.
  • Enable domain name restrictions: Kuralları IP yerine DNS alan adına göre tanımlamayı açar. Her istek için ters DNS sorgusu gerektirdiğinden yavaştır ve önerilmez; kapalı bırakın.
  • Enable Proxy Mode: IIS’in kaynak IP olarak TCP bağlantısının IP’si yerine X-Forwarded-For başlığındaki IP’yi değerlendirmesini sağlar. Exchange bir yük dengeleyici / reverse proxy arkasındaysa, gerçek istemci IP’sini görebilmek için bunu açın (ve proxy’nin XFF başlığı eklediğinden emin olun). Doğrudan erişimde kapalı kalır.

Deny Action Type: Reddedilen isteklere IIS’in nasıl yanıt vereceğini belirler:

    • Unauthorized (401): “Yetkisiz” döner (kimlik doğrulama gerekiyormuş izlenimi).
    • Forbidden (403): “Yasak” döner – kaynak var ama erişim reddedildi (varsayılan).
    • Not Found (404): “Bulunamadı” döner – ECP’nin varlığını gizler.
    • Abort: Bağlantıyı hiç yanıt vermeden koparır – en sessiz seçenek; istemci zaman aşımı görür.
Öneri: ECP’nin varlığını dışarıya sızdırmamak için Not Found (404) veya Abort tercih edin.

Edit IP and Domain Restrictions Settings ekranında

  • Access for unspecified clients: Deny
  • Deny Action Type: Abort (bağlantıyı sessizce keser; alternatif olarak Not Found - 404 döndürür)

Yapılan değişikliklerin geçerli olabilmesi için Internet Information Services (IIS) hizmetinin yeniden başlatılması gerekir. İki yöntemden birini kullanabilirsiniz:

Yöntem 1 – IIS Manager üzerinden:

Internet Information Services (IIS) Manager → Sunucu Adı → Sites → Default Web Site → ecp yolunda sağ tuş Manage Website menüsü altında Restart (Yeniden Başlat) seçeneğine tıklayarak Web Server (IIS)’i yeniden başlatıyoruz.

Yöntem 2 – Komut satırından:

Windows PowerShell‘i Run as administrator (Yönetici olarak) açın ve aşağıdaki komutu çalıştırın.

iisreset

Önemli: iisreset komutu yükseltilmiş yetki (elevated) gerektirir. Command Prompt (Komut istemi) veya Windows PowerShell’i Run as administrator” (Yönetici olarak çalıştır) ile açmadan bu komutu çalıştırırsanız Access denied, you must be an administrator of the remote computer hatasını alır ve Restart attempt failed mesajı ile karşılaşırsınız. Bu durumda pencereyi Administrator (Yönetici) olarak yeniden açıp komutu tekrar çalıştırmanız yeterlidir. Başarılı olduğunda “Internet services successfully restarted” çıktısını görürsünüz.

Edit IP and Domain Restrictions Settings ekranında

  • Access for unspecified clients: Deny
  • Deny Action Type: Abort (bağlantıyı sessizce keser; alternatif olarak Not Found - 404 döndürür)

şeklinde yapılandırısanız ve herhangi bir IP adresi tanımlamazsanız W25EXCSE isimli Exchange Server SE sunucumuz dahil Exchange Control Panel (ECP)’ye erişemezsiniz.

Önemli – Sıralamaya Dikkat: Bu adımı 1.4’teki izin (Allow) girişini ekledikten sonra yapın. Access for unspecified clients: Deny ayarı kaydedildiği anda etkili olur; henüz kendi yönetim IP’nizi izin listesine eklemediyseniz (özellikle uzaktan bir oturumda çalışıyorsanız) kendi erişiminizi de kesebilirsiniz. Önce Allow, sonra Deny.

1.4. İzin verilecek IP’leri ekleyin (Allow Entry)

IP Address and Domain Restrictions menüsünde sağ tuş Add Allow Entry yada Actions panelinden Add Allow Entry‘i açın:

    • Örnek olak Yönetim ağı: 192.168.171.0 – Mask/Prefix: 255.255.255.0
    • Loopback: 127.0.0.1 (Bu sadece Exchange Server SE kurulu olduğu sunucu üzerinde izin vermenizi sağlar.)

Add Allow Restriction Rule ekranında

  • Specific IP address: Tek bir IP adresine izin verir. Örn. yönetici iş istasyonu 192.168.171.10.
  • IP address range: Bir ağ bloğuna izin verir. Alttaki Mask or Prefix alanına maske yazılır. Örn. adres 192.168.171.0, Mask 255.255.255.0 → tüm 192.168.171.x ağı. (IPv6 için prefix kullanılır, Örn. 64.)

Buradaki ortamımız lab ortamı olduğu için W25EXCSE isimli sunucumuzun IP adresini 192.168.1.206 yada 127.0.0.1 Loopback IP adresini kullanıyoruz.

Yapılan değişikliklerin geçerli olabilmesi için Internet Information Services (IIS) hizmetinin yeniden başlatılması gerekir. İki yöntemden birini kullanabilirsiniz:

Yöntem 1 – IIS Manager üzerinden:

Internet Information Services (IIS) Manager → Sunucu Adı → Sites → Default Web Site → ecp yolunda sağ tuş Manage Website menüsü altında Restart (Yeniden Başlat) seçeneğine tıklayarak Web Server (IIS)’i yeniden başlatıyoruz.

Yöntem 2 – Komut satırından:

Windows PowerShell‘i Run as administrator (Yönetici olarak) açın ve aşağıdaki komutu çalıştırın.

iisreset

Önemli: iisreset komutu yükseltilmiş yetki (elevated) gerektirir. Command Prompt (Komut istemi) veya Windows PowerShell’i Run as administrator” (Yönetici olarak çalıştır) ile açmadan bu komutu çalıştırırsanız Access denied, you must be an administrator of the remote computer hatasını alır ve Restart attempt failed mesajı ile karşılaşırsınız. Bu durumda pencereyi Administrator (Yönetici) olarak yeniden açıp komutu tekrar çalıştırmanız yeterlidir. Başarılı olduğunda “Internet services successfully restarted” çıktısını görürsünüz.

W25EXCSE isimli Exchange Server SE sunucumuz üzerinden Exchange Control Panel (ECP)’ye erişebiliyoruz.

W25DC isimli Active Directory sunucumuz üzerinden Exchange Control Panel (ECP)’ye erişemiyoruz.

Notlar ve Uyarılar:

  • DAG (Database Availability Group): Yapılandırma otomatik replike olmaz; DAG’daki her düğümde tekrarlanmalıdır.
  • CU (Cumulative Update) / SU (Security Update) sonrası: Exchange CU (Cumulative Update) veya Exchange SU (Security Update) kurulumları sanal dizinleri yeniden oluşturabilir ve bu ayarları sıfırlayabilir. Güncelleme sonrası ayarları mutlaka doğrulayın.
  • Load Balacing (Yük dengeleyici): Trafik SNAT ile geliyorsa tüm istemciler yük dengeleyicinin IP’sinden görünür ve IP kısıtlaması işlevsiz kalır. Bu durumda kısıtlamayı WAF katmanında yapın (Yöntem 1.3).

Yöntem 2 – PowerShell: Client Access Rules

Exchange Server SE, Client Access Rules özelliğini destekler (Exchange 2016’da yoktu; 2019 ve SE’de vardır). Bu yöntem, karmaşık ağ/güvenlik duvarı kuralları yerine Exchange’in kendi motoruyla erişimi denetler ve tüm sunuculara Active Directory üzerinden otomatik dağıtılır. On-premises Exchange’de yalnızca iki protokol desteklenir:

  • ExchangeAdminCenter → Exchange Control Panel (ECP) / Exchange admin center (EAC)
  • RemotePowerShell → Exchange Management Shell / Remote PowerShell

2.1. Önce kendinizi kilitlemeyin: Remote PowerShell’i her zaman açık tutun

Yanlış bir kural sizi yönetimden dışlayabilir. Bu yüzden önce en yüksek öncelikli bir “izin ver” kuralı oluşturun:

Exchange Management Shell‘i Run as administrator (Yönetici olarak) açın ve aşağıdaki komutu çalıştırın.

New-ClientAccessRule -Name "Always Allow RemotePowerShell" `
  -Action AllowAccess `
  -AnyOfProtocols RemotePowerShell `
  -Priority 1

2.2. Exchange admin center (EAC)/Exchange Control Panel (ECP)’yi yönetim ağı dışında engelleyin

Exchange Management Shell‘i Run as administrator (Yönetici olarak) açın ve aşağıdaki komutu çalıştırın.

New-ClientAccessRule -Name "Block EAC except MGMT" `
  -Action DenyAccess `
  -AnyOfProtocols ExchangeAdminCenter `
  -ExceptAnyOfClientIPAddressesOrRanges 192.168.171.0/24 `
  -Priority 2

-ExceptAnyOfClientIPAddressesOrRanges tek IP, aralık veya CIDR kabul eder: 192.168.1.10192.168.0.1-192.168.0.254192.168.171.0/24. Birden fazla değeri virgülle birlikte yazabilirsiniz: 192.168.1.206,192.168.1.200.

Bu adımdan sonra iisreset gerekir mi? Hayır. IIS yönteminin (Yöntem 1) aksine Client Access Rules’da iisreset veya IIS ayarı yapmanıza gerek yoktur. Kurallar Active Directory üzerinden tüm Exchange sunucularına otomatik dağıtılır ancak dağıtım anında olmayabilir, birkaç dakika sürebilir. Bu süre içinde kural henüz etkili olmamış gibi görünebilir; test etmeden önce biraz bekleyin.

Kuralların oluştuğunu listeleyerek doğrulayın:

Get-ClientAccessRule | Format-Table Name,Priority,Action,AnyOfProtocols,Enabled

Çıktıda iki kural da (Priority (Öncelik), Action (Aksiyon), Protocol (Protokol) Enabled = True) görünmelidir:

W25EXCSE isimli Exchange Server SE sunucumuz üzerinden Exchange Control Panel (ECP)’ye erişebiliyoruz.

W25DC isimli Active Directory sunucumuz üzerinden Exchange Control Panel (ECP)’ye erişemiyoruz.

2.3. Uygulamadan önce test edin

RemoteAddress Nedir? Bağlanacağınız Exchange sunucusunun IP’si değildir; bağlantıyı yapan istemcinin (kaynak) IP adresidir. Yani “şu IP’den bir istek gelseydi kurallarım ne yapardı?” senaryosunu simüle edersiniz.

Belirli bir IP ve protokol için hangi kuralın eşleşeceğini test edin

Exchange Management Shell‘i Run as administrator (Yönetici olarak) açın ve aşağıdaki komutu çalıştırın.

Test-ClientAccessRule -RemoteAddress 8.8.8.8 -Protocol ExchangeAdminCenter -AuthenticationType Basic

W25DC isimli Active Directory sunucumuzun IP Adresi üzerinden Exchange Control Panel (ECP)’ye erişemiyoruz.

W25EXCSE isimli Exchange Server SE sunucumuzun IP Adresi üzerinden Exchange Control Panel (ECP)’ye erişebiliyoruz.

Test-ClientAccessRule iki parametreyi daha zorunlu ister; komut satırında vermezseniz ekranda tek tek sorar (Supply values for the following parameters: RemotePort / User):

  • -RemotePort: İstemcinin sunucuya bağlandığı hedef port. Exchange admin center (EAC)/Outlook Web Access (OWA) HTTPS üzerinden çalıştığından 443 yazın.
  • -User: Bağlantının hangi kullanıcı adına simüle edileceği (Örn. administrator). Client Access Rules kuralları kullanıcıya göre de kapsanabildiği için test edilecek kullanıcıyı belirtirsiniz.

Bu ikisini de komuta ekleyerek soru sorulmadan çalıştırabilirsiniz:

Dış / Yetkisiz bir IP → Engellenmeli (DenyAccess kuralına düşmeli)

Test-ClientAccessRule -RemoteAddress 8.8.8.8 -Protocol ExchangeAdminCenter -AuthenticationType Basic -RemotePort 443 -User administrator

Yönetim Ağından bir IP → Geçmeli (izinli olmalı)

Test-ClientAccessRule -RemoteAddress 192.168.171.10 -Protocol ExchangeAdminCenter -AuthenticationType Basic -RemotePort 443 -User administrator

Çıktı nasıl okunur? Çıktıda bir DenyAccess kuralı listeleniyorsa o IP engellenirhiçbir şey dönmüyorsa (boş çıktı) eşleşen bir engelleme kuralı yok, yani erişime izin verilir. Örnek: izinli 192.168.1.206 için çıktı boştur (erişim var), engelli 192.168.1.200 için ise Block EAC except MGMT … DenyAccess satırı döner.

Tüm kuralları listeleyin:

Get-ClientAccessRule | Format-Table Name,Priority,Action,AnyOfProtocols,Enabled

2.4. İzinli (except) IP listesini görüntüleme ve güncelleme

Get-ClientAccessRule | Format-Table varsayılan görünümü izinli IP listesini göstermez. Kuralda hangi IP’lerin muaf (izinli) olduğunu görmek için Format-List ile ilgili alanı çağırın:

Get-ClientAccessRule "Block EAC except MGMT" | Format-List Name,Action,AnyOfProtocols,ExceptAnyOfClientIPAddressesOrRanges,Priority,Enabled

ExceptAnyOfClientIPAddressesOrRanges satırında izinli IP’leri görürsünüz (Örn. {192.168.171.10}).

Aşağıdaki örneklerde kuralı tek tek IP’lerle yönettiğinizi varsayıyoruz (bütün bir alt ağ yerine). Örnek iki yönetim host’u: 192.168.171.10 ve 192.168.171.11. Kendi ortamınızda bu adresleri kendi yönetim IP’lerinizle değiştirin.

Listeye yeni bir IP eklemek için Set-ClientAccessRule kullanılır.

Dikkat: Bu komut listeyi değiştirir, üzerine ekleme yapmaz bu yüzden mevcut IP’leri de birlikte yazın.

192.168.171.10’a ek olarak 192.168.171.11’i de izinli yap (ikisini birlikte yazıyoruz)

Set-ClientAccessRule -Identity "Block EAC except MGMT" `
  -ExceptAnyOfClientIPAddressesOrRanges 192.168.171.10,192.168.171.11

Ardından Doğrulayın (dağıtım için birkaç dakika bekleyebilirsiniz):

Get-ClientAccessRule "Block EAC except MGMT" | Format-List Name,ExceptAnyOfClientIPAddressesOrRanges

Test Edin:

Test-ClientAccessRule -RemoteAddress 192.168.1.200 -Protocol ExchangeAdminCenter -AuthenticationType Basic -RemotePort 443 -User administrator

ExceptAnyOfClientIPAddressesOrRanges satırında artık {192.168.171.10, 192.168.171.11} görünmeli. Test sonucu da farkı gösterir: 192.168.171.11 ekleme öncesinde Test-ClientAccessRule çıktısında Block EAC except MGMT / DenyAccess satırını döndürürken (engelli), ekleme sonrasında çıktı boştur yani artık erişime izin verilir.

İzinli listesinden bir IP çıkarma. İki yolu vardır. En basiti, listeyi kalan IP’lerle yeniden yazmaktır (Set listeyi baştan tanımlar) Örneğin 192.168.171.11‘i çıkarıp yalnızca 192.168.171.10‘u bırakmak:

Set-ClientAccessRule -Identity "Block EAC except MGMT" `
  -ExceptAnyOfClientIPAddressesOrRanges 192.168.171.10

Alternatif olarak, tüm listeyi yeniden yazmadan yalnızca tek bir değeri çıkarmak için Exchange’in çok değerli özellikler için desteklediği @{Remove=...} sözdizimini kullanabilirsiniz (aynı şekilde @{Add=...} ile ekleme de yapılır):

Set-ClientAccessRule -Identity "Block EAC except MGMT" `
  -ExceptAnyOfClientIPAddressesOrRanges @{Remove="192.168.171.11"}

Çıkardıktan sonra Get-ClientAccessRule … | Format-List … ile doğrulayın; listeden düşen adres (Örn. 192.168.171.11) artık tekrar engellenir.

2.5. Kaldırma

Remove-ClientAccessRule -Identity "Block EAC except MGMT"

Kuralların silindiğini listeleyerek doğrulayın:

Notlar ve Uyarılar:

  • Kurallar Active Directory üzerinden dağıtılır; değişiklikler anında etkili olmayabilir (dağıtım birkaç dakika sürebilir).
  • Client Access Rules, Exchange’in gördüğü gerçek istemci IP’sini değerlendirir. Reverse proxy / yük dengeleyici SNAT yapıyorsa tüm istemciler proxy IP’sinden görünür; bu durumda kural beklenen şekilde çalışmaz.
  • RemotePowerShell izin kuralını kaldırmadan önce Exchange admin center (EAC) engelleme kuralını test edin; aksi halde yönetime erişimi kaybedebilirsiniz.
  • Client Access Rules Exchange Online‘da emekliye ayrılmıştır; bu yöntem yalnızca on-premises Exchange (2019 / SE) için geçerlidir.

Yöntem 3 – WAF ile Kısıtlama (F5 iRule / FortiWeb)

En sağlam yaklaşım, kısıtlamayı sunucunun önündeki WAF / Load Balacing (Yük Dengeleyici) katmanında yapmaktır.
Avantajları:

  • Merkezi yönetim: Her Exchange sunucusunda ayrı ayrı yapılandırma gerekmez.
  • Güncellemelerden etkilenmez: Exchange CU (Cumulative Update) veya Exchange SU (Security Update) kurulumları ayarları bozmaz.
  • Sunucuya dokunmaz: Exchange organizasyonunda hiçbir değişiklik yapılmaz.

3.1. İzin verilen ağlar için bir Data Group tanımlayın

F5 üzerinde Local Traffic → iRules → Data Group List altında ecp_allowed_subnets adında Address tipinde bir data group oluşturun ve yönetim ağınızı ekleyin (Örn.192.168.171.0/24).

3.2. iRule’u HTTPS Virtual Server’a uygulayın

when HTTP_REQUEST {
    # Yalnızca /ecp isteklerini denetle
    if { [string tolower [HTTP::uri]] starts_with "/ecp" } {
        # İstemci IP izinli ağlarda değilse engelle
        if { not [class match [IP::client_addr] equals ecp_allowed_subnets] } {
            HTTP::respond 403 content "Access Denied"
            return
        }
    }
}

Data group kullanmak istemezseniz aralığı doğrudan yazabilirsiniz:

when HTTP_REQUEST {
    if { [string tolower [HTTP::uri]] starts_with "/ecp" } {
        if { not [IP::addr [IP::client_addr] equals 192.168.171.0/24] } {
            HTTP::respond 403 content "Access Denied"
            return
        }
    }
}

X.Y.Z.0/24 yerine kendi yönetim ağınızı yazın. HTTP::respond 403 yerine reject kullanarak bağlantıyı tümden kesebilirsiniz.

3.3. Aynı Kısıtlamanın FortiGate / FortiWeb WAF Karşılığı

Fortinet ortamında mantık F5 ile birebir aynıdır: /ecp yoluna yalnızca yönetim ağından izin ver, diğer tüm kaynakları engelle.

Not: FortiGate’in yerleşik (native) WAF profili, HTTPS trafiğinde URL yoluna göre kaynak IP ayrımı yapmakta sınırlıdır. Fortinet ortamında bu iş için doğru araç, Exchange’i reverse proxy olarak yayınlayan FortiWeb‘dir. FortiWeb SSL’i sonlandırdığı için /ecp yolunu görebilir ve kaynak IP’ye göre karar verebilir.

FortiWeb – URL Access ile (iki kurallı mantık): FortiWeb’de tek bir URL Access Rule tek bir Action taşır; “yönetime izin ver, gerisini engelle” için önceliklendirilmiş iki kural oluşturulur.

1. İzin kuralı – Web Protection → Access → URL Access → URL Access Rule:

  • Host: Exchange yayın adınız (Örn. mail.firma.com)
  • URL Type: Regular Expression – URL Pattern: ^/ecp
  • Source IPv4: 192.168.171.0/24 (yönetim ağı)
  • Action: Pass

2. Engelle kuralı – aynı yerde:

  • Host: mail.firma.com
  • URL Type: Regular Expression – URL Pattern: ^/ecp (kaynak IP koşulu yok → tüm kaynaklar)
  • Action: Alert & Deny

3. Bu iki kuralı bir URL Access Policy içinde öncelik sırasına göre ekleyin izin kuralı üstte olacak (kurallar yukarıdan aşağıya değerlendirilir, ilk eşleşen kazanır).

4. Policy’yi ilgili Server Policy’ye bağlayın: Policy → Server Policy → (ilgili policy) → URL Access Policy.

Sonuç: Yönetim ağından gelen /ecp istekleri geçer, diğer tüm kaynaklar Alert & Deny ile engellenir. /owa ve diğer yollar etkilenmez.

Not:

  • OWA (/owa) etkilenmez; yalnızca /ecp denetlenir.
  • OWA “Seçenekler” sayfası da /ecp kullandığından, dış kullanıcılar için bu sayfa da engellenir (Bkz. Baştaki uyarı).
  • Aynı mantık F5 dışındaki WAF’larda (Azure WAF, FortiWeb, KEMP, NGINX vb.) URL yolu + Kaynak IP kuralı olarak uygulanabilir.

Yöntemlerin Karşılaştırması

Kriter Yöntem 1: IIS IP Restrictions Yöntem 2: Client Access Rules Yöntem 3: WAF (F5 / FortiWeb)
Uygulama yeri Her Exchange sunucusu (IIS) Exchange (AD üzerinden dağıtılır) Yük dengeleyici / WAF
Kurulum zorluğu ● Kolay ● Orta (PowerShell) ● Orta–İleri
CU/SU sonrası kalıcılık ● Bozulabilir, kontrol gerekir ● Kalıcı ● Kalıcı
Çok sunucu / DAG ● Her düğümde ayrı yapılır ● Otomatik ● Merkezi
Kilitlenme riski ● Düşük ● Orta (dikkat gerekir) ● Düşük
Reverse proxy / SNAT sorunu ● Etkilenir ● Etkilenir ● Etkilenmez (kaynak WAF’ta)

● Olumlu / Güçlü Yön  ·
● Orta / Dikkat  ·
● Zayıf Yön / Kısıt

Öneri: WAF/Load Balacing (Yük Dengeleyici) varsa Yöntem 3 en dayanıklı seçimdir. Tek sunuculu ortamlarda Yöntem 1 hızlı çözümdür; Yöntem 2 ise Exchange admin center (EAC) ile birlikte uzak PowerShell erişimini de yönetmek isteyenler için Exchange’in yerleşik ve güncellemelerden etkilenmeyen yoludur. Yöntemler birlikte de kullanılabilir (katmanlı güvenlik).

Bir yanıt yazın

Başa Dön