P. 1
Pengertian Web Server

Pengertian Web Server

|Views: 885|Likes:
Published by hoztuff_ariq

More info:

Published by: hoztuff_ariq on May 07, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as ODT, PDF, TXT or read online from Scribd
See more
See less

12/11/2012

pdf

text

original

1.

Pengertian Web Server Web Server adalah software server yang menjadi tulang belakang dari World Wide Web (WWW). Web server menunggu permintaan dari client yang menggunakan browser seperti netscape navigator, Internet Explorer, modzilla, dan program browser lainnya. Jika ada permintaan dari browser, maka web server akan memproses permintaan itu dan kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai format yang standar disebut dengan format SGML ( Standard General Markup Language). Data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser itu. Contohnya ialah bila data yang dikirim berupa data gambar, browser yang hanya mampu menampilkan text (misalnya lynx) tidak akan mampu menampilkannya dan jika ada akan menampilkan alternatifnya saja. Web Server, untuk berkomunikasi dengan clientnya (web browser) mempunyai protokol sendiri yaitu HTTP (HyperText Transfer Protocol). Dengan protokol ini, komunikasi antar web server dengan clientnya (browser) dapat saling dimengerti dan lebih mudah. Seperti telah dijelaskan diatas, Standar format data pada World Wide Web adalah SGML. Tapi sudah menjadi hal yang umum bahwa para pengguna internet lebih banyak menggunakan format HTML (HyperText Markup Language) karena penggunaannya yang lebih sederhana dan mudah dipelajari. Kata HyperText mempunyai arti bahwa seorang pengguna internet dengan web browsernya dapat membuka dan mambaca dokumen-dokumen yang ada dalam komputernya atau bahkan komputer yang jauh tempatnya sekalipun. Hal ini memberikan cita rasa dari suatu proses yang tridimensional, artinya pengguna internet dapat membaca dari satu dokumen ke dokumen yang lain hanya dengan mengklik beberapa bagian dari halaman-halaman dokumen (web) itu. Proses yang dimulai dari permintaan webclient (browser), diterima web server, diproses, dan dikembalikan hasil prosesnya oleh web server ke webclient lagi dilakukan secara transparan. Setiap orang dapat dengan mudah mengetahui apa yang terjadi pada tiap-tiap proses. Secara garis besarnya web server hanya memproses semua masukan yang diperolehnya dari web clientnya.

Untuk membuat sebuah web server, maka kita akan menemukan berbagai macam persoalan, dimulai dari pemilihan software web browser yang mana yang paling sesuai kebutuhan, apa spesifikasi hardware yang dibutuhkan, bagaimana kondisi interkoneksi jaringan internet yang ada, dan lain sebagainya. Belum lagi termasuk bagian pembuatan halamanhalaman webnya, mau menggunakan format apa (HTML, SGML, PHP, PHP3, CGI, dan lainlain). Hal yang paling utama dalam proses pembuatan Web Server adalah memilih software mana yang akan digunakan sebagai web server kita.Untuk itu, perlu adanya beberapa pertimbangan sebagai berikut : 1. Komersial lawan Freeware (software gratis). 2. Kemudahan instalasi 3. Kemudahan mengonfigurasi 4. Kemudahan untuk menambah atau mengubah periferalnya. 5. Kemampuan software. 6. Besar ruang yang dibutuhkan untuk menyimpan file-file minimal yang dibutuhkan agar software berfungsi dengan baik 7. Prospek software tersebut dimasa yang akan dating 8. Performasi dan konsumsi sumber daya yang digunakan software itu. 9. Fasilitas apa yang mampu didukung software itu. 10. Dukungan Teknis (mempunyai site-site atau mailis untuk bertanya bila terjadi masalah). 11. Dukungan Platform (jenis sistem operasi apa saja yang dapat menjalankan software tersebut) 12. Dukungan terhadap third party (Apakah software ini dapat ditambahkan software tambahan sebagai pelengkap)

1. Cara Kerja Web Server Cara kerja web server cukup sederhana, karena pada dasarnya tugas web server hanya ada dua, yaitu: • Menerima permintaan (request) dari client • Mengirimkan apa yang diminta oleh client (respone)

Keterangan Gambar: a) Client disini dapat berupa computer desktop dengan minimal memiliki browser dan terhubung ke web server melalui jaringan (intranet atau internet) b) Komputer yang berfungsi sebagai server, dimana didalamnya terdapat perangkat lunak web server. Agar komputer ini dapat diakses oleh client maka komputer harus terhubung ke jaringan (intranet atau internet). Dalam jaringan internet, komputer ini bisa saja bernama www.google.com, www.bl.ac.id, atau memiliki kode computer (disebut IP Address) seperti 202.10.20.10 dan 200.100.50.25. c) Pertama‐tama, client (user) akan meminta suatu halaman ke (web) server untuk ditampilkan di komputer client. Misalnya client mengetikkan suatu alamat (biasa disebut URL) di browser http://www.google.com. Client menekan tombol Enter atau klik tombol Go pada browser. Lalu apa yang terjadi? Melalui media jaringan (bias internet, bisa intranet) dan melalui protokol http, akan dicarilah komputer bernama ww.google.com. Jika ditemukan, maka seolah‐olah terjadi permintaan, “hai google, ada client yang minta halaman utama nich, ada dimana halamannya?”. Inilah yang disebut request. d) Sekarang dari sisi server (web server). Mendapat permintaan halaman utama google dari client, si server akan mencari‐cari di komputernya halaman sesuai permintaan. Namanya juga mencari, kadang ketemu, kadang juga tidak ketemu. Jika ditemukan, maka halaman yang diminta akan dikirimkan ke client (si peminta), namun jika tidak ditemukan, maka server akan memberi pesan “404. Page Not Found”, yang artinya halaman tidak ditemukan.

1. Macam – macam web server Beberapa web server yang sering digunakan di internet adalah; 1. Apache Web Server 2. Web Server Litespeed 3. Web Server Nginx 4. Internet informasion Server, IIS A. Web Server Apache Apache merupakan web server yang paling banyak dipergunakan di Internet. Program ini pertama kali didesain untuk sistem operasi lingkungan UNIX. Namun demikian, pada beberapa versi berikutnya Apache mengeluarkan programnya yang dapat dijalankan di Windows NT. Apache mempunyai program pendukung yang cukup banyak. Hal ini memberikan layanan yang cukup lengkap bagi penggunanya. Beberapa dukungan Apache : 1. Kontrol Akses. Kontrol ini dapat dijalankan berdasarkan nama host atau nomor IP 2. CGI (Common Gateway Interface) Yang paling terkenal untuk digunakan adalah perl (Practical Extraction and Report Language), didukung oleh Apache dengan menempatkannya sebagai modul (mod_perl) 3. PHP (Personal Home Page/PHP Hypertext Processor); Program dengan metode semacam CGI, yang memproses teks dan bekerja di server. Apache mendukung PHP dengan menempatkannya sebagai salah satu modulnya (mod_php). Hal ini membuat kinerja PHP menjadi lebih baik 4. SSI (Server Side Includes) Fasilitas atau ciri khas dari web server Apache adalah : 1. Dapat dijadikan pengganti bagi NCSA web server. 2. Perbaikan terhadap kerusakan dan error pada NCSA 1.3 dan 1.4. 3. Apache merespon web client sangat cepat jauh melebihi NCSA. 4. Mampu di kompilasi sesuai dengan spesifikasi HTTP yang sekarang.

5. Apache menyediakan feature untuk multihomed dan virtual server. 6. Kita dapat menetapkan respon error yang akan dikirim web server dengan menggunakan file atau skrip. 7. Server apache dapat otomatis berkomunikasi dengan client browsernya untuk menampilkan tampilan terbaik pada client browsernya. Web server Apache secara otomatis menjalankan file index.html, halaman utamanya, untuk ditampilkan secara otomatis pada clientnya. 8. Web server Apache mempunyai level-level pengamanan. 9. Apache mempunyai komponen dasar terbanyak di antara web server lain. 10. Ditinjau dari segi sejarah perkembangan dan prospeknya, Apache web server mempunyai prospek yang cerah. Apache berasal dari web server NCSA yang kemudian dikembangkan karena NCSA masih mempunyai kekurangan di bidang kompatibilitasnya dengan sistim operasi lain. Sampai saat ini, web server Apache terus dikembangkan oleh tim dari apache.org. 11. Performasi dan konsumsi sumber daya dari web server Apache tidak terlalu banyak, hanya sekitar 20 MB untuk file-file dasarnya dan setiap daemonnya hanya memerlukan sekitar 950 KB memory per child. 12. Mendukung transaksi yang aman (secure transaction) menggunakan SSL (secure socket layer). 13. Mempunyai dukungan teknis melalui web. 14. Mempunyai kompatibilitas platform yang tinggi. 15. Mendukung third party berupa modul-modul tambahan. Kelebihan dan Kekurangan 1. Open Source 2. Proses instalasinya mudah 3. Mudah untuk dikustomisasi (Apache hanya punya 4 file konfigurasi) ataupun menambah peripheral dalam web servernya

4. Bisa digunakan di berbagai platform mesin dari mainframe sampai embedded system 5. Ada komunitas yang besar sehingga mudah mencari solusinya jika ditemukan masalah 6. Mudah dicari di internet 7. Server Apache otomatis berkomunikasi dengan clientnya untuk mendapatkan tampilan web terbaik 8. Keamanannya bagus dan bisa menggunakan SSL (Secure Socket Layer) 9. Tidak bisa mengatur load seperti IIS sehingga akan terus memfork proses baru sampai dalam batas yang diijinkan OS. Akan memudahkan penyerang karena RAM akan cepat habis 10. Mudah diserang oleh DoS (pada Apache versi 1.3 dan versi 2 sampai versi 2.0.36) 11. Apache tidak memproses karakter kutip dalam string Referrer dan User-Agent yang dikirimkan oleh Client. Ini berarti Client dapat memformulasi inputnya secara hati-hati untuk merusak format baris log akses A. Web Server Litespeed Litespeed web server merupakan teknologi baru yang diciptakan untuk menggantikan Apache Web Server di masa mendatang. Litespeed menurut hasil riset mempunyai kelebihan yaitu 50% lebih cepat dalam memproses PHP dan lebih cepat 6x dibandingkan Apache Web Server. Ini dia beberapa detail kelebihan Litespeed Web server: 1. Performa PHP mampu meningkat 50% 2. Mampu melebihi performa Apache hingga 6x lebih cepat 3. Pembatasan validasi HTTP request 4. Anti DDoS 5. Pencegahan System Overloading 6. Recover dari kegagalan secara langsung dan otomatis 7. Kompatibel dengan Cpanel, Plesk dan direct admin 8. Dukungan kompatibilitas dengan mod_security request filtering

9. Kompatibel dengan Apache .htaccess A. Web Server Nginx Nginx dengan cepat memberikan konten statis dengan penggunaan efisien sumber daya sistem.Hal ini dapat menyebarkan dinamis HTTP konten di jaringan menggunakan FastCGI handler untuk script , dan dapat berfungsi sebagai perangkat lunak yang sangat mampu penyeimbang beban. Nginx menggunakan asynchronous -event pendekatan untuk menangani permintaan yang diprediksi memberikan kinerja yang lebih bawah beban, kontras dengan Apache HTTP server model yang menggunakan berulir atau proses yang berorientasi pada pendekatan-permintaan penanganan. Fitur yang dimiliki sebagai berikut:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

Handling of static files, index files, and auto-indexing Reverse proxy with caching Load balancing Fault tolerance SSL support FastCGI support with caching Name- and IP-based virtual servers FLV streaming MP4 streaming, using the MP4 streaming module Web page access authentication gzip compression Ability to handle more than 10000 simultaneous connections URL rewriting Custom logging Server-side includes 1. Performanya yang tinggi, stabil, memiliki banyak fitur 2. Mudah dikonfigurasi

Kelebihan dan Kekurangan yang dimilikinya;

3. Menggunakan hanya sedikit sumberdaya pada server 4. Tidak bergantung kepada thread untuk melayani klien 5. Belum support IPV6 6. Update/patchnya versi terbarunya lama keluar 7. Fast-CGInya tidak berfungsi maximal
8. Pemakainya tidak sebanyak Apache atau IIS (komunitasnya tidak sebanyak

Apache atau IIS) A. Web Server IIS Internet Information Service (IIS) adalah komponen yang dapat digunakan untuk mengelola web, File Transfer Protocol (FTP), Ghoper, dan NNTP. Komponen IIS terdapat pada sistem operasi Windows NT ,Windows 2000, Windows XP, 7 dan Windows Server 2003. Pada Windows 98, supaya dapat mengelola Web diperlukan komponen Personal Web Server (PWS) walaupun tidak terdapat fasilitas untuk FTP. PWS juga merupakan bagian dari IIS. Komponen PWS terdapat pada CD master Windows 98 dan terletak pada direktori \add-ons\pws. Instalasi PWS dapat dilakukan dari <Drive CD ROOM>:\ADD-ONS|PWS|SETUP. Komponen pendukung IIS antara lain :
1. 2. 3. 4.

Protocol jaringan TCP/IP. Domain Name System (DNS). Direkomendasikan untuk menggunakan format NTFS demi keamanan. Software untuk membuat situs web, salah satunya Microsoft FrontPage.

Pada pembahasan Internet Information Service ini, yang banyak dibahas adalah Internet Information Service yang terdapat pada Windows 2000 Server dan hanya terbatas pada Files Transfer Protocol (FTP) dan web saja. Kelebihan dan Kekurangan 1. Lebih kompatibel dengan Windows karena memang IIS adalah keluaran Microsoft 2. Unjuk kerja untuk PHP lebih stabil, handal, dan cepat

3. Adanya kemampuan diagnostik untuk pelacakan kesalahan (bisa dikustomisasi) 4. Untuk platform .NET, user hanya bisa menggunakan IIS 5. Memiliki score tertinggi dari web server lainnya untuk masalah bug 6. Tidak gratis (web server berbayar) 7. Port 80 (Port untuk layanan web) sangat mudah diserang oleh cracker 8. Keamanan file log juga sangat mudah ditembus sehingga system password pun akan mudah didapatkan

1. Keamanan pada aplikasi web Berikut ini adalah 10 celah tersebut dan cara agar kita dapat mengatasi masalah tersebut.
A. Unvalidated input

Semua aplikasi web menampilkan data dari HTTP request yang dibuat oleh user dan menggunakan data tersebut untuk melakukan operasinya. Hacker dapat memanipulasi bagian-bagian pada request (query string, cookie information, header) untuk membypass mekanisme keamanan. Berikut ini tiga jenis penyerangan yang berhubungan dengan masalah ini: • • • Cross site scripting Buffer overflows Injection flaws

Ada beberapa hal yang dapat dicatat ketika menangani validasi pada aplikasi kita. Pertama, adalah tidak baik pada aplikasi web untuk percaya pada client side scripting. Script tersebut biasanya menghentikan form submission apabila terdapat sebuah input yang salah. Akan tetapi, script tersebut tidak dapat mencegah hacker untuk membuat HTTP requestnya sendiri

yang terbebas dari form. Menggunakan client side validation masih bisa membuat aplikasi web yang mudah diserang. Kedua, beberapa aplikasi menggunakan pendekatan "negative" (negative approach) pada validasinya : Aplikasi mencoba mendeteksi jika terdapat elemen yang berbahaya pada request parameter. Masalah dari jenis pendekatan ini adalah hanya bisa melindungi dari beberapa serangan yaitu : hanya serangan yang dikenali oleh validation code yang dicegah. Ada banyak cara dimana hacker dapat membypass keamanan dari unvalidated input; Masih ada kemungkinan dimana cara yang baru tidak dikenali oleh aplikasi dapat membypass validasi dan melakukan perusakan. Adalah cara yang lebih baik untuk menggunakan pendekatan "positive" (positive approach) yaitu : membatasi sebuah format atau pola untuk nilai yang diijinkan dan memastikan input tersebut sesuai dengan format tersebut.
A. Broken Access Control

Banyak aplikasi yang mengkategorikan user-usernya ke dalam role yang berbeda dan level yang berbeda untuk berinteraksi dengan content yang dibedakan dari kategori-kategori tersebut. Salah satu contohnya, banyak aplikasi yang terdapat user role dan admin role : hanya admin role yang diijinkan untuk mengakses halaman khusus atau melakukan action administration. Masalahnya adalah beberapa aplikasi tidak efektif untuk memaksa agar otorisasi ini bekerja. Contohnya, beberapa program hanya menggunakan sebuah checkpoint dimana hanya user yang terpilih yang dapat mengakses : untuk proses lebih lanjut, user harus membuktikan dirinya terotorisasi dengan menggunakan user name dan password. Akan tetapi, Mereka tidak menjalankan pengecekan dari checkpoint sebelumnya : dimana apabila user berhasil melewati halaman login, mereka dapat bebas menjalankan operasi. Masalah lain yang berhubungan dengan access control adalah: • Insecure Ids – Beberapa site menggunakan id atau kunci yang menunjuk kepada user atau fungsi. ID dapat juga ditebak, dan jika hacker dapat mudah menebak ID dari user yang terautorisasi, maka site akan mudah diserang.

File permissions – Kebanyakan web dan aplikasi server percaya kepada external file yang menyimpan daftar dari user yang terotorisasi dan resources mana saja yang dapat dan/atau tidak dapat diakses. Apabila file ini dapat dibaca dari luar, maka hacker dapat memodifikasi dengan mudah untuk menambahkan dirinya pada daftar user yang diijinkan.

Pada contoh-contoh tadi, kita dapat mengembangkan filter atau komponen yang dapat dijalankan pada sensitive resources. Filter atau komponen tadi dapat menjamin hanya user yang terotorisasi dapat mengakases. Untuk melindungi dari insecure Ids, kita harus mengembangkan aplikasi kita agar tidak percaya pada kerahasiaan dari Ids yang dapat memberi access control. Pada masalah file permission, file-file tersebut harus berada pada lokasi yang tidak dapat diakses oleh web browser dan hanya role tertentu saja yang dapat mengaksesnya.
A. Broken Authentication dan Session Management

Authentication dan session management menunjuk kepada semua aspek dari pengaturan user authentikasi dan management of active session. Berikut ini beberapa hal yang perlu diperhatikan : • Password strength – Aplikasi kita harus memberikan level minimal dari keamanan sebuah password, dimana dapat dilihat dengan cara melihat panjang dari password dan kompleksitasnya. Contohnya sebuah aplikasi dimana terdapat user baru yang akan mendaftar : aplikasi tidak mengijinkan password dengan panjang 3-4 karakter atau kata-kata simpel yang dapat mudah ditebak oleh hacker. • Password use – Aplikasi kita harus membatasi user yang mengakses aplikasi melakukan login kembali ke sistem pada tenggang waktu tertentu. Dengan cara ini aplikasi dapat dilindungi dari serangan brute force dimana hacker bisa menyerang berulang kali untuk berhasil login ke sistem. Selain itu, log in yang gagal sebaiknya dicatat sebagai informasi kepada administrator untuk mengindikasikan kemungkinan serangan yang terjadi.

Password storage – password tidak boleh disimpan di dalam aplikasi. Password harus disimpan dalam format terenkripsi dan disimpan di file lain seperti file database atau file password. Hal ini dapat memastikan bahwa informasi yang sensitif seperti password tidak disebarkan ke dalam aplikasi.

Session ID Protection – server biasanya menggunakan session Id untuk mengidentifikasi user yang masuk ke dalam session. Akan tetapi jika session ID ini dapat dilihat oleh seseorang pada jaringan yang sama, orang tersebut dapat menjadi seorang client.

Salah satu cara yang dapat digunakan untuk mencegah terlihatnya session ID oleh seseorang pada suatu jaringan yang sama adalah menghubungkan komunikasi antara sever dan client pada sebuah SSL-protected channel.
A. Cross site scripting

Cross site scripting terjadi ketika seseorang membuat aplikasi web melalui script ke user lain. Hal ini dilakukan oleh penyerang dengan menambahkan content (seperti JavaScript, ActiveX, Flash) pada request yang dapat membuat HTML output yang dapat dilihat oleh user lain. Apabila ada user lain yang mengakses content tersebut, browser tidak mengetahui bahwa halaman tersebut tidak dapat dipercaya. Cara yang bisa digunakan untuk mencegah serangan cross site scripting adalah dengan melakukan validasi data masuk dari user request (seperti header, cookie, user parameter, ...). Cara negative approach tidak digunakan : mencoba untuk memfilter active content merupakan cara yang tidak efektif.
B. Buffer overflows

Penyerang dapat menggunakan buffer overflows untuk merusak aplikasi web. Hal ini dilakukan karena penyerang mengirimkan request yang membuat server menjalankan kodekode yang dikirimkan oleh penyerang. Kelemahan buffer overflow biasanya sulit dideteksi dan sulit dilakukan oleh hacker. Akan tetapi penyerang masih bisa mencari kelemahan ini dan melakukan buffer overflow pada sebagian aplikasi web.

Terima kasih atas desain dari Java environment, dimana aplikasi yang berjalan pada J2EE server aman dari jenis serangan ini. Untuk memastikan keamanan, cara yang paling baik adalah melakukan pengawasan apabila terdapat patch atau bug report dari produk server yang digunakan.
C. Injection flaws

Salah satu kelemahan yang populer adalah injection flaw, dimana hacker dapat mengirimkan atau menginject request ke operating system atau ke external sumber seperti database.
D. Denial of Service

Denial of Service merupakan serangan yang dibuat oleh hacker yang mengirimkan request dalam jumlah yang sangat besar dan dalam waktu yang bersamaan. Dikarenakan requestrequest tersebut, server menjadi kelebihan beban dan tidak bisa melayani user lainnya. Serangan DoS mampu menghabiskan bandwidth yang ada pada server. Selain itu dapat juga menghabiskan memory, koneksi database, dan sumber yang lain. Pada umumnya sangat sulit untuk melindungi aplikasi dari serangan ini. Akan tetapi masih ada cara yang dapat dilakukan seperti membatasi resource yang dapat diakses user dalam jumlah yang minimal. Merupakan ide / cara yang bagus untuk membuat load quota yang membatasi jumlah load data yang akan diakses user dari sistem. Salah satu contoh adalah pada implementasi bulletin board : adanya pembatasan user pada saat melakukan search, dimana operasi ini hanya dapat dilakukan setiap 20 detik. Dengan cara ini dapat dipastikan bahwa user tidak bisa menghabiskan koneksi dari database. Solusi yang lain adalah mendesain aplikasi web dimana user yang belum terotorisasi hanya memiliki akses yang sedikit atau tidak memiliki akses ke content web yang berhubungan dengan database. E. Insecure Configuration Management Biasanya kelompok (group) yang mengembangkan aplikasi berbeda dengan kelompok yang mengatur hosting dari aplikasi. Hal ini bisa menjadi berbahaya, dikarenakan keamanan yang diandalkan hanya dari segi aplikasi : sedangakan dari segi server juga memiliki aspek

keamanan yang perlu diperhatikan. Adanya kesalahan dari konfigurasi server dapat melewati aspek keamanan dari segi aplikasi. Berikut ini adalah kesalahan konfigurasi server yang bisa menimbulkan masalah :
1. Celah keamanan yang belum dipatch dari software yang ada pada server –

administrator tidak melakukan patch software yang ada pada server. 2. Celah keamanan server dimana bisa menampilkan list dari direktori atau juga serangan berupa directory traversal. 3. File-file backup atau file contoh (sample file), file-file script, file konfigurasi yang tertinggal / tidak perlu. 4. Hak akses direktori atau file yang salah. 5. Adanya service yang seperti remote administration dan content management yang masih aktif. 6. Penggunaan default account dan default password. 7. Fungsi administrative atau fungsi debug yang bisa diakses. 8. Adanya pesan error yang informatif dari segi teknis. 9. Kesalahan konfigurasi SSL certificate dan setting enkripsi. 10. Penggunaan self-signet certificates untuk melakukan autentikasi. 11. Penggunaan default certificate.
12. Kesalahan autentikasi dengan sistem eksternal.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->