Panduan Security untuk Newbie
Menjadi Newbie bukanlah alasan untuk mengecilkan arti sekuriti
dalam Linux, justru masalah sekuriti ini harus mulai dari awal kamu
ketahui. Tulisan ini akan membahas apa saja yang perlu kamu ketahui dan
lakukan untuk memiliki Linux yang secure.
Alkisah, seorang jagoan Linux membuat sayembara barang siapa bisa membobol
mesin Linuxnya akan mendapatkan hadiah $ 1000. Peminat pun datang dari
segala penjuru negeri. Mesin Linuxnya ini terhubung ke internet dan
diletakkan di dalam ruangan tertutup. Selama berhari-hari, para cracker
yang berusaha membobol lewat internet tidak berhasil. Namun ada seorang
cracker muda yang mempunyai ide lain. Ia berhasil membujuk petugas
pembersih tempat mesin Linux tersebut ditempatkan dengan bayaran $500
untuk membawanya masuk ke dalam ruangan tersebut. Dan setelah
berhasil masuk ke dalam ruangan, ia segera menekan tombol reset mesin
Linux tersebut, dan memboot masuk ke dalam mode Linux Single! Dengan
masuk ke mode Linux Single ini, ia dengan bebas mengubah password root
dan dengan demikian, bobol-lah mesin Linux tersebut. Dan ia pun masih
mendapat untung $500. Sang jagoan Linux tidak menyangka bahwa akan ada
orang yang berusaha membobol Linuxnya dengan cara "fisik".
Cerita tersebut memang merupakan rekaan saja. Namun dari cerita
tersebut bisa kita dapatkan gambaran bahwa masalah sekuriti Linux
(dan server lainnya pada umumnya), tidak sebatas pada sekuriti dari
sisi software saja, tapi juga dari sisi fisik (hardware). Marilah kita bahas masalah sekuriti ini dengan lebih dalam.
Pendahuluan : Root (Super User) dan Normal User
Sebagai sistem operasi yang di desain dengan konsep yang secure, di dalam Linux, dikenal 2 golongan user, yaitu: Super User atau sering disebut juga dengan Root, dan Normal User
atau User Biasa. Apa beda antara kedua golongan user ini? Perbedaan
mendasar di antara keduanya adalah bahwa Super User / Root memiliki hak
dan kemampuan untuk melakukan APAPUN terhadap sistem Linux itu
sendiri. Jadi, dengan menggunakan account root, kamu bisa mengubah
konfigurasi Linux, menambah/menghapus user, dan bahkan memformat
harddisk. Sedangkan User Biasa secara default tidak mempunyai hak dan
kemampuan untuk mengubah konfigurasi-konfigurasi penting dari Linux,
ataupun hal lain yang berbahaya bagi sistem seperti menghapus file-file
sistem atau memformat harddisk. Jadi sebagai contoh, user biasa secara
default tidak bisa mengubah tanggal dan waktu dari sistem Linux
tempatnya berada. Mungkin ada di antara kamu yang berpikir mengapa
untuk mengubah tanggal dan waktu saja harus memakai account Root? Repot
amat! Hal ini harus dimaklumi bahwa konsep penggunaan Linux dari
awalnya adalah sebagai server yang secure, dan bagi server, tanggal dan
waktu ini merupakan komponen yang sangat vital, terutama server-server
yang memiliki proses rutin harian seperti proses end of day, dll. Jadi
dapat dibayangkan betapa kacaunya kalau user biasa bisa mengubah
tanggal / jam di server. Namun jangan khawatir, nanti kita akan
pelajari bagaimana memberikan hak-hak "khusus" kepada user sehingga
tidak memerlukan account root lagi untuk melakukannya.
Prinsip Dasar Sekuriti : Principle of least Priviledge dan Principle of Minimum Access.
Nah, lho! Apaan tuh! Tenang, kamu akan segera memahaminya. Di dalam
sekuriti Linux, terdapat 2 prinsip atau panduan yang harus kita pahami,
yaitu Principle of least Priviledge dan Principle of Minimum Access.
Principle of least Priviledge terjemahan bebasnya kira-kira
adalah: Prinsip Hak Paling Sedikit. Disini maksudnya adalah, kita harus
memberikan sesedikit mungkin hak pada user, program-program, dan bahkan
system Linux itu sendiri di dalam menjalankan fungsinya. Pemakaian
prinsip ini berguna untuk mencegah bobolnya sistem Linux kita secara
tidak sengaja. Jadi misalnya User A hanya akan memakai Linux untuk
browsing internet dan chatting, maka jangan berikan hak lainnya yang
tidak perlu, misalnya hak untuk mendownload file dari internet, ataupun
menjalankan program file manager.
Principle of Minimum Access, seperti yang telah dapat kamu duga,
memiliki terjemahan kira-kira sebagai berikut: Prinsip Akses Minimum.
Agak sulit menjelaskan hal ini. Tapi secara sederhana maksudnya adalah
seperti ini: "Kecuali diizinkan secara spesifik, maka secara default
semua hal akan ditolak." Masih bingung? Coba bayangkan Linux kamu pada
awalnya adalah tertutup 100% bagi user biasa. User biasa tidak
mempunyai akses sama sekali pada Linux tersebut. Bila ia mencoba login,
maka ia akan ditolak. Lho, lalu bagaimana caranya ia memakai Linux
tersebut? Caranya adalah dengan menentukan SATU per SATU hal apa saja
yang bisa ia lakukan. Jadi pada prinsip akses minimum ini, kita
menentukan secara sistematis hak apa saja yang ingin kamu berikan pada
user yang pada awalnya diset tidak memiliki hak apapun. Jadi mulai dari
nol.
Catatan: pengertian "user" di atas, tidak hanya terbatas pada user
"orang", tapi juga pada program-program, dan sistem Linux itu sendiri.
Untuk mudahnya, kita bisa mengganti kata "user" dengan "program",
"browser", dll.
Berdasarkan kedua prinsip di atas, ada beberapa hal yang harus mendapatkan perhatian di dalam sekuriti Linux:
1. Mengamankan Akses User (User Access)
Jika kamu ingin benar-benar membuat sebuah komputer aman, kamu dapat
menaruh komputer tersebut sedemikian rupa sehingga tidak ada seorang
pun bisa menjangkaunya. Namun tentu saja hal ini akan juga membuat
komputer tersebut tidak berguna bagi orang lain. Jadi, yang dapat kamu
lakukan adalah membatasi Akses User sehingga system Linux kamu aman,
sambil tetap dapat menjalankan fungsinya. Berkaitan dengan mengamankan
Akses User ini, terdapat 4 hal yang harus kamu lakukan:
- Batasi Akses Fisik ke komputer tersebut. Seperti ilustrasi di
atas, walaupun dari sisi software aman, tapi secara fisik komputer
tersebut dapat dibobol. Oleh karena itu lakukanlah hal berikut ini
untuk mengamankan komputer kamu secara fisik:
- Hidupkanlah Password BIOS. Hal ini untuk mencegah orang iseng masuk ke BIOS dan mengunci komputer kamu.
- Matikan option untuk boot dari floppy disk dan juga CDROM. Hal
ini untuk mencegah orang menggunakan disket atau CDROM untuk memboot
komputer kamu.
- Edit atau buatlah file /etc/shutdown.allow (jika belum ada)
yang berisi nama-nama user siapa saja yang berhak mengshutdown komputer
kamu. Jika kamu menginginkan hanya Root yang bisa mengshutdown, buatlah
file tersebut kosong. Jadi ketika seseorang yang tidak berhak mencoba
menekan tombol Ctrl+Alt+Del untuk merestart, Linux akan menolaknya.
Tentu saja orang tersebut masih bisa menggunakan cara lain yaitu dengan
cara menekan tombol reset ataupun mencabut kabel power komputer kamu,
jadi pastikan bahwa kedua hal ini pun kamu amankan.
- Taruhlah komputer kamu terkunci pada sebuah perabotan yang
besar, sehingga jika ada orang yang berusaha mengambilnya akan
mengalami kesulitan. Hal ini sama seperti jika kita ingin mengamankan
sepeda kita dengan jalan menguncinya pada tiang listrik.
- Membatasi Akses User Biasa. Berdasarkan kedua prinsip sekuriti di
atas, kamu harus membatasi hak seorang user biasa sampai seminimum
mungkin sambil memperhatikan bahwa ia masih tetap bisa melakukan
tugasnya. Jadi misalnya ada seorang user biasa yang hanya membutuhkan
fasilitas email dan browsing internet, janganlah kamu berikan hak
Telnet (mengkonek Linux dari jauh/ remote).
- Membatasi Akses Super User (root). Karena sifatnya yang sangat
powerful, account super user ini harus kamu gunakan jika HANYA perlu
saja, misalnya ketika ingin menginstall software tertentu, atau tugas
administrasi lainnya. Jangan gunakan account ini untuk melakukan tugas
non-administratif seperti browsing internet, chatting IRC, dll, sebab
ada kemungkinan seorang cracker berhasil mencuri password super usermu.
- Membatasi semua akses pada saat terjadi keadaan darurat /
serangan. Jika suatu ketika kamu menyadari bahwa Linuxmu telah berhasil
dibobol orang, hal pertama yang harus kamu lakukan adalah menghentikan
semua akses (login) terlebih dahulu, sampai kamu mengetahui apa saja
yang telah dibobol dan kamu telah berhasil mengatasinya. Cara
menghentikan semua login adalah dengan membuat sebuah sebuah file
bernama /etc/nologin. Di dalam file ini kamu bisa masukan pesan bahwa
untuk sementara Linux tidak bisa diakses, dan juga waktu perkiraan
kapan bisa diakses kembali. Pembuatan file ini mengakibatkan semua user
biasa tidak dapat login, dan juga super user hanya bisa login melalui
console fisik (keyboard).
2. Mengamankan Proses Otorisasi User. Secara tradisional semua
sistem yang berbasis UNIX menyimpan info user di dalam file
/etc/passwd. File ini berisi username, password yang terenkripsi, user
ID, group ID dari user tersebut, dan default shell. Nah, file
/etc/passwd ini disetel agar bisa dibaca oleh semua program (world
readable) yang membutuhkan proses otorisasi. Hal ini mengakibatkan
seoarang cracker yang handal bisa mengelabui program-program yang
dibuat secara kurang baik, untuk mengirimkan file tersebut ke email
sang cracker! Setelah dia berhasil mendapatkan file tersebut, dia bisa
menggunakan program pembobol password untuk mengetahui
password-password yang ada dalam file tersebut. Bayangkan apa saja yang
bisa dilakukan olehnya setelah dia berhasil mengetahui password user
ataupun root.
Lalu apa yang bisa kita lakukan untuk mengatasi kelemahan ini? Kita
bisa menggunakan yang namanya Shadow password. Dengan program ini, kita
bisa "memindahkan" password-password yang tersimpan di dalam file
/etc/passwd ke dalam file /etc/shadow. File shadow ini hanya bisa
dibaca oleh root atau program yang dijalankan dengan ID root. Dengan
demikian bila seorang cracker tetap berhasil memperoleh file
/etc/passwd kita, dia tidak akan mendapatkan password apapun di
dalamnya sebab semua password telah dipindahkan ke dalam file
/etc/shadow.
Masih belum yakin akan keamanan proses otorisasi Linuxmu? Atau kamu
ingin mengatur bahwa user A hanya bisa login pada jam 10-12 hari Senin,
dan Rabu saja, dsbnya. Untuk melakukan hal ini, kamu bisa menggunakan
program bernama PAM (Pluggable Authentication Method). Dengan
menggunakan program ini maka tanggung jawab proses otorisasi diserahkan
dari program yang bersangkutan (misalnya program login) ke program PAM.
Keunggulan dari PAM ini adalah, tersedia banyak modul-modul tambahan
yang memberikan tambahan fungsi di dalam proses otorisasi login,
seperti mengatur waktu kapan user boleh login (jam, tanggal, hari),
servis-servis apa saja yang diminta oleh user, dari terminal mana ia
login, dll.
3. Mengamankan Servis (Service) yang berjalan. Sering kali
cracker berhasil masuk ke dalam system Linux kita karena kita lalai
mematikan servis-servis yang sebenarnya tidak kita perlukan. Lalu
bagaimanakah cara kita mengamankan Linux kita dari sisi servis? Kita
harus melakukan langkah pengamanan ini mulai dari proses installasi.
Jika kita menginstall Linux hanya untuk dijadikan web server, maka
otomatis kita tidak memerlukan servis lainnya seperti mail server, news
server, dll. Berkaintan dengan hal ini, alangkah baiknya jika kamu
berniat memakai Linuxmu sebagai server, kamu TIDAK menginstall
program-program berikut ini:
- Semua yang berkaitan dengan XWindows, dan XWindows itu sendiri.
- Semua program yang berkaitan dengan multimedia.
- Semua interpreter (program bantu penterjemah proses), kecuali
jika benar-benar dibutuhkan. Misalnya jika web servermu hanya melayani
Perl, maka jangan install yang lainnya.
- Semua server lainnya yang tidak kamu perlukan, misalnya kamu
ingin memakai web server saja, maka jangan install server lain seperti
mail server, NIS (Network Information System), Samba, dll.
- Semua file editor lainnya yang tidak kamu pakai.
- Semua program client seperti email client yang tidak akan kamu pakai.
Demikianlah kira-kira pembahasan mengenai security untuk newbie.
Artikel ini masih sebagian kecil saja dari aspek security yang ada, dan
tentunya PENGALAMAN kita sebagai admin akan juga memberikan andil di
dalam setting security.
Referensi:
http://linux.about.com/library/bl/open/newbie/blnewbie_toc.htm
http://www.linuxquestions.org/questions/showthread.php?s=&postid=1198783#post1198783
http://www.linuxlinks.com/Beginners/
http://www.faqs.org/docs/lnag/lnag_commands.html
By tiger74 (fajarpri@arinet.org) 22 October 2004. Penulis
adalah Microsoft Certified Professional, yang jatuh cinta kepada Linux.
Bekerja di sebuah lembaga pendidikan di Jakarta.