Minggu, 27 Maret 2016

Cara Install Webmin Di VPS Ubuntu

Administrasi Linux Ubuntu dan juga distro Linux yang lain lebih mudah dilakukan di browser web. Ada banyak pilihan software tersedia di pasaran baik berbayar maupun gratis. Yang paling populer adalah CPanel (berbayar) dan Webmin (gratis dan berbayar). Di tulisan ini akan diulas software panel kontrol berbasis web yang gratis yaitu Webmin.

Sekilas Webmin
Webmin adalah software kontrol panel administrasi sistem Linux/ BSD berbasis web. Kita bisa melakukan konfigurasi DNS, web server Apache, server email, server database dan lain-lain dengan tampilan lebih menarik yaitu klik di browser. Pada saat tulisan ini dibuat, versi terbaru Webmin adalah 1.791 dengan dukungan theme berbasis HTML5.

Langkah 1 - Login Sebagai Root
Instalasi dimulai dari masuk ke dalam sistem Linux melalui SSH. Buka terminal console (di Linux) atau Putty (di Windows).
ssh -l root alamat_IP_atau_nama_host -p nomer_port
Contoh:
ssh -u root 8.8.8.8 -p 22
Langkah 2 - Tambahkan Webmin dalam Daftar Repositori APT
Caranya, edit file /etc/apt/source.list dengan editor text favorit Anda (misalnya: vim) lalu tambahkan 2 baris berikut ini:
deb http://software.virtualmin.com/gpl/ubuntu/ virtualmin-trusty main
deb http://software.virtualmin.com/gpl/ubuntu/ virtualmin-universal main

Jika sudah selesai, simpan lalu keluar dari editor dengan ketik :wq jika Anda menggunakan vim.

Langkah 3 - Install Webmin
Sebelum mulai install, kunci GPG Webmin harus sudah ditambahkan terlebih dahulu. Caranya:
cd ~
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc
Kemudian memulai install Webmin:
apt-get update
apt-get install webmin
Pada dasarnya sampai proses install tadi selesai dan tidak menunjukkan error maka Webmin sudah bisa langsung diakses melalui browser web. Segera buka browser web Anda lalu ketikkan alamat Webmin:
https://ALAMAT_IP_ANDA:10000/
Tanpa perubahan konfigurasi apapun, Webmin berjalan pada port 10000 dan pada protokol HTTP SECURE atau HTTPS. Jika alamat IP Anda adalah 8.8.8.8, alamat URL Webmin anda adalah sebagai berikut:
https://8.8.8.8:10000/
Tampilan halaman login Webmin:
Halaman depan Webmin (setelah login):

Selasa, 17 Desember 2013

Mencegah CPU Overload

Beberapa waktu yang lalu saya pernah kena suspend provider VPS karena pemakaian resource CPU berlebihan di akun VPS saya yang mengakibatkan semua akun yang berada pada node yang sama mengalami down. Setelah saya periksa, ternyata penyebabnya adalah proses-proses yang berhubungan dengan web yaitu nginx, mysql dan php5-fpm mengkonsumsi banyak resource CPU ketika terjadi lonjakan pengunjung. Biasanya ini terjadi setelah ada orang yang share link di facebook, tentu saja orang tersebut adalah "artis" di dunia FB dengan friends dan follower yang mencapai ribuan.

Adalah cpulimit, sebuah software open source ukuran kecil, memiliki kemampuan untuk membatasi proses pada level tertentu. Misalnya, proses nginx bisa dibatasi agar pemakaian CPU tidak lebih dari 30%. Ok, mari kita mulai dengan instalasi cpulimit di Debian.

Instalasi cpulimit di Debian sangat mudah. Sebagai root, ketikkan:
#apt-get install cpulimit
Selesai :D

cpulimit harus dijalankan terus-menerus selama Anda ingin membatasi pemakaian resource CPU. Contoh penggunaan:
cpulimit -e nginx -l 40 -b
cpulimit -e mysqld -l 40 -b
cpulimit -e php5-fpm -l 40 -b
Perintah di atas membatasi pemakaian CPU pada proses nginx, mysqld dan php5-fpm pada level 40% dan cpulimit berjalan di background. Anda perlu mengaktifkan perintah di atas pada saat booting dengan menambahkannya (copy&paste) pada file /etc/rc.local.

Pantau kinerja cpulimit melalui perintah #top.

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.