Senin, 04 Juni 2012

Misteri Ubuntu


Sempat terpukau sesaat kemarin saat membaca salah satu diskusi di Forum Komputer Kaskus, di sub forum Linux dan OS selain Microsoft dan Mac. Ada diskusi yang awalnya saya kira sederhana mengenai kasus yang tampaknya sederhana di Ubuntu. Saya yang bertahun-tahun menggunakan Ubuntu pun tidak pernah memikirkannya dan mengangapnya sebagai hal yang sederhana, tidak menganggap rumit sama sekali, tetapi saat membaca diskusi halaman pertama saya jadi ragu dengan pemikiran sederhana saya, rasanya saya jadi tidak bisa menjawab pertanyaan yang didiskusikan disitu dan semakin merasa kalau saya begitu dangkalnya selama ini dalam mengenal Ubuntu.
Silahkan lihat pertanyaan lengkapnya disini http://www.kaskus.us/showthread.php?t=3467589.
Intinya user ini mempertanyakan saat kita menginstal Ubuntu, kita tidak diberi pertanyaan untuk memasukkan password ROOT, tapi disuruh membuat user dan password untuk user tersebut. Tapi kemudian kita bisa mengakses command yang seharusnya hanya bisa dilakukan oleh root dengan SUDO, jadi apakah sebenarnya ROOT di Ubuntu itu? apa hubungannya dengan user yang kita buat saat install?
Ini screen shoot dari pertanyaan lengkapnya.

Dari pertanyaan yang awalnya tampak sederhana ini muncullah suatu diskusi yang alot dan tampak sama sekali belum terjawab dan jelas.
Pendapat awal yang muncul adalah dari agan kim-kim :

Defaultnya, user lw ma root satu grup ma sebuah grup yang bernama root. Jadi, sebuah user akan menaikkan akses dari owner ke grup dengan cara memasukkan password.
Nah makanya lw kudu masukin pass bwt akses ke root karena lw root adalah pemilik command tersebut dan lw satu grup ma dia...
Kemudian di-amin-i oleh beberapa user lain, karena dianggap cukup logis dan bisa diterima. bahkan didukung oleh agan wupz :

Ubuntu secara default memang begitu. User yang dicreate pertama kali saat installasi akan masuk ke group admin, dimana member dari group ini bisa menggunakan perintah sudo (menjalankan perintah sebagai root CMIIW). Dan value dari password root adalah kosong (no password) yang tentu saja secara default user tidak bisa login dengan id root CMIIW. Sehingga dalam hal ini, user memang tidak bisa login dengan id root, dimana memang itu sangat berbahaya.
Jika Anda bikin user lagi, dan tidak di add ke group admin, dia tidak bisa menggunakan perintah sudo.
Tapi oleh bung TS yang nampak kurang puas, diperdalam lagi pertanyaan itu. Berarti dengan begitu keadaannya, Ubuntu akan mirip seperti Windows dengan Administratornya dan betapa tidak hebatnya ROOT yang berarti bisa dibuatkan passwordnya oleh user biasa.
Kemudian di page 2 muncul agan mango yang muncul dengan mantapnya, dan kemudian menjelaskan dengan cukup sangat jelas.

@ts dan yang lain
kesampingkan dulu semua asumsi dan pengetahuan soal root, sudo, dan user saya. Informasi yang gue kasih mungkin ngga 100% bener, tapi jangan takut,
gue bakal bilang gue sendiri ngga yakin kalo gue ngga yakin.

Gue lurusin beberapa hal dulu ya, dari yang paling basic.

1. Pada semua distribusi linux (dan varian unix) ada dua tipe user : "superuser" dan "(normal) user"
2. Yang termasuk kedalam tipe "superuser" (biasanya) adalah root, dan yang termasuk kepada tipe "(normal) user" ya user yang ngga punya root privileges (misal, user "saya")

Persoalan user dan group dan file permission/privileges
3. Kalau kita ngomongin soal file privileges, kita juga bicara soal
"user" dan "group". "user" dan "group" disini jangan dihubungin dengan tipe "superuser" dan "(normal) user" di poin gue yang ke-1 dan 2
4. Pada semua distribusi linux (dan varian unix), sebuah file dimiliki oleh satu orang user dan satu group
5. Ketika seorang user (misal: user "saya") dibuat oleh superuser, maka secara otomatis user "saya" dan group "saya" dibuat
6. Seorang user hanya bisa melakukan execute dan/atau read dan/atau write pada file user tersebut
7. Seorang user bisa "bergabung" ke dalam sebuah group atas seizin superuser
8. Seorang user yang telah bergabung kedalam group tertentu bisa
melakukan execute dan/atau read dan/atau write pada file yang dimiliki oleh group tersebut
9. Untuk mengubah kepemilikan sebuah file untuk seorang user dilakukan dengan perintah chown (sebagai superuser)
10. Untuk mengubah kepemilikan sebuah file untuk sebuah group dilakukan dengan perintah chgrp (sebagai superuser)

Soal su
11. Su adalah sebuah program yang mengizinkan seorang user untuk menjadi user lain (termasuk sebagai superuser) didalam login sessionnya (baca: setelah user tersebut login, baru bisa mengeksekusi perintah su sebagai user lain)
12. Ketika user mengetikkan perintah su dan diminta password, maka password yang diminta adalah password dari user yang ia ingin jadikan (misal password root atau password user lain)

Soal sudo
13. Sudo adalah sebuah program yang mengizinkan seorang user untuk mengeksekusi perintah sebagai user lain, termasuk sebagai superuser
14. Perintah-perintah apa saja yang bisa dieksekusi dan atas user siapakah perintah itu dijalankan, diatur dalam sudoers file (/etc/sudoers pada ubuntu)
15. Ketika user mengetikkan perintah sudo dan diminta password, maka password yang diminta bukanlah password user yang akan mengeksekusi perintah tersebut (misal, password root), melainkan password user itu sendiri (misal, password user "saya"). Beda dengan su (liat #12)
16. Session pada sudo bisa expired. Pada Ubuntu (kalo ngga salah) diset secara default selama 15 menit. Setelah itu password harus dimasukkan lagi

Soal spesifik pada Ubuntu
17. Secara default, superuser "root" pada Ubuntu di-lock. Dalam artian, root sama sekali tidak bisa login, tapi usernya tetap eksis. Passwordnya bukan kosong.
18. Setelah pertama kali install Ubuntu, seorang user dibuat (misal, user "saya"). User ini secara otomatis di-assign sebagai "System administrator"
19. User selanjutnya yang dibuat melalui "System->Administration->Users and Groups" secara default ngga akan jadi "System administrator" kecuali opsi "Administer the system" dicentang
20. Definisi dari "System administrator" pada Ubuntu (inget, bukan pada distro atau varian unix lain) adalah: User yang bisa menjalankan semua perintah root melalui sudo (sebagai root, poin #13)
21. Root pada Ubuntu bisa di-enable dengan :
Code:
$ sudo -i
$ sudo passwd root
Dengan gitu password root telah diset.
22. Root pada Ubuntu yang telah di-enable bisa di-disable/lock lagi dengan:
Code:
$ sudo usermod -p '!' root
Sudo dan Su
23. Model security dari sudo dan su pada dasarnya sama. Kalo pada su securitynya bisa ditembus, begitu juga dengan sudo dan sebaliknya.

Keuntungan Sudo
24. User ngga perlu lagi nginget password dari root, soalnya biasanya kelupaan.
25. Setiap command sudo yang dieksekusi, ada lognya di /var/log/auth.log => buat audit security dan buat rollback
26. Hacker biasanya brute-force password root, karena pada Ubuntu root sama sekalo ngga bisa login sebelum di-enable dan passwordnya diset (poin #21), maka brute-force sama aja boong kalo ngga tau user mana yang bisa execute sudo sebagai user.
27. Mudah transfer root privileges dari satu user ke user yang lain (poin #19) tanpa harus share password root dengan administrator lain
28. Session sudo timeout setelah jangka waktu tertentu (poin #16)
29. Sudo sangat fine-grained, hanya perintah-perintah yang didefinisikan di file sudoers saja yang bisa dijalankan. Berguna kalau misal kita ingin membuat user lain sebagai "system adminisrator" pada ubuntu tapi tidak mengizinkan perintah "shutdown" untuk dieksekusi.

Kerugian Sudo
29. sudo echo "foo" > /root/foo.txt misalnya ngga bisa jalan karena pada dasarnya shell/terminal yang dijalankan dengan user id kita yang mencoba untuk menulis file /root/foo.txt. Bisa diakalin pakai sudo "tee"

Semoga penjelasan gue cukup mudah untuk dimengerti buat semuanya. Tanya aja kalo ada yang ngga ngerti atau kalo ada yang salah 

Mantap penjelasannya. Langsung dengan poin-poin yang jelas sekali. Dan diskusi ini pun berakhir dengan kejelasan yang pasti, seingat saya semua pihak puas, saling mendapatkan hal yang berguna bagi masing-masing.
Sebenarnya kalau mau tahu jawabannya sudah ada dari page 1, di link di Ubuntu Help dari agan orccha. Silahkan kalau mau penjelasan lebih lengkap tapi dalam bahasa inggris bisa mengunjungi link ini.
Bravo Ubuntu, Bravo Canonical, Bravo Forum Linux Kaskus, Bravo Ubuntu user.. :D

Selasa, 17 April 2012

Ubuntu for Android


Saat sedang mengunjungi situs Ubuntu dengan niatan mencari kabar terbaru mengenai si 12.04 LTS, ternyata saya justru menemukan berita yang lebih menarik untuk saat ini. Yaitu mengenai project Ubuntu untuk dapat dijangkau lebih luas. Setelah Ubuntu TV yang di launching pada awal tahun 2012 ini, Ubuntu membuat suatu gebrakan dengan mendemokan OS Ubuntu yang disandingkan ( ingat "disandingkan" bukan menggantikan) dengan OS Mobile dengan perkembangan paling cepat saat ini (menguasai 50% pasar smartphone) yaitu Android.

Dan cara menyandingkan yang dilakukan Ubuntu juga menurut saya begitu "WOW!!". Disebutkan di berbagai artikel yang saya baca dan di keterangan di web Ubuntu juga, Ubuntu akan hadir di smartphone Android dalam bentuk integrasi yang istimewa. Saat dalam bentuk Smartphone akan menggunakan OS Android seperti biasa, tetapi apabila smartphone itu kemudian dihubungkan dengan docking ke laptop atau PC, maka akan muncul interface OS Ubuntu yang 100% terintegrasi dengan OS Android di dalam Smartphone. Jadi kita bisa menggunakan data bersama baik email, contact, multimedia dan sebagainya. Saat dalam mode desktop dalam OS Ubuntu melalui laptop atau PC, kita bisa berkirim SMS dan email seperti biasa, ada pilihan untuk menggunakan jaringan 3G atau 4G tergantung konektivitas smartphone kita, dan bahkan kita bisa tetap melakukan panggilan telepon melalui OS Ubuntu di PC kita. Yang lebih hebat lagi, disebutkan disitu apabila kita sedang dalam mode Desktop dan menulis email, kemudian terburu-buru mencabut smartphone dari docking sehingga kembali ke mode mobile menggunakan OS Android, maka kita akan dapat melanjutkan penulisan email kita tadi langsung di smartphone dalam OS Android. :D
Device yang digunakan sebagai contoh adalah Motorola Atrix, dan disebutkan perlu memiliki spesifikasi hardware yang cukup tinggi untuk sekarang, tetapi saya rasa untuk beberapa saat lagi spesifikasi ini akan menjadi spesifikasi standar, processor dual-core dengan clock 1Ghz, RAM 512mb dan support HDMI.
Tidak sabar menunggu perkembangan selanjutnya mengenai perkembangan integrasi ini, Open Source Desktop OS paling banyak digunakan yang bersanding dengan Open Source Mobile OS yang paling banyak digunakan pula. Strategi yang pintar dari Canonical dengan tidak berusaha menyaingi Android yang notabene berasal dari akar Linux juga, tetapi justru melengkapi kekuatan Android yang menunjukkan semakin luar biasanya pengembangan yang bisa dilakukan dari Open Source OS.

bahan bacaan :
http://mobile.slashdot.org/story/12/02/21/1744201/canonical-puts-ubuntu-on-android-smartphones
http://www.pcpro.co.uk/news/373024/canonical-puts-ubuntu-on-android-smartphones
http://www.zdnet.co.uk/news/mobile-it/2012/02/21/ubuntu-for-android-arrives-in-pictures-40095093/
http://www.extremetech.com/computing/119031-canonical-reveals-ubuntu-for-android
http://www.ubuntu.com/devices/android

Kamis, 01 Maret 2012

Install Metasploit 4 di Ubuntu 11.04

Saya kira anda sudah tahu tentang Metasploit bila sampai ke blog saya ini melalui search engine, jika belum maka anda dapat membaca disini mengenai metasploit, mengenai fungsinya dan berbagai kemampuannya.
Instalasi Metasploit sebenarnya cukup mudah, hanya running install script dan mengikuti urutan langkah, dan akhirnya sedikit tambahan konfigurasi di akhir.
Langkah-langkah yang saya lakukan :

  1. Download dari url ini. Pilih sistem operasi yang akan dipakai, untuk saya, saya memilih Linux 32bit. Untuk memudahkan juga bisa langsung gunakan wget untuk mendownload file tersebut.wget http://downloads.metasploit.com/data/releases/metasploit-latest-linux-installer.run
  2. Install dependency yang dibutuhkan, mungkin juga beberapa dependency ini sudah terpenuhi di machine anda.
    $ sudo apt-get install ruby libopenssl-ruby libyaml-ruby libdl-ruby libiconv-ruby libreadline-ruby irb ri rubygems
    $ sudo apt-get install subversion
    $ sudo apt-get install build-essential ruby-dev libpcap-dev
  3. Jalankan install script yang sudah anda download, sebelumnya buat agar file .run itu bisa dieksekusi.
    chmod ugo+x metasploit-latest-linux-installer.run
    ./metasploit-latest-linux-installer.run

  4. Setelah ini instalasi selesai, anda sudah memiliki framework metasploit terinstall di komputer anda. Anda sudah bisa me-run msfconsole, tapi untuk fungsionalitas penuhnya kita perlu mensetting database.
  5. Saya memilih PostgreSql, sesuai saran dari pembuat Metasploit juga.
    $ sudo apt-get install postgresql-8.4
    $ sudo apt-get install rubygems libpq-dev
    $ sudo gem install pg
  6. Dilanjutkan dengan mensetting Postgre dan Metasploit
    Di terminal pindah ke user Postgre
    $ sudo -s
    # su postgres Create Postgre User
    # createuser msf_user -P

    Anda akan mendapat prompt seperti ini
    Enter password for new role:
    Enter it again:
    Shall the new role be a superuser? (y/n) n
    Shall the new role be allowed to create databases? (y/n) n
    Shall the new role be allowed to create more new roles? (y/n) n

    Tentukan password untuk user anda, misalnya saya menggunakan password msfpass
    Dan akhirnya buatlah database baru
    createdb --owner=msf_user msf_database
    Kemudian kembali ke user linux anda (ctrl-D)
  7. Jalankan metasploit
    msf> db_driver postgresql
    msf> db_connect msf_user:msfpass@127.0.0.1:5432/msf_database
    msf> db_hosts

Ubuntu Online Tour

Kemarin-kemarin dapat info dari salah seorang teman saya, @shape_tea mengenai Ubuntu online tour. Sebenarnya biasa, web desktop lain juga sudah banyak, saya pertama kali mencoba web destop juga sekitar tahun 2005 atau 2006, setelah itu juga dengan mudah dapat membangun web desktop dengan framework javascript Extended JS. Yang istimewa adalah, web desktop dari Ubuntu Online Tour ini benar-benar menyerupai interface dari Desktop Ubuntu sendiri, saya yang sudah bertahun-tahun menggunakan Ubuntu dan juga sudah mencoba interface Unity sejak Ubuntu 11.04 yang lalu benar-benar kagum dengan tampilan Ubuntu Tour ini. Saya bisa bilang benar-benar-benar-benar mirip dan memiliki fungsionalitas sangat baik.
Cobalah di url ini.
Saat loading anda akan disambut dengan tampilan loading khas Ubuntu sejak 11.04, bila sudah selesai anda akan mendapat layar seperti pop-up Ubuntu asli yang menawarkan guided tour atau tour sendiri. Bila anda memilih Guided Tour maka akan dibawa ke tampilan slide pop-up. Anda akan ditunjukkan beberapa fasilitas yang ada di Ubuntu, beberapa bisa di-klik, dan beberapa akan menunjukkan pop-up yang mengingatkan bahwa ini cuma tour dan untuk mencoba keseluruhan fasilitas harus mendownloadnya. Mudah, ringkas, jelas dan sangat menjual bagi orang yang tidak tahu sama sekali tentang Ubuntu.
Bila anda memilih untuk tour sendiri anda dapat mencoba-coba semua menu di tampilan itu, cobalah tampilan fullscreen dengan browser anda (pencet f11), sekilas hampir tidak ada bedanya dengan desktop Ubuntu asli, hampir setiap menu bisa di klik, cobalah browsernya, sangat-sangat mirip, cobalah meminimize window, seperti di Unity, akan terminimize ke toolbar, bahkan tampilan search dari Dash akan benar-benar menampakkan hasil seperti di Desktop.
Good job buat Ubuntu, dengan tampilan baru yang memang sangat modern dan bagus, bahkan teman-teman saya yang tidak tahu sebelumnya langsung tertarik dengan kemudahan dan keindahan interfacenya. Tour yang yang sangat bagus dan memang perkembangan OS yang bagus dari Ubuntu. :)



Install Conky di Ubuntu

Dulu sebenarnya saya sudah pernah sukses menginstall Conky di Ubuntu, dan sekarang saya mau mengulanginya. Untuk anda yang belum tahu Conky merupakan aplikasi yang mirip seperti Rainmeter di Windows platform. Conky bisa membantu menunjukkan keadaan sistem kita seperti apa, seperti CPU load, memory usage, network connection sampai email maupun RSS reader dengan tampilan yang bisa dikonfigurasi dengan leluasa.
Conky seperti juga RainMeter memiliki pengaturan yang sangat luas, dan jangan dikira karena Conky hanya untuk platform Linux maka tampilannya akan kalah jauh dengan RainMeter, harus saya akui hal itu tidak berlaku sama sekali, sudah banyak contoh konfigurasi Conky yang luar biasa indah dan sama sekali tidak kalah dari RainMeter.
Untuk instalasinya cukup mudah, saya memilih menggunakan instalasi ConkyColors yang disebut-sebut dapat memudahkan konfigurasi Conky. Saya mengkuti tutorial dari sini. Instalasi berjalan lancar sampai ke step untuk memulai Conky saya ketikkan persis seperti di petunjuk itu, tapi terjadi error yang menyatakan bahwa theme tidak ditemukan. Kemudian saya edit untuk tidak menggunakan pilihan Theme, dan Conky sudah berjalan di laptop Ubuntu 11.04 saya. Dan bahkan untuk memassukan ke startup application akhirnya saya tidak mengikuti petunjuk tetapi mengarahkan langsung ke file binary dari Conky, tidak melalui ConkyColors.
Tampilan yang saya peroleh awalnya kurang memuaskan. Saya kurang tahu dan karena sedang tidak ada waktu untuk mencari tahu saya akhirnya memilih mengganti langsung konfigurasi Conky saya di ~/.conkyrc. Saya ganti dengan script yang saya temukan dari hasil browsing tentang contoh konfigurasi Conky, dan paling tidak hasilnya sekarang lebih baik dari tadi.