Friday, August 2, 2013

Manajemen User Pada Linux Ubuntu Server 12.04

Seorang System Administrator tentunya harus mengetahui segala kegiatan atau kejadian apa saja yang terjadi pada server nya. Hal ini sangat penting karena kita mendapatkan amanat besar dari perusahaan dalam manajemen data center. Tentunya kita sebagai admin tidak bisa membiarkan orang-orang yang tidak mempunyai kepentingan masuk kedalam server kita begitu saja, oleh karena itu kita harus me-manage user yang ada pada server kita, kita harus memantau apa saja yang dilakukannya.

Perlu diketahui bahwa secara default user baru yang dibuat pada server linux kita, itu memiliki privileges 755. Artinya;
  • User = rwx (read, write, execute)
  • Group = rx (read, execute)
  • Other = rx (read,execute)
Bisa anda bayangkan jika kita adalah seorang sysad yang bekerja di perusahaan hosting yang memiliki client sekian banyak dengan user-nya masing-masing pada server kita? Apakah anda sadar, bahwa memberikan privileges 755 pada setiap user itu cukup riskan untuk server kita? Menurut saya ini cukup mengganggu ketenangan, dimana setiap user dapat saling melihat isi folder home satu sama lain? Untuk kasus ini, akan saya jelaskan langkah-langkah untuk mengatasinya.

Pada percobaan ini saya menggunakan Linux Ubuntu Server 12.04, saya akan menuliskan bagaimana cara me-manage user yang benar dalam server linux.
Berikut ini adalah perintah untuk membuat user baru pada linux
root@laborate:/home/apocalypsix# useradd panda
syntax diatas benar untuk membuat user baru bernama panda. Tapi tidak memberikan home directory kepada panda. Pembuatan user dengan cara diatas benar-benar tanpa atribut apapun seperti password, nama, dan atribut lainnya. Maka pada Linux Ubuntu Server 12.04 kita bisa membuat sebuah user lengkap dengan home directory, dan atribut lainnya. Perintahnya seperti ini :
root@laborate:/home/apocalypsix# adduser panda
Setelah menekan enter maka akan muncul seperti ini :
Adding user `panda' ...
Adding new group `panda' (1001) ...
Adding new user `panda' (1001) with group `panda' ...
Creating home directory `/home/panda' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for panda
Enter the new value, or press ENTER for the default
        Full Name []: John Paul
        Room Number []: 10
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y
Pada metode kedua ini, user panda diberikan home directory-nya sendiri, diberikan group juga, selain itu password juga harus di set saat itu juga. Singkat kata, privasi untuk panda secara default sudah cukup baik.

Cara menghapus user di linux ubuntu server 12.04 bisa dengan perintah ini :
root@laborate:/home# deluser panda
Removing user `panda' ...
Warning: group `panda' has no more members.
Done.
Atau bisa juga dengan perintah ini :
root@laborate:/home# userdel panda
Removing user `panda' ...
Warning: group `panda' has no more members.
Done.
Home directory tidak akan terhapus otomatis, jika mau kita bisa menghapusnya dengan cara manual. Karena user panda tidak memiliki member di group nya maka tampil seperti itu, jika user panda tersebut mempunyai member bagian "Warning: group `panda` has no more members" tidak akan muncul. User panda akan langsung dihapus begitu saja. namun dengan demikian bisa kita lihat yang terjadi setelah user panda dihapus, adalah seperti ini :
root@laborate:/home# ls -l
total 12
drwxr-xr-x 5 apocalypsix apocalypsix 4096 Jul 28 06:16 apocalypsix
drwxr-xr-x 2 kancil             1001 4096 Aug  2 05:30 kancil
drwxr-xr-x 2        1001        1001 4096 Aug  2 05:29 panda
Yang terjadi adalah User kancil tidak termasuk kepada group panda karena group panda sudah hilang bersama user panda yang saya hapus. 1001 adalah user id nya panda, user id akan tetap ada meskipun user nya sudah dihapus. 
Sekarang untuk pengaturan privileges. Ada baiknya kita tidak memberikan akses kepada kedua user tadi untuk dapat saling melihat isi home directory nya. Secara default keduanya berada pada group yang berbeda. Karena adanya "RX" pada privileges "OTHER" maka keduanya bisa saling melihat isi home directory. Saya pribadi tidak membiarkan hal itu terjadi, saya tidak memberikan privileges apapun kepada OTHER, karena saya tipe orang yang paranoid :P
Maka saya memberikan atribut pada home directory keduanya dengan 750. Artinya :
  • User = rwx (read, write, execute)
  • Group = (read, execute)
  • Other = NOTHING :D

Tapi bagaimana isi folder tersebut bisa ditampilkan dalam web page?

Pada awalnya saya juga berpikir seperti itu, tapi kemudian saya menemukan cara untuk dapat menampilkan isi home directory tersebut pada halaman web. Atribut RX kita hilangkan pada Other bukan berarti kita tidak bisa menampilkan web yang tersimpan dalam user tersebut. Untuk mengatasinya adalah mengubah group user tersebut menjadi www-data.

www-data adalah group milik apache. Jika home directory kedua user tadi dimasukkan kedalam group ini, maka otomatis website yang tersimpan didalamnya akan dapat ditampilkan pada browser karena file-file didalamnya selain milik user panda ataupun kancil, juga dimiliki oleh www-data. Perintah untuk mengubah group user di linux ubuntu adalah seperti ini :
root@laborate:/home# chgrp -R www-data panda
root@laborate:/home# ls -l
total 12
drwxr-xr-x 5 apocalypsix apocalypsix 4096 Jul 28 06:16 apocalypsix
drwxr-x--- 2 kancil      www-data    4096 Aug  2 05:39 kancil
drwxr-x--- 2 panda       www-data    4096 Aug  2 05:38 panda
Metode diatas menurut saya lebih aman ketimbang memberikan privileges apapun kepada OTHER. Selain itu, Jika user panda melakukan remote ssh, dia tidak akan bisa melakukan apapun pada home directory kancil. Begitu juga sebaliknya.

Saya masuk sebagai user panda dan akan masuk kedalam home directory kancil, tapi yang terjadi adalah seperti ini :
panda@laborate:/home$ cd kancil
-bash: cd: kancil: Permission denied
panda@laborate:/hom
e
User panda tersebut tidak diijinkan masuk kedalam folder kancil. Bahkan untuk melihat apa isinya pun akan tetap ditolak.
panda@laborate:/home$ ls kancil
ls: cannot open directory kancil: Permission denied
panda@laborate:/home$
Saya rasa cukup sampai disini untuk artikel kali ini. Untuk manajemen user pada linux ubuntu server 12.04 yang lebih dalam akan saya lanjutkan dilain waktu. Jika anda memiliki pertanyaan atau permasalahan silahkan tuliskan di komentar. Saya akan dengan senang hati membantu memecahkan masalah anda :)

Semoga bermanfaat,
Salam penguin! :)

No comments:

Post a Comment