Server web saya terus-menerus diserang oleh berbagai alamat IP. Mereka mencoba lima kata sandi dan kemudian mengubah alamat IP.
Saya telah melakukan berbagai penguncian seperti menggunakan ssh-keys dan tidak mengizinkan kata sandi, dan tidak mengizinkan login root jarak jauh.
Apakah ada sesuatu yang bisa saya lakukan untuk menghilangkan upaya serangan ini? Jika gagal, apakah ada pertahanan khusus yang harus saya pasang?
Jawaban:
Ini memang fakta kehidupan. Anda dapat memasang alat untuk memfilter host yang menyerang Anda setelah beberapa upaya gagal.
DenyHosts menganalisis file log Anda dan secara otomatis menambahkan penyerang ke
/etc/hosts.deny
file Anda .Periksa dokumentasi tentang cara mengonfigurasinya untuk kebutuhan Anda.
Pembaruan : beberapa poin penting yang disarankan dalam komentar
pastikan untuk mengkonfigurasi alat sebagai DenyHosts karena Anda dapat mengunci diri (misalnya, Anda dapat mengonfigurasi mesin atau jaringan yang tidak pernah difilter)
DenyHosts tidak meningkatkan keamanan sistem Anda: itu hanya menyaring serangan pada tingkat IP (mungkin mengurangi beban pada mesin kecil dan mengurangi ukuran file log tetapi tidak lebih)
sumber
refs Q1.3
denyhosts.sourceforge.net/faq.html#1_0apt-get install denyhosts
membuat saya terkunci dari mesin saya.Saya mengikuti petunjuk ini untuk menambahkan penundaan 7-detik untuk setiap upaya login SSH dengan kata sandi salah. Saya membuat sshd saya menjadi "tarpit" untuk pemindai kasar.
Saya juga harus menambahkan bahwa saya telah memodifikasi, tarpit sshd, mencatat kata sandi yang gagal. Ini mungkin tidak sepenuhnya etis, karena memberikan pengguna root melihat apa yang pengguna salah ketik sebagai kata sandi mereka sendiri, tetapi karena saya satu-satunya pengguna "nyata", saya pikir tidak apa-apa.
Saya tidak menjalankannya pada port non-standar, karena aspek "tarpit" tidak akan membuang waktu siapa pun.
sumber
Jika hanya sejumlah kecil orang perlu SSH ke sistem, maka pertimbangkan untuk memindahkan SSH ke port non-standar (misalnya 6422, 8080, dll.) Itu saja akan mengurangi jumlah upaya login secara besar-besaran (dan mungkin melindungi Anda dari beberapa pengiriman yang belum ditambal SSH mengeksploitasi cacing berbasis, misalnya).
sumber
Setuju dengan jawaban @ Matteo; apa yang Anda lihat pada dasarnya adalah ribuan sistem zombie'd mengeksekusi serangan brute-force terdistribusi di server Anda karena ada situs web yang berjalan di atasnya, yang berarti mungkin ada pengguna yang mungkin memiliki akun login yang mungkin bisa ditebak usaha minimal dari script kiddie - dia punya program yang memerintahkan ribuan zombie untuk membuat upaya brutal pada beberapa ratus host situs web sekaligus dan hanya menyusun daftar pengembalian yang sukses.
Demikian pula, Anda kadang-kadang dapat melihat banyak izin dari "http://your.web.host/phpmyadmin/" di
/var/log/apache2/access.log
file ; ini adalah pemindaian otomatis untuk cara paling umum mengatur PHPMyAdmin, dan akan mencoba sejumlah eksploit yang diketahui jika ditemukan (ini, kebetulan, itulah sebabnya saya mulai memberi tahu pelanggan untuk menggunakan situs PMA yang saya buat sendiri dan tetap up to date daripada menginstal versi mereka sendiri dan lupa untuk tetap memperbaruinya, tapi sekarang kami tidak aktif).Selain mengirimkan perintah asli, itu bahkan tidak menghabiskan waktu atau bandwidth; itu api dan lupakan.
Bit perangkat lunak lain yang sangat berguna untuk situasi seperti ini adalah fail2ban , yang menggunakan iptables untuk memblokir upaya koneksi setelah beberapa logon yang jelas salah atau upaya eksploit lainnya.
sumber
Coba konfigurasikan Fail2ban . Ini memberikan cara yang sangat fleksibel untuk mencari upaya yang gagal, dan memiliki template untuk SSH, HTTP dan layanan umum.
Fail2ban akan memperbarui iptables sesuai dengan tindakan Anda .. Saya menyukainya.
sumber
Anda dapat menggunakan IPTABLES untuk menghentikan lalu lintas tanpa menjalankan daemon seperti Fail2Ban atau DenyHosts.
sumber
Jika Anda bisa mengelolanya, saya menemukan cara terbaik untuk menangani hal-hal seperti ini adalah menggunakan VPN. Dengan begitu, satu-satunya hal yang dapat mereka targetkan adalah VPN. Seharusnya tidak ada layanan yang terbuka untuk dunia pada umumnya, kecuali yang diperlukan untuk "semua orang" untuk mengakses, seperti server web Anda. Segala sesuatu yang lain harus diblokir oleh firewall. Sekarang satu-satunya hal yang Anda benar-benar perlu khawatirkan adalah keamanan VPN Anda. Jika Anda bisa, dapatkan IP statis untuk komputer yang Anda kelola dari server Anda, dan kunci VPN Anda ke alamat IP tertentu. Ini benar-benar satu-satunya cara untuk menghentikan orang dari mencoba memaksakan kata sandi.
sumber
Sshguard bekerja dengan sangat baik. Saya menggunakannya bersama dengan iptables.
sumber