Owncloud adalah aplikasi penyimpanan file yang berbasis web dibuat dengan bahasa PHP.
Selama ini kita tentu nya banyak tahu beragam service yg menyediakan layanan semacam ini seperti dropbox, box.net, googledrive dll.

Beberapa fitur owncloud yang cukup menarik diantaranya:

  • Dapat diinstall di server pribadi/perusahaan sehingga data-data lebih aman dan kontrol 100% ada di tangan sang administrator.
  • Fitur syncronisasi dengan berbagai device baik itu contact maupun calendar.
  • Builtin dengan document viewer seperti PDF viewer, ODF viewer dan media player (plugin) dan banyak plugin tambahan yg bisa kita enable.
  • Fitur data enkripsi sehingga data lebih secure walaupun file bisa di akses di luar aplikasi owncloud, akan tetapi data tidak akan bisa terbaca.
  • Dan yang paling penting It’s FREE 🙂 dll.

Proses installasi nya pun relatif mudah hanya cukup mengenable apache/httpd dan mysqld lalu create database selanjutnya akan dipandu oleh wizard ketika pertama kali akses ke web interfacenya.
Baiklah sesuai dengan judul tulisan ini yaitu bagaimana cara memprotek login page dari percobaan login yang berulang-ulang gagal.
langsung saja saya anggap owncloud sudah up and running secara normal kemudian install fail2ban bisa dengan kompail sendiri dari source atau dengan menggunakan paket manager yg tersedia di distro masing-masing.
Khusus untuk slackware bisa mengunduhnya di slackbuilds.org dan sesuaikan dengan versi slackwarenya.

Konfigurasi Fail2ban:
Permasalah yang ada untuk menconfigurasikan fail2ban di owncloud ini yaitu LOG file.
Di owncloud ini semua log sudah di hardcoded di dalam database sedangkan fail2ban membutuhkan log-log yang berbentuk plain text untuk bisa mendeteksi regular expresion dari filter yang sudah kita defined.
Solusinya adalah dengan mengedit berkas index.php di root directory owncloud.
index-php

atau bisa dengan mengunduhnya disini Index.php
Setelah itu kita buat direktory untuk custom log file dari owncloud dan berikan ownership untuk user yang menjalankan apache/httpd

# mkdir -p /var/log/owncloud/failed.log
# chown -R www-data:www-data /var/log/owncloud

Tambahkan baris berikut diberkas /etc/fail2ban/jail.conf

 [owncloud]

 enabled = true
 port  = 80,443
 filter = owncloud
 logpath = /var/log/owncloud/failed.log
 maxretry = 5

Buat berkas baru di /etc/fail2ban/filter.d/owncloud.conf
masukan baris dibawah ini kedalamnya

[Definition]

 # Option: failregex
 # Filter Ban in /var/log/owncloud/failed.log
 failregex = $

 # Option: ignoreregex
 # Notes.: regex to ignore. If this regex matches, the line is ignored.
 # Values: TEXT
 #
 ignoreregex =  

Cobalah login salah beberapa kali kemudian check apakah regex yg kita setting sudah maching dengan failed.log yg dihasilkan oleh server

# fail2ban-regex /var/log/owncloud/failed.log '

Hapus log hasil test

# rm -f /var/log/owncloud/failed.log

Restart service fail2ban

# service fail2ban restart

Testing... Testing...
Monitor log fail2ban gunakan command dibawah ini

# tail -f /var/log/fail2ban.log

Kemudian coba login salah 5 kali berturut
jika muncul log seperti dibawah ini maka dipastikan anda tidak bisa mengakses login page lagi dan fail2ban yg kita setup sudah sukses.

2012-09-28 18:55:57,033 fail2ban.jail   : INFO   Jail 'owncloud' started
2012-09-29 10:02:39,557 fail2ban.actions: WARNING [owncloud] Ban 114.79.12.162

Untuk Unban IP yang sudah ter-banned gunakan command seperti ini

# iptables -D fail2ban-owncloud -s 114.79.12.162 -j DROP

Selamat mencoba bagi yang ingin mencoba 🙂
Salam.

Hapus log hasil test


Restart service fail2ban


Testing… Testing…
Monitor log fail2ban gunakan command dibawah ini


Kemudian coba login salah 5 kali berturut
jika muncul log seperti dibawah ini maka dipastikan anda tidak bisa mengakses login page lagi dan fail2ban yg kita setup sudah sukses.


Untuk Unban IP yang sudah ter-banned gunakan command seperti ini


Selamat mencoba bagi yang ingin mencoba 🙂
Salam.

Leave a Reply

Your email address will not be published. Required fields are marked *