Membuat Lab Virtualisasi Pada Jaringan Lokal Dengan VirtualBox (2012)

Beberapa teman bertanya dan tertarik untuk belajar build server. Kebanyakan dari mereka berfikir bahwa untuk belajar build server / maintenance server itu butuh VPS atau bahkan dedicated server. Sebenarnya kita bisa memanfaatkan VirtualBox untuk membangun lab virtualisasi lokal.
On this page

Belakangan ada beberapa teman yang bertanya dan tertarik untuk belajar build server. Kebanyakan dari mereka berfikir bahwa untuk belajar build server / maintenance server itu butuh VPS atau bahkan dedicated server. Apa bener begitu? Padahal harga untuk VPS untuk ukuran sebagian mahasiswa dirasa cukup tinggi, apa lagi dedicated server.

Sebenarnya kalau kita hanya ingin belajar, tidak harus sewa VPS, awal2 kita bisa manfaatkan yang namanya virtualisasi. (namanya belajar jadi ga perlu kan IP public yang bisa diakses siapa saja, makanya kita gunakan jaringan dan IP lokal).

Ada banyak jalan untuk melakukan virtualisasi ini, ada OpenVZ, VirtualBox, Xen, VMware, dll. dari para-virtualisasi sampai full-virtualisasi, dari versi community (gratis) sampai enterprise (berbayar). Masing-masing ada kelebihan dan kekurangan (dan saya ga mau berdebat masalah ini).

kali ini saya menggunakan VirtualBox, Karena sudah banyak user yang menggunakan VirtualBox pada komputer pribadinya. Sebelum melanjutkan, saya informasikan dulu situasi dan kondisi pada saat guide ini dibuat.

  • Subnet: /24
  • Gateway : 192.168.0.2
  • Host OS : IP=192.168.0.242 OS=Linux

Taruh kata saya ingin membuat 2 virtual server, 1 untuk database server (MySQL server) dan 1 sever lainnya untuk apa juga belum terpikirkan. ;p

Jadi yang dibutuhkan :

  • VirtualBox dengan module vboxnetfit
  • ISO CentOS 6.x netinstall
  • Koneksi Internet

Video:

Part 1: Setting Guest Hosts (virtual server)

Pertama kita pastinya butuh VirtualBox. Silahkan yang belom punya download dulu. Kemudian module vboxnetfit untuk bridged adapter ke virtual server. Kemungkinan Anda juga butuh module vboxdrv (optional buat jalanin custom kernel) Aktifinnya tinggal modprobe [nama_module].

Jika sudah mari kita jalankan VirtualBox dan buat virtual hostnya. Caranya klik Icon New di kiri atas, lalu masukan informasi nama dan OS yang digunakan. Misalnya:

  • Name : CentOS Contoh Server III
  • Type : Linux
  • Version : RedHat (32/64 sesuai CPU Host)

Kemudian tekan tombol Next.

Add New VirtualBox Host

berikutnya menentukan kapasitas RAM yang nantinya dipake sama virtual server, kasi aja 512MB, klo udah tekan tombol next lagi.

VirtualBox Set Guest RAM

Selanjutnya buat virtual HDD, pilih opsi ke 2 “Create a virtual hard drive now” kemudian tekan next.

VirtualBox Set Guest Virtual HDD

Setelah itu keluar lagi pilihan buat tipe hard drivenya. Klo nantinya tidak ingin memindah ke virtualisasi lain pilih saja default VDI. Tp kali ini saya pilih QEMU biar dikira dewa. Klo udah tekan tombol Create.

VirtualBox Set Guest Virtual HDD Type

nanti di sebelah kiri ada list Virtual Guest yang pernah dibuat. Klik kanan pada menu yang baru aja kita buat dan pilih “Setting”.

Pada menu Storage => Controller IDE pilih image file yang digunakan. Ane pake ISO CentOS 6.2 Netinstall 64 Bit.

VirtualBox Set Guest OS

kemudian pada menu Network -> Adapter 1 Ubah Attached to dari NAT ke Bridged Adapter. Name nya sesuaikan dengan interface yang sedang digunakan (dalam kasus saya : eth0).

VirtualBox Set Bridged Adapter

klo udah klik Ok, lalu Start Virtual Guestnya.

Nah proses installasi sama aja ky install OS biasa.

Media Installation OS ane pilih URL biar dikira admin.

Linux install method

Yang perlu diperhatikan adalah : Gunakan Alamat IP statik/DHCP Statik dari router, jangan dinamis. Karena jika IP dinamis kita bakal susah ngeremote terutama masalah fingerprint SSH.

Linux install IP setting

Kali ini ane kasi IP 192.168.0.152, Gateway 192.168.0.2 dan DNS server google (8.8.8.8).

lalu isikan URL image CentOS, ane pake mirror.nus.edu.sg, silahkan nte bisa ganti lewat kambing.ui.ac.id / apa lah itu. Yang jelas sesuain ama arsitektur yang nte gunain. misal (http://kambing.ui.ac.id/centos/6.3/os/x86_64 buat yang pake 64 bit).

Linux URL setup

kemudian klik ok dan tunggu proses installasi selesai; maka nte akan disuruh buat ngereboot OS.

Reboot/Poweroff virtual guest tadi. Kita edit primary bootnya dari CD-ROM ke Hard Disk. Caranya :

Setting -> System -> Motherboard -> Boot Order -> Naikin menu Hard Disk ke posisi pertama / hilangkan centang pada Floppy dan CD/DVD-ROM.

VirtualBox Boot Order

klo udah coba jalanin lagi Virtual Guestnya. Nte bisa pake CLI supaya virtual host yang bisa jalan di background. Caranya :

Pertama tampilin dulu list Virtual Guestnya dengan perintah : VBoxManage list vms. VBoxManage list vms

Lalu jalankan perintah berikut untuk menjalankan virtual guest di background : VBoxManage startvm "nama virtual machine" --type=headless. Misalnya:

1VBoxManage startvm "CentOS Contoh Server III" --type=headless

Kalau udah jalan coba ping ke IP virtual guest yang tadi kita buat (192.168.0.152), tunggu sampai up dan masuk melalui SSH.

Dari sana nte bisa setting nama hostname, update software, dll.

Part 2: Install Guest Host lain

Ulangi Part 1 untuk membuat Virtual Guest lain sehingga kita punya 2 virtual host dan di-run bersamaan dengan option headless tadi. Beri virtual guest ke 2 ini dengan IP 192.168.0.151. Sebagai contoh virtual guest ke 2 kali ini kita gunakan untuk database server.

Di Virtual Guest yang ke-2 ini, install MySQL Server :

1yum install mysql mysql-devel mysql-server

Start mysql server

1service mysqld start

settting ulang mysql servernya dengan menjalankan perintah /usr/bin/mysql_secure_installation. Maka bakal ada pertanyaan interaktif untuk menyetting ulang MySQL server.

kemudian masuk ke MySQL server dengan user root untuk membuat user dan database baru.

1mysql -h localhost -u root -p

maka nte bakal disuruh isi password mysqlnya untuk user root. Setelah masuk buat user baru:

1CREATE USER 'ditatompel'@'192.168.0.%' IDENTIFIED BY 'password';

dimana:

  • ditatompel adalah nama usernya
  • 192.168.0.% adalah nama hostname/IP dari mana dia melakukan remote koneksi ke MySQL server. (192.168.0.% sama saja dengan 192.168.0.0/24)
  • password adalah password yang digunakan.
1CREATE DATABASE IF NOT EXISTS db_testing;

dimana db_testing adalah nama database yang nanti kita gunakan.

1GRANT SELECT, INSERT, UPDATE, DELETE ON db_testing.* TO 'ditatompel'@'192.168.0.%';

dimana SELECT, INSERT, UPDATE, DELETE adalah permission milik user ditatompel dari host 192.168.0.% pada semua table dalam database db_testing ( db_testing.* ) kemudian jangan lupa untuk melakukan flush privileges.

1FLUSH PRIVILEGES;

Kalau sudah pastikan juga port MySQL (default 3306) tidak di block oleh firewall.

iptables

Setelah itu coba melakukan koneksi ke server MySQL dari virtual guest yang 1 nya atau dari PC kita.

1mysql -h 192.168.0.151 -u ditatompel -p

dimana 192.168.0.151 adalah alamat IP server MySQL dan ditatompel adalah user yang kita buat pada server MySQL sebelumnya.

iptables

Q : Om, klo mau bikin 5 virtual guest dan RAM laptop / PC ane cuma 1GB kan ga mungkin, trus gimana ?

A : Nte pake / bawa pulang laptop temen, colokin ke 1 network dan jalanin virtualbox, lakuin langkah2 di atas. Klo nte ada 4 laptop dan per laptop nte jalanin 3 Virtual guest berarti nte punya 12 virtual guest.

Jadi intinya begitu semua sudah terhubung dan dapat berkomunikasi, beres udah. Nte bisa juga testing buat belajar port knocking, config firewall, IDS/IPS, load balancing sampai clustering. meskipun hasilnya masih sangat jauh dari maksimal.