Terminal Server'da (Win2008R2) kaba kuvvet saldırılarını nasıl durdurabilirim?


23

Kaba kuvvet saldırılarını durdurmak için Linux araçlarına daha aşina olduğumdan, Windows için uygun araçları bulmakta sorun yaşıyorum. Terminal Server'lı bir Windows Server 2008 R2 kullanıyorum ve RDP üzerinden tekrar tekrar giriş yapmaya çalıştıktan sonra bir IP'yi engellemek istiyorum. Herhangi bir ipucu?


3
Bunu gerçekten Windows sunucunuzda işlemeniz mi gerekiyor? Uç cihazınızda hız sınırlaması yapmayı düşündünüz mü (güvenlik duvarı / yönlendirici)?
Zoredache

2
Windows kutusu bir barındırma şirketi tarafından işletilen bir VPS'dir, bu yüzden ağ aygıtlarına erişimim yok.
onik

Bir PS betiğini başlatmak için başarısız oturum açma sırasında bir Görev Takvimi olayı ayarlayabilirsiniz; PS Svript'in bir IP'nin denediği sayıyı sayması ve ardından bir Güvenlik Duvarı kuralı ile engellemesi gerekir. Bende böyle bir senaryo yok ama yaratmak mümkün.
Chris S

@Chris S: ts_block betiğimin yaptığı, "olay" olay günlüğü olarak çalışması dışında ve her yeni olay günlüğe kaydedildiğinde bir geri arama alması dışında, az çok az. Bu nedenle, gerçek zamanlı olarak az çok çalışır.
Evan Anderson

VPN kullanın - örn. Router üzerindeki OpenVPN. Pencereleri asla doğrudan internete sokmayınız - tehlikelidir.
entegratörIT,

Yanıtlar:


5

RPD oturum açma girişimlerini durdurmak için, daha önce de belirtildiği gibi, belirli bir ipi izole etmek için güvenlik duvarınızın kontrolüne ihtiyacınız var. Bazı ayarları Yönetici araçları -> Terminal hizmetleri yöneticisi bölümünde yapabilirsiniz, ancak bir ipi bu şekilde durduracak hiçbir şey yapamazsınız. Belki de rdp portunu dinlemek ve oturum açma hatalarını kontrol etmek için bir toplu betiği düşünmelisiniz, bu yüzden aynı ip tarafından bir tot girişimi (sayı seçtiniz ...) olsaydı, o zaman bilinen bir süre için başka bir girişimde bulunamazdı. olmak. Mümkün olup olmadığından emin değilim, ama bir yol olabilir ...


1
Tamam, düşündüğüm gibi. Ip adreslerini toplu iş işleme için bir dosyaya aktarabiliyor muyum diye görmek için Olay Görüntüleyicisi'ni çalışmam gerekiyor. Onları elle oluşturulan .csv dökümlerinden grep etmek zorunda olduğu için
onik

5
RDP'nin yanıt verdiği bağlantı noktasını değiştirin.
JohnThePro

İşin garibi, IP'leri sınırlandırmak istiyorum, ancak oturum açma hatası IP adresini bildirmiyor
Csaba Toth

Portu değiştirmek sadece belirsizdir. Akıllı port tarama yazılımı ile yeni portu bulacaklar.
TheLegendaryCopyCoder

@CsabaToth Olay günlüğü varsayılan olarak yararlı bilgiler kaydetmez. Netlogon hizmetindeki ayrıntılı günlük kaydını, bir etki alanı denetleyicisinden veya bazı ek bilgiler için RDP isteklerini alan bir bilgisayardan etkinleştirebilirsiniz. IP adresini belirlemek için Windows güvenlik duvarı günlüğünü etkinleştirebilirsiniz.
Michael Steele

25

Bu denemeleri gerçekten güvenlik duvarınızda engellemelisiniz, yalnızca hız sınırlayıcıysa. Eğer bunu okumak için yeteneğiniz yoksa.

En son güvenlik duvarını engelleyemiyorsanız ve yalnızca İnternet alt kümesine RDP açmanız gerekiyorsa, gelen bağlantıları kilitlemek için yerleşik Windows Güvenlik Duvarı özelliklerini kullanın.

Son olarak, tüm Intenet’e RDP’ye gerçekten açık olmanız gerekiyorsa , bir github deposunda bulunan Windows için SSH kaba kuvvet engelleyici programımın değiştirilmiş sürümüne bakabilirsiniz . Bu betiği olan ts_block, Windows Server 2003, 2008 ve 2008 R2'de Terminal Hizmetleri oturum açma girişimlerini kaba kuvvetle engeller. Ne yazık ki, RDP için TLS / SSL güvenlik katmanını kullanırken Windows tarafından kaydedilen olaylarda yapılan değişiklikler nedeniyle, bu komut dosyası gittikçe etkisiz hale geliyor . (Microsoft neden kimlik doğrulaması yapmaya çalışan sunucunun IP adresini ihmal etmeyi seçti ki benden öteye gitti. Görünüşe göre günlüğe kaydetmek oldukça önemli bir şey, ha?)


1
Burada ts_block sayfasını kullanıyorum ve harika! Windows sunucum (2008 R2) çok sayıda kaba kuvvet saldırısı altında yavaşladı ama artık değil! TS_BLOCK vbscript ile yazılmıştır - ve bir windows servisi olarak kurulabilir / kurulmalıdır - fakat MSI sürümünü kullanmayın, sadece .vbs kodunu düzenleyin ve nssm util ile kurun. Kayıt defteri girişlerine ihtiyacınız yoktur, çünkü .vbs kodu varsayılan olarak kodlanmış kodlara sahiptir. <p> Kodu düzenledim ve HİÇBİR giriş yapmayı hemen engelledi - kendi web sunucum olarak NO giriş yapma girişimi olmamalıdır. Yani senaryo

Bu çok tatlı, Evan. C # 'da yeniden uygulamak için yarım fikrim var, böylece srvany ve benzerleriyle uğraşmak yerine yerel bir windows servisi olarak çalıştırabilirsiniz. Eğer yaparsam, onu Github veya başka bir şey üzerine fırlatacağım.
Ryan Bolger

1
@RyanBolger: Genel olarak VBScript ve yorumlanan diller için yumuşak bir noktaya sahibim. "Emmeyen Servis Yöneticisi" kullanmak, VBScript programlarını servis olarak çalıştırarak oldukça acısız bir deneyim sunar.
Evan Anderson,

ts_block inanılmaz onun tam olarak ne aradığını "Teşekkür ederim Evan Anderson" aradım İlk Terminal sanal sunucumu bir gün içinde doğrudan web üzerinde canlı olarak yerleştirdiğimde 10.000'den fazla başarısız oturum açtım. Zamanım olduğunda, onu değiştirebilir ve önceki blokların sayısına göre kalıcı engelleme ekleyebilirim. örneğin: IP bir günde 4 kez yasaklandı. (Daha önce oluşturulmadıysa)

ts_blockBuradaki betiğe dayanarak, fail2bansaldırganları engellemek için ağ geçidini kullanan bir çözümdür : wqweto.wordpress.com/2013/12/10/…
wqw

3

Tam olarak bunu yapan bir C # programım var. Server 2008 R2'de, olay günlüğünün her zaman kullanıcının IP adreslerini listelemediği bir sorun vardı (daha yeni Uzak Masaüstü istemcilerinden bağlıysa). Bazı servisler, istediğiniz tüm bilgileri sağlamayan kendi kimlik bilgileri kontrol sağlayıcılarını kullanır.

http://cyberarms.net/security-insights/security-lab/remote-desktop-logging-of-ip-address-%28security-event-log-4625%29.aspx

Ancak Uzak Masaüstü için, "Uzak Masaüstü Oturum Ana Bilgisayarı Yapılandırması" na girip, "Pazarlık" veya "SSL (TLS 1.0)" yerine "RDP Güvenlik Katmanı" güvenlik katmanının değiştirileceği RDP-TCP bağlantısını değiştirdim. IP adresleri

Bunu gerçekten yapmak isteyip istemediğiniz sizin için başka bir soru, "RDP Güvenlik Katmanı'nı seçerseniz, Ağ Düzeyi Kimlik Doğrulaması kullanamazsınız."

Yardımcı olmak için http://www.windowsecurity.com/articles/logon-types.html adresini buldum . EventLogWatcher'ı kullandım ve "* [System / EventID = 4625 veya System / EventID = 4624]" 'ye bağlandım, böylece kullanıcı gerçekten kendi parolasını yanlış yapmışsa, başarıdaki kötü sayımı sıfırlayabilirdim. Ayrıca ben beyaz liste :: 1, 0.0.0.0, 127.0.0.1 ve "-". LAN / yönetim IP'lerini beyaz listeye almak isteyebilirsiniz veya istemeyebilirsiniz.

Forefront TMG kullanıyorum, bu yüzden API'yi bu şekilde bir grup IP'ye kötü IP adresleri eklemek için kullandım ve Cisco'dan SMB yönlendiricilerinden birine API erişimi eklemelerini istedim (ki onlar da yapabilirdi!)

Yerel Windows Güvenlik Duvarı'nı engellemek için kullanmak istiyorsanız, bunun için API’ye bir göz atın ("netsh advfirewall").

Yasaklamadan önce x deneme denemesine izin veriyorum ve başarı sayımı sıfırlayacaktır.


2

Zorla girmeleri veya darmadağın kütükleri önlemeye mi çalışıyorsun? İzinsiz girişleri engellemeye çalışıyorsanız, Windows oturum açma girişimlerini engellemek için yerleşik bir yöntem sunar. Bilgisayar Yapılandırması -> İlkeler -> Windows Ayarları -> Güvenlik Ayarları -> öğesinde Hesap Kilitleme Eşiği Grup İlkesi ayarı var Hesap Politikası -> Hesap Kilitleme Politikası.

Saldırganlar, Yönetici gibi ortak kullanıcı adlarını kullanır ve kesinlikle bunları kilitler. Gerçek yönetim için ayrı bir hesaba ihtiyacınız olacak ve bu muhtemelen bir şekilde tavsiye edilebilir.

Güvenlik duvarı düzeyinde otomatik olarak engelleme, güvenlik duvarı kurallarının otomatik güncellenmesi ile bazı komut dosyası günlük okuma gerektirecektir. Bu şekilde IP adresine göre kurallar ekleyebilmelisiniz. Bu temelde Linux'ta iptables'ın yaptığı şeydir.

Biraz açık olabilir, ancak standart dışı bir bağlantı noktasında Uzak Masaüstü Hizmetleri çalıştırmayı da düşündünüz mü? Bu, engelleme sürecindeki engellemelerde benim için çok etkili oldu.


Güvenlik duvarında tekrarlanan bağlantı girişimlerini engellemek iyi bir uygulamadır, ancak kaba kuvvet saldırılarının "güvenlik duvarının arkasında" gerçekleşmeyeceğini varsaymak çok iyi bir varsayım değildir. Blok için ana bilgisayar tabanlı bir kaba, aklıma göre oldukça iyi bir fikirdir. Hesap kilitlemesini kullanmak kesinlikle iyi bir fikir, ama aynı zamanda kaba kuvvetleri susturma fikrini de günlükleri daha temiz tutmaya çalışıyorum.
Evan Anderson,

1
Zaten bir nonstd limanında çalışıyorum ve daha büyük kaygım, çok sayıda giriş denemesi nedeniyle sunucumun çevrimdışı olarak kullanılmasını sağlamak.
boomhauer

Bir seçenek, Uzak Masaüstü'ne Güvenlik Duvarı üzerinden erişimi tamamen devre dışı bırakmak, ancak güvenlik duvarını RDP trafiğine izin verecek şekilde yeniden yapılandıran sunucuda çalışan bir hizmete sahip olmaktır, bu hizmet şifre korumalıdır ve belki de yalnızca "güvenilir" bir IP kaynağından erişime izin verir ( cep telefonunun IP aralığı veya ofisiniz gibi). Bu güçlük tanıtır, ancak çalışır.
Dai,

1

Ayrıca, GUI tabanlı bir çözüme sahip olmak ve farklı etkinlikler için farklı kurallar oluşturmak istiyorsanız da gerçekten birkaç çözüm var. En kolay olanı RDPGuard (hxxp: //www.rdpguard.com) olur, ancak kurumsal bir ortamda muhtemelen saldırının nereden geldiği (ülke, menşe) ve hangi kullanıcı adının kullanıldığı gibi) daha fazla rapor almak istersiniz. Yanlışlıkla kendilerini engelleyen veya bilmediğiniz bir yerden giriş yapmaya çalışan kullanıcılardan biri olup olmadığına karar verin.

Şahsen, bizim için bütün bunları yapan Syspeace'i (hxxp: //www.syspeace.com) seviyorum ama yine de ikisinden de bahsedeceğimi düşündüm.



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.