Mengamankan sebuah service yang berada di server itu amatlah penting, apalagi server kita public dan siapa saja dapat mengaksesnya, dan yang paling rentan dalam isu hacking atau brutforce attack di VPS (Virtual Private Server) yaitu service ssh. Nah bagaimana cara mengamankan service ssh tersebut ?

Sangat banyak cara yang dapat dilakukan untuk mengamankan ssh, salah satunya pada tutorial kali ini kita akan mengamankan service ssh dengan menggunakan aplikasi yang cukup powerfull yaitu Fail2ban . Namun sebelum lanjut lebih jauh mengenai tutorial kali ini, mari kita berkenalan terlebih dahulu tentang apa sih itu Fail2ban ?

Fail2ban merupakan aplikasi Open Source (bebas) yang ditulis menggunakan bahasa python. Fail2ban dapat digunakan untuk mengamankan service yang berada di Server VPS dari serangan brutforce atau DDoS attack di Linux

Berikut ini merupakan skema dari cara kerja Fail2ban :

Gambar diatas mengibaratkan adanya seorang attacker yang sedang melakukan atau ingin melakukan serangan berupa brutforce password ssh VPS, namun sebelum si attacker melakukan serangan ke VPS maka ada di pengamanan dari Fail2ban yang berada di tengah – tengahnya

Fail2ban menetapkan berbagai rule untuk tembok keamanannya, dengan begitu, serangan tersebut di saring terlebih dahulu, jika memang serangan tersebut milik pribadi (pemilik VPS) yang tidak terindikasi abuse brutforce maka proses akses ssh akan di teruskan dan sebaliknya, jika ada proses yang kurang wajar dan melanggar rules yang telah ditetapkan oleh fail2ban maka proses akses ke VPS akan di blokir (banned) .

Oke, itu skema dari cara kerja fail2ban, selanjutnya mari kita bahas tentang bagaimana cara installasi Fail2ban di CentOS 7

Pertama, silakan remote server ssh Anda terlebih dahulu, Berikut contoh login ssh ke VPS

[email protected]:~$ ssh [email protected] 

Pada gambar diatas perhatikan kolom merah yang diberi tanda merah, sangat banyak percobaan login ke VPS kita, dengan fail2ban kita dapat meminimalisir hal tersebut.

Untuk melihat banyaknya percobaan gagal login tersebut Anda dapat menggunakan perintah berikut :

[[email protected] fail2ban]# grep "Failed password" /var/log/secure

Kedua, apabila Anda telah login ke VPS atau server Anda masing – masing, selanjutnya silakan update terlebih dahulu sistem operasi CentOS 7 Anda, dengan menggunakan perintah

[[email protected] ~]# yum update -y

Jika sudah selanjutnya, memasang repository epel di CentOS 7 dengan menjalankan perintah

[[email protected] ~]# yum install epel-release -y

Apabila telah selesai, berikutnya silakan install fail2ban dengan menjalankan baris perintah berikut :

[[email protected] ~]# yum install fail2ban -y

Silakan tunggu proses instalasi fail2ban sampai selesai, Jika sudah barulah kita dapat memastikan fail2ban telah aktif dan dapat kita gunaka, berikut perintah yang dapat digunakan

[[email protected] ~]# systemctl start fail2ban
[[email protected] ~]# systemctl enable fail2ban
Created symlink from /etc/systemd/system/multi-user.target.wants/fail2ban.service to /usr/lib/systemd/system/fail2ban.service.
[[email protected] ~]# 
[[email protected] ~]# systemctl status fail2ban

Oke saat ini fail2ban telah berhasil di install,

Ketiga, selanjutnya melakukan konfigurasi untuk mengamankan ssh dari serangan brutforce misalnya, silakan copy file default fail2ban yaitu jail.conf menjadi jail.local untuk direktorinya berada di /etc/fail2ban/ . seperti berikut contohnya

Jika sudah sebelum kita lanjut ke bagaimana melakukan konfigurasinya ada baiknya kita mengetahui terlebih dahulu komponen – komponen yang wajib kita ketahui, diantaranya adalah

  • Ignore IP : Digunakan untuk me-whitelist IP tertentu, jadi teman – teman dapat menentukan IP mana saja yang tidak akan dan bakal di blokir (banned) sama si fail2ban, setiap penambahan IP dipisahkan dengan spasi.
  • Bantime : Digunakan untuk menentukan lama IP attacker (penyerang) yang telah terblokir (banned), dari server apabila melanggar rule yang telah ditentukan sebelumnya. Waktu yang digunakan bantime yaitu second (detik), secara default bantime yang ditentukan yaitu 600 detik (10 menit)
  • Maxretry : Digunakan untuk mengatur jumlah percobaan yang dapat dilakukan oleh seseorang attacker untuk melakukan brute force, sebelum IP tersebut di blokir (banned) oleh fail2ban. Secara default di CentOS 7 fail2ban akan memblokir 5 kali percobaan (fail).
  • Findtime : Yaitu waktu yang ditentukan oleh Fail2ban apakah IP tersebut masuk dalam kategori blokir (banned) atau tidak. Hitungan yang digunakan sama dengan bantime yaitu second (detik) defaultnya 600 (10 menit)

Silakan buka konfigurasi jail.local untuk melanjutkan konfigurasinya, berikut file komponen yang disebutkan diatas yang default fail2ban

Untuk tutorial kali ini saya akan menggunakan skema dengan komponen, sebagai berikut :

  • Bantime : -1
  • Findtime : 200
  • Maxretry : 3

Pada penentuan komponen diatas terdapat Bantime = -1 .

Maksud dari -1 yaitu melakukan pemblokiran (banned) ip penyerang secara permanent.

Berikutnya, silakan scroll kebawah carilah rules untuk mengamankan service ssh seperti pada gambar dibawah ini

Gambar diatas merupakan jails atau rule ssh secara default dari fail2ban, untuk mengaktifkan rules tersebut Anda hanya perlu menambahkan perintah enabled = tru seperti pada gambar dibawah ini

Jika sudah, silakan simpan konfigurasinya

Keempat, silakan reload dan lihat kembali status service fail2ban Anda menggunakan perinah

[[email protected] fail2ban]# systemctl reload fail2ban
[[email protected] fail2ban]# systemctl status fail2ban

Untuk memastikan apakah jail ssh kita telah Aktif dapat dilakukan dengan cara menjalankan perintah

[[email protected] fail2ban]# fail2ban-client status 

Kelima, berikutnya mari kita mencoba melakukan pengetesan dengan cara logn ke server menggunakan ssh dengan menginputkan pasword yang salah,

Sebelumnya saya mengisikan maxtery = 3 yang artinya apabila 3 kali login ssh gagal maka IP saya akan di baca oleh rule si fail2ban dan akan di blokir (banned)

Nah untuk melihat ip mana yang sedang melakukan percobaan login ke server lebih dari 3 kali dan IP tersebut ke banned oleh fail2ban dapat dilihat dengan menjalankan perintah

[[email protected] fail2ban]# fail2ban-client status sshd

Apabila Anda ingin melakukan unbanned ip terhadap ip yang telah ke banned dapat dilakukan dengan menjalankan perintah

[[email protected] fail2ban]# fail2ban-client set sshd unbanip 10.10.xx.xx

Sedangkan untuk melihat log dari fail2ban dapat dilakukan dengan cara menjalankan baris perintah berikut :

[[email protected] fail2ban]# tail -f /var/log/fail2ban.log 

Itulah cara singkat dan mudah untuk mengamakan service ssh menggunakan fail2ban.

Selamat mencoba semoga tutorial ini bermanfaat bagi kita semua 🙂