Stop Bruteforce Attack With Fail2ban

Hi All,

Hari ini saya akan membahas tentang menghentikan serangan bruteforce pada server anda. Pada tulisan kali ini saya akan menggunakan Centos 6.x sebagai OS dengan virtual platform menggunakan VMware. Bagi anda yang belum mengetahui apa itu bruteforce attack anda bisa mengunjungi link ini.

Ok, kita langsung saja mulai, beberapa hal yang perlu anda siapkan:

  1. Koneksi internet (installasi via yum)
  2. Burjo, gorengan dan secangkir milo hangat.

Langkah pertama yang kita butuhkan adalah menginstal epel-repo. Saya sangat menyarankan menggunakan repo ini karena bagi saya repo ini lumayan cukup lengkap untuk kebutuhan library ataupun aplikasi yang ingin anda install pada server anda. Untuk instalasi repo ini anda bisa menggunakan rpm dengan rpm file yang tentu sudah harus anda unduh atau bisa menggunakan perintah yum install epel-release .

Install epel-repoSetelah kita selesai melakukan instalasi epel-repo, selanjutnya kita dapat langsung melakukan instalasi Fail2ban menggunakan perintah yum install fail2ban.

Install fail2ban

install fail2ban-2Setelah proses instalasi selesai, hal yang kita perlukan selanjutnya adalah melakukan konfigurasi fail2ban itu sendiri sehingga fail2ban dapat bekerja untuk melakukan pemblokiran pada serangan bruteforce. Beberapa file yang perlu kita perhatikan untuk saat ini adalah file jail.conf dan file fail2ban.conf. Dua buah file ini terletak pada directory /etc/fail2ban/. OK, kita ubah konfigurasi pada default fail2ban log dimana fail2ban menggunakan syslog file untuk menulis log. Gunakan text editor kesayangan untuk mengubah konfigurasi fail2ban.conf. Disini saya akan larikan log file ke /var/log/fail2ban.log

fail2ban.confSetelah kita merubah konfigurasi file tersebut, jangan lupa lakukan penyimpanan konfigurasi. Selanjutnya kita beralih pada file jail.conf dimana dalam file ini kita bisa melakukan konfigurasi serangan bruteforce apa saja yang akan kita blokir. Ada beberapa parameter yang perlu diperhatikan seperti bantime dan lainnya. Untuk awal kita ubah konfigurasi bantime dan backend yang akan kita gunakan pada fail2ban. Bantime adalah berapa lama IP si penyerang akan kita blokir. Pada konfigurasi saya melakukan blokir selama 1 hari (86400 detik) dan menggunakan gamin sebagain backend saya.

backend and bantimeSetelah dua hal ini kita konfigurasi maka kita lanjut ke konfigurasi jenis serangan apa saja yang akan kita blokir. Untuk tulisan ini saya hanya akan melakukan blokir pada jenis serangan bruteforce ke SSH login. Letak file konfigurasi masih sama yaitu dalam /etc/fail2ban/jail.conf. File jail.conf ini nantinya akan memanggil file-file di dalam direktori filter.d/ dimana file ini berisi regex yang akan membaca log file untuk memilih IP mana saja yang masuk kriteria serangan dan akan di blokir dengan fail2ban.

ssh Setelah kita aktifkan service apa yang akan kita proteksi (dengan menambahkan enabled = true parameter ) dan melakukan penyimpanan hasil konfigurasi kita, langsung kita dapat menjalankan fail2ban dengan perintah service fail2ban start atau /etc/init.d/fail2ban start . Jangan lupa gunakan chkconfig agar fail2ban selalu berjalan ketika server setelah mengalami reboot atau mati.

start fail2banSetelah berhasil kita jalankan maka akan ada rule(s) baru di dalam iptables di server kita. Coba kita lihat isi dari log file tadi yang kita buat di dalam direktori /var/log/fail2ban.log

fail2ban logJika fail2ban tidak berjalan dengan seharusnya kita bisa melihat isi dari log file tersebut.

Untuk melakukan pengecekan regex apakah regex kita berjalan dengan baik melakukan penyaringan log atau tidak kita bisa menggunakan perintah fail2ban-regex [spasi] lokasi-direktori-log-file-service [spasi] lokasi-filter. regex test

Ok sampai disini selesai sudah instalasi dan konfigurasi dasar fail2ban untuk melakukan brokir serangan bruteforce. Kita bisa melakukan eksplorasi lebih jauh tentang fail2ban ini dengan mencoba regex baru. Sudah habis juga burjo dan camilan saya.

Selamat mencoba.

nash-notesPracticeDecember 6, 20150 comments0

Hey, like this post? Why not share it with a buddy?

Leave a Comment

Your email address will not be published. Required fields are marked *