Fail2Ban untuk melindungi Brute Force Login SSH

By | September 20, 2024
249 Views

SSH adalah protokol jaringan kriptografi yang sering digunakan untuk melakukan komunikasi data secara aman dan menggunakan antarmuka baris perintah(command line). SSH juga menjadi salah satu target incaran peretas dalam melakukan aksi brute force untuk bisa mendapatkan user atau password yang benar dan melakukan remote ke server korban dari jarak jauh. Lalu, bagaimana cara mengamankan SSH VPS?

Install – Untuk install, seperti biasa, kalian bisa gunakan perintah

apt-get install fail2ban

Setelah proses installasi selesai, Kamu tidak di sarankan untuk mengedit file konfigurasi default pada /etc/fail2ban/jail.conf.  Tapi yang paling aman itu dengan membuat sebuah file bernama jail.local yang nantinya akan berisi rules yang Kamu buat sesuai kebutuhan.

Selain itu alasan utama dari harusnya membuat file jail.local ini adalah agar jika sewaktu-waktu package dari fail2ban melakukan update ke versi yang lebih baru, konfigurasi Kamu akan tetap aman dan tidak tertimpa oleh package update tersebut.

kita tambahkan konfigurasi secara local dengan editor nano

nano /etc/fail2ban/jail.local

isi dengan perintah berikut dengan arti jika 3 kali gagal login, maka IP tersebut akan ditolak

[sshd]
#mode   = normal
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
bantime = -1
#banaction = ufw

Bila kalian kuatir malah terblok sendiri, kalian bisa ubah perintah nya menjadi

bantime = 3600

hitungan dalam detik artinya jika terblokir maka untuk release otomatis tunggu 1 jam. Setelah itu, jangan lupa restart service

sudo systemctl restart fail2ban

Kalian bisa coba dengan IP yang lain untuk mencoba nya. Percobaan salah password sebanyak tiga kali telah dilakukan dan pada percobaan ke empat, mendapatkan response port 22: Connection refused, yang artinya permintaan akses ssh ditolak.

Last login: Fri Sep 20 15:09:36 on ttys000
(base) user@MacBook-Air ~ % ssh root@109.174.221.160
root@109.174.221.160's password: 
Permission denied, please try again.
root@109.174.221.160's password: 
Permission denied, please try again.
root@109.174.221.160's password: 
root@109.174.221.160: Permission denied (publickey,password).

(base) user@MacBook-Air ~ % ssh root@109.174.221.160
root@109.174.221.160's password: 
Permission denied, please try again.
root@109.174.221.160's password: 
Permission denied, please try again.
root@109.174.221.160's password: 
root@109.174.221.160: Permission denied (publickey,password).

(base) user@MacBook-Air ~ % ssh root@109.174.221.160
ssh: connect to host 109.174.221.160 port 22: Connection refused
(base) user@MacBook-Air ~ % 

Kita cek IP saja yang kena blacklist

fail2ban-client status sshd

hasilnya

Status for the jail: sshd
|- Filter
|  |- Currently failed:	5
|  |- Total failed:	31
|  `- File list:	/var/log/auth.log
`- Actions
   |- Currently banned:	4
   |- Total banned:	4
   `- Banned IP list:	31.220.88.18 103.157.218.146 112.215.133.219 112.215.167.79

ada 4 yaitu

  1. 31.220.88.18
  2. 103.157.218.146
  3. 112.215.133.219
  4. 112.215.167.79
See also  Install Metasploit di Ubuntu dan Modul Brute Force

Berikut ini beberapa perintah yang dapat digunakan secara manual pada Fail2ban:

$ sudo fail2ban-client set sshd unbanip <ip_yang_akan_dirilis>
$ sudo fail2ban-client set sshd banip <ip_yang_akan_dibanned>
$ sudo tail -f /var/log/auth.log //monitoring sshd
$ sudo tail -f /var/log/fail2ban.log //monitoring action layanan