Halo, Kawan CloudKilat!
Fail2Ban merupakan perangkat lunak berbasis open source atau dalam artian dapat digunakan secara gratis oleh siapapun, perangkat lunak ini berfungsi untuk mengamankan sebuah server dengan cara membatasi akses ke server yang diamankan sesuai dengan rule ( aturan ) yang telah dikonfigurasi pada Fail2Ban. Tujuan Fail2ban adalah untuk memantau log layanan umum untuk menemukan pola kegagalan otentikasi.
Ketika fail2ban dikonfigurasi untuk memantau log suatu layanan, fail2ban akan melihat filter atau aturan untuk service yang telah di konfigurasi secara khusus. Filter ini dirancang untuk mengidentifikasi kegagalan otentikasi untuk layanan spesifik tersebut.
Jika terdapat log permintaan request dari client sama serta terdapat kegagalan otentikasi dan melebihi aturan yang ditetapkan oleh Fail2ban maka client tersebut akan diblokir dalam waktu yang telah ditentukan.
Dengan pernyataan diatas kita dapat mengamankan layanan VPS Anda dari serangan yang tidak diinginkan terutama serangan Brute Force pada service SSH.
Instalasi Fail2Ban pada Layanan VPS #
Dalam instalasi dan konfigurasi kali kita akan memanfaatkan Fail2Ban sebagai pengamanan dalam SSH, berikut ini langkahnya :
- Sebelum memulai instalasi service Fail2Ban pastikan terlebih dahulu untuk system operasi yang digunakan pada layanan VPS Anda, dengan perintah sebagai berikut ini :
cat /etc/os-release
- Setelah Anda mengetahui sistem operasi yang digunakan Anda perlu melakukan update package terlebih dahulu, setelah itu Anda dapat melakukan instalasi Fail2ban yang akan digunakan.
Jika Anda menggunakan sistem operasi Ubuntu atau Debian Anda dapat menggunakan perintah berikut ini :
apt-get update
apt-get install -y fail2ban
Jika Anda menggunakan sistem operasi berbasi RHEL seperti CentOS anda dapat menggunakan perintah berikut :
yum install epel-release
yum install fail2ban fail2ban-systemd
- Setelah Anda melakukan instalasi maka akan muncul tampilan berikut ini dan untuk lokasi file Fail2ban berada pada direktori /etc/fail2ban.
Penjelasan Konfigurasi Fail2Ban pada Layanan VPS #
Sebelumnya konfigurasi untuk pengamanan dilanjutkan terdapat 2 file konfigurasi dan 1 direktori yang cukup penting dalam mengatur rule yang akan diterapkan yaitu file fail2ban.conf, jail.conf , jail.local dan direktori jail.d.
Untuk fail2ban.conf merupakan file konfigurasi dalam mengatur service Fail2ban itu sendiri, berikut ini detailnya
- Tingkatan Log service Fail2ban ( loglevel ).
Untuk konfigurasi ini dapat dilakukan perubahan oleh Anda apabila Anda ingin melakukan penyesuaian log yang dikeluarkan oleh Fail2ban, secara default untuk Fail2ban menggunakan INFO dan terdapat 5 tingkatan lain yang dapat digunakan.
- Konfigurasi lokasi log untuk service Fail2ban.
Secara default untuk lokasi log Fail2ban berada pada file /var/log/fail2ban.log namun dapat disesuaikan sesuai dengan keinginan pada bagian logtarget.
- Konfigurasi untuk proses socket Fail2ban.
- Konfigurasi untuk file PID Fail2ban.
Untuk jail.conf merupakan file default dalam mengatur service yang akan diamankan oleh Fail2ban Anda dapat menyalin file jail.conf menjadi jail.local serta melakukan konfigurasi pada jail.local hal ini dilakukan untuk meminimalisir terjadinya kehilangan konfigurasi yang telah dilakukan.
Secara default jika terdapat file jail.local pada direktori /etc/fail2ban maka Fail2ban akan membaca terlebih dahulu file tersebut, sehingga Anda tidak perlu melakukan konfigurasi pada file jail.conf jika Anda telah melakukan konfigurasi pada jail.local .
Berikut kami berikan detail konfigurasi yang dapat dilakukan pada file tersebut.
- Konfigurasi service yang akan dipertahankan oleh Fail2ban.
- Tindakan yang harus diambil saat serangan terdeteksi seperti blokir.
- Berapa lama Fail2ban melakukan blokir terhadap client yang melakukan serangan.
- IP Address atau client apa saja yang akan dilakukan whitelist
Untuk direktori jail.d merupakan tempat untuk menyimpan file-file konfigurasi pengamanan service terpisah yang dibuat secara mandiri oleh pengguna Fail2ban,
Jika Anda ingin memisahkan file konfigurasi service yang ingin diamankan oleh Fail2ban agar tidak menumpuk dalam 1 file konfigurasi maka Anda dapat menyimpannya pada direktori tersebut.
Konfigurasi Pengamanan Service Menggunakan Fail2Ban pada Layanan VPS #
Dalam penjelasan kali ini Fail2ban akan dimanfaatkan untuk melakukan pengamanan terhadap serangan Brute Force ke service SSH.
- Silakan untuk melakukan backup terlebih dahulu file jail.conf yang berada pada direktori /etc/fail2ban dengan perintah sebagai berikut ini :
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Setelah Anda melakukan atau mengetikan perintah tersebut maka akan muncul file jail.local seperti gambar berikut.
- Selanjutnya silakan, Anda dapat membukannya menggunakan tools editor yang digunakan pada VPS seperti vim, vi atau nano, berikut contohnya :
Vi /etc/fail2ban/jail.local
- Setelah Itu akan muncul tampilan seperti berikut ini
Konfigurasi pada jail.conf atau jail.local ( jika ada ) digunakan untuk konfigurasi global yang artinya jika pada direktori jail.d terdapat konfigurasi file yang tidak memiliki konfigurasi ignoreip, bantime, findtime dan maxrerty maka file konfigurasi pada direktori jail.d akan menggunakan konfigurasi ignoreip, bantime, findtime dan maxrerty yang berada pada file jail.conf atau jail.local.
Untuk detail ignoreip, bantime, findtime dan maxrerty berikut detail penjelasannya :
Ignoreip: bagian ini dapat dilakukan pengisian untuk IP Address apa saja yang tidak akan dilakukan blokir oleh Fail2ban dalam artian whitelist, Anda dapat menambahkan IP Address yang Anda gunakan saat ini untuk mengakses layanan VPS Anda jika dibutuhkan.
Bantime: bagian ini merupakan waktu blokir yang akan dilakukan oleh Fail2ban, Contoh :
- Jika Anda ingin menyesuaikan waktu blokir tersebut selama 1 detik maka Anda dapat menggunakan value 10 .
- Jika Anda ingin menyesuaikan waktu blokir tersebut selama selama 10 menit maka Anda dapat menggunakan value 10m .
- Jika Anda ingin menyesuaikan waktu blokir tersebut selama selama 1 jam maka Anda dapat menggunakan value 1h .
- Jika Anda ingin menyesuaikan waktu blokir tersebut selama selama 1 hari maka Anda menggunakan vale 1d .
- JikaAnda ingin melakukan blokir secara permanen maka Anda dapat menggunakan value -1 .
Maxretry: Bagian ini merupakan jumlah maksimal kegagalan otentikasi yang dicoba oleh client.
Findtime: bagian ini merupakan batasan waktu untuk kegagalan otentikasi yang dilakukan oleh client sesuai dengan konfigurasi Maxretry, apabila maxretry adalah 5 serta dalam 10 menit client telah melakukan kegagalan selama 5 kali dalam 10 menit maka client akan diblokir.
4. Setelah konfigurasi untuk pemblokiran telah dilakukan silakan lakukan save konfigurasi jail.local tersebut.
Selanjutnya akan dilakukan pembuatan konfigurasi khusus untuk detail service yang diamankan oleh Fail2ban pada direktori /etc/fail2ban/jail.d, berikut detailnya.
touch /etc/fail2ban/jail.d/[nama_service].local && chmod +x /etc/fail2ban/jail.d/[nama_service].local
Contoh jika Anda ingin mengamankan service SSH pada layanan Anda :
touch /etc/fail2ban/jail.d/sshd.local && chmod +x /etc/fail2ban/jail.d/sshd.local
Maka nantinya akan muncul file yang telah dibuat tersebut pada direktori /etc/fail2ban/jail.d, berikut detailnya :
- Selanjutnya silakan untuk mebuka file yang telah dibuat tersebut, dengan perintah sebagai berikut ini :
vi /etc/fail2ban/jail.d/[nama_service].local
- Selanjutnya Anda perlu melakukan konfigurasi pada file tersebut berikut ini merupakan contoh konfigurasi yang telah kami buat untuk pengamanan SSH.
Berikut kami berikan penjelasan mengenai konfigurasi yang dibuat tersebut :
Bagian [sshd] : merupakan penamaan aplikasi atau service yang akan diamankan oleh Fail2ban.
Bagian enable : konfigurasi untuk menentukan apakah aturan atau rule yang telah dikonfigirasi tersebut dijalankan atau tidak oleh Fail2ban, apabila Anda ingin mengaktfkan rule untuk pengamanan service tersebut maka Anda dapat menggunakan value true namun jika tidak Anda dapat menggunakan value false.
Bagian port : konfigurasi untuk menentukan port service yang akan diamankan oleh Fail2ban, jika sebelumnya Anda ingin mengamankan SSH maka dapat menggunakan port 22.
Bagian logpath : konfigurasi untuk menetukan lokasi log yang akan dilakukan filter oleh Fail2ban, secara umum untuk lokasi file log berada pada direktori /var/log .
Lalu jika sebelumnya Anda ingin mengamankan SSH maka untuk log ini memiliki perbedaan lokasi untuk sistem operasi yang digunakan, apabila Anda menggunakan sistem operasi Debian atau Ubuntu maka untuk lokasi log SSH adalah /var/log/auth.log namun untuk sistem operasi berbasis CentOS atau RHEL maka untuk lokasi adalah /var/log/secure .
Bagian Bantime: bagian ini merupakan waktu blokir yang akan dilakukan oleh Fail2ban, Contoh :
- Jika Anda ingin menyesuaikan waktu blokir tersebut selama 1 detik maka Anda dapat menggunakan value 10 .
- Jika Anda ingin menyesuaikan waktu blokir tersebut selama selama 10 menit maka Anda dapat menggunakan value 10m .
- Jika Anda ingin menyesuaikan waktu blokir tersebut selama selama 1 jam maka Anda dapat menggunakan value 1h .
- Jika Anda ingin menyesuaikan waktu blokir tersebut selama selama 1 hari maka Anda menggunakan vale 1d .
- Jika Anda ingin melakukan blokir secara permanen maka Anda dapat menggunakan value -1
Bagian Maxretry: Bagian ini merupakan jumlah maksimal kegagalan otentikasi yang dicoba oleh client.
Bagian Findtime: bagian ini merupakan batasan waktu untuk kegagalan otentikasi yang dilakukan oleh client sesuai dengan konfigurasi Maxretry, apabila maxretry adalah 5 serta dalam 10 menit client telah melakukan kegagalan selama 5 kali dalam 10 menit maka client akan diblokir.
- Selanjutnya silakan simpan konfigurasi yang telah dilakukan.
- Setelah konfigurasi telah dilakukan silakan untuk aktifkan service Fail2ban dengan perintah sebagai berikut :
service fail2ban start
- Silakan untuk melakukan perintah berikut untuk memastikan apakah Fail2ban telah aktif dan melihat list konfigurasi yang telah ditambahkan :
fail2ban-client status
Nantinya akan muncul tampilan sebagai berikut bahwa saat ini konfigurasi sshd.local telah aktif.
Melihat Log aktivitas Fail2ban dan mengetahui IP Address yang dilakukan Ban #
Setelah dilakukannya instalasi dan dipastikan service Fail2ban active serta telah dilakukan konfigurasi, untuk selanjutnya Anda dapat menggunakan perintah berikut untuk melihat IP Address apa saja yang dilakukan Blokir.
zgrep ‘Ban’ /var/log/fail2ban.log*
Maka nantinya akan muncul IP Address yang dilakukan blokir oleh Fail2ban, seperti gambar berikut ini.
Jika Anda ingin menemukan log nya secara spesifik berdasarkan IP Address Anda dapat menggunakan perintah berikut :
zgrep ‘IP Address’ /var/log/fail2ban.log*
Melakukan Pembukaan Blokir Fail2Ban terhadap IP Address #
Jika Anda ingin melakukan pembukaan blokir maka Anda dapat menggunakan perintah berikut ini :
fail2ban-client set [nama_list] unbanip [IP Address ]
Contoh sebagai berikut :
fail2ban-client set sshd unbanip 127.0.0.1
Selanjutnya Anda dapat melakukan pengecekan kembali melalui log dengan menggunakan perintah berikut untuk memastikan IP Address apa saja yang telah dilakukan pembukaan pemblokiran:
zgrep ‘Unban’ /var/log/fail2ban.log*
Nantinya akan muncul log bahwa IP Address yang Anda lakukan pembukaan blokir telah dilakukan Unban oleh Fail2ban.
Sama seperti sebelumnya jika Anda ingin menemukan log nya secara spesifik berdasarkan IP Address Anda dapat menggunakan perintah berikut :
zgrep ‘IP Address’ /var/log/fail2ban.log*
Itulah beberapa cara untuk melakukan pengamanan pada VPS dengan memanfaatkan aplikasi Fail2ban.
Demikian Instalasi dan Konfigurasi Fail2Ban Sebagai Pengamanan Pada VPS, untuk konfigurasi, instalasi, dan panduan yang lainnya Anda bisa melihat lebih lengkap pada Basis Pengetahuan kami melalui tautan berikut ini.
CloudKilat menyediakan layanan server, hosting, dan layanan tambahan lainnya yang memiliki performa handal. Layanan tersebut juga didukung oleh tim support Support yang siap untuk melayani Anda 24/7. Jika Anda mengalami kendala teknis atau kendala yang lainnya bisa menghubungi tim support kami melalui email dengan alamat: info@cloudkilat.com atau juga bisa membuka tiket melalui Portal Client Area CloudKilat.