Mengamankan SSH dengan Fail2ban – Fail2ban adalah salah satu aplikasi yang berfungsi untuk mencegah serangan brute force, serangan brute force itu sendiri merupakan metode untuk meretas password dengan cara mencoba login berkali-kali dengan beberapa kombinasi password yang ada di wordlist, fail2ban dapat mengatasi hal ini dengan memblokir IP yang melakukan brute force, selain itu fail2ban juga memblokir aktifitas mencurigakan lainnya.
Pada kesempatan kali ini saya akan membahas cara mengamankan ssh dengan fail2ban
Install fail2ban
# apt-get install fail2ban
semua konfigurasi terletak di /etc/fail2ban, untuk konfigurasi utama terletak di /etc/fail2ban/jail.conf, salin dile konfigurasi default ke file konfigurasi baru
# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Konfigurasi fail2ban
Buka file konfigurasi baru dengan editor nano atau vim
# nano /etc/fail2ban/jail.local
Lihat pada bagian [Default], pada bagian ini terdapat konfigurasi dasar fail2ban
[DEFAULT] # "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 192.168.10.3/24 # 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 = 3 # # Destination email address used solely for the interpolations in # jail.{conf,local} configuration files. destemail = [email protected]
ignoreip : ip address yang di isikan disini akan diabaikan karena masuk whitelist, isikan ip address yang biasa anda gunakan untuk meremote server dengan SSH, anda dapat menambahkan beberapa IP disini, pisahkan IP dengan spasi.
findtime : ini adalah waktu yang diijinkan untuk sebuah IP atau host dalam detik, secara default 600 detik yang berarti 10 menit, anda dapat menambahnya sesuai keinginan anda.
maxretry : percobaan yang bisa dilakukan jika terjadi gagal login, secara default hanya bisa 3 kali percobaan, jika gagal login 3x berturut-turut, maka akan diblokir oleh fail2ban.
destmail : alamat email tujuan yang digunakan untuk melaporkan jika ada aktifitas mencurigakan.
Konfigurasi Layanan
Secara default, fail2ban berisi set filter yang telah ditetapkan untuk berbagai layanan. Jadi Anda tidak perlu memasukkan entri manual dalam file konfigurasi. Yang perlu Anda lakukan adalah hanya mengubah nilai-nilai aktif atau tidak, layanan masing-masing secara otomatis diawasi oleh fail2ban.
Berikut adalah contoh output pada bagian SSH dan telah diaktifkan secara default, jadi anda tidak perlu mengubahnya
[ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6
Restart fail2ban
# /etc/init.d/fail2ban restart
Anda dapat memverifikasi konfigurasi yang ditambahakan fail2ban di iptables, dengan perintah
# iptables -L
Chain INPUT (policy ACCEPT) target prot opt source destination fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain fail2ban-ssh (1 references) target prot opt source destination RETURN all -- anywhere anywhere
Untuk mengecek log, gunakan perintah
# cat /var/log/fail2ban.log
Semoga bermanfaat