Cygwin SSHd Autoblock Gagal Masuk

20

Saya menjalankan Cygwin dengan deamon SSH pada mesin Windows Server 2008. Saya melihat Event Viewer dan melihat sebanyak 5 hingga 6 upaya login gagal per detik (brute force) selama seminggu terakhir, dari IP yang berbeda.

Bagaimana saya bisa mengunci IP ini secara otomatis daripada memblokirnya satu per satu secara manual?

Terima kasih, Ahmad

ANaimi
sumber

Jawaban:

34

Saya menulis sebuah program untuk memblokir alamat IP seperti yang Anda minta beberapa tahun yang lalu, tetapi melakukannya untuk Pelanggan sebagai pekerjaan-untuk-menyewa. Karena saya berakhir dengan waktu "senggang" malam ini, saya memilih untuk mengimplementasikan kembali semuanya dari bawah ke atas, menulis beberapa dokumentasi yang bermanfaat, dan secara umum menjadikannya program yang bagus. Karena saya sudah mendengar dari banyak orang bahwa ini akan menjadi hal yang berguna untuk memilikinya sepertinya itu layak untuk dilakukan. Semoga Anda, dan anggota komunitas lainnya, dapat memanfaatkannya.


Windows sshd_block

sshd_block adalah program VBScript yang bertindak sebagai wastafel acara WMI untuk menerima entri Windows Event Log yang dicatat oleh sshd. Itu mem-parsing entri log ini dan menindakinya sebagai berikut:

  • Jika alamat IP mencoba masuk dengan nama pengguna yang ditandai sebagai "segera ban", alamat IP langsung dicekal.

  • Jika alamat IP mencoba masuk dengan lebih sering dari yang diizinkan dalam periode waktu tertentu, alamat IP akan diblokir.

Nama pengguna dan ambang "ban segera" yang terkait dengan upaya masuk berulang dapat dikonfigurasi di bagian "Konfigurasi" skrip. Pengaturan default adalah sebagai berikut:

  • Larangan Segera Nama Pengguna - administrator, root, tamu
  • Upaya masuk diizinkan - 5 dalam 120 detik (2 menit)
  • Durasi larangan - 300 detik (5 menit)

Sekali sedetik, semua alamat IP yang telah dilarang untuk durasi larangan tidak diblokir (dengan menghapus rute lubang hitam dari tabel perutean).


Anda dapat mengunduh perangkat lunak di sini dan dapat menelusuri arsip di sini .

Edit:

Pada 2010-01-20 saya telah memperbarui kode untuk mendukung menggunakan "Advanced Firewall" pada Windows Vista / 2008/7/2008 R2 untuk melakukan penahanan lalu lintas melalui pembuatan aturan firewall (yang jauh lebih sejalan dengan perilaku "fail2ban"). Saya juga menambahkan beberapa string pencocokan tambahan untuk menangkap versi OpenSSH yang "pengguna tidak valid" sebagai kebalikan dari "pengguna ilegal".

Evan Anderson
sumber
2
Saya menghargai pekerjaan yang Anda lakukan dan berpikir itu ide yang luar biasa, tetapi apakah ada kemungkinan bahwa itu dapat dimodifikasi untuk bekerja dengan upaya RDP? Server windows saya terus-menerus diserang online dan penguncian akun meskipun semi-afektif tidak perlu dibuka agar pengguna itu dapat bekerja kembali, membuka kembali akun pengguna untuk penguncian lain.
@Henry: Lihatlah serverfault.com/a/335976/7200
Evan Anderson
Skrip ini menghisap lebih dari 10 persen CPU saya walaupun tidak ada serangan brute force yang sedang berlangsung ...
jjxtra
@ PsychoDad: Jika Anda tertarik, hubungi saya langsung dan kami akan memecahkan masalah. Saya belum melihat perilaku yang Anda lihat.
Evan Anderson
1
Saya juga ingin melihat ini untuk koneksi RDP. Terima kasih
boomhauer
3

Di Linux denyhosts melakukan trik, tidak dapat memberi tahu Anda apakah itu akan berfungsi pada Windows / Cygwin atau tidak. Cobalah.

Saurabh Barjatiya
sumber
2

Yang ini sangat menarik, kami sedang mengevaluasi solusi ini:

Syspeace bekerja erat dengan Windows untuk mendeteksi kemungkinan ancaman pada kinerja optimal. Peristiwa dalam log peristiwa dipantau secara terus-menerus untuk setiap perilaku yang dicurigai. Jika suatu peristiwa dianggap sebagai ancaman bagi sistem, Syspeace melanjutkan ke tingkat berikutnya dengan memeriksa terhadap basis aturan internal yang hanya memblokir alamat IP dan menambahkan aturan ke firewall Windows.

Daftar Putih Lokal

Seorang pengguna selalu dapat menambahkan alamat IP ke Daftar Putih Lokal untuk, misalnya, mencegah pemblokiran jaringan internal apa pun atau menambah sementara PC tunggal. Ini harus digunakan dengan hati-hati karena setiap IP dalam daftar ini dianggap dapat dipercaya oleh Syspeace dan akan selalu diabaikan.

Daftar Hitam Lokal

Setiap ancaman akan ditambahkan ke Daftar Hitam Lokal secara otomatis oleh Syspeace. Anda selalu dapat meninjau daftar hitam dan menambahkan atau menghapusnya sesuai keinginan Anda. Namun kami merekomendasikan, agar Anda tidak membuat perubahan apa pun pada daftar ini karena Anda dapat secara tidak sengaja membuka jalan bagi peretas yang tidak dikenal.

Daftar Hitam Global

Fitur utama dari Syspeace adalah kemampuan untuk memblokir alamat IP yang dikenal secara global lebih dulu. Dengan memilih opsi ini, Syspeace akan mengimpor Global Blacklist ke klien Anda dan bertindak sesuai itu, menambahkan semua alamat IP yang masuk daftar hitam global ke aturan firewall dengan menekan sebuah tombol.

Olahpesan

Setiap kali peristiwa penting terjadi, layanan dimulai atau dihentikan, aturan ditempatkan atau dihapus dari firewall atau status komunikasi ke lisensi pusat dan server daftar hitam global diubah, Syspeace memiliki kemampuan untuk mengirim email ke orang-orang yang tepat di organisasi Anda.

Laporan

Mendapatkan email saat peristiwa penting terjadi mungkin baik tetapi terkadang Anda juga ingin mendapatkan ringkasan. Syspeace menyusun laporan harian dengan semua upaya serangan pada sistem Anda dan mengirimi Anda pesan dengan informasi tersebut. Syspeace juga menyusun laporan mingguan dengan cara yang sama.

www.syspeace.com

Derek
sumber
2

Secara harfiah semua upaya login dari Cina / AS / India di server saya mencoba login Administrator, yang telah saya nonaktifkan.

Bukankah lebih mudah untuk menonaktifkan login Admin dan kemudian menulis skrip yang memblokir semua alamat IP yang mencoba login menggunakan "Administrator" sebagai nama pengguna?

pengguna220309
sumber
1

Anda mungkin perlu mengacaukan firewall Windows; Cygwin tidak akan memiliki jenis fungsi ini.

koenigdmj
sumber
1

Anda dapat mempertimbangkan untuk menggunakan SSHBlock - skrip Perl untuk mengendalikan upaya brute force.

SSHBlock adalah daemon untuk memonitor log syslog untuk upaya break-in menggunakan SSH, dan untuk secara otomatis memblokir host yang buruk dengan menambahkan baris ke /etc/hosts.allow (TCP Wrappers). Beberapa ambang telah ditentukan sebelumnya, untuk dapat memblokir mereka yang mencoba banyak upaya dalam periode yang lebih lama atau lebih pendek. Gunakan -h untuk melihat opsi baris perintah.

Saya belum pernah menggunakannya di Cygwin.
Namun di sini ada tautan ke artikel lain yang menggambarkan sshblock dengan beberapa cara lain:
Bertahan terhadap serangan ssh brute force

nik
sumber