Posts Tagged ‘rofiq’

MD5

Thursday, March 6th, 2008

Anda pernah menginstall linux, dan mendapatkan pertanyaan dari sistem yang sedang anda instal untuk mengaktifkan md5 atau tidak. Sebagai pemula mungkin banyak yang bertanya MD5 itu apa ?, apakah sejenis makanan atau merek kaos seperti C59. Untuk itulah tulisan ini hadir, dan semoga bermanfaat untuk kita semua.Seandainya kita tidak mengenal internet atau jaringan komputer yang digunakan untuk komunikasi data, mungkin md5 sendiri tidak akan pernah ada. MD5 merupakan sebuah tool yang penting sekali digunakan dalam jaringan komputer. Ok, penjelasannya adalah pada saat anda mengirimkan sebuah data lewat jaringan komputer, maka ada tiga hal yang harus diperhatikan, yaitu keamanan, autotenfikasi dan integritas data. Keamanan atau sequrity berguna sekali untuk mendapatkan kepastian bahwa data yang dikirmkan itu tidak bisa dibaca oleh orang yang lain yang tidak memiliki hak untuk itu. Hal ini penting untuk kegiatan critical mission seperti kegiatan militer dsb (mission imposible), dimana kerahasiaan data tidak boleh jatuh ke tangan musuh. Autotenfikasi berguna untuk menjamin keabsahan pengirim data yang dikirimkan secara legal (berguna untuk e-commerce), artinya kita harus tahu siapa pengirim data tersebut, hal ini akan terlihat nyata misalnya untuk tanda tangan digital (digital signatur). Integritas menjamin data untuk tidak transit kemana-mana, sehingga data yang diterima merupakan data yang dikirimkan. Yang satu ini penting dalam banyak industri, seperti keuangan. Bisa kita simpiulkan pada akhirnya, bahwa MD5 adalah sebuah tool yang akan menjamin integritas dari data yang kita kirimkan.

Selain itu, MD5 banyak sekali kegunaannya dalam aplikasi nyata. Ketika kita mengambil sebuah file dari internet, kita menggunakan MD5 untuk menjamin bahwa data yang kita ambil adalah data yang benar. Jika kita menggunakan tool seperti Tripwire, untuk memproteksi file sistem maka kita sama persisnya menggunakan MD5. MD5 adalah sebuah tool yang dikembangkan dengan menggunakan infrastruktur public/private key, seperti hal GNUPG, GPG yang kesemuanya gratis dan bisa digunakan oleh siapa saja.

Tentang MD5

Dibuat pada tahun 1994, MD5 adalah salah satu metoda dalam algoritma yang menangani panjang data dan membuat panjang data tersebut sampai 128 bit. Istilah untuk hal ini dikenal dengan nama “fingerrpint” atau “message digest”. Hal ini berarti seseorang tidak dapat melihat, membaca, atau memodifikasi data yang terenkripsi dengan menggunakan sistem fingerprintnya MD5. Sebagai contoh kita bisa melihat keluaran dari sebuah file binari seperti ls (/usr/bin/ls) :

ksl $md5 /usr/bin/ls

MD5 (/usr/bin/ls) = 1eabd3dbc0746c8a4b5467f99a4f8823

Hasil keluarannya bisa dilihat dengan menggunakan metode enkripsi finger adalah 1eabd3dbc0746c8a4b5467f99a4f8823

Ringkasnya, apa yang dilakukan oleh MD5 adalah dengan menggunakan algoritma matimatik dari file “ls” dan kemudian menjadi bentuk yang di enkripsi (sekali lagi istilah ini dikenal dengan nama fingerprint, untuk mempelajari lebih lanjut, silahkan lihat di http://www.cis.ohio-state.edu/rfc/rfc1321.txt). Dalam contoh sehari-hari, misalnya kita sering kali melakukan pengiriman data dengan nama KSL, dan menggunakan MD5 untuk enkripsinya, maka jika kita lihat keluaran dari fingerprint harus menghasilkan ouput yang sama. Jika kemudian hasilnya berbeda, kemungkinan file tersebut sudah korup atau rusak. Kalau kasusnya seperti ini, kita harus memiliki catatan ouput fingerprint untuk setiap file atau data.

Lebih mudahnya kalau yang kita ambil adalah sebuah file aplikasi dari internet Misalnya game. Setelah mengambil data tersebut, lihat hasil atau output dari fingerprint dan cocokkan dengan hasil fingerpint yang biasanya disediakan oleh server ftp yang menyediakan file tersebut.

Startup dan Shutdown Di Linux

Thursday, March 6th, 2008

Selama proses booting, Linux akan memanggil sebuah loader yang disebut dengan LILO (belakangan juga muncul loader bernama GRUB), yang kemudian akan memanggil sebuah program yang bernama dengan init. Program init inilah yang kemudian akan memeriksa file-file inisialisasi sistem, lokasi file-file tersebut berada, dan menjalankan Linux sesuai dengan default run level yang digunakan.
Proses Startup

Proses starup dimulai ketika sistem sudah memanggil LILO dan proses booting sudah diserahkan pada sebuah program induk yang disebut dengan init. Pada hampir kebanyakan distribusi Linux, proses startup mengikuti aturan-aturan seperti berikut.

1. Eksekusi LILO
2. LILO Memuat secondary loader pada /boot/chain.b.
3. /boot/chain.b menjalankan Kernel Linux. Sampai pada bagian ini, seorang pengguna akan melihat tampilan pesan pada layar seperti menjalankan daemon, memerika integritas perangkat keras, dan sebagainya.
4. Kernel menyerahkan tugasnya kepada init.
5. Init menjalankan berbagai program di belakang layar yang dibutuhkan oleh seorang user untuk login ke dala sistem.
6. Init memanggil program yang digunakan untuk login.
Proses Startup pada tiap Distribusi

Seperti sudah diterangkan di atas, setelah init mengambil alih tugas booting sistem dari LILI atau GRUB, init akan menjalankan sistem sesuai dengan default run level yang digunakan. Pada beberapa distribusi, penanganan run level ini berbeda satu dengan lainnya.
Run Level pada RedHat dan OpenLinux

Kedua distribusi ini meletakkan program-program shell pada direktori /etc/rc.d. Program-program yang berhubungan dengan init diletakkan dalam sebuah direktori master pada /etc/rc.d/init.d. Sedangkan direktori lainnya lagi memiliki nama yang sama untuk setiap run level, misalnya /etc/rc1.d/ untuk run level 1.
Debian/GNU LINUX

Debian memiliki kesamaan dengan RedHat ataupun OpenLinux. Perbedaan terletak pada direktori master, yaitu /etc/init.d sedangkan untuk RedHat atau OpenLinux adalah /etc/rc.d.init.d.
Slackware

Slackware memiliki kesamaan dengan RedHat ataupun OpenLinux. Perbedan terletak pada distribusi Slackware yang tidak menggunakan file dengan link sombolik seperti yang digunakan oleh distribusi lainnya. Jadi setiap file yang berhubungan dengan init adalah program binari yang memang dapat dieksekusi untuk menjalankan script shell.
SuSE

Perbedaan utama SuSE dengan RedHat ataupun Open Linux adalah struktur yang berada pada direktori master /etc/rc.d/rc di link kembali ke direktori aktif yang berada pada /etc/rc.d/.
Proses Startup dan LILO

Penggunaan boot manajer memungkinkan kita untuk menjalankan lebih dari sistem operasi pada satu komputer. Dengan boot manajer kita dapat memilih salah satu sistem operasi untuk dijalankan pada waktu proses booting pertama kali. Kebanyakan distribusi saat ini menyertakan LILO atau GRUB yang dapat diinstal pada waktu proses instalasi. Keberadaan boot manajer ini memungkinkan seorang user untuk dapat menggunakan harddisk berukuran besar dengan menyertakan opsi linear pada lilo.conf. Untuk mengkonfigurasikan lilo, dapat dilakukan dengan menggunakan tool-tool berbasis grafis, seperti RedHat dengan Linuxconf atau Webmin untuk Open Linux. Meskipun tersedia tool berbasis grafis, kita dapat mengkonfigurasikan lilo dengan menggunakan cara manual pada file /etc/lilo.conf.

Jika pada satu komputer terdapat dua sistem operasi (misal Linux dan MS Windows), pada file lilo.conf terdapat dua baris utama yang menunjukkan opsi yang digunakan untuk menjalankan kedua sistem operasi tersebut. Pada kedua baris tersebut terdapat sebuah opsi label yang merupakan nama dari sistem operasi yang digunakan untuk menjalankan salah satu sistem operasi yang digunakan.

Salah satu opsi yang digunakan pada lilo adalah pengaturan waktu yang digunakan untuk memberikan kesempatan user memilih salah satu sistem operasi yang digunakan sebelum nilai default yang digunakan lilo dijalankan. Opsi ini menggunakan timeout dan berisikan nilai dalam satuan detik. Misalkan kita akan mengatur timeout dengan satuan waktu 20 detik, tambahkan opsi berikut ke dalam lilo.conf.
timeout = 200
opsi lainnya dalah default, yang digunakan untuk mengatur dafult sistem operasi yang akan dijalankan jika batas timeout di atas sudah habis. Untuk mengatur Linux sebagai default sistem operasi yang akan dijalankan, gunakan opsi berikut.
default = linux
Untuk menjalankan sistem operasi, dalam konfigurasi lilo harus dimasukkan opsi image yang digunakan untuk memanggil image dari kernel Linux. Contoh berikut digunakan untuk memanggil image kernel yang digunakan pada distribusi RedHat 7.2.
image=/boot/vmlinuz-2.4.7-10
Setelah memuat image dari Kernel Linux, langkah berikutnya adalah menentukan label dari kernel Linux yang digunakan, termasuk partisi tempat file image tersebut berada.
label=linux

root=/dev/hda5
Langkah terakhir adalah dengan mengaktifkan perubahan yang dilakukan pada file lilo.conf dengan mengetikkan perintah lilo pada prompt Linux seperti berikut.
#lilo
Berikut ini adalah isi file lilo.conf yang penulis gunakan pada distribusi RedHat 7.2.
prompt

timeout=50

default=linux

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

message=/boot/message

linear

image=/boot/vmlinuz-2.4.7-10

label=linux

read-only

root=/dev/hda5
init dan Run Level

Ada beberapa cara untuk melakukan booting terhadap sistem, yang sering sekali digunakan adalah dengan membooting sistem menggunakan harddisk dan menggunakan floppy drive. RedHat dan distribusi Linux lainnya menggunakan proses boot yang yang disebut dengan init sysV yang merupakan sistem booting yang digunakan oleh BSD. Init adalah program dari kernel yang dieksekusi pada waktu startup, dan kemudian memiliki nomor PID 1. Proses boot ini kemudian menjadi proses induk (parent process) bagi semua proses yang berada dalam sistem.

Langkah-langkah yang dilakukan oleh sistem pada waktu booting adalah :

1. Kernel menjalankan program init yang berada pada direktori /sbin
2. init menjalankan script shell /etc/rc.d/rc.sysinit.
3. rc.sysinit menjalankan sistem lainnya dan menampilkan proses startup.
4. Init menjalankan script yang sesuai dengan default run level.
5. Init menjalankan script pada /etc/rc.d/rc.local.
Program ini kemudian menjalankan banyak proses dan menuliskan informasi ke konsol dan sistem log pada /var/log/message tentang status dari setiap proses yang dijalankan.init menjalankan semua proses yang dibutuhkan oleh sistem operasi untuk melaksanakan tugasnya, seperti networking, menggunakan mouse, fungsi dari I/O dan sebagainya. init juga harus mengetahui program mana yang harus dijalankan dengan membaca file-file yang berada pada /etc/rc.d. Setiap file yang berada pada direktori ini dikelompokkan berdasarkan run level, pada tiap-tiap direktori.

Run level terdiri dari berbagai tipe layanan, dari single user mode (run level 1) sampai multiuser, multitasking (run level 3). Tabel berikut memperlihatkan run level yang tersedia pada Linux.
Tabel 1 Run Level pada Linux

Run Level Penjelasan

0 Halt

1 Single user mode

2 Multi user, tidak ada NFS

3 Full multiuser mode

4 Unused (tidak digunakan)

5 X11

6 reboot
Run Level 0 : /etc/rc.d/rc0.d

Seperti yang anda lihat pada tabel diatas, run level 0 akan menjalankan sekumpulan script yang digunakan untuk shutdown. Script pada run level ini akan menjalankan proses seperti berikut :

1. Mematikan semua proses yang sedang berjalan
2.Mematikan file virtual memory yang di swap
3.Melakukan proses unmounting swap dan filesistem yang di mount.
Berikut ini adalah file-file yang digunakan ketika proses mematikan komputer berjalan.
K00linuxconf -> ../init.d/linuxconf*

K05keytable -> ../init.d/keytable*

K10xfs -> ../init.d/xfs*

K11drakfont -> ../init.d/drakfont*

K15numlock -> ../init.d/numlock*

K20kheader -> ../init.d/kheader*

K30usb -> ../init.d/usb*

K44rawdevices -> ../init.d/rawdevices*

K60atd -> ../init.d/atd*

K60crond -> ../init.d/crond*

K65identd -> ../init.d/identd*

K75netfs -> ../init.d/netfs*

K80random -> ../init.d/random*

K92anacron -> ../init.d/anacron*

K95harddrake -> ../init.d/harddrake*

K95kudzu -> ../init.d/kudzu*

K97sound -> ../init.d/sound*

K99syslog -> ../init.d/syslog*

S00killall -> ../init.d/killall*

S01halt -> ../init.d/halt*
Run Level 1: /etc/rc.d/rc1.d

Run Level 1 merupakan single user mode, atau merupakan mode untuk melakukan administrasi, run level ini digunakan seorang sistem administrator untuk melakukan perawatan software.

Untuk masuk kedalam mode ini pada waktu boot ketikkan perintah seperti berikut ini :

boot : linux single

dengan demikian anda akan langsung masuk kedalam runlevel 1 dengan melewati berbagai argumen yang ada pada kernel.

Run Level 2: /etc/rc.d

www.yuliardi.com

Manajemen Service pada Linux

Thursday, March 6th, 2008

Iseng-iseng buka folder lama ketemu tulisan…mungkin sudah agak uptodate tapi semoag ada manfaanya… ;-) . Tulisan ini seingat saya dibuat waktu redhat masih versi 6.xd engan komputer AMD 100 MHz..

Seringkali pengguna baru Linux tidak mengetahui service apa yang berjalan
pada Linux Box-nya, sehingga banyak service yang tidak diperlukan berjalan
tanpa ada manfaatnya. Hal ini biasanya terjadi karena banyak service yang
dijalankan default pada saat instalasi. Selain menambah beban kerja
komputer hal itu juga bisa menimbulkan masalah keamanan yang serius jika
komputer terhubung dengan jaringan.
Service merupakan program yang dijalankan oleh komputer untuk melayani
request yang ditujukan pada komputer tersebut. Sebagai contoh agar user
bisa melakukan telnet ke suatu server maka sever tersebut harus
menjalankan service telnetd, karena jika telnetd tidak dijalankan maka
server tersebut tidak akan bisa di telnet.
Kebanyakan service berjalan dengan menggunakan protokol TCP dan UDP dimana
masing masing service telah mempunyai nomor port tersendiri sehingga tidak
akan terjadi tabrakan antar service, misalnya :
- HTTP : TCP port 80
- POP3 : TCP port 110
- Telnet : TCP port 23
Informasi service dan nomor port serta protokol yang digunakan terdapat
pada file /etc/service, dan dapat dilihat dengan perintah $cat
/et/services
Pada saat pertama kali menginstal Linux, banyak sekali service yang secara
default juga terinstal dan berjalan. Sehingga perlu dilakukan pemeriksaan
apakah service-service yang telah berjalan tersebut benar-benar
dibutuhkan. Jika memantg tidak diperlukan sebaiknya service-service
tersebut dimatikan untuk mencegah ekploitasi dan pemborosan sumberdaya.
Pada Linux juga dikenal tiga jenis service yaitu init service, inet
service dan xinet service. Init service merupakan service yang dijalankan
oleh script init yang terdapat pada file dalam direktori /etc/rc.d/ atau
/etc/rc.d/init.d/. Inet service merupakan service yang dijalankan oleh
daemon inetd, dimana inetd sendiri dijalankan melalui init service,
sedangkan xinetd merupakan pengganti dari inetd yang digunakan pada kernel
2.4.x.
Mematikan semua service mungkin memang cara terbaik untuk menjaga keamanan
sistem, tetapi hal tersebut tidak mungkin dilakukan jika komputer tersebut
adalah sebuah server, karena untuk melayani request dari klien banyak
service yang harus dijalankan. Untuk memudahlan dalam mengambil keputusan
apakah sebuah service harus dijalankan atau dimatikan ada beberapa hal
yang dapat digunakan sebagai pedoman, yaitu :
Sedapat mungkin mengurangi service yang berjalan dengan tanpa mengorbankan
fungsi dari komputer tersebut.
Jika tidak mengenal suatu service untuk lebih aman sebaiknya dimatikan.
Memastikan bahwa service-service tersebut tidak mempunyai hole, dengan
melihat referensi dan informasi patch.
Untuk melihat service apa saja yang sedang dijalankan bisa digunakan
utilitas seperti chkconfig, netstat atau ps. Berikut adalah perintah
melihat service dengan menggunakan netstat
#netstat -ta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:www *:* LISTEN
tcp 0 0 *:https *:* LISTEN
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 *:login *:* LISTEN
tcp 0 0 *:X *:* LISTEN
Tetapi perintah itu hanya melihat service yang berjalan pada runlevel saat
itu, sedangkan untuk melihat service pada tiap run level bisa digunakan
chkconfig.
#chkconfig –list
. .
syslog 0:mati 1:mati 2:hidup 3:hidup 4:hidup 5:hidup 6:mati
crhidupd 0:mati 1:mati 2:hidup 3:mati 4:hidup 5:mati 6:mati
netfs 0:mati 1:mati 2:mati 3:mati 4:hidup 5:mati 6:mati
network 0:mati 1:mati 2:hidup 3:hidup 4:hidup 5:hidup 6:mati
……………………………….
xinetd based services:
finger: hidup
tftp: mati
………
Dari contoh diatas pada baris pertama menunjukan bahwa syslog akan
berjalan jika runlevelnya adalah 2, 3, 4 dan 5 sedangkan untuk runlevel
0,1 dan 6 syslog tidak akan berjalan, dan service yang dijalankan oleh
xinetd adalah finger dan tftpd.
Karena pada Linux Box penulis telah dilakukan charset Indonesia, maka off
menjadi mati dan on menjadi hidup.
Menjalankan dan Mematikan service.
Untuk mengaktifkan dan mematikan service cara yang digunakan berbeda untuk
service yang dijalankan melalui init script, inetd ataupu xinetd.
Untuk init service dapat digunakan perintah berikut
#/etc/rc.d/init.d/nama_service start
#/etc/rc.d/init.d/nama_service stop
atau
#service nama_service start
#service nama_service stop
Tetapi perintah-perintah diatas hanya menjalankan atau mematikan service
saat pada saat komputer berjalan, dan ketika direboot maka service
tersebut akan kembali seperti semula. Agar perubahan permanen maka harus
dirubah pada tiap runlevelnya. Untuk melakukan itu Linux telah menyediakan
beberapa utilitas seperti :
chkconfig : Dengan mode teks
ntsysv : Ncurses GUI utility
tksysv : Xwindows GUI utility
control-panel atau linuxconf : Xwindow GUI
Berikut adalah konfigurasi dengan menggunakan chkconfig
Untuk membuat sebuah service dijakankan oleh init script pada saat booting
pada semua runlevel digunakan perintah #chkconfig –add
contoh :
#chkconfig –add portsentry
Sedangkan untuk mengaktifkan pada tiap-tiap runlevel digunakan perintah
#chkconfig –level on
contoh :
#chkconfig –level 5 portsentry on
#chkconfig –level 5 ipchains on
Sedangkan untuk menonaktifkan sebuah service agar tidak dijalankan pada
tiap runlevel adalah :
#chkconfig –level off
contoh : #chkconfig –level 5 portsentry off
#chkconfig –level 5 ipchains off
Dan jika ingin menghapus atau mematikan service pada semua runlevel
digunakan perintah
#chkconfig –del
contoh :
#chkconfig –del portsentry
Pada inet service untuk mengaktifkan atau mematikan service yang harus
dilakukan adalah memberi tanda komentar (#) untuk service yang akan
dimatikan dan menghilangkan tanda komentar untuk service yang akan
dijalankan pada file /etc/inetd.conf/, kemudian restart inetd.
#vi /etc/inetd.conf
………………………
#time stream tcp nowait root internal
#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#/etc/rc.d/init.d/inetd restart
Starting inetd [OK}
Sedangkan untuk xinet service maka harus dilakukan edit manual dengan teks
editor pada file yang terdapat pada direktori /etc/xinetd.d/. Isi dari
file yang harus dirubah adalah baris "disable", dimana kata "no" pada
baris tersebut harus diganti "yes" untuk mematikan service dan ganti kata
"yes" menjadi "no" untuk mengaktifkannya.
disable = no
menjadi
disable = yes
Sama halnya dengan inetd service jika terjadi perubahan pada service
didalam xinetd maka yang harus direstart adalah xinetd nya.
#service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]

Bahan Bacaan :
Hal Burgiss, ” Security Quick-Start HOWTO for Red Hat Linux”, 2001.
Kurt Seifried, “Linux Administrator’s Security Guide”, 2001
David A. Ranch, “TrinityOS : A Guide to Configuring Your Linux Server for
Per-formance, “Security, and Managability” December 30, 2001