Ada sejumlah paket berbeda di luar sana untuk mematikan IP dari mana serangan SSH brute-force diluncurkan pada sistem Anda. Sebagai contoh:
Apa pro / kontra dari ini, atau yang lain?
Solusi saya saat ini adalah mengambil email yang dihasilkan logwatch setiap hari dan membuang alamat IP mengerikan ke file teks yang saya masukkan ke dalam skrip yang kemudian membangun kembali iptables. Ini peretasan, memakan waktu dan manual, dan saya ingin cara yang lebih baik.
(Perhatikan bahwa saya tidak bertanya apa cara "terbaik" untuk menyelesaikan masalah, karena tidak ada cara "terbaik" untuk melakukan apa pun.)
Perlindungan sederhana dan praktis yang efektif terhadap serangan berbasis pemindaian tidak menggunakan port standar. 443 (port https) membuat Anda terkena berbagai serangan brute-force yang tidak akan memecahkan kata sandi Anda yang lemah, dan mungkin bekerja melalui lebih banyak firewall daripada port default (22).
Sebagian besar metode untuk mencegah serangan ssh brute force adalah cara terbaik untuk melakukan sendiri DoS (oops, saya mengacaukan konfigurasi! Ups, saya melakukan banyak rsync cepat dan sekarang dilarang untuk hari itu!) Atau DoS mandiri (Ups) , penyerang berasal dari / telah menumbangkan mesin di subnet yang sama dengan saya (rentang IP dinamis, jaringan perguruan tinggi ...) dan saya juga akan diblokir!).
Jika Anda hanya masuk dari beberapa tempat, Anda bisa memasukkan daftar putih sumber alamat IP. Itu jelas tidak baik jika Anda ingin ssh dari laptop atau ponsel Anda saat bepergian.
Memiliki daemon ssh yang hanya mendengarkan koneksi IPv6 akan melindungi Anda dari pemindaian selama beberapa tahun. Tetapi banyak firewall tidak akan membiarkan Anda mengangkut IPv6 dengan cara yang masuk akal.
Metode lain yang tidak Anda sebutkan adalah port knocking . Itu tidak menderita sebagai masalah DoS diri (selain dari kesalahan konfigurasi), tetapi tidak menyeberangi firewall dengan baik, dan dapat menambahkan latensi beberapa detik ke pembentukan koneksi.
Jika Anda memiliki kata sandi yang baik, atau Anda dapat hidup tanpa otentikasi kata sandi, nonaktifkan otentikasi kata sandi. (Kunci dan kata sandi satu kali cukup untuk sebagian besar kasus penggunaan: jika Anda tidak cukup mempercayai mesin klien untuk menyimpan kunci ssh, Anda juga tidak percaya untuk tidak memiliki keylogger). Kemudian serangan brute force akan dikenakan biaya sedikit CPU dan bandwidth tetapi jangan biarkan Anda ke gangguan (selama Anda memeriksa tidak ada kunci Anda berasal dari OpenSSL rendah entropi Debian ).
Secara keseluruhan, harap dicatat bahwa mengubah port tidak secara signifikan mengurangi eksposur Anda. Anda akan mendapatkan lebih sedikit pemindaian , tetapi yang bisa Anda potong hanyalah buah yang mudah digantung yang berupaya mengeksploitasi kerentanan lama dan kata sandi yang lemah. Selama Anda memperbarui daemon Anda dan menerapkan kata sandi yang masuk akal atau dan batas tingkat upaya yang wajar, beralih port lebih merupakan tanggung jawab daripada tindakan keamanan.
sumber
.ssh/config
. Lockout adalah masalah jika firewall tidak membiarkan Anda lewat, dan solusi termudah adalah tetap pada port 22 dan juga mendengarkan 443. Saya setuju bahwa beralih port tidak benar-benar meningkatkan keamanan, mungkin saya harus membuatnya lebih jelas . Saya tidak tahu mengapa Anda menganggap mustahil untuk daemon SSH untuk tidak mendukung otentikasi kata sandi: itu hanya masalah menambahkan baris kesshd_config
dengan OpenSSH, implementasi yang paling umum.