Saya baru-baru ini harus bekerja dengan beberapa server yang memiliki koneksi IPv6 dan saya terkejut mengetahui bahwa fail2ban tidak memiliki dukungan IPv6, begitu juga dengan denyhosts. Pencarian di google saya menemukan bahwa orang umumnya merekomendasikan:
- Menonaktifkan ssh login melalui IPv6 (bukan solusi untuk saya)
- hanya menggunakan otentikasi kunci publik / pribadi di server, tanpa otentikasi kata sandi (berfungsi, tetapi banyak serangan mungkin menghabiskan banyak daya pemrosesan dari server, atau bahkan membuatnya tidak tersedia dengan menggunakan DDoS)
- menggunakan ip6tables untuk memblokir serangan berurutan dari IP yang sama
- menggunakan sshguard yang memiliki dukungan IPv6
Dari apa yang saya kumpulkan sejauh ini melarang alamat di IPv6 sedikit berbeda dari pada IPv4 karena ISP tidak memberikan pengguna satu alamat (/ 128), tetapi seluruh subnet (saya saat ini memiliki / 48). Dengan demikian pelarangan alamat IPv6 tunggal tidak akan efektif terhadap serangan. Saya telah mencari tinggi dan rendah pada subjek ip6tables dan sshguard memblokir subnet pada deteksi serangan tetapi saya belum berhasil menemukan informasi.
Apakah ada yang tahu jika sshguard melarang subnet pada serangan IPv6?
Adakah yang tahu cara membuat konfigurasi ip6tables untuk melarang subnet pada serangan IPv6?
Atau apakah ada yang tahu cara yang lebih baik untuk mengurangi serangan daripada apa yang sudah saya temukan?
PS: Saya menggunakan CentOS 7 pada sistem.
Jawaban:
Untuk menyerang server, penyerang harus terlebih dahulu mengetahui alamat IP-nya. Dengan IPv6 Anda akan memiliki begitu banyak alamat untuk dipilih sehingga tidak layak untuk menemukan alamat yang benar dengan memindai rentang IP.
Ini berarti Anda cukup menetapkan dua alamat IPv6 berbeda untuk antarmuka. Anda membiarkan nama domain situs Anda tetap menunjuk ke alamat IP yang sama seperti biasa, dan Anda membiarkan sshd mendengarkan hanya pada alamat IP yang baru ditugaskan.
Setelah perubahan itu mengetahui nama domain dan alamat IP situs Anda tidak akan memberikan penyerang akses ke sshd Anda.
Anda tentu saja akan memerlukan nama host sekunder untuk digunakan saat menghubungkan menggunakan ssh. Nama host itu dapat memiliki lebih banyak entropi daripada alamat IPv6. Seseorang yang menebak nama host untuk ssh tidak dapat dibayangkan jika Anda menggunakan 63 karakter alfanumerik.
Jika seseorang mengetahui alamat IPv6 yang digunakan untuk sshd, Anda cukup memindahkan sshd ke alamat IPv6 baru dan memperbarui catatan AAAA. Kemudian mereka harus memulai dari awal.
Jika Anda khawatir bahwa pengguna ssh yang sah dapat membocorkan nama host dan / atau alamat IP, maka Anda dapat membuat nama host yang berbeda untuk setiap pengguna untuk mengakses dengan ssh. Awalnya saya akan CNAME semuanya ke nama host tunggal sehingga hanya ada catatan AAAA tunggal untuk memperbarui.
sumber
Kabar baiknya adalah fail2ban merilis dukungan untuk IPv6 baru-baru ini.
Untuk server Debian IPv6 saya akan merekomendasikan untuk mengikuti tutorial ini .
Untuk server CentOS IPv6, saya akan merekomendasikan untuk mengunduhnya di sini dan kemudian menjalankan perintah ini menggantikan nomor versi sesuai:
Pastikan jail untuk sshd diaktifkan di /etc/fail2ban/jail.local , misalnya:
sumber