Merubah Timezone CentOS / Red Hat

Untuk mengetahui waktu dan timezone di server:

[root@lifebit ~] date
Sun Feb 19 21:42:06 CST 2012

Dari contoh di atas terlihat bahwa server menggunakan timezone CST, atau Central Standard Time (GMT -6).

Untuk merubah timezone menjadi Indonesia / Jakarta (GMT +7), execute perintah ini:

[root@lifebit ~] ln -s /usr/share/zoneinfo/Asia/Jakarta /etc/localtime

Kalau kita lihat sekarang, waktu di server udah menggunakan timezone lokal Jakarta:

[root@lifebit ~] date
Mon Feb 20 10:49:31 WIT 2012

Setting SSH Menggunakan Certificate (Debian – Mac)

SSH LockTutorial ini akan menunjukkan gimana caranya mengkonfigurasi SSH agar bisa login menggunakan certificate tanpa password, pada komputer Mac dan server Debian. Harusnya juga bisa untuk OS lainnya tapi saya belum pernah coba.

Alasan orang menggunakan certificate untuk SSH mereka rata-rata adalah demi keamanan, karena orang yang ngga punya private key ngga akan bisa login ke server sekalipun di-brute force attack. Tapi alasan saya pribadi adalah karena males mengetikkan password di terminal, ehehe..

Pertama, buka dulu program Terminal yang ada di Mac ( + spasi dan ketik “terminal”) lalu ketikkan perintah ini untuk menggenerate key pair (private & public key):

ssh-keygen -t rsa -b 2048

Kita akan diberikan beberapa pertanyaan:

Enter file in which to save the key (/home/username/.ssh/id_rsa): (Tekan Enter)
Enter passphrase (empty for no passphrase): (Tekan Enter)
Enter same passphrase again: (Tekan Enter)

Sampai sini di komputer Mac kita udah ada pasangan key, yaitu private key (id_rsa) dan public key (id_rsa.pub) yang lokasinya ada di /Users/YOURUSERNAMEHERE/.ssh/.

Private key (id_rsa) bisa diibaratkan anak kunci yang selalu kita bawa kemana-mana untuk membuka gembok server (public key / id_rsa.pub). Private key ada di sisi client, sedangkan public key kita letakkan di server.

Masih di Terminal, ketikkan perintah ini:

Continue reading

Instalasi OpenVPN Pada Debian & Ubuntu

OpenVPNInstalasi OpenVPN ini dikerjakan pada mesin Debian. Harusnya juga bisa untuk turunan Debian lainnya seperti Ubuntu, Mint, dll.

Tujuan saya menggunakan OpenVPN biasanya untuk tunneling aja, menggunakan IP address luar, mem-bypass restriksi oleh ISP, dll. Fitur enkripsi dan login menggunakan certificate akan saya disable supaya koneksi semakin ringan dan stabil, lalu sebagai gantinya proses login nanti akan menggunakan username & password. Enkripsi cuma akan menambah overhead di trafik.

Cek dulu TUN / TAP sudah enabled apa belum;

root@starscream:~# cat /dev/net/tun
cat: /dev/net/tun: File descriptor in bad state

Kalau outputnya seperti di atas, berarti TUN / TAP sudah enabled. Jadi kita bisa lanjut ke proses instalasi.

apt-get install openvpn pam-devel

Copy contoh file konfigurasi yang udah ada ke /etc/openvpn untuk selanjutnya kita edit;

cp -/usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/
cd /etc/openvpn/easy-rsa/2.0/

Lalu kita edit file vars (optional). Biasanya saya edit jadi seperti ini;

vi vars
# Increase this to 2048 if you
# are paranoid. This will slow
# down TLS negotiation performance
# as well as the one-time DH parms
# generation process.
export KEY_SIZE=384
 
# In how many days should the root CA key expire?
export CA_EXPIRE=3650
 
# In how many days should certificates expire?
export KEY_EXPIRE=3650
 
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="ID"
export KEY_PROVINCE="JKT"
export KEY_CITY="Jakarta"
export KEY_ORG="lifebit.co"
export KEY_EMAIL="scylla@lifebit.co"
export KEY_CN=vpn.lifebit.co
export KEY_NAME=lifebit.co
export KEY_OU=lifebit.co
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=666666

setelah di-edit dan save, lalu;

Continue reading

Replikasi Database MySQL Dengan SSL Pada Debian Squeeze

Kali ini saya akan menjelaskan bagaimana melakukan replikasi database MySQL dari satu server (master) ke server lainnya (slave) dan menggunakan enkripsi SSL, sehingga sulit bagi hacker untuk sniff data ketika proses replikasi berlangsung.

Dengan  melakukan replikasi kita bisa memiliki database slave yang datanya sama persis dengan database master. Semua updates yang dilakukan di sisi master akan “langsung” ter-replikasi ke slave. Perlu diingat bahwa skema seperti ini bukan untuk backup, karena apabila kita melakukan perintah DELETE pada master maka perintah tersebut juga akan tereksekusi di slave. Tapi skema seperti ini dapat berguna apabila misalnya terjadi hardware failure pada salah satu server sehingga bisa langsung switch over. Atau untuk meningkatkan performa aplikasi web, semua proses write / update dilakukan di server master, dan proses read / select dilakukan di server slave.

Tutorial ini akan menunjukkan bagaimana cara mereplikasi database koole dari server server1.lifebit.co (master, IP 192.168.1.1) ke server server2.lifebit.co (slave, IP 192.168.1.2). Kedua server menggunakan distro Linux Debian Squeeze. Database koole sudah terisi dengan data pada server master, dan pada server slave belum terisi apa-apa.

MySQL Replication

  1. Install MySQL Server pada  server1 dan server2 maka install dengan cara berikut;

    server1 & server2:

    apt-get install mysql-server mysql-client

    kita akan diminta untuk memasukkan password baru root MySQL, bukan password root linux!

    New password for the MySQL "root" user:
    Repeat password for the MySQL "root" user:

    jika sudah terinstall lalu kita login ke MySQL (server1 dan server2) untuk mengecek apakah SSL support sudah diaktifkan atau belum;

    mysql -u root -p

    lalu execute perintah ini pada prompt SQL;

    show variables like '%ssl%';

    jika hasilnya seperti di bawah ini;

    +---------------+----------+
    | Variable_name | Value    |
    +---------------+----------+
    | have_openssl  | DISABLED |
    | have_ssl      | DISABLED |
    | ssl_ca        |          |
    | ssl_capath    |          |
    | ssl_cert      |          |
    | ssl_cipher    |          |
    | ssl_key       |          |
    +---------------+----------+
    7 rows in set (0.07 sec)

    itu berarti MySQL server sudah terinstall dengan dukungan SSL. Selanjutnya kita tinggal mengaktifkannya aja. Keluar dulu dari prompt SQL;

    Continue reading

Setting System Time dan Time Zone (Debian)

Hanya sebagai quick reminder ;)

Install ntpdate supaya waktu selalu tersinkronisasi dengan “jam internet”;

apt-get install ntpdate

Konfigurasi timezone dengan lokasi geografis yang sesuai;

dpkg-reconfigure tzdata

selanjutnya perintah tzdata akan menampilkan konfigurasi timezone saat ini, jika kita ingin merubahnya maka akan muncul dialog untuk memilih lokasi geografis berdasarkan benua – pulau – dan kota.

Optimizing Web Server (Lighttpd)

TuningBerawal dari rasa penasaran kok situs penyedia film 300mbunited.com cepet banget loading tiap page-nya, saya pun akhirnya.. jadi iri hehe.

Saya lihat di source page ternyata situs itu berbasiskan WordPress dan menggunakan plugin W3 Total Cache. Pengalaman saya menggunakan plugin itu sih justru bikin blog saya makin lambat kurang lebih 1-3 detik.

Lalu saya mencari cara lain kira-kira apa yang bisa dilakukan untuk mempercepat loading page, dan ini dia yang saya lakukan;

  1. HTTP Keep-Alive
    Dengan mengaktifkan keep-alive akan membuat web server terasa lebih responsif dan menurunkan beban CPU, karena client dan server tidak perlu terus-terusan melakukan SYN / ACK dan menunggu respon. Tapi sebaiknya gunakan nilai time out / idle yang rendah agar tidak menghabiskan resource memory. Pada Lighttpd (/etc/lighttpd/lighttpd.conf) konfigurasinya seperti ini;

    1
    2
    3
    4
    
    server.max-keep-alive-requests = 16
    server.max-keep-alive-idle = 30
    server.max-read-idle = 60
    server.max-write-idle = 360
  2. Install eAccelerator
    eAccelerator adalah PHP accelerator – optimizer opensource dan gratis. Dengan menggunakan eAccelerator maka PHP scripts akan di-cache dalam keadaan sudah terkompilasi (HTML), sehingga proses kompilasi script PHP yang memakan waktu tidak perlu lagi dialami oleh client (browser). eAccelerator juga mengoptimasi scripts untuk mempercepat proses eksekusinya. Pada umumnya dengan menggunakan metode ini server load akan berkurang dan mempercepat PHP scripts 1 sampai 10 kali lipat. Release terakhir adalah versi 0.9.6.1 yang mendukung PHP 5.3, 5.2, dan 5.1. Cara instalasinya sebagai berikut; Continue reading