Sebelumnya pastikan versi fail2ban nya ada di versi terbaru 0.11.2 (saat ini) karena cara yang saya lakukan ga bisa jalan di versi 0.9.3, silahkan update dulu fail2ban nya di github fail2ban. Berikut cara setup nya:

  1. Buka file /etc/mysql/my.cnf tambahkan
[mysqld]
#just add below line
log_error = /var/log/mysql/error.log

Lalu restart service mysql nya

  1. Buka file /etc/fail2ban/jail.local (ingat, jangan write di jail.conf karena tiap ada update akan kembali ke default), cari line mysqld-auth
[mysqld-auth]
enabled = true
port     = 3306
log-error = /var/log/mysql/error.log
backend  = %(mysql_backend)s
maxretry = 3
findtime = 1d
bantime = 4w

Lalu restart service fail2ban & saatnya test

  1. Coba login 3 kali dengan username & password yang ga ada di database

    Coba Login

    Coba Login

  2. Cek /var/log/mysql/error.log, keliatan ada user gagal 3 kali kawin login

    Log di error.log mysql, 3 Kali Gagal Login

    Log di error.log mysql, 3 Kali Gagal Login

  3. Cek log fail2ban, ada keterangan IP indihome tercinta saya di banned untuk remote mysql. Anda juga bisa melihat IP yang di blok menggunakan sudo fail2ban-client status mysqld-auth

    Log di fail2ban.log

    Log di fail2ban.log