Minggu, 30 Mei 2010

Cache, Buffer, Spool

Cache

Cache adalah sebuah daerah memori cepat yang berisi salinan data. Akses ke sebuah salinan yang di- cache lebih efisien daripada akses ke data yang asli. Sebagai contoh, instruksi-instruksi yang baru saja menjalankan proses-proses yang disimpan dalam disk,proses tersebut di- cache ke memori fisikal, dan disalin lagi ke cache primer dan sekunder dari CPU. Perbedaan sebuah buffer dan cache adalah sebuah buffer berisi salinan informasi data yang sudah ada, sedangkan sebuah cache berisi sebuah salinan data pada ruang penyimpanan yang dapat diakses dengan cepat informasi data ada di ruang lainnya.
Caching dan buffering adalah dua fungsi yang berbeda, tetapi kadang-kadang sebuah daerah memori dapat menggunakan kedua fungsi tersebut. Sebagai contoh, untuk menghemat copy semantic dan untuk membuat penjadwalan M/K menjadi efisien, sistem operasi menggunakan memori utama untuk menyimpan data yang ada di dalam disk. Buffer-buffer ini juga digunakan sebagai sebuah cache untuk meningkatkan efisiensi M/K pada berkas yang digunakan secara bersama-sama oleh beberapa aplikasi, atau sedang ditulis atau dibaca berulang-ulang. Ketika kernel menerima permintaan sebuah berkas, pertama-tama kernel mengakses buffer cache untuk melihat apakah daerah berkas tersebut sudah tersedia dalam memori utama. Jika daerah itu ada, disk fisikal M/K dapat dihindari atau tidak dipakai. Penulisan disk juga diakumulasikan ke buffer cache dalam beberapa detik sehingga transfer data yang besar dikumpulkan untuk mengefisienkan penjadwalan penulisan. Strategi penundaan penulisan ini untuk meningkatkan efisiensi M/K akan dibahas pada bagian remote file access.

Buffer

Buffer adalah sebuah daerah memori yang menyimpan data ketika data tersebut ditransfer antara dua perangkat atau antara sebuah perangkat dan sebuah aplikasi. Buffering digunakan karena tiga alasan, antara lain:

Gambar 11.1. Ukuran Transfer Data berbagai Perangkat
Ukuran Transfer Data berbagai Perangkat

  • Untuk mengatasi perbedaan kecepataan antara produsen dan konsumen dari sebuah aliran data .  Sebagai contoh, sebuah berkas diterima melalui sebuah modem dan disimpan ke harddisk. Kita tahu bahwa modem itu ribuan kali lebih lambat daripada harddisk. Sehingga sebuah buffer dibuat pada memori utama untuk menampung jumlah byte yang diterima dari modem. Ketika semua data sudah sampai di buffer, buffer dapat ditulis ke disk dengan operasi tunggal. Karena penulisan ke disk tidak terjadi seketika dan modem masih membutuhkan ruang untuk menyimpan data tambahan yang masuk maka digunakanlah dua buffer. Setelah modem mengisi buffer pertama, penulisan ke disk dilakukan. Modem kemudian mulai mengisi buffer kedua sementara buffer pertama ditulis ke disk. Pada saat modem sudah mengisi buffer kedua, penulisan disk dari buffer pertama seharusnya sudah selesai sehingga modem dapat menggunakan kembali buffer pertama ketika buffer kedua melakukan penulisan ke disk. Metode ini disebut double buffering.
  • Untuk menyesuaikan antara perangkat-perangkat yang mempunyai perbedaan ukuran transfer data .  Perbedaan ukuran transfer data ini sangat umum terjadi pada jaringan komputer dimana buffer digunakan secara luas untuk fragmentasi dan pengaturan kembali pesan-pesan. Pada bagian pengiriman, pesan yang ukurannya besar akan dipecah-pecah menjadi paket-paket kecil (fragmentasi). Paket-paket ini dikirim melalui jaringan, di ruang penerimaan, paket-paket kecil tadi diletakkan dalam buffer untuk disatukan kembali.
  • Untuk mendukung copy semantic pada aplikasi M/K .  Sebuah contoh akan menjelaskan arti dari copy semantic. Misalkan sebuah aplikasi mempunyai buffer data yang ingin dituliskan ke disk. Aplikasi tersebut akan memanggil system call write, lalu menyediakan sebuah pointer ke buffer dan sebuah bilangan bulat (integer) yang menspesifikasikan jumlah byte yang ditulis. Setelah system call tersebut selesai, apa yang terjadi jika aplikasi mengubah isi buffer? Dengan copy semantic, versi data yang ditulis ke disk sama dengan versi data pada saat aplikasi memanggil system call write , tidak tergantung dengan perubahan apapun yang ada pada buffer. Cara sederhana sistem operasi dapat menjamin copy semantic adalah untuk system call write dengan menyalin data aplikasi ke buffer kernel sebelum mengembalikan kontrol ke aplikasi. Penulisan ke disk dilakukan dari buffer kernel sehingga perubahan yang terjadi pada buffer aplikasi tidak mempunyai efek apapun. Menyalin data antara buffer kernel dan buffer aplikasi adalah hal yang umum dalam sistem operasi, kecuali overhead yang ada pada clean semantic. Efek yang sama dapat diperoleh dengan hasil yang lebih efisien dengan penggunaan yang cermat pada pemetaan memori virtual dan perlindungan halaman copy-on-write.

Spool

Spool adalah sebuah buffer yang berisi keluaran untuk sebuah perangkat, seperti sebuah printer dimana aliran data tidak dapat mengalir bersamaan. Walaupun printer hanya dapat melayani satu pekerjaan pada satu waktu, beberapa aplikasi mungkin ingin mencetak keluaran masing-masing secara bersamaan tanpa harus tercampur. Sistem operasi menyelesaikan masalah ini dengan cara meng-intercept semua keluaran tersebut ke printer. Masing-masing keluaran aplikasi tadi di-spool ke disk berkas yang terpisah. Ketika sebuah aplikasi selesai mencetak keluarannya, sistem spooling akan melanjutkan ke antrian berikutnya. Pada beberapa sistem operasi, spooling ditangani oleh sebuah sistem proses daemon yaitu suatu sistem yang terus mengawasi apakah aliran data berjalan lancar. Pada sistem operasi lainnya, spooling ditangani oleh sebuah thread in- kernel. Pada kedua macam penanganan spooling tersebut, sistem operasi menyediakan kontrol antarmuka yang membolehkan user dan sistem administrator untuk membentuk antrian, untuk membuang job yang tidak diinginkan sebelum job tersebut dicetak, untuk menunda pencetakan ketika printer diperbaiki, dan sebagainya.

Gambar 11.2. Spooling
Spooling

Beberapa perangkat, seperti tape drives dan printer tidak dapat mengumpulkan permintaan M/K dari banyak aplikasi secara bersamaan. Cara lain adalah dengan menggunakan akses perangkat secara bersamaan dengan menyediakan fasilitas langsung dengan cara koordinasi. Beberapa sistem operasi (termasuk Virtual Machine System) menyediakan dukungan akses perangkat secara ekslusif dengan mengalokasikan sebuah proses ke perangkat yang menganggur atau idle dan membuang perangkat tersebut jika sudah tidak diperlukan lagi. Sistem operasi lainnya memaksakan sebuah batasan dari penanganan sebuah berkas yang dibuka ke perangkat tersebut. Kebanyakan sistem operasi menyediakan fungsi yang membuat proses-proses untuk menangani koordinat akses eksklusif diantara mereka sendiri. Sebagai contoh, Windows NT menyediakan system call untuk menunggu objek perangkat sampai statusnya tersedia. Dia juga mempunyai sebuah parameter untuk system call open yang mendeklarasikan tipe-tipe akses yang diperbolehkan untuk thread\ lainnya secara bersamaan. Pada sistem ini, penghindaran deadlock diserahkan kepada aplikasi.

Arti Dari Firewall

Firewall merupakan suatu cara/sistem/mekanisme yang diterapkan baik terhadap hardware , software ataupun sistem itu sendiri dengan tujuan untuk melindungi, baik dengan menyaring, membatasi atau bahkan menolak suatu atau semua hubungan/kegiatan suatu segmen pada jaringan pribadi dengan jaringan luar yang bukan merupakan ruang lingkupnya. Segmen tersebut dapat merupakan sebuah workstation, server, router, atau local area network (LAN) anda.

Firewall secara umum di peruntukkan untuk melayani :

1. Mesin/komputer
Setiap individu yang terhubung langsung ke jaringan luar atau internet dan menginginkan semua yang terdapat pada komputernya terlindungi.

2. Jaringan
Jaringan komputer yang terdiri lebih dari satu buah komputer dan berbagai jenis topologi jaringan yang digunakan, baik yang di miliki oleh perusahaan, organisasi dsb.

KARAKTERISTIK FIREWALL

1.Seluruh hubungan/kegiatan dari dalam ke luar , harus melewati firewall. Hal ini dapat dilakukan dengan cara memblok/membatasi baik secara fisik semua akses terhadap jaringan Lokal, kecuali melewati firewall. Banyak sekali bentuk jaringan yang memungkinkan.

2.Hanya Kegiatan yang terdaftar/dikenal yang dapat melewati/melakukan hubungan, hal ini dapat dilakukan dengan mengatur policy pada konfigurasi keamanan lokal. Banyak sekali jenis firewall yang dapat dipilih sekaligus berbagai jenis policy yang ditawarkan.

3.Firewall itu sendiri haruslah kebal atau relatif kuat terhadap serangan/kelemahan. hal ini berarti penggunaan sistem yang dapat dipercaya dan dengan Operating system yang relatif aman.

TEKNIK YANG DIGUNAKAN OLEH FIREWALL

1.Service control (kendali terhadap layanan)
berdasarkan tipe-tipe layanan yang digunakan di Internet dan boleh diakses baik untuk kedalam ataupun keluar firewall. Biasanya firewall akan mencek no IP Address dan juga nomor port yang di gunakan baik pada protokol TCP dan UDP, bahkan bisa dilengkapi software untuk proxy yang akan menerima dan menterjemahkan setiap permintaan akan suatu layanan sebelum mengijinkannya.Bahkan bisa jadi software pada server itu sendiri , seperti layanan untuk web ataupun untuk mail.

2.Direction Conrol (kendali terhadap arah)
berdasarkan arah dari berbagai permintaan (request) terhadap layanan yang
akan dikenali dan diijinkan melewati firewall.

3.User control (kendali terhadap pengguna)
berdasarkan pengguna/user untuk dapat menjalankan suatu layanan, artinya ada user yang dapat dan ada yang tidak dapat menjalankan suatu servis,hal ini di karenakan user tersebut tidak di ijinkan untuk melewati firewall. Biasanya digunakan untuk membatasi user dari jaringan lokal untuk mengakses keluar, tetapi bisa juga diterapkan untuk membatasi terhadap pengguna dari luar.

4.Behavior Control (kendali terhadap perlakuan)
berdasarkan seberapa banyak layanan itu telah digunakan. Misal, firewall dapat memfilter email untuk menanggulangi/mencegah spam.

TIPE – TIPE FIREWALL

1.Packet Filtering Router

Packet Filtering diaplikasikan dengan cara mengatur semua packet IP baik yang menuju, melewati atau akan dituju oleh packet tersebut.pada tipe ini packet tersebut akan diatur apakah akan di terima dan diteruskan , atau di tolak.penyaringan packet ini di konfigurasikan untuk menyaring packet yang akan di transfer secara dua arah (baik dari atau ke jaringan lokal). Aturan penyaringan didasarkan pada header IP dan transport header,termasuk juga alamat awal(IP) dan alamat tujuan (IP),protokol transport yang di
gunakan(UDP,TCP), serta nomor port yang digunakan.
Kelebihan dari tipe ini adalah mudah untuk di implementasikan, transparan untuk pemakai, lebih cepat
Adapun kelemahannya adalah cukup rumitnya untuk menyetting paket yang akan difilter secara tepat, serta lemah dalam hal authentikasi.

Adapun serangan yang dapat terjadi pada firewall dengan tipe ini adalah:

+ IP address spoofing : intruder (penyusup) dari luar dapat melakukan ini
dengan cara menyertakan/menggunakan ip address jaringan lokal yanbg telah
diijinkan untuk melalui firewall.

+ Source routing attacks : tipe ini tidak menganalisa informasi routing
sumber IP, sehingga memungkinkan untuk membypass firewall.

+ Tiny Fragment attacks : intruder (penyusup) membagi IP kedalam bagian-bagian (fragment) yang lebih kecil dan memaksa terbaginya informasi mengenai TCP header. Serangan jenis ini di design untuk menipu aturan penyaringan yang bergantung kepada informasi dari TCP header. Penyerang berharap hanya bagian (fragment) pertama saja yang akan di periksa dan sisanya akan bisa lewat dengan bebas. Hal ini dapat di tanggulangi dengan cara menolak semua packet dengan protokol TCP dan memiliki Offset = 1 pada IP fragment (bagian IP)

2.Application-Level Gateway

Application-level Gateway yang biasa juga di kenal sebagai proxy server yang berfungsi untuk memperkuat/menyalurkan arus aplikasi. Tipe ini akan mengatur semua hubungan yang menggunakan layer aplikasi ,baik itu FTP, HTTP, GOPHER dll.

Cara kerjanya adalah apabila ada pengguna yang menggunakan salah satu aplikasi semisal FTP untuk mengakses secara remote, maka gateway akan meminta user memasukkan alamat remote host yang akan di akses.Saat pengguna mengirimkan USer ID serta informasi lainnya yang sesuai maka gateway akan melakukan hubungan terhadap aplikasi tersebut yang terdapat pada remote host, dan menyalurkan data diantara kedua titik. apabila data tersebut tidak sesuai maka firewall tidak akan meneruskan data tersebut atau menolaknya. Lebih jauh lagi, pada tipe ini Firewall dapat di konfigurasikan untuk hanya mendukung beberapa aplikasi saja dan menolak aplikasi lainnya untuk melewati firewall.

Kelebihannya adalah relatif lebih aman daripada tipe packet filtering router lebih mudah untuk memeriksa (audit) dan mendata (log) semua aliran data yang masuk pada level aplikasi.

Kekurangannya adalah pemrosesan tambahan yang berlebih pada setiap hubungan. yang akan mengakibatkan terdapat dua buah sambungan koneksi antara pemakai dan gateway, dimana gateway akan memeriksa dan meneruskan semua arus dari dua arah.
3.Circuit-level Gateway

Tipe ketiga ini dapat merupakan sistem yang berdiri sendiri , atau juga dapat merupakan fungsi khusus yang terbentuk dari tipe application-level gateway.tipe ini tidak mengijinkan koneksi TCP end to end (langsung)

cara kerjanya : Gateway akan mengatur kedua hubungan tcp tersebut, 1 antara dirinya (gw) dengan TCP pada pengguna lokal (inner host) serta 1 lagi antara dirinya (gw) dengan TCP pengguna luar (outside host). Saat dua buah hubungan terlaksana, gateway akan menyalurkan TCP segment dari satu hubungan ke lainnya tanpa memeriksa isinya. Fungsi pengamanannya terletak pada penentuan hubungan mana yang di ijinkan.

Penggunaan tipe ini biasanya dikarenakan administrator percaya dengan pengguna internal (internal users).

KONFIGURASI FIREWALL

1.  Screened Host FIrewall system (single-homed bastion)

Pada konfigurasi ini, fungsi firewall akan dilakukan oleh packet filtering router dan bastion host*.Router ini dikonfigurasikan sedemikian sehingga untuk semua arus data dari Internet, hanya paket IP yang menuju bastion host yang di ijinkan. Sedangkan untuk arus data (traffic) dari jaringan internal, hanya paket IP dari bastion host yang di ijinkan untuk keluar.

Konfigurasi ini mendukung fleksibilitasdalam Akses internet secara langsung, sebagai contoh apabila terdapat web server pada jaringan ini maka dapat di konfigurasikan agar web server dapat diakses langsung dari internet.
Bastion Host melakukan fungsi Authentikasi dan fungsi sebagai proxy. Konfigurasi ini memberikan tingkat keamanan yang lebih baik daripada packet-filtering router atau application-level gateway secara terpisah.

2.  Screened Host Firewall system (Dual-homed bastion)

Pada konfigurasi ini, secara fisik akan terdapat patahan/celah dalam jaringan. Kelebihannya adalah dengan adanya du ajalur yang meisahkan secara fisik maka akan lebih meningkatkan keamanan dibanding konfigurasi pertama,adapun untuk server-server yang memerlukan direct akses (akses langsung) maka dapat diletakkan ditempat/segmenrt yang langsung berhubungan dengan internet

Hal ini dapat dilakukan dengan cara menggunakan 2 buah NIC ( network interface Card) pada bastion Host.

3.  Screened subnet firewall

Ini merupakan konfigurasi yang paling tinggi tingkat keamanannya. kenapa? karena pada konfigurasi ini di gunakan 2 buah packet filtering router, 1 diantara internet dan bastion host, sedangkan 1 lagi diantara bastian host dan jaringan local konfigurasi ini membentuk subnet yang terisolasi.

adapun kelebihannya adalah :
+ terdapat 3 lapisan/tingkat pertahanan terhadap penyusup/intruder .
+ router luar hanya melayani hubungan antara internet dan bastion host sehingga jaringan lokal menjadi tak terlihat (invisible )
+ Jaringan lokal tidak dapat mengkonstuksi routing langsung ke internet, atau dengan kata lain , Internet menjadi Invinsible (bukan berarti tidak bisa melakukan koneksi internet).

LANGKAH-LANGKAH MEMBANGUN FIREWALL

1.Mengidenftifikasi bentuk jaringan yang dimiliki
Mengetahui bentuk jaringan yang dimiliki khususnya toplogi yang di gunakan serta protocol jaringan, akan memudahkan dalam mendesain sebuah firewall

2.Menentukan Policy atau kebijakan
Penentuan Kebijakan atau Policy merupakan hal yang harus di lakukan, baik atau buruknya sebuah firewall yang di bangun sangat di tentukan oleh policy/kebijakan yang di terapkan. Diantaranya:
1. Menentukan apa saja yang perlu di layani. Artinya, apa saja yang akan dikenai policy atau kebijakan yang akan kita buat
2. Menentukan individu atau kelompok-kelompok yang akan dikenakan policy atau kebijakan tersebut
3. Menentukan layanan-layanan yang di butuhkan oleh tiap tiap individu atau kelompok yang menggunakan jaringan
4. Berdasarkan setiap layanan yang di gunakan oleh individu atau kelompok tersebut akan ditentukan bagaimana konfigurasi terbaik yang akan membuatnya semakin aman
5. Menerapkankan semua policy atau kebijakan tersebut

3.Menyiapkan Software atau Hardware yang akan digunakan Baik itu operating system yang mendukung atau software-software khusus pendukung firewall seperti ipchains, atau iptables pada linux, dsb. Serta konfigurasi hardware yang akan mendukung firewall tersebut.

4.Melakukan test konfigurasi
Pengujian terhadap firewall yang telah selesai di bangun haruslah dilakukan, terutama untuk mengetahui hasil yang akan kita dapatkan, caranya dapat menggunakan tool tool yang biasa dilakukan untuk mengaudit seperti nmap.

* Bastion Host adalah sistem/bagian yang dianggap tempat terkuat dalam sistem keamanan jaringan oleh administrator.atau dapat di sebuta bagian terdepan yang dianggap paling kuat dalam menahan serangan, sehingga menjadi bagian terpenting dalam pengamanan jaringan, biasanya merupakan komponen firewall atau bagian terluar sistem publik. Umumnya Bastion host akan menggunakan Sistem operasi yang dapat menangani semua kebutuhan (misal , Unix, linux, NT)