Bagaimana cara menghentikan serangan brute force pada Terminal Server (Win2008R2)?

23

Saya lebih terbiasa dengan alat-alat Linux untuk menghentikan serangan brute force, jadi saya kesulitan menemukan alat yang cocok untuk Windows. Saya menjalankan Windows Server 2008 R2 dengan Terminal Server, dan saya ingin memblokir IP setelah upaya berulang kali untuk masuk melalui RDP. Ada petunjuk?

onik
sumber
3
Apakah Anda benar-benar perlu menangani ini di server Windows Anda? Sudahkah Anda mempertimbangkan untuk melakukan pembatasan tingkat pada perangkat tepi Anda (firewall / router)?
Zoredache
2
Kotak Windows adalah VPS yang dijalankan oleh perusahaan hosting, jadi saya tidak memiliki akses ke perangkat jaringan.
onik
Anda bisa mengatur acara Jadwal Tugas pada login yang gagal untuk memecat skrip PS; PS Svript harus menghitung berapa kali suatu IP mencoba kemudian memblokirnya dengan aturan Firewall. Saya tidak memiliki skrip seperti itu tetapi mungkin untuk dibuat.
Chris S
@ Chris S: Itu kurang lebih apa yang skrip ts_block saya lakukan, kecuali bahwa itu berjalan sebagai log peristiwa "tenggelam" dan menerima panggilan balik setiap kali peristiwa baru dicatat. Dengan demikian, ini berjalan lebih atau kurang secara realtime.
Evan Anderson
Gunakan VPN - instal mis. OpenVPN pada router. Jangan pernah meletakkan kotak windows langsung ke internet - ini berbahaya.
integratorIT

Jawaban:

5

untuk menghentikan upaya login rdp, seperti yang sudah diberitahukan, Anda perlu mengontrol firewall Anda untuk mengisolasi ip tertentu. Anda dapat melakukan beberapa pengaturan dalam alat Administratif -> Manajer layanan Terminal tetapi tidak dapat melakukan apa pun untuk menghentikan satu ip dengan cara ini. Mungkin Anda harus mempertimbangkan skrip batch untuk mendengarkan port rdp dan mengontrol kegagalan masuk, jadi jika ada upaya tot (Anda memilih nomor ...) dengan ip yang sama, maka tidak ada upaya lain untuk rentang waktu yang diketahui dapat menjadi. Saya tidak yakin apakah itu mungkin, tetapi bisa menjadi jalan ...

Nicola Boccardi
sumber
1
Ok, jadi seperti yang saya pikirkan. Saya harus mempelajari Event Viewer untuk melihat apakah saya dapat mengekspor alamat ip ke file untuk pemrosesan batch. Untuk saat ini harus mengambilnya dari dump .csv yang dibuat secara manual
onik
5
Ubah respons port RDP pada.
JohnThePro
Lucunya, saya ingin membatasi IP, tetapi kegagalan logon tidak melaporkan alamat IP
Csaba Toth
Mengubah port hanya akan mengaburkan. Mereka akan menemukan port baru dengan perangkat lunak pemindaian port cerdas.
TheLegendaryCopyCoder
@CsabaToth Log peristiwa tidak merekam informasi berguna secara default. Anda dapat mengaktifkan logging verbose di layanan netlogon dari pengontrol domain atau komputer yang menerima permintaan RDP untuk beberapa informasi tambahan. Anda dapat mengaktifkan logging firewall Windows untuk menentukan alamat IP.
Michael Steele
25

Anda benar-benar harus memblokir upaya ini di firewall tepi Anda, jika hanya dengan pembatasan tingkat. Jika Anda tidak memiliki kemampuan untuk melakukan itu baca terus.

Jika Anda tidak dapat memblokir firewall tepi dan perlu RDP terbuka hanya untuk sebagian Internet menggunakan fitur Windows Firewall bawaan untuk mengunci koneksi yang masuk.

Akhirnya, jika Anda benar - benar harus memiliki RDP terbuka untuk seluruh Intenet Anda mungkin melihat versi modifikasi dari program blocker SSH brute force saya untuk Windows yang saya miliki di repositori github . Skrip ini, ts_block, memblokir upaya masuk layanan Terminal Services brute force pada Windows Server 2003, 2008, dan 2008 R2. Sayangnya, karena perubahan pada peristiwa yang dicatat oleh Windows saat menggunakan lapisan keamanan TLS / SSL untuk RDP , skrip ini menjadi semakin tidak efektif . (Mengapa Microsoft memilih untuk menghilangkan alamat IP dari host yang mencoba untuk mengotentikasi adalah di luar saya. Sepertinya itu akan menjadi hal yang cukup penting untuk dicatat, eh?)

Evan Anderson
sumber
1
Saya menggunakan halaman ts_block di sini dan itu luar biasa! Server windows saya (2008 R2) digunakan untuk melambat di bawah banyak serangan brute force tetapi tidak lagi! TS_BLOCK Ditulis dalam vbscript - dan dapat / harus diinstal sebagai layanan windows - tetapi jangan gunakan versi MSI cukup edit kode .vbs dan instal diri Anda dengan utilitas nssm. Anda tidak memerlukan entri registri karena kode .vbs memiliki hardcode defaultnya. <p> Saya sudah mengedit kode dan segera memblokir SETIAP login gagal - sebagai server web saya sendiri tidak boleh ada usaha login gagal. Jadi skrip
Ini sangat manis, Evan. Saya memiliki setengah pikiran untuk mengimplementasikannya kembali di C # sehingga Anda dapat menjalankannya sebagai layanan windows asli daripada meretas dengan srvany dan sejenisnya. Jika saya pernah melakukannya, saya akan melemparkannya ke Github atau sesuatu juga.
Ryan Bolger
1
@RyanBolger: Saya punya titik lemah untuk VBScript dan bahasa yang ditafsirkan secara umum. Saya menemukan bahwa menggunakan "Non-Sucking Service Manager" membuat pengalaman yang cukup menyakitkan menjalankan program VBScript sebagai layanan.
Evan Anderson
ts_block luar biasa persis apa yang saya cari "Terima Kasih Evan Anderson" Ketika saya menempatkan server virtual Terminal pertama saya langsung di web dalam satu hari saya memiliki lebih dari 10.000 login gagal. Ketika saya punya waktu, saya mungkin memodifikasinya dan menambahkan pemblokiran permanen berdasarkan jumlah blok sebelumnya. misal: IP diblokir 4 kali dalam satu hari. (Kecuali jika sudah dibuat)
Berdasarkan ts_blockskrip di sini adalah solusi yang digunakan fail2banpada gateway untuk memblokir penyerang: wqweto.wordpress.com/2013/12/10/…
wqw
3

Saya memiliki program C # yang melakukan ini. Saya punya masalah pada Server 2008 R2 di mana log peristiwa tidak selalu mencantumkan alamat IP pengguna (jika mereka terhubung dari klien Remote Desktop yang lebih baru). Beberapa layanan menerapkan penyedia pemeriksaan kredensial mereka sendiri yang tidak memberikan semua informasi yang Anda inginkan.

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

Untuk Remote Desktop namun saya menemukan bahwa masuk ke "Remote Desktop Session Host Configuration" dan mengubah koneksi RDP-TCP untuk memiliki lapisan keamanan "RDP Security Layer" alih-alih "Negosiasi" atau "SSL (TLS 1.0)" mengembalikan Alamat IP.

Apakah Anda benar-benar ingin melakukan ini adalah pertanyaan lain untuk Anda, "Jika Anda memilih RDP Security Layer, Anda tidak dapat menggunakan Otentikasi Tingkat Jaringan."

Saya menemukan http://www.windowsecurity.com/articles/logon-types.html untuk membantu. Saya menggunakan EventLogWatcher dan terikat ke "* [System / EventID = 4625 atau System / EventID = 4624]" sehingga saya dapat mengatur ulang hitungan buruk pada kesuksesan jika pengguna benar-benar salah memasukkan kata sandi. Saya juga masuk daftar putih :: 1, 0.0.0.0, 127.0.0.1 dan "-". Anda mungkin ingin atau tidak ingin membuat daftar putih LAN / IP manajemen.

Saya menggunakan Forefront TMG jadi saya menggunakan API untuk menambahkan alamat IP yang buruk ke sekelompok IP dengan cara itu dan saya telah meminta Cisco untuk menambahkan akses API ke salah satu router SMB mereka (yang mereka telah meyakinkan saya bahwa mereka mungkin saja melakukannya!)

Jika Anda ingin menggunakan Firewall Windows asli untuk memblokirnya, lihat API untuk itu ("netsh advfirewall").

Saya mengizinkan x sejumlah upaya sebelum saya mencekal dan sukses akan mengatur ulang hitungan.

Matius1471
sumber
2

Apakah Anda mencoba mencegah pembobolan, atau log yang berantakan? Jika Anda mencoba mencegah pembobolan, Windows memiliki cara bawaan untuk memblokir upaya masuk. Ada pengaturan Kebijakan Ambang Batas Grup Lockout dalam Konfigurasi Komputer -> Kebijakan -> Pengaturan Windows -> Pengaturan Keamanan -> Kebijakan Akun -> Kebijakan Penguncian Akun.

Penyerang akan menggunakan nama pengguna umum seperti Administrator, dan mereka pasti akan mengunci mereka. Anda memerlukan akun terpisah untuk administrasi aktual, yang mungkin disarankan bagaimanapun juga.

Secara otomatis memblokir di tingkat firewall akan memerlukan beberapa pembacaan log yang ditulis dengan pembaruan aturan firewall secara otomatis. Anda harus dapat menambahkan aturan berdasarkan alamat IP dengan cara ini. Ini pada dasarnya adalah apa yang dilakukan iptables dalam sistem Linux.

Ini mungkin agak jelas, tetapi apakah Anda juga mempertimbangkan menjalankan Remote Desktop Services pada port non-standar ? Ini sangat efektif bagi saya saat menggagalkan pembobolan.

Joel E Salas
sumber
Memblokir upaya koneksi berulang di firewall adalah praktik yang baik, tetapi dengan asumsi bahwa serangan brute force tidak akan terjadi "di balik firewall" bukanlah asumsi yang sangat baik. Brute berbasis host untuk blok adalah ide yang cukup bagus, menurut saya. Menggunakan penguncian akun jelas merupakan ide yang bagus, tetapi saya juga menyukai ide memadamkan brute force untuk menjaga kebersihan log juga.
Evan Anderson
1
Saya sudah berjalan di port nonstd, dan kekhawatiran saya yang lebih besar sebenarnya adalah server saya diambil secara efektif offline karena sejumlah besar upaya login.
boomhauer
Salah satu opsi adalah untuk menonaktifkan akses ke Remote Desktop melalui Firewall sepenuhnya, tetapi memiliki layanan yang berjalan di server yang mengkonfigurasi ulang firewall untuk memungkinkan lalu lintas RDP, layanan ini dilindungi kata sandi dan mungkin hanya memungkinkan akses dari sumber IP "tepercaya" ( seperti rentang IP ponsel atau kantor Anda). Ini memperkenalkan kerumitan, tetapi bekerja.
Dai
1

Ada beberapa solusi lain juga jika Anda ingin memiliki solusi berbasis GUI sebagai gantinya dan membuat seperangkat aturan yang berbeda untuk acara yang berbeda. Yang paling mudah adalah RDPGuard (hxxp: //www.rdpguard.com) tetapi di lingkungan perusahaan Anda mungkin ingin lebih banyak pelaporan seperti dari mana serangan itu datang (negara, asal) dan nama pengguna apa yang digunakan sehingga Anda dapat dengan cepat putuskan apakah itu salah satu pengguna Anda sendiri yang secara tidak sengaja memblokir diri mereka sendiri atau mencoba masuk dari tempat yang Anda tahu bukan milik mereka.

Secara pribadi saya suka Syspeace (hxxp: //www.syspeace.com) yang melakukan semua itu untuk kami, tetapi saya pikir saya akan tetap menyebut mereka berdua

Juha Jurvanen
sumber