Ditulis dalam Python, Fail2ban adalah sumber terbuka dan gratis Sistem Pencegahan Intrusi (IPS) yang melindungi server dari serangan brute force.
Setelah sejumlah upaya kata sandi yang salah, alamat IP klien dilarang mengakses sistem untuk jangka waktu tertentu atau sampai administrator sistem membuka blokirnya. Dengan cara ini, sistem terlindungi dari serangan brute force berulang dari satu host.
[ Anda mungkin juga menyukai: Cara Mengamankan dan Memperkuat Server OpenSSH ]
Fail2ban sangat dapat dikonfigurasi dan dapat diatur untuk mengamankan berbagai layanan seperti SSH, vsftpd, Apache, dan Webmin.
Dalam panduan ini, kami fokus pada bagaimana Anda dapat menginstal dan mengkonfigurasi Fail2ban pada Linux Rocky dan AlmaLinux.
Secara default, berbatu datang dengan Firewalld berlari. Namun, jika ini tidak terjadi pada sistem Anda, mulailah Firewalld dengan mengeksekusi:
$ sudo systemctl start firewalld.
Kemudian aktifkan untuk memulai saat boot:
$ sudo systemctl aktifkan firewalld.
Kemudian verifikasi status Firewalld
$ sudo systemctl status firewalld.
Selain itu, Anda dapat mengkonfirmasi semua Firewalld aturan saat ini sedang ditegakkan menggunakan perintah:
$ sudo firewall-cmd --list-all.
Sebagai persyaratan untuk pemasangan fail2ban dan paket lain yang diperlukan, Anda perlu menginstal EPEL repositori yang menyediakan paket tambahan berkualitas tinggi untuk Distribusi berbasis RHEL.
$ sudo dnf install epel-release.
Dengan EPEL diinstal, lanjutkan dan instal fail2ban dan fail2ban-firewalld kemasan.
$ sudo dnf install fail2ban fail2ban-firewalld.
Ini menginstal server fail2ban dan komponen firewalld bersama dengan dependensi lainnya.
Dengan instalasi fail2ban selesai, mulai layanan fail2ban.
$ sudo systemctl start fail2ban.
Dan aktifkan untuk memulai saat boot.
$ sudo systemctl aktifkan fail2ban.
Anda dapat memverifikasi status layanan fail2ban dengan menjalankan perintah:
$ sudo systemctl status fail2ban.
Outputnya adalah konfirmasi bahwa Fail2ban berjalan seperti yang kita harapkan.
Selanjutnya, kita perlu mengonfigurasi fail2ban agar berfungsi sebagaimana dimaksud. Idealnya, kami akan mengedit file konfigurasi utama – /etc/fail2ban/jail.conf. Namun, ini dikecilkan. Sebagai solusinya akan menyalin isi file konfigurasi jail.conf ke penjara.local mengajukan.
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local.
Sekarang, buka penjara.local file menggunakan editor pilihan Anda.
$ sudo vim /etc/fail2ban/jail.local.
Di bawah [BAWAAN] bagian, pastikan Anda memiliki pengaturan berikut saat muncul.
waktu ban = 1 jam. waktu pencarian = 1 jam. maksimal = 5.
Mari kita definisikan atributnya:
Secara default, fail2ban bekerja dengan iptables. Namun, ini telah ditinggalkan demi firewalld. Kita perlu mengkonfigurasi fail2ban untuk bekerja bersama firewalld, bukan iptables.
Jadi, jalankan dengan perintah:
$ sudo mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local.
Untuk menerapkan perubahan, mulai ulang fail2ban:
$ sudo systemctl restart fail2ban.
Secara default, fail2ban tidak memblokir host jarak jauh apa pun sampai Anda mengaktifkan konfigurasi jail untuk layanan yang ingin Anda amankan. Konfigurasi penjara ditentukan dalam /etc/fail2ban/jail.d path dan akan menimpa konfigurasi yang ditentukan dalam file jail.local.
Dalam contoh ini, kami akan membuat file konfigurasi jail untuk melindungi layanan SSH. Oleh karena itu, buat file jail SSH.
$ sudo vim /etc/fail2ban/jail.d/sshd.local.
Selanjutnya, rekatkan baris berikut:
[sshd] diaktifkan = true # Mengganti konfigurasi global default. # untuk sshd penjara tertentu. waktu ban = 1 hari. maksimal = 3.
Dalam konfigurasi di atas, host jarak jauh akan dilarang mengakses sistem selama 1 hari setelah 3 kali percobaan login SSH yang gagal. Simpan perubahan dan mulai ulang layanan fail2ban.
$ sudo systemctl restart fail2ban.
Selanjutnya, verifikasi status konfigurasi penjara menggunakan fail2ban-klien utilitas baris perintah.
$ sudo status klien fail2ban.
Dari output, kita dapat melihat bahwa kita memiliki 1 jail yang dikonfigurasi untuk layanan yang disebut 'sshd’.
Selain itu, Anda dapat mengonfirmasi coba lagi nilai jail sshd menggunakan opsi get.
$ sudo fail2ban-client dapatkan sshd maxretry 3.
Nilai yang dicetak 3 harus sesuai dengan apa yang Anda tentukan di sshd.local mengajukan.
Setelah mengatur fail2ban dan membuat file konfigurasi jail untuk layanan SSH, kita akan: lakukan uji coba dan simulasikan 3 login yang gagal dengan menentukan kata sandi yang salah untuk setiap kata sandi mengingatkan.
Jadi pergilah ke sistem Linux jarak jauh dan coba masuk menggunakan kata sandi yang salah. Setelah 3 upaya gagal, koneksi akan terputus dan setiap upaya berikutnya untuk menyambung kembali akan diblokir hingga durasi larangan berakhir.
Untuk mengumpulkan wawasan tentang sistem klien yang diblokir, periksa status penjara.
$ sudo fail2ban-klien status sshd.
Untuk membatalkan larangan atau menghapus klien dari penjara, jalankan perintah:
$ sudo fail2ban-client unban 192.168.2.102.
Sekali lagi, periksa status jail untuk memastikan bahwa klien tidak termasuk dalam daftar IP yang dilarang.
$ sudo fail2ban-klien status sshd.
Seperti yang telah kita lihat, Fail2ban adalah alat yang sangat berguna untuk menangkal penyusup yang ingin menerobos sistem Linux Anda. Ini bekerja bersama dengan Firewalld untuk melarang sistem klien selama durasi tertentu setelah sejumlah upaya login yang gagal. Dengan demikian, ini memberikan lapisan perlindungan ekstra untuk server Linux Anda.