Translate








Rabu, 05 Maret 2014

Melindungi ssh dari Brute Force Attacks dengan fail2ban

Ssh merupakan service yang layak untuk memperoleh pengamanan ketat dalam sebuah server. Karena ssh merupakan kunci yang sangat penting untuk masuk kedalam sistem linux, dimana sangat memungkinkan untuk mengexploitasi sistem ketika ada "intruder" yang berhasil masuk melalui ssh tersebut. Disini saya akan menambahkan salah satu layer pengamanan ssh, yakni dengan menggunakan tool fail2ban.

Cara kerja tool ini fokus pada percobaan login user yang dibaca melalui file log. Apabila ada user yang gagal melakukan login selama beberapa kali (intensitas bisa kita tentukan), sistem akan melakukan ban terhadap alamat IP asal dimana user tersebut melakukan login. Dengan mekanisme tersebut, akan berguna untuk meminimalisir Brute Force Attack yang dilakukan oleh intruder.

Tutorial ini akan dibagi kedalam 3 tahap, yakni:
1. Instalasi fail2ban (dari Repositori EPEL)
2. Konfigurasi
3. Pengetesan

Untuk instalasi paket fail2ban sudah dilakukan pada artikel sebelumnya. Sekarang kita fokus pada konfigurasi fail2ban.

Paket yang digunakan yakni versi 0.8.11

[root@SRIWIJAYA ~]# rpm -qa | grep fail2ban
fail2ban-0.8.11-2.el6.noarch


File konfigurasi utama yakni jail.conf yang terdapat pada direktori /etc/fail2ban. Untuk melakukan konfigurasi, kita backup dulu file tersebut untuk berjaga-jaga apabila terjadi kegagalan konfigurasi.

[root@SRIWIJAYA ~]# cd /etc/fail2ban/
[root@SRIWIJAYA fail2ban]# cp jail.conf jail.backup
[root@SRIWIJAYA fail2ban]# ls
action.d  fail2ban.conf  filter.d  jail.backup  jail.conf


Buka file konfigurasi, lalu lakukan editing

[root@SRIWIJAYA ~]# nano /etc/fail2ban/jail.conf


# IP Address yang diabaikan oleh fail2ban (diizinkan login) 
ignoreip = 192.168.78.73/24

# Lama waktu ban (detik)
bantime  = 3600

# Waktu dimana kita harus segera login (detik)
findtime  = 900

# Jumlah percobaan login yang diizinkan
maxretry = 5
 
# Service ssh yang kita proteksi 
[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=root, sender=fail2ban@sriwijaya.com, send$
logpath  = /var/log/secure
maxretry = 5
 

Jalankan service fail2ban :
[root@SRIWIJAYA ~]# service fail2ban start



Pengetesan 



Login dari  IP lain :
Dalam hal ini coba login dari IP 192.168.78.54, dan masukkan password yang salah sebanyak 5 kali. Maka IP tersebut akan ter-Ban secara otomatis.

Berikut Notifikasi Email yang masuk:
[root@SRIWIJAYA ~]# cat /var/spool/mail/root


From fail2ban@sriwijaya.com  Mon Mar  3 19:19:18 2014
Return-Path: 
X-Original-To: root
Delivered-To: root@SRIWIJAYA.localdomain
Received: by SRIWIJAYA.localdomain (Postfix, from userid 0)
        id 95F4F6160F; Mon,  3 Mar 2014 19:19:18 +0700 (WIB)
Subject: [Fail2Ban] SSH: banned 192.168.78.54 from SRIWIJAYA
Date: Mon, 03 Mar 2014 12:19:18 +0000
From: Fail2Ban 
To: root@SRIWIJAYA.localdomain
Message-Id: <20140303121918 data-blogger-escaped-.95f4f6160f="" data-blogger-escaped-localdomain="">

Hi,

The IP 192.168.78.54 has just been banned by Fail2Ban after
5 attempts against SSH.


Here are more information about 192.168.78.54:



Regards,

Fail2Ban


Potongan Log dari /var/log/secure :
[root@SRIWIJAYA ~]# cat /var/log/secure


Mar  3 19:18:29 SRIWIJAYA sshd[2812]: Failed password for root from 192.168.78.54 port 56019 ssh2
Mar  3 19:18:29 SRIWIJAYA sshd[2813]: Connection closed by 192.168.78.54
Mar  3 19:18:29 SRIWIJAYA sshd[2812]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.78.54  user=root
Mar  3 19:19:10 SRIWIJAYA unix_chkpwd[2823]: password check failed for user (root)
Mar  3 19:19:10 SRIWIJAYA sshd[2821]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.78.54  user=root
Mar  3 19:19:13 SRIWIJAYA sshd[2821]: Failed password for root from 192.168.78.54 port 56023 ssh2
Mar  3 19:19:15 SRIWIJAYA unix_chkpwd[2824]: password check failed for user (root)
Mar  3 19:19:18 SRIWIJAYA sshd[2821]: Failed password for root from 192.168.78.54 port 56023 ssh2
You have new mail in /var/spool/mail/root


Dengan percobaan diatas, maka IP Address 192.168.78.54 telah ter-Ban, dan tidak akan bisa melakukan Login. Untuk lebih jauh, silahkan kunjungi Manual Perintah fail2ban yang bisa dicoba.

Notes:
*) Pada file konfigurasi [ssh-iptables], bisa diubah alamat email untuk notifikasi, misalnya email external.
*) File log bisa dipisahkan dengan mengubah direktif "logpath" pada file konfigurasi. Misalnya dengan membuat file log /var/log/fail2ban.log.


Like the Post? Do share with your Friends.

2 komentar:

IconIconIconFollow Me on Pinterest

Blogger news

Blogroll

What's Hot