Bab ini berisi kesimpulan dan saran yang diperoleh berdasarkan hasil penelitian yang telah dilakukan.
BAB II
LANDASAN TEORI
2.1. Server
2.1.1. Pengertian Server
Sesuai namanya, server adalah sebuah program yang dibuat untuk tujuan
‘melayani’. Data yang dapat dilayani oleh server antara lain halaman web, file, informasi database, email, dan masih banyak yang lain. Saat ini banyak sekali program server yang tersedia, misalnya apache, filezilla, vsftpd, bind, mysql. Biasanya, program server dirancang untuk berjalan secara terus menerus di background sambil melayani permintaan yang datang. Proses ini disebut juga dengan istilah daemon process.
2.1.2. Jenis Jenis Server
Menurut Negus (2012), ada beberapa jenis server yang digolongkan berdasarkan kegunaannya, beberapa diantaranya adalah:
1. System Logging Server: Server ini bertugas untuk mengumpulkan catatan dari berbagai komponen yang bekerja dalam sebuah sistem. 2. Print Server: Print server adalah sebuah program yang
memungkinkan sebuah printer dapat digunakan oleh banyak orang melalui jaringan komputer.
3. Web Server: Sebuah program yang menggunakan protokol HTTP dan berfungsi untuk menyediakan layanan berupa halaman web kepada pengguna.
4. FTP Server: Sebuah program yang berfungsi menyediakan layanan berbagi file dari satu host ke host yang lain melalui jaringan berbasis TCP.
5. NFS: Network File System (NFS) server adalah fitur standar pada sistem Linux dan UNIX untuk berbagi berkas melalui jaringan.
6. Mail Server: Sering juga disebut Mail Transfer Agent (MTA). Program ini bertugas untuk mengirim dan menerima email yang masuk melalui jaringan lokal, atau meneruskan dan menerima dari jaringan di luarnya.
7. NTP Server: Netwok Time Protocol (NTP) server adalah sebuah program yang berfungsi untuk melakukan sinkronsasi waktu pada komputer secara otomatis melalui jaringan.
8. DNS Server: Sebuah program yang bertugas untuk menerjemahkan alamat URL atau nama domain seperti www.usd.ac.id ke dalam alamat IP yang bersangkutan, misalnya 202.94.83.16.
9. SQL Server: Program ini berfungsi untuk menjalankan dan menyimpan data ke dalam sebuah sistem manajemen basis data (DBMS).
10.Proxy Server: Proxy server adalah sebuah program yang berada di antara klien yang meminta berkas dengan server yang memiliki berkas tersebut.
2.2. Proxy Server
2.2.1. Pengertian Proxy Server
Menurut Saini (2011), Proxy server adalah sebuah sistem yang berada di antara klien yang meminta dokumen web, dan server sebagai penyedia dokumen. Proxy server bertindak sebagai gateway untuk setiap komputer klien. Ketika klien melakukan request ke arah target server, Proxy server bekerja seolah-olah dia adalah klien tersebut. Ketika target server memberikan response, barulah Proxy sever meneruskan kepada klien yang sebenarnya.
2.2.2. Cara Kerja Proxy Server
Server
Klien Proxy
Klien meminta layanan ke server Proxy meneruskan layanan ke klien Proxy meneruskan permintaan mewakili klien Server memberikan layanan yang diminta
Gambar 2.2-1 Cara kerja Proxy server
Dari sisi klien, Proxy server dianggap seperti penyedia layanan asli. Ketika klien meminta layanan ke sebuah server di internet, permintaan tersebut akan diterima oleh Proxy server. Setelah itu, Proxy server bertindak seolah olah sebagai
klien, meminta layanan yang diminta oleh klien aslinya kepada target server. Setelah target server memberikan layanan yang diminta, Proxy server akan meneruskan layanan tersebut kepada klien aslinya.
2.2.3. Fungsi Proxy Server
Menurut Rafiudin (2008), fungsi Proxy server digolongkan menjadi tiga:
1. Gateway
Dalam sebuah sistem jaringan lokal, klien tidak dapat secara langsung terhubung ke internet. Klien harus melewati sebuah gateway yang bertindak sebagai penghubung antara jaringan lokal dan jaringan di luarnya. Dengan demikian, klien yang berada dalam suatu jaringan harus terhubung dengan sebuah gateway sebagai penyedia sambungan. Dalam hal ini, Proxy server dapat difungsikan sebagai gateway karena menjadi perantara antara jaringan lokal dan jaringan luar.
Klien
Server Gateway
2. Filtering
Proxy server dapat digunakan juga untuk tujuan packet filtering atau firewall. Packet filtering ini bertugas untuk melindungi jaringan lokal terhadap serangan yang berasal dari luar. Dalam melakukan fungsinya sebagai packet filter, Proxy server menutup koneksi secara langsung antara klien dan layanan tertentu yang tidak diijinkan.
Klien
Web Server Edukasi
Web Server Konten Dewasa Proxy Filter
Blokir OK
Gambar 2.2-3 Proxy sebagai packet filter
3. Caching
Proxy server memiliki mekanisme penyimpanan obyek tertentu yang pernah diakses dari server-server di internet (caching).
Mekanisme ini memungkinkan sebuah Proxy server untuk
menyimpan data yang pernah diakses oleh pengguna ke dalam ruang penyimpanan pada Proxy server dalam jangka waktu tertentu. Hal ini dapat dilakukan karena pada saat klien meminta layanan pada server di internet, Proxy serverlah yang akan meminta secara
langsung ke target server dan menerima layanan yang diminta lebih dulu sebelum diteruskan ke klien.
Jadi, apabila ada klien meminta layanan yang sama dengan yang pernah diminta sebelumya, dan masih tersimpan di dalam cache, maka Proxy server dapat memberikannya kepada klien tanpa harus meminta lagi ke server aslinya di internet. Klien tidak akan menyadari apakah dia menerima layanan tersebut secara langsung dari target server, atau dari cache pada Proxy server. Dari sisi klien, semuanya akan terlihat sebagai balasan dari target server.
Klien 2
Server Klien 1 Web Caching Proxy
2.2.4. Kategori Proxy Server
Menurut Suresh (2009), Proxyserver dibagi menjadi dua kategori, yaitu:
1. Transparent Proxy
Transparent Proxy pada dasarnya mengutamakan tugasnya sebagai kurir. Transparent Proxy memberikan informasi bahwa dia adalah Proxy server. Transparent Proxy tidak menyembunyikan identitasnya sebagai Proxy server.
2. Anonymous Proxy
Anonymous Proxy tidak memberikan informasi kepada target server bahwa dia adalah Proxy. Target server hanya mengetahui bahwa yang meminta layanan adalah klien biasa. Proxy tipe ini memungkinkan klien yang bersembunyi di belakangnya untuk tidak terlihat identitasnya.
2.2.5. Keuntungan Menggunakan Proxy Server
Beberapa keuntungan secara umum yang bisa dicapai apabila menggunakan Proxy server antara lain:
1. Mengurangi penggunaan traffic jaringan.
2. Meningkatkan performa web browsing pada klien dengan teknik caching.
3. Memberikan perlindungan kepada klien karena menyembunyikan klien yang asli dibelakang mesin Proxy (jika Proxy server diatur sebagai anonymous Proxy).
4. Dapat digunakan untuk memblokir website tertentu jika diatur sebagai firewall.
2.3. Squid Proxy
2.3.1. Pengertian Squid Proxy
Squid Proxy adalah aplikasi Proxy server berbasis open source yang mendukung protokol HTTP, HTTPS, FTP, dan layanan sejenis lainnya. Proyek Squid dimulai pada tahun 1991 dan didanai oleh NSF (National Science Foundation) dalam penelitian untuk teknologi caching. Pendanaan berlanjut untuk beberapa tahun berikutnya. Setelah itu, Squid berkembang dengan donasi sukarela dan investasi komersil yang dilakukan oleh pihak manajemen.
Sebagai aplikasi Proxy server, Squid mampu menurunkan konsumsi traffic jaringan sekaligus mempercepat waktu respon dalam mengakses suatu layanan internet. Hal ini terwujud karena Squid dapat melakukan caching terhadap layanan
web yang sering dikunjungi, kemudian menggunakan ulang data tersebut apabila
ada klien yang meminta layanan yang sama, dan datanya belum kadaluarsa. Karena disimpan dalam sistem jaringan lokal, maka klien akan lebih cepat mendapat layanan yang diminta apabila data tersebut tersimpan di cache Proxy.
2.3.2. Fitur Squid Proxy
Squid sebagai program open source menawarkan banyak fitur yang bisa
digunakan. Fitur yang disediakan antara lain QoS, SSLBump, HTTPS, internal DNS server, client bandwidth limit, cache diggest, dan masih banyak lagi. Untuk kedepannya, masih banyak fitur fitur pada Squid Proxy yang masih dalam tahap pengembangan atau sedang akan dikembangkan.
2.3.3. Mendapatkan Squid Proxy
Sebagai program open source, Squid Proxy menyediakan portal bagi para
pengguna untuk mengunduh secara gratis pada tautan www.Squid-cache.org, atau
bisa didapatkan pada repositori yang disediakan oleh masing masing distro linux. Cara mendapatkan Squid melalui repositori cukup mudah, untuk CentOS kita hanya perlu mengetikkan perintah yum install Squid pada jendela terminal.
2.3.4. Kode Keluaran Squid
File access log pada Squid Proxy berisi kode kode keluaran seputar aktivitas Squid Proxy. berikut ini adalah daftar kode yang dihasilkan oleh file log pada Squid Proxy.
kode keterangan
TCP_HIT Obyek yang diminta ada dalam cache dan berhasil
dihantarkan ke klien
TCP_MISS Obyek yang diminta tidak ada dalam cache UDP
TCP_REFRESH_HIT Obyek yang direquest telah kadaluarsa.
TCP_REF_FAIL_HIT Obyek yang diminta ada dalam cache, namun sudah
kadaluarsa. Query IMS tidak dapat dijalankan.
TCP_REFRESH_MISS Obyek yang diminta sudah kadaluarsa
TCP_CLIENT_REFRESH_MISS Klien mengakses obyek non-cache
TCP_IMS_HIT Klien melakukan request IMS untuk sebuah obyek
yang berada dalam cache baru
TCP_SWAPFAIL_MISS Obyek kemungkinan ada dalam cache, namun tidak
dapat diakses
TCP_NEGATIVE_HIT Request untuk obyek yang di cache negatif,
misalnya 404 Not Found
TCP_MEM_HIT Data valid dari obyek yang direquest ada dalam
cache memori, bukan dalam disk
TCP_DENIED Akses TCP diblokir
TCP_OFFLINE_HIT Obyek yang direquest diambil dari cache saat mode
offline
UDP_HIT Data valid dari obyek yang direquest ada dalam
cache
UDP_MISS Obyek yang diminta tidak ada dalam cache UDP
UDP_DENIED Akses UDP diblokir
UDP_INVALID Request invalid diterima
UDP_MISS_NOFETCH Saat startup -Y, atau saat failure, cache hit
menghasilkan kode ini
NONE Terjadi error
2.3.5. Squid Request Method
Squid mendukung beberapa metode request yang dijelaskan pada dokumen RFC 2616 (Sumber: http://wiki.squid-cache.org/SquidFaq/SquidLogs):
method defined Cacheable Keterangan
GET HTTP/0.9 ya
Mengambil obyek dan melakukan pencarian sederhana
HEAD HTTP/1.0 ya Pengambilan metadata
POST HTTP/1.0 - Mengirim data
PUT HTTP/1.1 tidak Mengunggah berkas
DELETE HTTP/1.1 tidak Menghapus item
TRACE HTTP/1.1 tidak Penelusuran rute request
OPTIONS HTTP/1.1 tidak
Opsi komunikasi request yang tersedia
CONNECT HTTP/1.1r3 tidak Koneksi SSL melalui tunnel
ICP_QUERY Squid tidak Pertukaran ICP
PURGE Squid tidak Membuang obyek dari cache
PROPFIND rfc2518 - Mengambil properti sebuah obyek
MKCOL rfc2518 tidak Membuat koleksi baru
COPY rfc2518 tidak Membuat salinan berkas
MOVE rfc2518 tidak Memindahkan berkas
LOCK rfc2518 tidak
Mengunci obyek agar tidak dapat dimodifikasi
UNLOCK rfc2518 tidak Membuka penguncian obyek
Tabel 2.3-2 Squid Request Method
2.3.6. Object Caching
Menurut Merriam Webster, cache (dibaca: /kash/) berasal dari bahasa Perancis: cacher (/kaʃe/), yang artinya tersembunyi, atau sesuatu yang disimpan. Dalam terminologi komputasi, cache dapat diartikan sebagai sebuah bagian dalam memori komputer dimana informasi tersimpan sehingga komputer dapat menemukannya dengan cepat. Object caching adalah salah satu fitur yang ditawarkan oleh Proxy server. Fitur ini bekerja dengan cara menyimpan suatu obyek dari internet baik pada protokol HTTP, FTP, atau yang lainnya ke dalam
sebuah sistem lokal. Dalam bukunya “Squid Proxy Server 3.1 Beginner’s Guide”
(2011), Saini menyebutkan ada dua media untuk melakukan caching, yaitu:
1. Caching menggunakan memori utama (RAM)
Melakukan caching pada memori utama memiliki keunggulan, yaitu data bisa diakses lebih cepat, mengingat kecepatan baca tulis
RAM yang jauh lebih tinggi dibandingkan dengan hard disk. Namun
kelemahan caching dengan memori utama adalah terkait
keterbatasan kapasitas data yang bisa ditampung. Seperti kita ketahui, bahwa ukuran penyimpanan pada hard disk biasanya jauh
lebih besar dibandingkan dengan memori. Caching dengan memori
ini sebaiknya dilakukan untuk data dengan kemungkinan akses sangat sering.
2. Caching menggunakan hard disk drive
Berbeda dengan memori utama, kapasitas hard disk jauh lebih
besar. Kita tidak mungkin melakukan caching sepenuhnya dengan
mengandalkan memori utama saja, mengingat kapasitasnya yang terbatas dan harganya yang jauh lebih mahal. Kelemahan melakukan caching pada hard disk adalah kecepatan akses yang lebih lambat daripada memori utama.
2.3.7. Hit Ratio
Hit ratio adalah salah satu parameter yang biasa digunakan dalam menentukan kinerja Squid Proxy. Hit ratio adalah perbandingan antara jumlah request yang dilakukan klien dibanding jumlah yang dapat dilayani oleh Squid.
Server Klien Proxy Request Reply (cache) Gambar 2.3-1 HIT Server Klien Proxy Request Forward Request Reply Gambar 2.3-2 MISS
Semakin besar hit ratio-nya, maka semakin besar trafik jaringan yang dihemat, karena klien mengambil layanan langsung dari Proxy pada jaringan lokal.
2.4. Linux
2.4.1. Pengertian Linux
Linux adalah sebuah sistem operasi yang memungkinkan pengguna melakukan manajemen pada komputer dan menjalankan program dalam komputer
tersebut. Sistem operasi Linux menggunakan basis UNIX dalam pengembangannya. Namun saat ini, Linux telah berkembang sangat jauh dibandingkan sistem UNIX pada saat pertama kali. Linux dianggap merupakan sebuah teknologi yang paling penting dalam perkembangan teknologi di abad 21. Perusahaan perusahaan besar seperti Facebook dan Google menggunakan sistem operasi Linux untuk menunjang bisnisnya. Sistem operasi perangkat genggam Android juga dibuat dengan menggunakan basis sistem operasi Linux. Organisasi finansial dunia juga banyak mengandalkan sistem operasi Linux seperti New York Stock Exchange, Chicago Mercantile Exchange, dan Tokyo Stock Exchange.
2.4.2. Sejarah Linux
Sistem operasi open source linux mulai dikenal oleh dunia pada tahun 1991. Dimulai dari seorang mahasiswa bernama Linus Benedict Torvalds. Pada saat itu, Linus membagi-bagikan program kernel buatannya melalui internet. Tidak disangka, ternyata kode tersebut melahirkan sebuah sistem operasi yang cukup tangguh sampai saat ini.
Linux terinspirasi dari sistem operasi Minix yang dikembangkan oleh Andrew S. Tanenbaum. Minix adalah sebuah sistem operasi Unix-like yang dijalankan pada suatu komputer. Pada awalnya, Linus sama sekali tidak menyangka kalau kernel buatannya itu menjadi sistem operasi paling menjanjikan di dunia, yang digunakan pada server, desktop, tablet, smartphone, instalasi militer, dan
masih banyak lagi. Linus memang bukan orang pertama yang membagikan kode
pengembang lain untuk membuka kode sumber mereka, seperti Java, Adobe, Solaris, BSD, dan masih banyak lagi. Menurut Linus, apa yang dilakukannya adalah sekedar untuk berbagi. Linus tidak terlalu fanatik dengan konsep free software. Linus hanya mengedepankan sisi keterbukaan kode sumber (open-source) terlepas dari apakah itu gratis atau berbayar.
2.4.3. Perbedaan Linux Dengan Sistem Operasi Lain
Selain Linux, terdapat banyak sistem operasi lain yang telah ada saat ini. Sistem operasi yang paling banyak digunakan selain Linux adalah Windows dan Mac OS. Kedua sistem operasi tersebut bersifat tertutup, yang berarti pengguna tidak dapat secara bebas melaukan perubahan pada kode sumber untuk disesuaikan dengan kebutuhannya masing masing.
Berbeda dengan Windows dan Mac OS, saat ini ada banyak sekali program open source gratis yang tersedia dan dikembangkan untuk sistem operasi Linux. Hal ini berdampak pada menurunnya biaya pengadaan infrastruktur bagi perusahaan perusahaan yang menggantungkan dirinya pada sistem operasi Linux.
2.4.4. Distro Linux
Linux distro atau Linux distribution adalah sebutan untuk sistem operasi atau aplikasi yang menggunakan kernelLinux. Setiap distro mempunyai keunikan sendiri sendiri. Biasanya, suatu distro dibuat oleh sebuah komunitas tertentu. Linux distro ini sekarang menjadi semakin besar karena distro-distro yang telah ada
sebelumnya menurunkan distro yang baru lagi, seperti distro Debian yang menurunkan Ubuntu.
Macam macam distro Linux yang cukup terkenal saat ini antara lain Linux Mint, Ubuntu, Mageia, Fedora, OpenSuse, Debian, Arch Linux, CentOS, Red Hat, Puppy, Slackware, dan masih banyak lagi
2.4.5. CentOS
Gambar 2.4-1 Logo CentOS
CentOS atau Community ENTerprise Operating System adalah salah satu distro linux yang bermain pada segmen enterprise. CentOS ini merupakan turunan dari RHEL (Red Hat Enterprise Linux). Pada awalnya CentOS dibuat agar menjadi semirip mungkin dengan induknya, yaitu RHEL. Berbeda dengan RHEL yang merupakan system operasi berbayar, CentOS dikembangkan oleh relawan dan sepenuhnya gratis untuk digunakan dan didistribusikan. Biaya pengembangan dan perawatan aset komunitas murni didapat dari donasi penggunanya dan beberapa perusahaan yang menjadi sponsor dari sistem operasi ini.
2.5. Jaringan Internet
Jaringan komputer adalah suatu kumpulan perangkat komputer yang saling berkomunikasi. Sedangkan internet adalah dua atau lebih jaringan komputer yang saling terhubung dengan jaringan yang lain. Jaringan internet merupakan hasil kolaborasi antara banyak jaringan komputer yang saling terhubung di seluruh dunia.
Pada pertengahan era 1960, komputer pada sebuah lembaga merupakan sebuah perangkat yang berdiri sendiri. Komputer pada suatu lembaga tidak dapat berkomunikasi dengan komputer yang dimiliki oleh lembaga lain. Departemen riset milik amerika (ARPA) bersama dengan departemen pertahanan (DoD) mulai menggagas sebuah konsep untuk menghubungkan perangkat perangkat tersebut sehingga lembaga lembaga yang ada dapat saling bertukar data melalui jaringan tersebut, sehingga akan lebih menghemat biaya.
Pada tahun 1967, pada pertemuan Association for Computer Machinery (ACM), ARPA mempresentasikan gagasannya tentang sebuah jaringan yang menghubungkan suatu komputer dengan komputer yang lain. Gagasan ini diberi
nama ARPANET. Pada tahun 1969, ARPANET benar benar terwujud. Pada awalnya,
ada empat lembaga yang terhubung dengan jaringan ini yaitu: University of California at Los Angeles (UCLA), University of Carolina at Santa Barbara (UCSB), Stanford Research Institute (SRI), dan University of Utah. Untuk bisa
saling terhubung pada jaringan ARPANET, komputer host menggunakan program
bernama Network Control Protocol (NCP) sebagai pengatur komunikasi antar perangkat.
Pada tahun 1972, beberapa peneliti mulai menggagas tentang sebuah protokol yang nantinya dapat digunakan untuk mengatur end to end delivery untuk paket data. Konsep ini merupakan konsep awal dari Transmission Control Protocol (TCP) yang memaparkan tentang enkapsulasi, datagram, dan gateway. Tidak lama kemudian, TCP dipisah menjadi dua bagian: Transmission Control Protocol (TCP) dan Internetworking Protocol (IP). IP bertugas untuk mengatur datagram routing, sedangkan TCP mengatur segmentasi, error detection, dan lain lain.
2.6. Jaringan LAN
Jaringan LAN adalah jaringan lokal yang menghubungkan perangkat pada sebuah kantor, gedung, atau kampus. Jaringan ini dibatasi hanya pada satu subnet dan terdiri dari minimal dua buah komputer. Jaringan LAN dirancang untuk saling berbagi antara komputer. Jaringan LAN yang sederhana dapat melibatkan hanya dua perangkat komputer saja.
Jaringan LAN hanya menggunakan satu macam media transmisi saja. Bentuk topologi jaringan LAN secara dasar menurut Forouzan (2004), digolongkan menjadi empat yaitu bus, ring, star, dan mesh.
Gambar 2.6-1 Topologi bus
Gambar 2.6-3Topologi Star
2.7. WWW dan HTTP
2.7.1. WWW
Menurut forouzan (2002), WWW adalah sebuah gudang informasi yang saling terhubung di seluruh dunia. Proyek WWW pertamakali dimulai oleh CERN, yaitu sebuah lembaga yang meneliti fisika partikel yang berlokasi di Eropa. Pada
awalnya, WWW merupakan sebuah sistem yang dirancang untuk mendistribusikan
materi materi ilmiah untuk kepentingan penelitian di seluruh dunia.
Server A Server B request request Halaman Web A Halaman Web B Gambar 2.7-1 Arsitektur WWW
Setiap server memiliki satu atau lebih dokumen, yang sering disebut juga halaman web. Tiap halaman web dapat berisi tautan ke halaman lain. Halaman web bisa diakses melalui web browser pada klien. Untuk dapat mengaksesnya, klien perlu tahu beberapa informasi yang dapat menuntunnya ke server A. Klien mengirimkan request yang ditujukan kepada server A melalui aplikasi browser. Request ini berisi informasi file yang diminta dan alamat yang dituju, atau disebut juga URL. Setelah menemukan file yang diminta, server A mengirimkan reply ke klien yang berisi halaman web A yang tadi diminta. Pada halaman web A, klien menemukan referensi dengan alamat URLserver B. Maka, jika klien menginginkan halaman web B, klien melakukan proses yang sama seperti sebelumnya, tapi langsung ditujukan kepada server B.
2.7.2. HTTP
HTTP atau Hypertext Transfer Protocol adalah sebuah protokol yang
digunakan untuk mengakses data pada WWW. Walaupun HTTP menggunakan
service TCP, namun HTTP ini sendiri merupakan stateless protocol, yaitu protokol yang memperlakukan setiap request secara independen. Cara kerjanya adalah klien mengirimkan request, server menjawabnya dengan response.
server klien
request
response
Gambar 2.7-2 Proses Transaksi HTTP
Isi dari request yang dilakukan klien adalah sebuah pesan yang berisi method yang diminta. Tipe request dikategorikan dalam tabel dibawah ini:
method action
GET Meminta sebuah dokumen pada suatu server
HEAD Meminta suatu dokumen, tapi bukan dokumen secara keseluruhan
POST Mengirimkan beberapa informasi dari klien ke server PUT Mengirimkan dokumen dari server ke klien
TRACE Mengulang informasi yang didapat CONNECT Reserved
OPTION menanyakan opsi yang tersedia
Tabel 2.7-1 HTTP Request Method
Sedangkan balasan atau reply dari server berisi status kode yang terdiri dari tiga digit angka. Kode berawalan digit 1xx adalah informasi biasa, kode dengan
awalan 2xx adalah kode sukses, kode 3xx adalah untuk redirect, kode 4xx adalah kode kesalahan klien, kode 5xx adalah kode server error. Selengkapnya dapat dilihat pada tabel berikut:
Status Deskripsi Informational