Fail2ban adalah kerangka kerja keamanan sumber terbuka yang ditulis dengan Python yang melindungi server dari serangan brute force . Ini memindai file log dan melarang alamat IP yang melakukan upaya login yang gagal. Ia bekerja dengan memperbarui firewall untuk menolak koneksi baru dari alamat IP tersebut untuk jangka waktu yang dapat dikonfigurasi.
Secara default, Fail2ban menggunakan Iptables dan memungkinkan untuk digunakan dengan firewall lain. Dukungan Fail2ban untuk IPv4 dan IPv6.
Fail2ban secara default dikonfigurasi untuk memantau upaya login SSH dan dapat memantau file log lainnya seperti untuk Apache, vsftpd, dan Postfix, dll.
Dalam tutorial ini, saya akan memandu Anda melalui cara menginstal dan mengkonfigurasi fail2ban di Ubuntu 20.04.
Instal Fail2ban di Ubuntu
Untuk memulai, buka terminal Anda dan perbarui daftar paket.
$ sudo apt update
Fail2Ban sudah dikemas dengan sebagian besar distribusi Linux. Untuk menginstal fail2ban menggunakan manajer paket APT, jalankan:
$ sudo apt install fail2ban
Setelah diinstal, verifikasi apakah itu berjalan dengan:
$ sudo systemctl status fail2ban
Dari output tersebut, kita dapat melihat bahwa layanan fail2ban aktif dan berjalan seperti yang diharapkan.
Untuk memeriksa proses fail2ban berjalan, ketik:
$ sudo ps -efww | egrep fail2ban
Keluaran:
root 1310843 1 0 11:17 ? 00:00:02 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Besar. Mari kita lihat ikhtisar file konfigurasi yang terkait dengan Fail2ban dan cara mengubah pengaturan ke alamat IP daftar hitam atau daftar putih.
Ikhtisar file konfigurasi
File konfigurasi Fail2ban terletak di /etc/fail2ban
direktori seperti yang ditunjukkan.
File konfigurasi utama adalah /etc/fail2ban/jail.conf
dan /etc/fail2ban/jail.d/defaults-debian.conf
.
Apa pun yang Anda lakukan, tidak disarankan untuk memodifikasi file-file ini karena ada kemungkinan besar mereka akan ditimpa ketika paket fail2ban diperbarui.
Sebagai solusinya, cara yang disarankan untuk mengonfigurasi Fail2ban adalah dengan membuat salinan jail.conf
file ke jail.local
dan kemudian tentukan pengaturan Anda sendiri. Anda tidak harus memasukkan semua pengaturan dari jail.conf
file, hanya yang ingin Anda timpa.
Jadi, mari kita buat dulu jail.local
file konfigurasi sebagai berikut.
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Sekarang, menggunakan editor teks favorit Anda, buka file tersebut. Di sini, saya menggunakan editor vim.
$ sudo vim /etc/fail2ban/jail.local
Mengizinkan alamat IP
Menggunakan ignoreip
direktif, Anda dapat mengecualikan alamat IP, rentang IP, atau seluruh subnet agar tidak dilarang. Di sinilah Anda menambahkan alamat IP dari mesin jarak jauh yang ingin Anda masukkan ke daftar putih atau izinkan akses secara sederhana. Beberapa IP dapat ditambahkan menggunakan spasi atau koma.
Misalnya, untuk memasukkan alamat IP ke daftar putih 192.168.2.50 , 192.168.2.100 tambahkan entri sebagai berikut.
Setelan larangan
Kondisi larangan ditentukan oleh parameter berikut:
- jam istirahat
- menemukan waktu
- maxretry
jamban - Ini adalah periode di mana alamat IP dilarang atau ditolak aksesnya untuk mencoba terhubung kembali dengan server. Secara default, ini disetel ke 10 menit, tetapi jangan ragu untuk menyetelnya sesuai keinginan Anda.
waktu cari - Ini adalah durasi antara upaya login yang gagal sebelum larangan diterapkan. Ini diatur ke 10 menit. Artinya, jika Anda mencoba login SSH dan kegagalan mencapai maxtry nilai dalam jangka waktu 10 menit, maka IP yang Anda sambungkan akan diblokir.
maxretry - Ini menunjukkan jumlah maksimum upaya koneksi yang gagal sebelum IP dilarang. B default, ini diatur ke 5 detik yang seharusnya baik-baik saja, tapi saya lebih suka 3 detik untuk meminimalkan dibombardir dengan upaya koneksi.
Pemberitahuan email
Fail2ban memiliki kemampuan untuk mengirim peringatan email setelah alamat IP diblokir. Untuk mengirim dan menerima email, Anda harus menginstal dan mengonfigurasi server SMTP. Untuk menggunakan fitur notifikasi email, tambahkan baris di bawah
action = %(action_mw)s
Parameter %(action_mw)s
melarang alamat IP yang mencurigakan dan mengirim email ke admin dengan laporan whois terperinci. Untuk menyertakan pesan log, setel parameter ke %(action_mwl)s
.
Tambahan menentukan alamat email pengirim serta penerima.
Fail2ban jail
Modus operandi fail2ban menggunakan konsep penjara. Artinya, jika alamat IP yang melanggar tidak berhasil mencoba masuk atau mengakses layanan, alamat tersebut ditempatkan di 'jail' dan tidak dapat memulai koneksi hingga bantime berlalu.
Penjara, secara sederhana, adalah layanan dengan filter dan tindakan. Fail2ban melihat entri log dan setelah entri log yang cocok diidentifikasi dan kondisi terpenuhi, tindakan akan diterapkan.
Penjara SSH biasanya diaktifkan secara default untuk mengikat koneksi SSH jahat dari alamat IP yang mencurigakan. Untuk mengaktifkan jail untuk layanan lain, cukup tambahkan enabled =true atribut setelah tajuk penjara. Anda juga dapat memberikan pengaturan larangan seperti yang kita lihat sebelumnya.
Fail2ban klien
Fail2ban menyediakan alat baris perintah untuk berinteraksi dengan Fail2ban yang dikenal sebagai fail2ban-client . Anda dapat melakukan segudang tugas termasuk melarang dan membatalkan pemblokiran alamat IP.
Untuk memeriksa status Fail2ban dan melihat apakah ada IP yang diblokir atau filter yang dilanggar, jalankan perintah:
$ sudo fail2ban-client status sshd
Output di bawah ini mengonfirmasi keberadaan alamat IP yang dilarang atau masuk daftar hitam setelah upaya login SSH yang gagal. Alamat IP saat ini berada di penjara SSH.
Anda juga dapat memfilter file fail2ban.log untuk mencantumkan semua alamat IP yang dilarang:
$ sudo zgrep 'Ban' /var/log/fail2ban.log*
Keluaran:
2021-04-29 11:17:55,081 fail2ban.actions [1310843]: NOTICE [sshd] Ban 117.221.69.37 2021-04-29 11:17:55,123 fail2ban.actions [1310843]: NOTICE [sshd] Ban 49.233.251.133 2021-04-29 11:17:55,131 fail2ban.actions [1310843]: NOTICE [sshd] Ban 106.52.93.202 2021-04-29 11:17:55,139 fail2ban.actions [1310843]: NOTICE [sshd] Ban 222.187.232.205 2021-04-29 11:17:55,147 fail2ban.actions [1310843]: NOTICE [sshd] Ban 222.187.239.107
Untuk membatalkan pemblokiran alamat IP yang masuk daftar hitam, jalankan perintah:
$ sudo fail2ban-client set sshd unbanip 192.168.2.102
Sekarang verifikasi status Fail2ban lagi, dan kali ini, IP yang diblokir tidak lagi terdaftar.
Untuk memblokir alamat IP, ketik:
$ sudo fail2ban-client set sshd banip 192.168.2.102
Untuk opsi baris perintah lainnya, jalankan perintah:
$ fail2ban-client -h
Kesimpulan
Ingatlah bahwa Fail2ban bukan pengganti firewall dan tindakan keamanan lain yang digunakan untuk melindungi sistem Anda. Ini hanyalah lapisan keamanan tambahan yang memberi server Anda lapisan perlindungan ekstra terhadap serangan brute force terutama dari bot dan skrip otomatis. Ini mengakhiri tutorial tentang cara menginstal dan mengkonfigurasi Fail2ban di Ubuntu 20.04.