Minggu, 17 November 2013

Plugin Keamanan Wordpress

Instalasi Wordpress standar tidaklah cukup aman untuk sebuah website dengan banyak pengunjung atau sebuah website yang penting seperti website milik pemerintah. Biasanya website-website tersebut menjadi daya tarik tersediri bagi orang jahat atau sekedar iseng untuk melakukan penetrasi illegal.
Sudah banyak plugin tersedia untuk mengamankan Wordpress Anda. Di antarnya adalah sebagai berikut:


  1. rename-wp-login. Sesuai namanya, plugin ini berfungsi untuk menyamarkan URL halaman login dan halaman admin.
  2. WorldFence. Plugin ini melakukan scanning IP pengunjung dan bisa dimanfaatkan sebagai firewall. Cuma harap diingat, plugin ini kurang baik bagi kecepatan database karena melakukan banyak aktifitas baca/ tulis database sehingga mengganggu kecepatan loading halaman website.
  3. reCAPTCHA. Ini adalah captcha resmi yang didukung penuh oleh Google. Agak ribet ketika setup awal tapi hasilnya dapat diandalkan karena sangat efektif menangkal spam.
  4. Better WP Security. Plugin dengan fitur lengkap untuk mengamankan Wordpress Anda. 
Tentu saja, berbagai plugin keamanan di atas tidak menjamin 100% website Anda bebas dibobol. Hal penting adalah rajin melakukan update baik wordpress maupun plugin yang aktif. 

Jumat, 15 November 2013

Membuat Tempat Untuk Pengembangan atau Testing Website

Anda yang memiliki website yang sudah live tentu sering atau pernah melakukan perubahan pada website/ blog berupa nambah plugin, template dan lain-lain. Tentu kita tidak ingin website yang sudah berjalan normal ini menjadi acak-acakan gara-gara kita salah pencet atau salah setting baik sengaja maupun tidak.
Untuk menghindarinya, ada baiknya Anda memiliki tempat tersendiri untuk melakukan testing pada kloning website Anda di PC/ komputer lokal. Setelah benar-benar berfungsi dengan baik maka perubahan tersebut bisa diaplikasikan pada website original. Kendala yang sering terjadi adalah masalah penamaan domain di PC lokal. Misalkan domain website Anda adalah example.com tetapi domain di PC lokal biasanya hanya terbatas pada localhost saja sehingga pada beberapa Content Management System (CMS) seperti Wordpress tidak bisa berjalan dengan baik di PC lokal karena URL PC lokal berbeda dengan URL website original. Pada website original, URL website adalah http://www.example.com sedangkan di PC lokal http://localhost. Bagaimana menyiasatinya?
Masalah domain di atas hanyalah konversi dari nama domain example.com menjadi alamat IP. Jika Sistem Operasi (OS) bisa diarahkan untuk konversi dari example.com menjadi alamat IP maka masalah ini selesai.Cara paling mudah adalah dengan mengubah file hosts yang ada pada OS Windows maupun berbasis *BSD maupun Linux. Di Linux, file hosts terletak di /etc/hosts. Di bawah ini adalah contoh isi file /etc/hosts:
127.0.0.1       localhost www

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Tambahkan baris di bawah 127.0.0.1:
127.0.0.1         www.example.com www
dan tambahkan baris-baris lain sesuai kebutuhan.
Pada OS berbasis Windows, file hosts terletak di direktori %systemroot%\system32\drivers\etc\. Edit file tersebut dengan menggunakan Notepad lalu tambahkan seperti pada contoh di atas. Pada dasarnya, format file hosts di Linux dan Windows adalah sama!

Tips Menghindari Brute Force

Mungkin saja kita tidak pernah tahu kalau server milik kita sedang diam-diam sedang diintai oleh penjahan cyber. Salah satu cara untuk masuk ke dalam sistem Linux adalah melalui terminal secure shell atau SSH dengan cara mencoba memasukkan password secara acak atau dikenal dengan istilah brute force. Setiap login ke sistem Linux, baik yang berhasil maupun gagal, dicatat dalam file log di
/var/log/auth
.  Di bawah ini adalah contoh percobaan brute force oleh penjahat cyber yang terdeteksi di
/var/log/auth:



Dengan sedikit usaha, kita bisa menyembunyikan sshd di pintu/ port berapapun sesuai keinginan. Pada instalasi normal, sshd berada pada port 22. Port sshd ini bisa diubah nilainya di file configurasi sshd yang biasanya ada di
/etc/ssh/sshd_config
.

Isi nomor port dengan nomor sesuai pilihan Anda sendiri. Nilai port di atas bisa diubah melalui perintah
root@www:~#nano /etc/ssh/sshd_config

lalu simpan dengan CTRL+O kemudian exit dengan menekan CTRL+X. Restart sshd melalui perintah:
root@www:~#service ssh restart


Selesai! Kini port ssh sudah berubah, maka sesuaikan juga angka port pada saat melakukan koneksi ssh ke server Anda.




Monitoring Proses MySQL

Beberapa hari terakhir, VPS yang saya tangani mengalami mengalami masalah pada proses MySQL Daemon. Dari catatan log terlihat bahwa proses MySQL Daemon mati karena kehabisan memori baik RAM maupun Swap. Sialnya, setelah ruang memori kembali tersedia tetapi proses MySQL tidak bisa mulai otomatis. Bingung kan? Bagaimana solusinya?

Mbah Google memberikan solusi untuk hal tersebut yaitu software gratis bernama Monit. Tugasnya adalah memonitor proses, melaporkan via email kepada admin (manusia) dan melakukan penanganan darurat. Monit mengecek proses proses yang dimonitor setiap periode tertentu, misalnya tiap 120 detik alias 2 menit, mengecek apakah prosesnya masih normal atau tidak, termasuk mengecek ketersediaan ruang harddisk, RAM dan Swap. Instalasinya mudah sekali.

Di Debian 7, perlu ditambahkan "contrib non-free" di source list apt. Berikut adalah contoh /etc/apt/source.list di VPS yang saya kelola: 

deb http://ftp.us.debian.org/debian wheezy main contrib non-free 
deb http://security.debian.org/ wheezy/updates main 
 
 Update dulu apt sebelum install software monit:
root@www:~#apt-get update
root@www:~#apt-get install monit

Sesuaikan konfigurasi monit dengan kebutuhan Anda dengan mengubah file konfigurasi
/etc/monit/monitrc.
root@www:~#nano /etc/monit/monitrc
Di bawah ini adalah contoh untuk memonitor proses MySQL:

check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
 
 Simpan dengan menekan CTRL+O kemudian Exit dengan CTRL+X. Restart monit:
 
root@www:~#service monit restart

Cobalah monit dengan mematikan MySQL sambil mengamati file log /var/log/monit.log. Contoh isi log monit ketika proses MySQL mati dan dinyalakan otomatis oleh monit:

[WIT Nov 15 06:53:28] error    : 'mysqld' process is not running
[WIT Nov 15 06:53:28] info     : 'mysqld' trying to restart
[WIT Nov 15 06:53:28] info     : 'mysqld' start: /etc/init.d/mysql
[WIT Nov 15 06:55:30] info     : 'mysqld' process is running with pid 21686
 
 
 

Jika Anda menjumpai file log seperti di atas maka selamat! Monit kini siap membantu Anda memonitor proses.