Menyimpan Password dalam KeePassX

Sampai saat ini saya punya banyak password yang perlu saya ingat-ingat. Mulai dari password beberapa akun email, login ke banyak website, Paypal, iTunes, VPN, dsb. Memang paling gampang menggunakan 1 macam passsword untuk segala kebutuhan. Tapi cara ini kurang bijaksana & berbahaya. Karena begitu banyak password yang perlu saya hafalkan, saya kerap lupa password apa yang harus saya pakai saat login ke suatu website. Belum lagi kalau websitenya jarang saya akses, kemungkinan besar akan lupa password login-nya. Atau misalnya saat password sebuah website-nya sudah disimpan otomatis oleh web browser, sehingga saya lupa total apa password loginnya saat saya mengakses web tersebut dari komputer lain.

Saya memilih untuk menggunakan KeePassX untuk menyimpan semua password saya. KeePassX ini adalah aplikasi yang dibuat untuk menyimpan banyak password dalam sebuah database terenkripsi. Idenya adalah kita buat database password, lalu kita beri password (lagi-lagi password..hehehe…). Sehingga kita cukup mengingat-ingat 1 password untuk membuka database tersebut. Database-nya berupa 1 file dengan ekstensi *.kdb yang ukurannya tidak terlalu besar. Hmmm mungkin ukurannya bisa membengkak bila menyimpan sampai ribuan password. File database KeePass saya cuma berukuran 16KB.

KeePassX ini tersedia secara gratis untuk Mac OSX, Windows, & juga untuk Linux.

Ini contoh langkah-langkah menggunakan KeePassX di Ubuntu Linux (langkah ini sama bisa dipakai juga di Windows atau Mac OSX).

  1. Setelah membuka aplikasi KeePassX, tampilan yang muncul seperti berikut ini :Untuk mulai membuat database, klik ikon New di pojok kiri atas seperti ditunjukkan oleh tanda panah.
  2. Kita akan diminta untuk memasukkan master password untuk database baru ini :Ini langkah yang penting, jangan sampai lupa master password ini.
  3. Setelah itu kita bisa mulai memasukkan data-data password yang ingin kita simpan dalam KeePassX. Caranya tinggal klik kanan di area yang kosong atau klik ikon “Add New Entry” seperti yang ditunjukkan oleh tanda panah berikut ini :
  4. Akan muncul jendela baru seperti tampilan berikut ini :Di sini kita akan menyimpan data-data seperti misalnya username, password, URL website, keterangan, dsb.
  5. Di sebelah kanan kolom password ada ikon bergambar mata. Ikon ini dipakai untuk menampilkan/menyembunyikan password yang kita masukkan.
  6. Di sebelah kanan kolom password, ada juga ikon bertulisan Gen. Ikon ini fungsinya untuk menampilkan menu password generator. KeePassX bisa membantu kita membuatkan password yang rumit.Kita bisa memilih berapa panjang password yang diinginkan, lalu kombinasi karakter apa saja yang ingin dipakai. Tinggal klik tombol Generate untuk mendapatkan password baru. Akhiri dengan mengklik tombol OK.
  7. Bila semua data yang ingin disimpan sudah dimasukkkan, akhiri dengan menekan tombol OK pada tampilan berikut ini :
  8. Kita bisa mengulang langkah-langkah tadi untuk menyimpan semua password yang ingin kita simpan. Bila sudah selesai kita perlu menyimpan database KeePassX ini. Klik tombol Save seperti ditunjukkan pada gambar di bawah ini :
  9. Kita tinggal mendefinisikan nama file database ini & mengakhiri dengan menekan tombol Save :
  10. Tadi saya memilih nama mypassword, KeePassX akan otomatis menambahkan ekstensi *kdb seperti terlihat di bawah ini :

Supaya bisa diakses dari komputer & handphone, saya menyimpan database file tadi ke dalam folder-nya Dropbox. Ini contoh di Mac OSX, saya bisa akses database file tadi dari Dropbox.Saya bisa langsung membukanya dengan aplikasi KeePassX :Tentu saya perlu memasukkan master password yang tadi saya set saat membuat database-nya. Bila saya memasukkan master password yang tepat maka saya bisa mengakses isi database tadi :File database KeePass tersebut bisa dibuka juga di Android dan di IOS. Saya pakai aplikasi KeePassDroid, sementara di IOS ada aplikasi iKeepPass yang bisa membuka file database yang sudah kita buat. iKeePass di IOS perlu dibayar dengan harga $0.99.

Ini contoh saat saya mencoba mengakses database password tadi dengan menggunakan iKeePass di iPhone.

  1. Saat pertama diinstal ada database bawaan yaitu “Test database”.
  2. Untuk menambah database yang tadi ada di Dropbox, tap pada menu Setting – Databases. Lalu tap menu Add yang ada di kanan atas :
  3. Lalu kita pilih Type-nya Dropbox & pilih file database tadi :
  4. Kita bisa memasukkan master password sekarang pada kolom Password & akhiri dengan tap menu Ok :
  5. KeePassX akan melakukan sinkronisasi file database tersebut dengan Dropbox :
  6. Tidak lama kemudian KeePassX akan menampilkan isi database password :

Mirip caranya di Android saat menggunakan KeePassDroid :
KeePassDroid juga bisa mengakses database file yang disimpan dalam Dropbox :
Dengan memasukkan master password yang tepat, kita bisa membaca semua isi password yang tersimpan dalam database tadi :

Kira-kira begitu alternatif menyimpan banyak password yang saya pakai sekarang.

Recover Root Password Linux Dengan SystemRescue CD

SystemRescueCD adalah sebuah distro Linux yang menyediakan Live CD untuk keperluan troubleshooting.

Misalnya saya mendadak lupa apa password akun root salah satu server Linux. Saya bisa boot servernya dengan menggunakan SystemRescueCD sebagai boot media. Lalu dari konsolnya SystemRescueCD, saya bisa lakukan langkah-langkah berikut ini :

  1. Pertama saya perlu cari cek dulu partisi apa saja yang ada dalam harddisk server ini, saya bisa gunakan perintah fdisk seperti berikut ini :
    root@sysresccd /root % fdisk -l
    
    Disk /dev/sda: 16.7 GB, 16689012736 bytes, 32595728 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0xbdf13b7d
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048    29362175    14680064   83  Linux
    /dev/sda2        29362176    32595727     1616776   83  Linux
    root@sysresccd /root %

    Dari situ saya tahu ada 2 partisi /dev/sda1 & /dev/sda2. Selain itu saya lihat partisi /dev/sda1 ditandai dengan flag Boot, jadi saya tebak /dev/sda1 adalah partisi root.

  2. Saya mount partisi /dev/sda1 sementara di /mnt :
    root@sysresccd /root % mount /dev/sda1 /mnt
  3. Saya perlu masuk ke environment root tadi dengan perintah chroot :
    root@sysresccd /root % chroot /mnt
    chroot: failed to run command ‘/bin/zsh’: No such file or directory
    root@sysresccd /root %

    Ternyata gagal karena SystemRescueCD menggunakan zsh sebagai default SHELL-nya. Bisa diakali dengan mengganti variabel SHELL dengan bash :

    root@sysresccd /root % export SHELL=bash
    root@sysresccd /root % chroot /mnt      
    root@sysresccd:/#
  4. Bagaimana saya tahu kalau saya sudah berada dalam chroot partisi /dev/sda1? Sederhananya saya bisa cek file hostname :
    root@sysresccd /root % chroot /mnt      
    root@sysresccd:/# cat /etc/hostname 
    debian7
    root@sysresccd:/#

    Benar ternyata hostname-nya adalah “debian7”, berarti saya sudah masuk ke chroot environment partisi /dev/sda1. Tentu ini sangat tergantung distro Linuxnya. Debian atau Ubuntu atau turunannya menaruh nama hostname di /etc/hostname. Sedikit berbeda dengan RedHat atau turunannya seperti CentOS, informasi hostname ditaruh di /etc/sysconfig/network :

    [root@sysresccd /]# cat /etc/sysconfig/network
    NETWORKING=yes
    NETWORKING_IPV6=no
    HOSTNAME=localhost.localdomain
    [root@sysresccd /]#

    Cara lain yang lebih sederhana mungkin bisa dengan memperhatikan tampilan prompt yang berubah dari

    root@sysresccd /root %

    menjadi :

    root@sysresccd:/#
  5. Dari sini saya bisa langsung mengganti password akun root dengan perintah passwd :
    root@sysresccd:/# passwd root
    Enter new UNIX password: 
    Retype new UNIX password: 
    passwd: password updated successfully
    root@sysresccd:/#
  6. Setelah itu saya bisa keluar dari chroot & langsung restart servernya dengan :
    root@sysresccd:/# exit
    exit
    root@sysresccd /root % reboot

Beberapa catatan kecil dari langkah-langkah di atas :

  1. Mungkin saja partisi hardidsk-nya lebih rumit (atau mungkin ada lebih dari 2 harddisk dalam server) seperti ini :
    root@sysresccd /root % fdisk -l
    
    Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
       Device Boot      Start         End      Blocks   Id  System
    
    Disk /dev/sdb: 8589 MB, 8589934592 bytes, 16777216 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00027a20
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1   *          63      208844      104391   83  Linux
    /dev/sdb2          208845     6506324     3148740   83  Linux
    /dev/sdb3         6506325     8610839     1052257+  82  Linux swap / Solaris
    root@sysresccd /root %

    Tetap patokan saya adalah partisi dengan flag Boot (yang ditandai dengan simbol bintang *). Saya coba saja mount partisi /dev/sdb1 untuk melihat isinya :

    root@sysresccd /root % mount /dev/sdb1 /mnt
    root@sysresccd /root % ls /mnt
    config-2.6.39-300.32.1.el5uek  initrd-2.6.39-300.32.1.el5uek.img  symvers-2.6.39-300.32.1.el5uek.gz  vmlinuz-2.6.39-300.32.1.el5uek  xen-4.1.gz  xen.gz
    grub                           lost+found                         System.map-2.6.39-300.32.1.el5uek  xen-4.1.3OVM.gz                 xen-4.gz    xen-syms-4.1.3OVM
    root@sysresccd /root % umount /mnt

    Ternyata /dev/sdb1 bukan partisi root tapi partisi /boot. Karena /dev/sdb3 adalah partisi swap maka saya bisa tebak kalau root partisinya ada di /dev/sdb2 :

    root@sysresccd /root % mount /dev/sdb2 /mnt
    root@sysresccd /root % ls /mnt
    bin  boot  dev  etc  halt  home  lib  lib64  lost+found  media  mnt  opt  OVS  proc  root  sbin  selinux  srv  sys  tmp  u01  usr  var
    root@sysresccd /root %

    Langkah selanjutnya seperti di atas, chroot dulu lalu ganti password-nya.

  2. Sedikit berbeda bila server Linuxnya menggunakan LVM (Logical Volume Manager) :
    root@sysresccd /root % fdisk -l
    
    Disk /dev/sda: 26.8 GB, 26843545600 bytes, 52428800 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x000c64ed
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *          63      208844      104391   83  Linux
    /dev/sda2          208845    52420094    26105625   8e  Linux LVM
    
    Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1              63    20964824    10482381   83  Linux
    
    Disk /dev/mapper/VolGroup00-LogVol00: 20.5 GB, 20468203520 bytes, 39976960 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    Disk /dev/mapper/VolGroup00-LogVol01: 6241 MB, 6241124352 bytes, 12189696 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    root@sysresccd /root %

    Dalam contoh di atas, partisi root-nya berada di /dev/mapper/VolGroup00-LogVol00. Jadi proses mount-nya seperti ini :

    root@sysresccd /root % mount /dev/mapper/VolGroup00-LogVol00 /mnt
    root@sysresccd /root % ls /mnt
    bin  boot  dev  etc  home  lib  lib64  lost+found  media  misc  mnt  net  opt  proc  root  sbin  selinux  srv  sys  tftpboot  tmp  u01  usr  var
    root@sysresccd /root %