Güvenlik duvarı üzerinden 389 numaralı bağlantı noktasına UDP bağlantısını engelleme | INTROSERV
EUR
european

EUR

usa

USD

Turkish Tr
Ex. VAT Ex. VAT 0%

Güvenlik duvarı üzerinden 389 numaralı bağlantı noktasına UDP bağlantısını engelleme

Genel Bakış

LDAP (Lightweight Directory Access Protocol), Active Directory'nin arkasındaki uygulama katmanı protokolüdür. Normalde TCP üzerinden çalışır, ancak UDP üzerinde 389 numaralı bağlantı noktasında çalışan bağlantısız bir varyantı da vardır — CLDAP (Connectionless LDAP). Windows istemcileri etki alanı denetleyicilerini bulmak için CLDAP kullanır (DC Locator hizmetinin gerçekleştirdiği „LDAP ping“). Modern Windows sürümleri birçok senaryoda DNS tabanlı keşfe ve TCP üzerinden LDAP'ye geri dönebilir, ancak CLDAP UDP 389 üzerinden hâlâ DC Locator işlemleri ve etki alanına katılım için kullanılır.

Güvenlik sorunu yansıma (amplifikasyon) istismarıdır. Bir saldırgan, bir sunucunun UDP 389 bağlantı noktasına küçük, sahte bir CLDAP isteği gönderir ve kaynak IP'yi istek kurbandan geliyormuş gibi görünecek şekilde taklit eder. Sunucu daha sonra kurbanın adresine çok daha büyük bir yanıt gönderir. Birçok açık sunucuyla çarpıldığında bu, kurbanı trafikle boğar. Geçmişte, LDAP yanıt boyutuna bağlı olarak 50× aşan amplifikasyon faktörleri gözlemlenmiştir — bu nedenle açık sunucular yansıtıcı olarak kullanılır.

Bu kılavuzun amacı, sunucunuzun böyle bir yansıtıcı olarak hareket etmesini engellemektir — meşru Active Directory işlevlerini bozmadan.

Adım 1: Sunucunuzun bir etki alanı denetleyicisi olup olmadığını belirleyin

Bu en önemli adımdır, çünkü neyi (varsa) engellemeniz gerektiğini belirler.

Standart bir Windows Server kurulumunda, UDP 389 bağlantı noktası normalde yalnızca sunucu bir etki alanı denetleyicisine yükseltildikten sonra Active Directory Etki Alanı Hizmetleri tarafından kullanılır. Normal bir Windows Server (web, uygulama, dosya sunucusu vb.) varsayılan olarak UDP 389'u dinlemez, bu nedenle başka bir uygulama (AD LDS veya üçüncü taraf bir LDAP hizmeti gibi) bu bağlantı noktasında bir CLDAP hizmeti sağlamadıkça CLDAP yansıtıcısı olarak istismar edilemez.

PowerShell'i yönetici olarak açın ve sunucunun etki alanındaki gerçek rolünü kontrol edin:

(Get-CimInstance Win32_ComputerSystem).DomainRole

Sonucun yorumlanması:

  • 0 — Bağımsız İş İstasyonu (Standalone Workstation)
  • 1 — Üye İş İstasyonu (Member Workstation)
  • 2 — Bağımsız Sunucu (Standalone Server)
  • 3 — Üye Sunucu (Member Server)
  • 4 — Etki Alanı Denetleyicisi (geçmiş uyumluluk için „Backup Domain Controller“ olarak bildirilir — tüm modern Active Directory etki alanı denetleyicileri bu değeri döndürür)
  • 5 — PDC Emülatörü FSMO rolünü tutan Etki Alanı Denetleyicisi (geçmiş uyumluluk için „Primary Domain Controller“ olarak bildirilir)

Sonuç 4 veya 5 değilse, sunucu bir etki alanı denetleyicisi değildir.

UDP 389'da gerçekten bir şey dinleyip dinlemediğini de doğrulayabilirsiniz:

Get-NetUDPEndpoint -LocalPort 389 -ErrorAction SilentlyContinue

Bu komut hiçbir şey döndürmezse, Windows UDP 389 bağlantı noktasını dinlemiyordur, dolayısıyla sunucu CLDAP hizmetleri sağlamaz ve bu saldırıya açık değildir.

Sunucunuz bir etki alanı denetleyicisi DEĞİLSE

UDP 389'da hiçbir şey dinlemediği için sunucu bir LDAP yansıtıcısı olarak istismar edilemez. Bu özel tehdit için güvenlik duvarı değişikliği gerekmez.

Güvenlik politikanızı belgelemek veya açık bir reddetme kuralı uygulamak isterseniz, aşağıdaki güvenlik duvarı kuralını yine de oluşturabilirsiniz. UDP 389 bağlantı noktasını dinleyen bir hizmet olmadığından, kuralın pratik bir etkisi yoktur.

Sunucunuz bir etki alanı denetleyicisi İSE

Bir etki alanı denetleyicisi gerçekten UDP 389'u dinler ve yansıtıcı olarak istismar edilebilir — ancak UDP 389 normal etki alanı işlemleri için de gereklidir.

Uyarı: Bir etki alanı denetleyicisinde gelen tüm UDP 389 trafiğini körü körüne engellemeyin. Etki alanına katılmış istemciler bir etki alanı denetleyicisini bulmak için CLDAP (UDP 389) kullanır ve etki alanına katılım için aynı bağlantı noktası gereklidir. Genel bir engelleme, istemcilerin etki alanı denetleyicisini bulmasını engelleyebilir ve oturum açma ile etki alanına katılım işlemlerini bozabilir.

Etki alanı denetleyicisinde doğru yaklaşım:

İdeal olarak, bir etki alanı denetleyicisine internetten hiç erişilememesi gerekir. Yansıma istismarı dışarıdan gelir, bu nedenle en temiz çözüm, DC'yi bir çevre güvenlik duvarının arkasında tutmak ve UDP 389'u herkese açık hale getirmemektir.

Sunucunun açık olması gerekiyorsa, UDP 389'u genel olarak engellemeyin. Bunun yerine, yalnızca harici/güvenilmeyen IP aralıklarından engelleyin ve dahili etki alanı alt ağlarınızı engelleme dışında bırakın. Bu, sahte harici istekleri (yansımaya neden olan) durdururken dahili istemcilerin çalışmasını sürdürür. Bu, aşağıda açıklanan kuralın Kapsam (Scope) ayarlarıyla yapılır.

Aynı kapsam ilkesi salt okunur etki alanı denetleyicileri (RODC) için de geçerlidir.

Güvenlik duvarı kuralının oluşturulması (gelen UDP 389'u engelle)

Windows Güvenlik Duvarı'nı açın ve sol taraftaki menüden Gelişmiş ayarlar'ı seçin:

Sol taraftaki menüden Gelen Kuralları'nı seçin:

Üst menüden Eylem → Yeni Kural... seçeneğine tıklayın:

Kural Oluşturma Sihirbazı açılır. Kural türü olarak Bağlantı Noktası'nı seçin ve İleri > seçeneğine tıklayın:

Sonraki sayfada UDP'yi seçin, ardından Belirli yerel bağlantı noktaları altında 389 yazın ve İleri > seçeneğine tıklayın:

Sonraki sayfada Bağlantıyı engelle'yi seçin ve İleri > seçeneğine tıklayın:

Son olarak, kurala bir ad verin, örneğin UDP LDAP block, ve Son'a tıklayın:

Aynı kural, betik oluşturma veya birden çok sunucuya uygulama için kullanışlı olan PowerShell'den oluşturulabilir:

New-NetFirewallRule -DisplayName "Block inbound UDP 389 (CLDAP)" -Direction Inbound -Protocol UDP -LocalPort 389 -Action Block

Uyarı: Bir etki alanı denetleyicisinde burada durmayın. Yukarıdaki kural UDP 389'u tüm kaynaklardan engeller, bu da dahili istemciler için etki alanı denetleyicisi konumlandırmasını bozar. Kapsamını belirlemeniz gerekir (sonraki adım).

Kuralın kapsamını belirleme (etki alanı denetleyicisinde gereklidir)

Kural oluşturulduktan sonra Özellikler'ini açın ve Kapsam (Scope) sekmesine gidin. Uzak IP adresi altında Bu IP adresleri'ni seçin ve engellemek istediğiniz harici veya güvenilmeyen aralıkları ekleyin. Dahili etki alanı alt ağlarınızı buraya eklemeyin — „Uzak IP adresi“ altında listelenen herhangi bir aralık, kuralın engelleyeceği bir aralıktır, bu nedenle dahili alt ağları listelemek kendi istemcilerinizi engeller. Yerel IP adresi'ni Herhangi bir IP adresi olarak bırakın.

Bu şekilde engelleme yalnızca belirttiğiniz güvenilmeyen harici kaynaklara uygulanırken, dahili istemciler (listelenmeyen) etkilenmeden kalır.

PowerShell'de aynı kapsam, yerleşik Internet anahtar sözcüğüyle uygulanabilir. Internet anahtar sözcüğü, Windows Güvenlik Duvarı'nın harici olarak sınıflandırdığı uzak adreslerle eşleşir; yerel bilgisayar, geri döngü (loopback) ve yaygın yerel ağ aralıkları hariç tutulur. Bu, harici trafiği engellerken dahili istemcileri etkilenmeden bırakır:

New-NetFirewallRule -DisplayName "Block inbound UDP 389 (CLDAP) from Internet" -Direction Inbound -Protocol UDP -LocalPort 389 -RemoteAddress Internet -Action Block -Profile Public,Private

Doğru yapılandırılmış bir etki alanı denetleyicisinde, etkin güvenlik duvarı profili normalde Etki Alanı'dır. Kuralı Genel ve Özel profillerle sınırlamak, normal etki alanı trafiğini etkilemesini önler. Bir etki alanı denetleyicisinde, yalnızca Internet anahtar sözcüğüne güvenmek yerine dahili alt ağlarınızı kuralın Kapsamında açıkça tanımlamak yine de en güvenlisidir — ağınız standart olmayan özel aralıklar kullanıyorsa, bunlar yanlış sınıflandırılabilir; bu durumda dahili aralıklarınızı elle listeleyin ve diğer her şeyi engelleyin.

Sonucu doğrulama

Uyarı: UDP 389'u doğrulamak için Test-NetConnection kullanmayın — yalnızca TCP bağlantılarını test eder ve UDP için yanıltıcı sonuçlar verir.

Bir sunucunun CLDAP isteklerine hâlâ yanıt verip vermediğini doğrulamanın en doğrudan yolu, etki alanına katılmış bir istemciden uygun bir LDAP ping göndermektir:

nltest /ping /server:DC_NAME

Bu, doğru biçimlendirilmiş bir CLDAP isteği gönderir ve yanıtı bildirir. DC_NAME'i etki alanı denetleyicinizin adıyla değiştirin.

İkincil bir kontrol olarak, başka bir makineden PortQry (ücretsiz bir Microsoft komut satırı aracı) kullanabilirsiniz:

portqry -n SERVER_NAME -p UDP -e 389

Yanıta bağlı olarak PortQry LISTENING veya FILTERED bildirebilir. PortQry'nin tam bir CLDAP LDAP ping yerine bir yoklama paketi gönderdiğini ve CLDAP hizmetinin bunu geçerli bir istek olarak tanımayabileceğini, bu nedenle bağlantı noktası açık olsa bile FILTERED bildirebileceğini unutmayın. Bu nedenle nltest /ping'i yetkili test, PortQry'yi ise kaba bir tamamlayıcı kontrol olarak değerlendirin.

Bir etki alanı denetleyicisinde, dahili istemciler için etki alanı konumlandırmasının hâlâ çalıştığını da doğrulayın:

nltest /dsgetdc:example.com

example.com'u etki alanı adınızla değiştirin. Başarılı bir yanıt, istemcilerin etki alanı denetleyicisini hâlâ bulabildiği anlamına gelir. Başarılı bir dsgetdc'nin tek başına CLDAP'nin UDP üzerinden çalıştığını kanıtlamadığını unutmayın, çünkü DC Locator, gerçekleştirilen işleme bağlı olarak CLDAP kullanılamıyorsa DNS sorgularına ve TCP üzerinden LDAP'ye geri dönebilir — bu nedenle yukarıdaki nltest /ping kontrolü daha doğrudan bir testtir.

Ek öneriler

Windows'u tamamen güncel tutun. Güvenlik güncelleştirmeleri, LDAP uygulamasının kendisindeki kritik güvenlik açıklarını (uzaktan kod yürütülmesine izin verebilecek hatalar gibi) giderir ve sunucuyu ele geçirilmekten korur. Bu, yansıma istismarından ayrı bir konudur — yama uygulamak sunucunun kendisini güçlendirirken, yukarıdaki güvenlik duvarı kapsam belirlemesi sunucunun başkalarına karşı yansıtıcı olarak kullanılmasını önler.

LDAP'yi genel olarak güçlendirmek için etki alanı denetleyicilerinde LDAP imzalamayı ve kanal bağlamayı etkinleştirin.

Hacimsel koruma için hız sınırlama ve DDoS filtreleme, Windows ana bilgisayarının kendisine değil, çevre güvenlik duvarına veya üst akış (upstream) sağlayıcısına aittir.

Özet: UDP 389'u engellemek ne zaman uygundur?

  • Sunucu bir etki alanı denetleyicisi değil → işlem gerekmez (UDP 389 dinlemiyor).
  • Güvenlik duvarının arkasında, internete açık olmayan etki alanı denetleyicisi → işlem gerekmez; herkese açık internetten uzak tutun.
  • İnternete açık etki alanı denetleyicisi → kuralın kapsamını, güvenilir dahili alt ağları etkilemeden harici kaynakları engelleyecek şekilde belirleyin.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA