Untuk menginstall Fail2Ban di CentOS 7, kita harus menginstall EPEL (Extra Packages for Enterprise Linux) repository terlebih dahulu. EPEL ini memuat paket tambahan untuk semua versi CentOS, yang dimana ada paket Fail2Ban didalamnya.
Perintah-perintah linux dibawah hanya bisa dilakukan oleh user root
yum install epel-release
yum install fail2ban fail2ban-systemd
Konfigurasi pengaturan untuk Fail2Ban
Setelah terinstall, kita harus mengonfigurasikan dan mengostumisasi software dengan konfigurasi file jail.local. File jail.local ini akan digunakan sebagai pengaturan utama.
Buat salinan file jail.conf dan simpan dengan nama jail.local :
cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Buka file jail.local dan edit menggunakan Nano dengan perintah :
nano /etc/fail2ban/jail.local
Kode file ini berisikan beberapa baris kode yang akan dieksekusi :
[DEFAULT] # # MISCELLANEOUS OPTIONS # # "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not # ban a host which matches an address in this list. Several addresses can be # defined using space separator. ignoreip = 127.0.0.1/8 # External command that will take an tagged arguments to ignore, e.g. <ip>, # and return true if the IP is to be ignored. False otherwise. # # ignorecommand = /path/to/command <ip> ignorecommand = # "bantime" is the number of seconds that a host is banned. bantime = 600 # A host is banned if it has generated "maxretry" during the last "findtime" # seconds. findtime = 600 # "maxretry" is the number of failures before a host get banned. maxretry = 5
Ignoreip digunakan untuk mengecualikan IP yang tidak akan diblok. Jika memuat beberapa IP yang berbeda, isi dengan separator tombol space. Parameter ini digunakan untuk menyimpan ip address kamu agar tidak diblok oleh sistem.
Bantime ini adalah parameter yang digunakan untuk menset durasi dalam satuan detik untuk IP yang sedang diblokir (diban).
Findtime adalah parameter yang digunakan untuk mengcek host akan diban atau tidak. Ketika host mulai menyerang secara intensif, maka ip akan di banned.
Maxretry adalah parameter yang digunakan untuk melimit jumlah percobaan login dari sebuah host, jika melewati batas, maka ip akan di banned.
Buat file jail untuk memproteksi SSH
nano /etc/fail2ban/jail.d/sshd.local
tambah beberapa kode didalam file tersebut :
[sshd]
enabled = true
port = ssh
#action = firewallcmd-ipset
logpath = %(sshd_log)s
maxretry = 5
bantime = 86400
Parameter enabled harus diset true, untuk memulai proteksi, untuk menonaktifkan proteksi set ke false.
Parameter action digunakan untuk memblokir IP Address sesuai filter yang tersedia dari /etc/fail2ban/action.d/firewallcmd-ipset.conf.
Parameter port diisi sesuai dengan port ssh kamu sekarang, jika tetap menggunakan port 22, tidak perlu diganti value nya.
Parameter logpath ialah tempat file log akan dsimpan, file log ini ialah hasil scan Fail2Ban
Maxretry digunakan untuk mengset maksimum login untuk login yang passwordnya salah (failed).
Parameter Bantime digunakan untuk menset durasi dalam satuan detik untuk IP yang sedang diban.
Jalankan service Fail2Ban
Jika kamu belum menjalankan CentOS Firewall, jalankan dengan
systemctl enable firewalld systemctl start firewalld
Eksekusikan perintah ini untuk menjalankan software Fail2Ban
systemctl enable fail2ban systemctl start fail2ban
Cek Log untuk Melihat Hasilnya
Perintah dibawah digunakan untuk mengecek dimana ada nya failed attempts yang ingin login ke server via port ssh.
cat /var/log/secure | grep 'Failed password'
Contoh outputnya ialah :
Apr 4 17:05:12 htf sshd[4287]: Failed password for root from 108.61.157.25 port 23121 ssh2 Apr 4 17:05:15 htf sshd[3154]: Failed password for root from 108.61.157.25 port 14486 ssh2 Apr 4 17:05:16 htf sshd[3154]: Failed password for root from 108.61.157.25 port 24157 ssh2 Apr 4 17:05:18 htf sshd[3154]: Failed password for root from 108.61.157.25 port 24157 ssh2
Cek IP mana saja yang telah dibanned oleh Fail2Ban
Perintah dibawah digunakan untuk melihat ip mana saja yang telah diban oleh Fail2ban
iptables -L -n
Check the Fal2Ban Status
Eksekusikan perintah dibawah untuk melihat status program Fail2Ban:
fail2ban-client status
Hasilnya kurang lebih
[root@kenceng ]# fail2ban-client status Status |- Number of jail: 1 `- Jail list: sshd
Membuka IP yang telah diban
Cara membuka IP yang telah di ban ialah dengan mengeksekusikan perintah ini :
fail2ban-client set sshd unbanip IPADDRESS
Jika kamu tidak bisa dan tidak mempunyai waktu untuk mengerjakan ini, kamu bisa memesan salah satu layanan kami Kenceng Solusindo VPS dan menanyakan kepada tim support kami terkait Instalasi Fail2Ban pada CentOS 7 dan menginstallkannya free of charge untuk kamu 😀