BAB II DASAR TEORI
2.1 Linux Linux adalah sistem operasi open source yang dapat digunakan hampir pada semua jenis komputer untuk semua kebutuhan teknologi informasi. Linux merupakan sistem operasi yang hampir sama dengan UNIX yang meliputi multitasking, multiuser, virtual memori dan shared library. Multitasking artinya dapat menjalankan beberapa aplikasi secara bersamaan, misalnya bermain game sambil melakukan download dari internet. Sedangkan multiuser artinya Linux mendukung penggunaan aplikasi atau komputer untuk melayani beberapa user sekaligus, misalnya sebuah program dapat digunakan bersama-sama pada jaringan. Sejumlah besar user menyukai Linux karena kecepatan dan kestabilannya, selain itu Linux dapat menjalankan perangkat keras – perangkat keras yang sudah tidak umum di tengah masyarakat. Karena itulah orang mulai menggunakan Linux sebagai web server, file server bahkan sebagai workstation . 2.1.1 Distribusi-distribusi (Distro) Linux Linux bisa didapat dalam berbagai distribusi atau sering disebut Distro. Distro adalah bundle dari kernel Linux, beserta sistem dasar Linux, program installasi, tool basic dan program-program lain yang bermanfaat sesuai tujuan Distro. Ada banyak sekali Distro Linux, diantaranya adalah :
7
8 •
RedHat, distribusi yang paling populer di Indonesia. RedHat merupakan distribusi pertama yang installasinya dan pengoperasiannya mudah.
•
Debian, distribusi yang mengutamakan kestabilan dan kehandalan, meskipun mengorbankan aspek kemudahan dan kemutakhiran program.
Debian
menggunakan
.deb
dalam
paket
installasi
programnya. •
Slackware, merupakan distribusi yang pernah unggul didunia Linux. Hampir semua disusun berdasarkan Slackware.
•
SuSE, distribusi yang sangat terkenal dengan YaST (Yet another Setup Tools) untuk mengkonfirmasi sistem. SuSE merupakan distribusi pertama dimana installasinya dapat menggunakan bahasa Indonesia.
•
Mandrake, merupakan varian distro RedHat yang dioptimasi untuk pentium. Jika komputer menggunakan pentium, umumnya Linux bisa berjalan lebih cepat dengan Mandrake.
•
WinLinux, distro yang dirancang untuk diinstall diatas partisi DOS (Windows). Jadi untuk menjalankannya bisa diklik Windows. WinLinux dibuat seakan-akan merupakan program aplikasi under Windows.
9
2.1.2 Distro RedHat RedHat merupakan distribusi Linux yang paling populer terutama di antara pengembang Linux. Poin besar dari ditribusi ini adalah RPM (RedHat Package Manager). Dengan perangkat lunak ini user dapat meng-install ataupun menguninstall aplikasi dan komponen sistem operasi, termasuk kernel dan basis sistem operasi sendiri. RPM (RedHat Package Manager) sekarang dianggap sebagai standar defacto dalam pemaketan dan digunakan secara luas oleh sebagian besar distribusi Linux kecuali Debian.
2.2 Linux Virtual Server Pendekatan Linux Virtual Server berusaha memanfaatkan cluster server yang dihubungkan dengan jaringan kecepatan tinggi yang memiliki arsitektur lepas, sehingga akan lebih handal ketimbang satu sistem yang mengggunakan multiprosesor, serta lebih hemat. Walaupun begitu permasalahan transparansi, skalabilitas, dan high availility service haruslah dipecahkan . Ketika suatu beban web server sudah membesar, solusi dengan menggunakan sistem tunggal berprosesor banyak memiliki keterbatasan. Proses penambahan atau penggantian sistem berprosesor banyak akan mengakibatkan sistem harus mati. Begitu juga dari sisi kehandalan menjadi kurang teruji, karena akan ada satu titik tunggal kelembahan.
10
Gambar 2.1 Arsitektur Linux Virtual Server
Pada model ini server sesungguhnya dapat dihubungkan dengan LAN berkecepatan tinggi ataupun tersebar secara geografis dan dihubungkan dengan WAN kecepatan tinggi. Pada sisi muka dari server sesungguhnya terdapat suatu load balancer yang akan menjadwalkan permintaan pada berbagai server dan membuat pelayanan secara parallel pada cluster yang akan tampil sebagai layanan dari suatu sistem tunggal yang berasal dari 1 IP tunggal. Skalabilitas dicapai dengan penambahan, dan pengurangan node pada cluster yang dapat dilakukan secara transparans. High availbility diimplementasikan dengan cara mendeteksi node atau daemon yang tak bekerja, dan lalu mengkonfigurasi ulang secara otomatis sistem sesuai dengan kondisi yang ada.
11
Linux virtual server dikembangkan dari code IP Masquerading dan beberapa port forwarding dari Steven Clarke. Mendukung layanan TCP dan UDP seperti HTTP, Proxy, DNS dan sebagainya. Untuk protokol yang mengirimkan alamat IP dan nomor port sebagai data aplikasi, kode tambahan diperlukan untuk menanganinya. FTP telah didukung. Linux Virtual Server dapat diimplementasikan dengan beberapa cara : •
Dengan menggunakan Network Address Translation (NAT).
•
Dengan menggunakan IP tunneling
2.2.1 Linux Virtual Server via NAT Karena keterbatasan alamat IP pada IPv4 dan beberapa alasan sekuriti, makin banyak jaringan menggunakan alamat IP privat yang tak dapat diakses dari luar jaringan (Internet). Kebutuhan untuk NAT ini timbul ketika beberapa pengguna jaringan internal akan mengakses atau diakses dari Internet. NAT ini memanfaatkan header protokol Internet yang dapat diatur sedemikan rupa sehingga client merasa mengontak satu alamat IP, tetapi server pada beberapa alamat IP yang berbeda meyakini bahwa mereka dikontak langsung oleh client. Kemampuan ini dapat digunakan untuk membentuk suatu server virtual, layanan parallel yang ada pada beberapa alamat IP yang berbeda, tampak sebagai suatu service virtual, pada satu alamat IP melalui NAT .
12
Gambar 2.2 Arsitektur Virtual server dengan NAT
Arsitektur server virtual dengan NAT ini tampak pada gambar di atas. Load balancer dan server sesungguhnya dihubungkan melalui suatu switch atau hub. Server sesungguhnya tersebut menjalankan service yang sama, dan data yang sama. Kandungan data ini dapat direplikasi pada lokal disk di tiap server, atau di gunakan bersama melalui filesystem jaringan, atau dengan menggunakan filesystem terdistribusi (seperti CODA atau AFS). Load balancer akan mengirimkan request ke berbagai server 'real' melalui NAT. Ketika user mengakses service yang disediakan oleh cluster server ini, paket request akan ditujukan pada alamat IP virtual server (alamat IP eksternal dari load balancer). Load balancer akan memeriksa alamat dan nomor port tujuan. Jika cocok dengan service dari virtual server (dibandingkan dengan tabel aturan
13
virtual server), maka suatu server 'real' akan dipilih dari cluster dengan menggunakan suatu algoritma penjadwalan, dan koneksi akan ditambahkan pada tabel hash yang akan menyimpan semua koneksi yang terjadi. Kemudian, alamat tujuan dan port dari paket tersebut dituliskan ulang ke paket sesuai dengan alamat server 'real' yang dipilih dan dikirimkan ke server tersebut. Saat paket yang termasuk dalam koneksi ini datang lagi, maka koneksi yang telah terjadi dapat diketahui dari tabel hash, paket ditulis ulang dan dikirimkan lagi ke server yang tadi telah dipilih untuk koneksi ini. Ketika paket jawaban datang, load balancer akan menulis ulang (rewrite) bagian alamat asal (source addres) dan port asal dari paket dengan menggunakan alamat dari virtual service. Ketika suatu koneksi diakhiri, atau timeout, catatan koneksi pada tabel hash dihapus.
2.2.2 Linux Virtual Server via IP tunneling IP tunneling (IP encapsulation) merupakan suatu teknik untuk mengenkapsulasi suatu datagram IP dalam datagram IP lainnya. Ini memungkinkan datagram yang ditujukan pada suatu alamat IP dibungkus dan dibelokkan ke alamat IP lainnya. Teknik ini dapat digunakan untuk mengimplementasikan virtual server dan load balancer akan melakukan tunneling dari paket yang meminta layanan menuju ke serverlainnya, server tersebut akan memproses dan memberikan hasilnya langsung ke client tanpa melalui load balancer. Service tetap tampak seperti suatu service virtual dengan alamat IP tunggal . Pada gambar berikut ini adalah arsitektur Linux Virtual Server dengan IP Tunneling. Yang berbeda adalah dibanding model NAT adalah ketika pengiriman
14
request ke server sesungguhnya, model ini menggunakan IP Tunnel sedang pada pada NAT menggunakan NAT.
Gambar 2.3 Linux Virtual Server dengan IP Tunneling Ketika pengguna mengakses layanan server cluster ini, paket yang ditujukan untuk alamat IP virtual (alamat IP load balancer) akan tiba. Load balancer akan memeriksa alamat dan port tujuan dari paket tersebut. Jika cocok dengan service pada suatu virtual server, maka server sesungguhnya akan dipilih dari cluster berdasarkan algoritma penjadualan tertentu, dan koneksi ditambahkan pada daftar tabel hash, yang mencatat semua koneksi yang terjadi. Lalu load balancer, mengenkpasulasi paket dalam suatu datagram IP dan memberikannya pada server sesungguhnya yang dipilih. Ketika paket milik koneksi tersebut datang lagi maka server yang dipilih dapat diketahui dari tabel hash, dan paket
15
dapat dienkapsulasi dan dikirimkan ke server sesungguhnya yang telah terpilih itu. Ketika server sesungguhnya menerima paket yang terenkapsulasi itu, maka akan didekapsulasi (dibongkar), dan memproses request tersebut dan hasilnya akan diberikan langsung ke user tanpa melalui load balancer (karena informasi mengenai user ada dalam paket yang terenkapsulasi tersebut). Ketika koneksi diputus atau terputus karena timeout, maka catatan koneksi akan dihapus dari tabel hash. Server sesungguhnya dapat memiliki sebarang alamat IP asli, dapat juga secara geografi terdistribusi, tetapi harus mendukung protokol IP encapsulation, dan semuanya memiliki suatu divais tunnel yang dikonfigurasi dengan, seperti "ifconfig tunl0 " pada Linux. Ketika suatu paket yang terenkapsulasi tiba, server akan membongkar dan mengetahui bahwa paket itu ditujukan untuk alamat tersebut, sehingga prosess request akan dilanjutkan oleh server dengan alamat tersebut dan hasilnya dikembalikan langsung ke user. Dapat dilihat dari berbagai service Internet (seperti web service), paket yang datang biasanya kecil, dan paket balasan biasanya membawa data yang besar. Pada virtual server via IP Tunneling, load balancer menjadwalkan request kepada berbagai server sesungguhnya, dan lalu server ini akan memberikan reply langsung kepada server melalui jalur yang berbeda (tanpa melalui load balancer). Sehingga load balancer dapat menangani request yang sangat banyak. Dimungkinkan melakukan penjadwalan lebih dari 100 server dan tanpa terjadi bottleneck pada sistem. Sehingga dengan menggunakan IP tunneling dapat dinaikkan jumlah maksimal node server untuk satu load balancer. Throughput
16
maksimal dari virtual server ini dapat mencapai lebih dari 16 Gbps, walaupun load balancer hanyalah menggunakan network card 100 MBps full-duplex . Kemampuan IP tunneling ini dapat digunakan untuk membangun suatu virtual server berkinerja sangat tinggi, sangat baik untuk membangun server proxy cache virtual, sebab ketika server proxy menerima request, maka dapat mengakses Internet secara langsung untuk mengambil obyek yang diminta dan memberikan langsung kepada user . Bagaimanapun juga, virtual server melalui IP tunneling membutuhkan server-server yang mendukung protokol IP tunneling. Kemampuan ini telah diuji pada beberapa server yang berjalan pada Linux. Karena protokol IP tunneling telah menjadi suatu standard para berbagai sistem operasi, maka virtual server dengan IP tunneling dapat diaplikasikan pada server yang berjalan pada sistem operasi lainnya. Pada model Linux virtual server ini telah diimplementasikan 4 jenis algoritma penjadualan untuk memilih server, yaitu : Round-robin Round-robin terboboti (weighted round robin) Tersedikit koneksi (least connection) Tersedikit koneksi terboboti (weighted least connection) Kemampuan penyediaan high availability dicapai dengan menggunakan perangkat lunak mon, dan fake. Program mon adalah sistem monitor serba guna, yang dapat digunakan untuk memonitor ketersediaan layanan, dan node server. Program fake adalah suatu perangkat lunak yang dapat mengambil alih IP dengan menggunakan ARP spoofing .
17
Pengambilalihan server ditangani dengan cara berikut ini . Program daemon mon yang dijalankan pada load balancer akan memonitor daemon service dan node server pada cluster. fping.monitor dikonfigurasi untuk mendeteksi apakah node server tetap bekerja setiap t detik, juga monitor service dikonfigurasi untuk memonitor service daemon setiap m menit. Sebagai contoh http.monitor dapat digunakan untuk memberiksa layanan http. Suatu peringatan akan dituliskan pada tabel virtual server selama mendeteksi node apakah down atau up. Sehingga load balancer akan mengetahui secara otomatis manakah daemon service yang gagal bekerja, dan memanfaatkannya lagi setelah kembali bekerja. Load balancer saat ini merupakan titik kelemahan utama dari seluruh sistem. Untuk mencegah kegagalan pada load balancer, dapat digunakan load balancer cadangan.
Gambar 2.4 Pengambilalihan Load balancer master Oleh Load balancer slave
18
Perangkat lunak 'fake' dapat digunakan untuk mem-backup dan mengambil alih alamat IP dari load balancer, ketika load balancer tersebut gagal bekerja. Perangkat lunak 'mon' digunakan untuk mendeteksi status dari load balancer, dan untuk mengaktifkan 'fake' pada load balancer cadangan. Daemon mon juga dijalankan di load balancer cadangan, sehingga dapat mengetahui status dari sistem. Ketika load balancer utama gagal bekerja, load balancer cadangan mengambil alih alamat IP dan meneruskan layanan. Akan tetapi pada implementasi saat ini, koneksi yang telah ada di hash tabel akan hilang, dan client terpaksa harus mengulangi requestnya kembali.
2.3 Dasar arsitektur TCP/IP TCP/IP merupakan protokol
jaringan komputer terbuka dan bisa
terhubung dengan berbagai jenis perangkat keras dan lunak. TCP merupakan singkatan dari transmission control protocol dan IP singkatan dari Internet Protocol. TCP/IP menjadi satu nama karena fungsinya selalu bergandengan satu sama lain dalam komunikasi data. TCP/IP saat ini dipergunakan dalam banyak jaringan komputer lokal (LAN) yang terhubung ke Internet, karena memiliki sifat Merupakan protokol standar yang terbuka, gratis dan dikembangkan terpisah dari perangkat keras komputer tertentu. Karena itu protokol ini banyak didukung oleh vendor perangkat keras, sehingga TCP/IP merupakan pemersatu perangkat keras komputer yang beragam merk begitu juga sebagai pemersatu berbagai perangkat lunak yang beragam merk.
19 Berdiri sendiri dari perangkat keras jaringan apapun. Sifat ini memungkinkan TCP/IP bergabung dengan banyak jaringan komputer. TCP/IP bisa beroperasi melalui sebuah Ethernet, sebuah token ring, sebuah saluran dial-up, sebuah X-25 dan secara virtual melalui berbagai media fisik transmisi data. Bisa dijadikan alamat umum sehingga tiap perangkat yang memakai TCP/IP akan memiliki sebuah alamat unik dalam sebuah jaringan komputer lokal, atau dalam jaringan komputer global seperti Internet. Protokol ini distandarisasi dengan skala tinggi secara konsisten, dan bisa memberikan servis kepada user-user di dunia.
2.4 Model Komunikasi Data Sebuah arsitektur model komunikasi data (disebut Open System Interconnect atau OSI Refference Model) telah dibuat oleh International Standards Organization (ISO) yang ditujukan untuk menemukan struktur dan fungsi ptotokol komunikasi data. Model OSI berisi tujuh lapis (layer) yang menentukan fungsi protokol komunikasi data. Setiap lapis yang ada dalam model OSI memiliki fungsi dalam komunikasi data didalam jaringan komputer. Lapisan model protokol komunikasi data secara sederhana digambarkan berikut ini :
20
Tabel 2.1 Model Osi Lapisan
Nama
Fungsi
Pelayanan/Protokol
(Layer) 7
Application
Menyediakan pelayanan
File transfer, e-mail dan
yang langsung
akses ke databse
mendukung pemakai 6
5
4
Presentation
Session
Tranport
Menerjemahkan,
ASCII, EBCDIC, MIDI,
kompresi dan enkripsi
MPEG, TIFF, JPEG,
data
PICT, Quick Time
Mengkoordinasi
NETBEUI, RPC, SQL, X
komunikasi antara system
WINDOWS
Memungkinkan paket data TCP, UDP, SPX dikirim tanpa kesalahan dan tanpa duplikat
3
Network
Menentukan jalur
IP, IPX, ARP, RARP,
pengirimam dan
ICMP, RIP, OSFT, BGP
meneruskan data ke alamat peralatan lain yang berjauhan. Pada lapisan ini data dikirim dalam bentuk paket 2
Data-Link
Mengatur binary data (0
Ethernet, Token-Ring,
dan 1) menjadi logical
FDDI, ATM, SLIP, PPP,
group. Pada lapisan ini
MTU
data dikirim dalam bentuk frame 1
Physical
Transmisi binary data
10BaseT, 100BaseTX,
lewat jaringan
HSSI, V.35, X.21
21
Pada referensi model OSI diatas, setiap lapisan dibuat agar hanya mengatur layanan dan protokol yang bekerja pada lapisan tersebut sehingga seolah-olah setiap lapisan berdiri sendiri-sendiri. Setiap protokol diatas berkomunikasi dengan peer-nya masing-masing. Sebuah peer adalah merupakan sebuah kondisi dimana ada penerapan protokol yang sama diantara dua sistem. Misalnya local file transfer protocol adalah peer bagi file transfer protocol . Komunikasi di tingkat peer ini perlu distandarisasi agar komunikasi bisa berjalan baik. Secara abstrak, setiap protokol hanya berkomunikasi dengan peernya, tidak perduli berada di lapisan atas atau bawahnya. Namun perlu juga ada persetujuan (agreement) tentang bagaimana melakukan pengiriman data diantara lapisan itu dalam sebuah sistem tunggal, sebab setiap lapisan berperan dalam pengiriman data dari aplikasi lokal ke aplikasi sejenis di dalam komputer yang jauh (remote application). Data yang akan dikirimkan dari lapisan aplikasi dibawa ke lapisan di bawahnya kemudian dibawa melalui kabel data dalam jaringan komputer. Disini data didorong melalui lapisan atas sampai lapisan bawah sehingga data selanjutnya terkirim oleh protokol lapisan fisik, ke komputer lain yang berjauhan melalui jaringan komputer. Dalam komputer yang jauh itu, data diterima oleh protokol lapisan fisik, kemudian didorong naik ke lapisan nomor 7 yaitu lapisan aplikasi. Barulah data yang diterima itu ditampilkan oleh program aplikasi, ke layar monitor dan bisa dilihat, dibaca atau didengarkan oleh user komputer itu .
22
2.5 Arsitektur Protokol TCP/IP Karena belum ada standarisasi model OSI, maka TCP/IP tidak sesuai benar dengan model OSI. Protokol-stack dalam TCP/IP biasanya digambarkan dengan layer yang lebih sedikit. Berikut contoh arsitektur protokol TCP/IP empat lapis :
Gambar 2.5 Layer-layer TCP/IP
Seperti model OSI, pada proses pengiriman data, data dalam sebuah komputer akan didorong melalui lapisan-lapisan itu (stack), dari lapisan aplikasi sampai lapisan akses jaringan sehingga terkirim melalui sarana komunikasi data dan diterima oleh komputer yang jauh. Oleh komputer yang jauh, data diterima dan kemudian didorong dari lapisan akses jaringan ke lapisan aplikasi. Setelah
23
diterima oleh lapisan aplikasi, barulah data bisa ditampilkan di layar monitor untuk diakses oleh usernya. Dalam setiap layer diatas, ditambahkan informasi kontrol untuk memastikan pengiriman/penerimaan data berjalan baik. Infomasi kontrol ini disebut sebuah header, sebab ini ditempatkan didepan data yang dikirimkan. Pada setiap lapisan itu, setiap header akan selalu ditempatkan dibagian depan data. Penambahan informasi terhadap data pada proses pengiriman/penerimaan data ini disebut encapsulasi (encapsulation). Struktur data yang melalui lapisan protokol TCP/IP diatas bisa digambarkan dalam contoh ini [3]:
Gambar 2.6 Pergerakan data dalam layer TCP/IP Pada gambar diatas aplikasi yang mempergunakan TCP adalah data stream, sedangkan aplikasi memakai UDP (Using Datagram Protocol) berupa data message. Pada lapisan transpor, TCP menyebut data sebagai segment. Sedangkan UDP menyebut data sebagai packet. Di lapisan Internet, semua data dilihat
24
sebagai blok data yang disebut datagram. Kemudian pada lapisan akses jaringan setiap potongan data yang dikirim disebut frame . TCP/IP memakai banyak cara ketika mengirimkan data ke tiap lapisan. Setiap cara juga akan memberikan nama data yang akan dikirim jadi berbeda. Banyak jaringan komputer yang mendasarkan pengiriman datanya kepada data sebagai packet atau frame. Dalam contoh diatas dipilih data yang dikirim adalah data frame.
2.5.1 Network Interface Layer Network interface layer merupakan lapisan yang bertanggung jawab mengirimkan dan menerima data ke dan dari media fisik, media fisiknya dapat berupa kabel, serat optik, atau gelombang radio. Karena itu protokol pada layer ini harus mampu menerjemahkan sinyal listrik menjadi data digital yang dimengerti komputer. Beberapa contoh dari network interface adalah Ethernet, Slip, dan PPP.
2.5.1.1 Kartu Ethernet Dalam sebuah jaringan Local Area Network (LAN) tentu sudah mengenal dengan Kartu Ethernet. Interface ini merupakan sebuah kartu yang terhubung ke kartu lain melalui ethernet hub dengan kabel UTP atau hanya menggunakan kabel BNC yang diterminasi ujungnya . Dasar pemikiran dirancangnya ethernet ialah “berbagi kabel”. Sehingga dua atau lebih komputer dapat berkomunikasi. Karena menggunakan satu kabel saja, maka proses pemancaran data harus dilakukan bergantian. Sebelum satu kartu ethernet mengirimkan datanya pada kabel, dia harus mendeteksi terlebih
25
dahulu ada tidaknya kartu lain yang sedang memancar. Jika tidak ada maka dia akan memancarkan data tersebut. Jika ada maka kartu tersebut akan menunggu sampai kabel dalam keadaan kosong (tidak terpakai) .
Gambar 2.7 Ethernet Card
Jika pada saat yang bersamaan dua kartu memancarkan data maka terjadilah collision (tabrakan). Jika ini terjadi, maka masing-masing kartu ethernet berhenti memancar dan menunggu lagi dengan selang waktu acak untuk mencoba memancarkan kembali. Karena selang waktu pancar masing masing kartu yang acak ini, maka kemungkinan collision lebih lanjut menjadi lebih kecil. Proses ini dikenal dengan nama CSMA/CD (Carrier Sense Multiple Access/Collision Detection) . Metode untuk membedakan kartu ethernet dalam satu lokal jaringan kartu telah tertera kode khusus sepanjang 48 bit, yang dikenal sebagai alamat ethernet dengan 24 bits alamat vendor dan 24 bits nomor urut yang diberikan oleh vendor .
26
2.5.1.2 SLIP dan PPP Selain ethernet, interface jaringan yang sangat banyak dipakai adalah modem telepon, yang dihubungkan ke komputer dengan serial port dengan protokol SLIP (Serial Line Interface Protocol) dan PPP (Point to Point Protocol) . SLIP SLIP ialah teknik enkapsulasi (pengemasan) datagram yang paling sederhana di internet. Datagram IP yamg diterima dienkapsulasi dengan menambahkan karakter END (0xC0) pada awal dan akhir frame [3]. PPP PPP terdiri atas beberapa protokol mini. •
LCP (Link Control Protocol). LCP ini berfungsi membentuk dan memelihara link .
•
Authentication Protocol. Protokol ini digunakan untuk memeriksa boleh tidaknya user menggunakan link ini. Ada dua jenis autentikasi yang umum digunakan, yaitu Password Authentication Protocol (PAP) dan Challenge Handshake Authentication Protocol (CHAP).
•
NCP (Network Control Protocol). NCP berfungsi mengkoordinasi operasi bermacam-macam protokol jaringan yang melalui link PPP. Beberapa hal yang dilakukan oleh protokol ini adalah menegosiasikan jenis protokol kompresi yang dipakai serta menanyakan alamat IP mitranya.
27
2.5.2 Internet Layer Internet Layer adalah lapisan yang bertanggung jawab dalam proses pengiriman paket ke alamat yang tepat. Layer ini ada tiga macam protokol, yaitu IP, ARP dan ICMP. IP berfungsi untuk menyampaikan paket data ke alamat yang tepat. ARP (Address Resolution Protocol) ialah protokol yang digunakan untuk menemukan alamat hardware dari komputer yang terletak pada network yang sama. Sedangkan ICMP (Internet Control Message Protocol) ialah protokol yang digunakan untuk mengirimkan pesan dan melaporkan kegagalan pengiriman data .
2.5.2.1 IP (Internet Protocol) Protokol IP ini berfungsi mengatur pengiriman data agar sampai ke tujuan yang tepat. Agar masing-masing komputer yang terhubung ke jaringan dapat dikenali, maka tiap komputer diberi alamat yang disebut alamat IP. Spesifikasi dari desain protokol IP yang diberikan oleh DARPA adalah sebagai berikut :
Tidak tergantung pada jenis host dan peralatan (termasuk router)
Dapat dijalankan pada berbagai jenis jaringan
Adaptif terhadap perubahan dan pertumbuhan jaringan
Mampu menghubungkan jaringan berteknologi lama dan baru
Dapat mendukung koneksi layer atas yang Conection Oriented maupun Connectionless
Untuk memenuhi spesifikasi ini, dipilih arsitektur jaringan yang connectionless. Istilah connection oriented berarti bahwa sebelum melakukan pertukaran data, kedua komputer yang akan saling berhubungan terlebih dahulu melakukan beberapa perjanjian. Perjanjian yang dilakukan ialah reservasi jalur
28
dan memori. Sebelum terjadi koneksi, terlebih dahulu kedua belah pihak menentukan jalur mana yang akan dilalui untuk pengiriman data. Ada atau tidak ada koneksi, jalur logic tersebut tetap milik kedua pihak dan tidak dapat digunakan oleh pihak lain. Selain jalur, untuk menampung data yang hendak masuk, kedua belah pihak mengalokasikan sebagian memori komputernya. Memori komputer ini dialokasikan untuk keperluan buffer data . Sebaliknya, istilah connectionless berarti dalam pengiriman data, tidak ada perjanjian terlebih dahulu antara kedua belah pihak. Jika satu pihak ingin mengirimkan data, data tersebut dikirim begitu saja. Dan karena tidak ada reservasi jalur terlebih dahulu, tiap-tiap paket data yang dikirim dapat menempuh jalur yang berbeda. Akibatnya, urutan paket yang sampai ditujuan belum tentu sama dengan urutan paket saat dia dikirim. Karena sifatnya yang berbeda tersebut, kedua jenis hubungan ini diterapkan pada situasi dan kondisi yang berbeda pula . Untuk jenis hubungan antara dua komputer yang memerlukan fleksibilitas tinggi, dengan tidak tergantung pada topologi jaringan, model pengiriman paket yang connectionless sangat cocok untuk digunakan. Namun, untuk menjaga keutuhan data yang ditransfer diperlukan protokol lain diatas IP Protokol inilah yang dinamakan TCP (Transmission Control Protocol).
2.5.2.2 Internet Control Message Protocol (ICMP) ICMP (Internet Control Message Protocol) ialah protokol yang digunakan untuk mengatur perilaku koneksi IP. Pada kondisi normal, IP berjalan baik dan menghasilkan proses penggunaan memori dan sumber daya transmisi yang efisien. Namun ada beberapa kondisi dimana koneksi IP terganggu, misalnya
29
karena router yang crash, atau kondisi network terganggu. Pada saat ini ICMP berperan membantu menstabilkan kondisi jaringan. Hal ini dilakukan dengan cara memberikan pesan-pesan tertentu, sebagai respons atas kondisi tertentu .
2.5.2.3 Bootstrap Protocol (BOOTP) Bootstrap Protocol (BootP) adalah protokol yang digunakan untuk proses boot dari diskless workstation. Dengan protokol bootstrap ini, suatu IP address dapat diberikan ke suatu peralatan di jaringan .
2.5.2.4 ARP (Address Resolution Protocol) Paket IP biasanya dikirim melalui kartu ethernet. Untuk mengenali dan berkomunikasi dengan ethernet lainnya, digunakan alamat ethernet. Alamat Ethernet besarnya 48 bit. Setiap kartu ethernet memiliki alamat ethernet yang berbeda. Pada saat hendak mengirimkan data ke komputer dengan IP tertentu, suatu host pada jaringan ethernet perlu mengetahui, diatas alamat ethernet yang manakah tempat IP tersebut terletak. Untuk keperluan pemetaan alamat IP dengan alamat ethernet ini, digunakan protokol ARP . ARP bekerja dengan mengirimkan paket broadcast ethernet yang mengandung alamat IP yang ingin diketahui alamat ethernet nya. Host yang merasa memiliki alamat IP ini akan membalas paket tersebut, dengan mengirimkan paket yang berisi pasangan alamat IP dan alamat ethernet. Untuk menghindari seringnya permintaan jawaban seperti ini, jawaban ini biasanya disimpan di memori untuk sementara waktu .
30
2.5.2.5 Reverse Address Resolution Protocol (RARP) Reverse Address Resolution Protocol (RARP) adalah protokol yang berguna untuk mengadakan translasi dari hardware atau MAC address yang diketahui menjadi IP address. Router menggunakan protokol RARP ini untuk mendapatkan MAC address dari suatu IP address yang diketahuinya . RARP adalah juga berupa protokol bootstrap yang memungkinkan suatu workstation mendapatkan IP address dari suatu bootstrap server dengan memberitahukan MAC address yang dimilikinya .
2.5.3
Transport Layer Transport Layer merupakan lapisan yang bertanggung jawab untuk
mengadakan komunikasi antara dua komputer dimana jaminan pengiriman data persis seperti pada saat pengiriman data. Fungsi ini dilakukan oleh TCP (Transmission Transport Protocol). UDP (User Datagram Protocol) juga merupakan layanan Transport Layer, hanya saja UDP tidak mementingkan pemeriksaan keandalan komunikasi end to end .
2.5.3.1 TCP ( Transmission Control Protocol) TCP menyediakan layanan berupa jaringan Virtual circuit yaitu adanya proses pemesanan bandwitdh atau memori serta perjanjian terlebih dahulu antara pihak pengirim dan penerima paket TCP. Dengan bantuan TCP, paket-paket yang hilang ditransmisikan kembali. Jika paket tersebut sampai ditujuan dengan urutan yang salah, TCP akan mengaturnya kembali sehingga sesuai dengan urutan semula.
31
Agar urutan paket dapat diketahui, TCP memberikan Sequence Number pada setiap paket yang dikirim. Setiap byte yang dikirim, termasuk juga permintaan pembukaan dan penutupan koneksi, diberi nomor urut. Untuk menjamin sampainya paket ditempat tujuan, setiap byte yang dikirim, kecuali byte pertama, selalu disertai dengan acknowledgement number. Acknowledgement number ini berisi sequence number dari paket terakhir yang diterima dengan sukses. Selain memberikan layanan jaminan keutuhan data, TCP juga berfungsi sebagai pembagi layanan. Dalam suatu host, bisa jadi terdapat banyak aplikasi yang memerlukan layanan TCP/IP (misalnya suatu host yang berfungsi sebagai FTP server sekaligus web server dan mail server). Agar paket yang diterima dapat sampai ke layanan yang benar, maka untuk tiap-tiap layanan di TCP/IP disediakan nomor identifikasi. Nomor ini dikenal sebagai Well Known Port. Nomor identifikasi ini juga berguna bagi client yang hendak menghubungi server. Jika client ingin menghubungi server untuk mengirimkan e-mail misalnya, client akan menghubungi host yang bersangkutan dengan memberikan IP address host tersebut dan Nomor Port dari program email di sisi server (yaitu 25). Proses TCP pada sisi Client sendiri menggunakan nomor diluar nomor yang telah dialokasikan sebagai well known port tersebut. Kombinasi dari IP address dan Well Known Port ini dikenal dengan sebutan Socket .
2.5.3.2 User Datagram Protocol (UDP) UDP berada pada level yang sama dengan TCP. hanya saja UDP tidak bersifat virtual circuit melainkan datagram (mirip dengan IP). Pengiriman paket
32
dilakukan berdasarkan "best effort basis". tidak ada koreksi kesalahan, retransmisi atau pengurutan paket berdasarkan urutan pengiriman. bahkan deteksi kesalahan dalam UDP ialah opsional . Untuk mengkompensasi kekurangan ini, overhead yang diperlukan untuk mengirimkan paket UDP sangatlah kecil. hal ini membuat UDP cocok untuk digunakan pada aplikasi yang membutuhkan query dan response, dimana jumlah pesan yang dikirimkan lebih sedikit dibandingkan dengan pesan yang diperlukan untuk mengadakan koneksi TCP . UDP kurang baik jika digunakan untuk mengirimkan paket berukuran besar. Hal yang demikian akan mengakibatkan banyaknya paket loss. Sebagai konsekuensi atas tidak adanya proses handshaking dan sequence number seperti pada TCP, maka membuat paket UDP palsu jauh lebih mudah daripada TCP .
2.5.4 Aplication Layer Aplication layer adalah lapisan paling atas dalam hararki dimana proses jaringan yang bisa diakses user berada dan berinteraksi. Atau dengan kata lain terletak semua aplikasi yang menggunakan TCP/IP. Contoh dari protokol yang berada pada layer ini adalah, SMTP, HTTP, FTP dan lain lain .
2.6 Perangkat Jaringan 2.6.1 Bridge Bridge merupakan suatu alat yang menghubungkan satu jaringan dengan jaringan yang lain yang menggunakan protokol yang sama. Sebuah bridge dapat menghubungkan dua buah segmen ethernet, meneruskan frame dari satu sisi ke
33
sisi lainnya. Bridge menggunakan alamat sumber untuk mempelajari mesin yang mana yang terhubung ke segmen tertentu, dan bridge menggabungkan informasi yang dipelajari dengan alamat tujuan untuk menghilangkan forwarding jika tidak perlu. Jika dua buah jaringan atau lebih dihubungkan dengan menggunakan sebuah bridge, maka sistem tersebut dianggap sebagai
sistem jaringan fisik
tunggal .
Gambar 2.8 Bridge Bridge menghubungkan segmen-segmen LAN di Data Link layer pada model OSI. Beberapa bridge mempelajari alamat Link setiap devais yang terhubung dengannya pada tingkat Data Link dan dapat mengatur alur frame berdasarkan alamat tersebut. Semua LAN yang terhubung dengan bridge dianggap sebagai satu subnetwork dan alamat Data Link setiap devais harus unik. LAN yang terhubung dengan menggunakan bridge umum disebut sebagai Extended LAN .
34
Keuntungan menggunakan bridge : biaya; bridge adalah perangkat yang cukup sederhana dan umumnya lebih murah daripada router. kemudahan penggunaan; bridge umumnya lebih mudah dipasang dan dirawat. kinerja; karena bridge cukup sederhana, overhead pemrosesan lebih kecil dan cenderung mampu menangani traffic yang lebih tinggi. Kerugian menggunakan bridge : volume traffic; bridge lebih cocok pada jaringan dengan volume traffic total yang relatif rendah. broadcast storm; frame broadcast dilewatkan bridge ke seluruh LAN dan ini dapat menyebabkan traffic melebihi kapasitas medium jaringan. loop; kesalahan mengkonfigurasi bridge dapat menyebabkan frame berputar melewati bridge tanpa henti. nama yang sama; jika nama network yang sama digunakan oleh dua atau lebih user akan menyebabkan traffic yang berlebihan.
2.6.2 Router Router merupakan suatu alat ataupun software dalam suatu komputer yang menghubungkan dua buah jaringan atau lebih yang memiliki alamat jaringan yang berbeda. Router menentukan akan diarahkan ke titik jaringan yang mana paket yang ditujukan ke suatu alamat tujuan. Router biasanya berfungsi sebagai
35
gateway, yaitu jalan keluar utama dari suatu jaringan untuk menuju jaringan di luarnya .
Gambar 2.9 Router bekerja pada network layer
Router bekerja pada lapisan Network dalam model OSI. Umumnya router memiliki kecerdasan yang lebih tinggi daripada bridge dan dapat digunakan pada internetwork dengan tingkat kerumitan yang tinggi sekalipun. Router yang saling terhubung dalam internetwork turut serta dalam sebuah algoritma terdistribusi untuk menentukan jalur optimum yang dilalui paket yang harus lewat dari satu sistem ke sistem lain .
36
Gambar 2.10 Internetwork menggunakan router Router dapat digunakan untuk menghubungkan sejumlah LAN sehingga trafik yang dibangkitkan oleh sebuah LAN terisolasikan dengan baik dari trafik yang dibangkitkan oleh LAN lain dalam internetwork. Jika dua atau lebih LAN terhubung dengan router, setiap LAN dianggap sebagai subnetwork yang berbeda. Keunggulan utama menggunakan bridge dalam membentuk internetwork adalah tidak terlihat oleh fungsi lapisan Transport dan Network. Dari sudut pandang lapisan atas jaringan, extended LAN yang dibangun menggunakan bridge beroperasi sama seperti hubungan data link LAN biasa. Karakteristik seperti ini bisa menjadi kelemahan jika internetwork tumbuh menjadi lebih besar. Extended LAN dapat tumbuh menjadi sangat besar sehingga setiap LAN dapat mengalami saturasi ketika menangani multicast traffic. Dalam hal ini router dapat digunakan untuk menghubungkan LAN - LAN jika memang diinginkan untuk mengisolasi multicass traffic . 2.6.2.1 Keuntungan menggunakan router 1. isolasi traffic broadcast; kemampuan ini memperkecil beban internetwork karena traffic jenis ini dapat diisolasikan pada sebuah LAN saja.
37
2. fleksibilitas; router dapat digunakan pada topologi jaringan apapun dan tidak peka terhadap masalah kelambatan waktu yang dialami jika menggunakan bridge. 3. pengaturan prioritas; router dapat mengimplementasikan mekanisme pengaturan prioritas antar protokol. 4. pengaturan konfigurasi; router umumnya dapat lebih dikonfigurasi daripada bridge. 5. isolasi masalah; router membentuk penghalang antar LAN dan memungkinkan masalah yang terjadi di sebuah LAN diisolasikan pada LAN tersebut. 6. pemilihan jalur; router umumnya lebih cerdas daripada bridge dan dapat menentukan jalur optimal antara dua sistem.
2.6.2.2 Kerugian menggunakan router 1. biaya; router umunya lebih kompleks daripada bridge dan lebih mahal, overhead pemrosesan pada router lebih besar sehingga troughput yang dihasilkannya dapat lebih rendah daripada bridge. 2. pengalokasian alamat; dalam internetwork yang menggunakan router, memindahkan sebuah mesin dari LAN yang satu ke LAN yang lain berarti mengubah alamat network pada sistem itu.
2.6.3 Hub Hub merupakan suatu alat yang menghubungkan segmen-segmen dalam sebuah LAN. Sebuah hub memiliki banyak port. Bila sebuah paket masuk pada
38
suatu port, paket tersebut akan dikopikan ke port-port yang lain sehingga semua segmen pada LAN dapat melihat paket tersebut.
Gambar 2.11 HUB Hub yang hanya berfungsi melewatkan paket saja disebut hub pasif, sedangkan hub yang memiliki fitur yang memungkinkan seorang administrator jaringan memonitor traffic passing melalui hub dan mengkonfigurasi setiap port pada hub, disebut intelligent hub atau manageable hub.
2.6.4 Switch Merupakan kependekan dari port switching hub, yaitu hub khusus yang memforward paket ke port-port yang bersesuaian berdasarkan alamat paket. Hub konvensional akan membroadcast setiap paket yang diterimanya ke semua port, berbeda halnya dengan switch yang hanya memforward paket ke port-port yang bersesuaian, maka switch memiliki performansi yang lebih baik dibandingkan dengan hub .
2.7 Network Address Translation (NAT) Keterbatasan alamat IPv.4 merupakan masalah pada jaringan global atau Internet. Untuk memaksimalkan penggunaan alamat IP yang diberikan oleh
39
Internet Service Provider (ISP) dapat digunakan Network Address Translation atau NAT.
Gambar 2.12 Network Adrress Transltion (NAT) 2.7.1 Dua Tipe NAT Dua tipe NAT adalah Static dan Dinamik yang keduanya dapat digunakan secara terpisah maupun bersamaan .
2.7.1.1 Type NAT Statik Translasi static terjadi ketika sebuah alamat lokal (inside) di petakan ke sebuah alamat global/internet (outside). Alamat lokal dan global dipetakan satu lawan satu secara Statik .
2.7.1.2 Type NAT Dinamik 1. NAT dengan Pool (kelompok) Translasi Dinamik terjadi ketika router NAT diset untuk memahami alamat lokal yang harus di translasikan dan kelompok (pool) alamat global yang akan digunakan untuk terhubung ke internet. Proses NAT
40
Dinamik ini dapat memetakan bebarapa kelompok alamat lokal ke beberapa kelompok alamat global . 2. NAT Overload Sejumlah IP lokal/internal dapat ditranslasikan ke satu alamat IP global/outside. Hal ini sangat menghemat penggunaan alokasi IP dari ISP. Sharing atau pemakaian bersama satu alamat IP ini menggunakan metoda port multiplexing, atau perubahan port ke packet outbound . Teknologi NAT memungkinkan alamat IP lokal/private terhubung ke jaringan publik seperti Internet. Sebuah router NAT di tempatkan antara jaringan lokal (inside network) dan jaringan publik (outside network), dan mentranslasikan alamat lokal/internal menjadi alamat IP global yang unik sebelum mengirimkan paket ke jaringan luar seperti Internet. Dengan NAT, jaringan internal/lokal tidak akan terlihat oleh dunia luar/internet. IP lokal yang cukup banyak dapat dilewatkan ke Internet hanya dengan melalui translasi ke satu IP publik/global .
2.7.2 Keuntungan menggunakan NAT Jika harus merubah alamat IP internal, dikarenakan berganti ISP atau dua intranet digabungkan (misalnya penggabungan dua perusahaan), NAT dapat digunakan untuk mentranslasikan alamat IP yang sesuai. NAT memungkinkan menambah alamat IP, tanpa merubah alamat IP pada hosts atau komputer. Dengan demikian akan menghilangkan duplicate IP tanpa pengalamatan kembali host atau komputer.
41
2.7.3 IP Masquerade IP Masquerade adalah salah satu fasilitas di Linux yang memungkinkan komputer yang tidak memiliki nomor IP resmi dapat tersambung ke internet melewati komputer Linux. IP Masquerade dibutuhkan jika jaringan mempunyai nomor IP resmi yang lebih sedikit daripada jumlah komputer yang ada. Selain menjembatani kekurangan nomor IP, IP Masquerading dengan digabungkan iptable, ipchains atau ipfwadm juga dapat menjadi filter paket-paket yang keluar masuk. Dapat diibaratkan, mesin Linux berfungsi sebagai gateway .
2.7.3.1 Cara kerja IP Masquerade dapat digambarkan sebagai berikut : a. Mesin klien diseting dengan menempatkan mesin Linux sebagai gatewaynya. b. Jika ada paket dari klien ke mesin Linux, IP Masquerade akan membuat nomor port baru, header IP baru berdasarkan IP mesin Linux, dan menyimpan paket aslinya. Paket tersebut kemudian diteruskan ke internet lewat koneksi PPP atau SLIP. c. Jika ada paket baru dari Internet, IP Masquerade akan mencocokkan dengan nomor port. Jika sesuai dengan nomor port yang telah dibuat sebelumnya, maka paket tersebut dibungkus kembali dengan header yang telah disimpan sebelumnya, dan diteruskan kepada klien. d. Baik klien maupun host di Internet yang mengirimkan paket tidak pernah merasakan perbedaannya.
42
2.8 Load Balancing Load balancing adalah suatu hal yang sangat penting sekali pada sistem yang diharapkan dapat menangani beban simultan yang besar. Load balancing adalah suatu proses untuk memindahkan proses dari host yang memiliki beban kerja tinggi ke host yang memiliki beban kerja kecil. Ini bertujuan agar waktu rata-rata mengerjakan tugas akan rendah dan menaikkan utilitas prosesor . Bagian penting dari suatu strategi dalam load balancing adalah migration policy, yang menentukan kapan suatu migrasi terjadi dan proses mana yang dimigrasikan. 2.8.1 Proses migrasi pada load balancing terjadi pada dua bentuk : a. Remote execution (juga disebut non-preemptive migration). Pada strategi ini suatu proses baru (bisa secara otomatis) dieksekusi pada host remote. b. Pre-emptive migration, pada strategi ini proses akan dihentikan dipindahkan ke node lain dan diteruskan. Load balancing dapat dilakukan secara eksplisit oleh user ataupun secara implisit oleh sistem. Migrasi secara implisit dapat dilakukan dengan memanfaatkan informasi. Sudah barang tentu, setiap pemindahan proses akan menimbulkan suatu overhead. Jadi bagaimana granularitas migrasi dari proses versus overhead dari proses migrasi harus juga dipertimbangkan. Pada prinsipnya metoda load balancing yang digunakan haruslah memenuhi beberapa kriteria:
43
1. Overhead yang rendah untuk pengukuran, sehingga pengukuran dapat dilakukan sesering mungkin untuk mengetahui kondisi sistem paling kini (up to date). 2. Memiliki kemampuan merepresentasikan beban dan ketersediaan sumber daya komputasi dari sistem. 3. Pengukuran dan pengaturan yang tak saling bergantung. Dalam mengimplementasikan suatu strategi load balancing dapat dibedakan menjadi beberapa variasi, antara lain (Casavant dan Kuhl, 1988) : 1. Lokal atau global. Pada pejadualan lokal, penjadwalan dilakukan oleh tiap node lokal, juga termasuk penentuan time slice pada prosesor tunggal. Sedangkan pada penjadwalan global, penjadwalan dan penentuan di manakah proses tersebut akan dijalankan, dilakukan oleh suatu titik koordinasi pusat. 2. Statis atau dinamis. Pada model statis diasumsikan semua informasi yang digunakan untuk meletakkan proses telah tersedia ketika program hendak dijalankan. Pada model dinamis penentuan ini dapat berubah ketika sistem telah berjalan. Dikenal juga dengan istilah pengaturan yang adaptif dan dynamic assignment untuk model dinamis, dan non adaptif dan one time assingment untuk model statis. 3. Optimal atau suboptimal. Pada model optimal penentuan strategi berdasarkan pertimbangan nilai optimal seluruh sistem. 4. Aproksimasi vs heuristik. Pada model pertama menggunakan pendekatan model aproksimasi matematika seperti enumerative, teori graf, program matematika, teori antrean. Sedang model ke dua
44
menggunakan pendekatan seperti nueral network, genetic algorithm. Di samping itu dalam menggunakan model matematika dapat dipilih model deterministik ataupun probabilistik. 5. Terdistribusi atau sentralisasi, artinya pihak mana yang bertanggung jawab terhadap pengambilan keputusan, apakah ada suatu sistem sentral yang melakukan keputusan migrasi, atau tersebar pada sistem yang terdistribusi. 6. Kooperatif atau non kooperatif , pada model non kooperatif setiap prosesor mengambil keputusan tanpa bergantung pada prosesor lainnya.
2.9 Teknologi cluster Teknologi cluster ini dibutuhkan untuk mengikat beberapa server agar menjadi suatu server tunggal yang melakukan pekerjaan besar. Dari sisi pengguna mereka tidak merasa, bahwa beban kerja yang diberikannya atau sumber daya komputasi yang dibutuhkannya telah dibagi kepada mesin fisik yang berbeda. Beberapa teknologi cluster tersedia di lingkungan Linux dan telah cukup banyak digunakan. Berikut ini disajikan beberapa teknologi cluster yang memiliki perbedaan pendekatan (Casavant dan Kuhl, 1988): 1) Teknologi Beowulf, yang cenderung digunakan untuk tugas komputasi parallel 2) Teknologi MOSIX, yang memberikan suatu 'view' sebagai suatu mesin tunggal, sehingga program biasa dapat dijalankan di atasnya, dan dilakukan distribusi secara otomatis
45
3) Teknologi GAMMA, yang memanfaatkan komunikasi dengan latensi rendah, yang mempu menyediakan mesin virtual paralel lebih dari satu ada mesin fisik parallel 4) Teknologi Linux Virtual Server, yang menyediakan server paralel untuk kebutuhan server Internet.
2.10 DNS Server DNS (Domain Name System) pada prinsipnya merupakan sebuah database yang berisi daftar informasi host. Pada awalnya, di tahun 1970, ARPAnet (proyek eksperimental dari Advanced Research Projects Agency untuk komunitas jaringan komputer, merupakan cikal bakal dari Internet yang ada sekarang), mempunyai sebuah file HOSTS.TXT (semacam file /etc/hosts). File tersebut berisi daftar seluruh nama komputer yang menjadi anggota komunitas. Dengan semakin berkembangnya jumlah komputer yang tersambung, daftar ini menjadi semakin besar dan sulit untuk diadministrasikan. Lalu pada tahun 1984, PAUL MOCKAPETRIS mengusulkan sistem penamaan domain (DNS) yang dituangkan dalam RFC 882 dan RFC 883. Struktur database DNS mempunyai kemiripan dengan sistem file yang ada di UNIX/Linux. Jika dalam sistem file UNIX memiliki direktori root (/) kemudian dibawahnya ada direktori usr (/usr), bin (/bin) dan seterusnya, maka dalam struktur database DNS juga memiliki root (.), kemudian com (com.), net (net.) dan seterusnya.
46
2.10.1 Bagaimana DNS Bekerja? DNS bekerja dalam modus klien server. Dalam arti ada klien yang mencari nama atau alamat IP, kemudian ada server yang memberikan informasi dimana nama atau alamat IP tersebut diakses. Server DNS yang paling banyak digunakan di lingkungan UNIX adalah BIND. Untuk memahami bagaimana DNS bekerja, misalkan dengan browser dapat dibuka http://spawn.igos.or.id. Pertama kali yang dilihat adalah file /etc/resolv.conf untuk mencari alamat name server komputer yang bersangkutan. Setelah terhubung, name server akan meneruskan ke database root (.) untuk mencari server yang bertanggung jawab terhadap domain id.. Dari name server yang mengadministrasi domain id, pencarian dilanjutkan dengan mencari nama server untuk or. Seterusnya dari database name server untuk or, mencari alamat nama server untuk domain igos. Dan akhirnya name server igos akan memberikan informasi mesin yang menggunakan nama spawn dalam domainnya. Semuanya dilakukan dalam waktu yang relatif cepat, tergantung jenis koneksinya.
47
browser
name server lokal
name server root (.)
name server id (id.)
name server or (or.id.)
name server netlab (netlab.or.id)
host spawn (spawn.netlab.or.id)
Gambar 2.13 Cara Kerja DNS
2.10.2 Komponen DNS DNS ini mempunyai beberapa komponen, yaitu : 1. Resolver Resolver ialah bagian aplikasi klien yang mengakses name server. Semua program yang membutuhkan DNS, memakai resolver. Proses resolving : •
Mengajukan permintaan terhadap name server
•
Menginterpretasikan permintaan (resolve), dan memberikan response
•
Mengembalikan informasi kepada program yang memintanya.
48
Resolver akan menjawab dengan dua cara yaitu melihat isi dari cache yang pernah ditanyakan sebelumnya, serta menanyakan kepada DNS Server untuk mendapatkan hasilnya. Resolver yang biasa dipergunakan untuk mencari informasi tentang DNS adalah nslookup. 1. Resolution Dalam menjawab permintaan terhadap sebuah domain, name server akan mencari name server yang bertanggung jawab terhadap domain yang diminta (lihat sub bagian sebelumnya tentang bagaimana DNS bekerja). Selain mencari, name server juga memberikan informasi tentang server yang bersangkutan. Proses ini disebut name resolution, atau disingkat resolution. 2. Caching Setiap permintaan terhadap sebuah domain, memaksa name server untuk mengakses databasenya, dan mencari name server yang bertanggung jawab. Untuk itu name server melakukan caching terhadap domain-domain yang pernah diminta. Karena tidak bisa dicaching untuk selamanya, maka name server mendefinisikannya dengan Time to Live (TTL).
2.10.3 Konfigurasi Domain Name Server (DNS) Software untuk implementasi DNS yang banyak digunakan adalah BIND (Berkeley Internet Name Domain) yang pertama kali disebut dengan JEEVES dibuat oleh Paul Mockapetris. Terakhir implementasi BIND untuk Operating sistem Unix Berkeley 4.3BSD, oleh KEVIN DUNLAP. Versi terakhir saat buku ini ditulis adalah BIND versi 8.1.2 .
49
Pada sebagian distribusi besar, BIND telah diinstal bersamaan dengan instalasi
awal.
Yang
mengaktifkannya.
Untuk
dibutuhkan BIND
hanyalah
versi
terbaru
mengkonfigurasikan dapat
diperoleh
dan di
http://www.isc.org atau ftp.isc.org dalam direktori /isc/bind/src .
2.10.3.1 Konfigurasi BIND v8 Pertama kali yang dilakukan adalah seting data untuk DNS. Dalam contoh berikut digunakan nama ut. Dapat didefinisikan sendiri untuk penamaan yang mudah diingat. Berikut contoh nama file yang dibutuhkan : 1. /etc/resolv.conf 2. /etc/named.conf 3. File DNS resource record, yang terdiri o
/var/named/root.cache
o
/var/named/named.local
o
/var/named/ut.zone
o
/var/named/ut.rev
DNS resource record adalah file database yang dibutuhkan oleh name server dalam menjalankan tugasnya. File ini dapat dibuat sesuai dengan kebutuhan. Hal yang perlu diingat adalah urutan kebutuhan resource record, yakni : 1. SOA record Mengindikasikan authority untuk zone yang bersangkutan. 2. NS Record Daftar name server untuk zone yang bersangkutan 3. Other records, Catatan lainnya seperti :
50 •
A
; Pemetaan dari nama domain ke alamat IP
•
PTR
; Pemetaan dari alamat IP ke nama domain
•
CNAME ; Nama alias (Canonical Name)
2.10.3.2 /etc/resolv.conf Adalah file yang berisi informasi alamat domain atau alamat IP dari name server. File ini diakses pertama kali oleh resolver pada saat mengajukan permintaan terhadap sebuah domain. domain netlab.co.id nameserver 10.2.6.5
Keterangan contoh diatas, domain menunjukan nama domain yaitu netlab.co.id dan name server adalah IP address dengan nomor: 10.2.6.5
2.10.3.3 /etc/named.conf File konfigurasi utama yang dibaca oleh BIND pada saat dijalankan. Dalam file ini berisi keterengan letak dan jenis file-file database yang dibutuhkan oleh BIND. Untuk membuat file ini dapat menggunakan skrip bantu yang disusun lewat perl. File ini bernama named-bootconf.pl, dan termasuk dalam paket aplikasi BIND. Atau jika ingin seting manual dapat menggunakan editor teks biasa. Dari sini diketahui, untuk contoh yang diberikan, mempunyai resource record yang didefinisikan semuanya berada dalam direktori /var/named. Untuk option ini bebas dimana saja selama direktori tersebut disediakan hanya untuk sistem seperti /etc atau /var. Selain itu jumlah dan nama filenya sangat kondisional tergantung jumlah zone yang ditangani.
51
2.10.3.4 /var/named/root.cache Berisi informasi data yang berada dalam domain root (non lokal). Catatan ini yang dipergunakan name server jika ada resolver yang meminta nama domain di luar domain lokal. ; This file holds the information on root name servers needed to ; initialize cache of Internet domain name servers ; (e.g. reference this file in the "cache .
" ; configuration file of BIND domain name servers). ; ; This file is made available by InterNIC registration services ; under anonymous FTP as ; file /domain/named.root ; on server FTP.RS.INTERNIC.NET ; -OR- under Gopher at RS.INTERNIC.NET ; under menu InterNIC Registration Services (NSI) ; submenu InterNIC Registration Archives ; file named.root ; ; last update: Aug 22, 1997 ; related version of root zone: 1997082200 ; ; ; formerly NS.INTERNIC.NET ;
52
. 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ; ; formerly NS1.ISI.EDU ; . 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 ; ; formerly C.PSI.NET ; . 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 ; ; formerly TERP.UMD.EDU ; . 3600000 NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 ; ; formerly NS.NASA.GOV ; . 3600000 NS E.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 ; ; formerly NS.ISC.ORG
53
; . 3600000 NS F.ROOT-SERVERS.NET. F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 ; ; formerly NS.NIC.DDN.MIL ; . 3600000 NS G.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 ; ; formerly AOS.ARL.ARMY.MIL ; . 3600000 NS H.ROOT-SERVERS.NET. H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 ; ; formerly NIC.NORDU.NET ; . 3600000 NS I.ROOT-SERVERS.NET. I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 ; ; temporarily housed at NSI (InterNIC) ; . 3600000 NS J.ROOT-SERVERS.NET. J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10 ;
54
; housed in LINX, operated by RIPE NCC ; . 3600000 NS K.ROOT-SERVERS.NET. K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 ; ; temporarily housed at ISI (IANA) ; . 3600000 NS L.ROOT-SERVERS.NET. L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12 ; ; housed in Japan, operated by WIDE ; . 3600000 NS M.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 ; End of File Untuk mendapatkan file root.cache/named.root ini dapat melakukan perintah dig dengan user root. # dig @rs.internic.net > /var/named/root.cache.new
2.10.3.5 /var/named/named.local File ini digunakan untuk alamat loopback untuk alamat ke diri sendiri, dan selalu dengan alamat IP 127.0.0.1. Isi filenya adalah sebagai berikut :
55
$TTL 86400 @ IN SOA localhost. root.localhost. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum
IN
NS localhost.
1
IN PTR localhost.
Gambar 2.14 Isi File named.local 2.10.3.6. /var/named/netlab.zone ( file zone domain ) File ini berisi SOA (start of authority) resource record, NS record, MX record dan CNAME record. Seluruh host dalam jaringan didefinisikan di sini. $TTL 86400 @ IN SOA netcom.ut.igos.co.id. root.netcom.ut.igos.co.id. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN
NS
netcom.ut.netlab.co.id.
IN
MX 10 netcom.ut.netlab.co.id.
netlab
IN
A
www
IN
CNAME netcom
ftp
IN
CNAME netcom
mail
IN
CNAME netcom
10.2.6.5
Gambar 2.15 Isi File Zone Domain
56
2.10.3.7 /var/named/netlab.rev File ini berisi PTR Records, untuk pemetaan dari alamat ke nama. Karena di file sebelumnya (netlab.zone) sudah didefinisikan lewat A record, bahwa netlab.co.id mempunyai alamat 10.2.6.5, maka dalam file berikut cukup dituliskan nomor hostnya (field terakhir) yakni 5. $TTL 86400 @
IN
SOA
netcom.ut.igos.co.id. root.netcom.ut.igos.co.id. ( 1997022700 ; Serial 28800
; Refresh
14400
; Retry
3600000 ; Expire 86400 )
5
IN
NS
netlab.co.id.
IN
PTR
netlab.co.id.
; Minimum
Gambar 2.16 Isi File Reverse 2.10.4 MX Records Salah satu keuntungan DNS adalah untuk routing e-mail. Untuk itu, DNS menggunakan resource record tunggal yakni MX records. MX berarti Mail Exchanger, sebuah host yang akan memproses (process) atau meneruskan (forward) e-mail. Memproses berarti mengirim langsung ke individu atau melewati transport agent lainnya seperti UUCP. Meneruskan berarti mengirimkan ke tujuan akhir atau ke mail exchanger terdekat dengan melewati SMTP (Simple Mail Transfer Protocol).
57
Untuk menghindarkan pengulangan dalam pengiriman, MX records mempunyai parameter tambahan yakni nilai keinginan (preference value), antara 0
hingga
65535.
dapat
diambil
contoh
dengan
merujuk
pada
file
/var/named/netlab.zone [1]. IN MX 10 netlab.co.id.
Gambar 2.17 MX records
Baris di atas menunjukkan bahwa netlab.co.id punya preference value 10 untuk menjadi relay dari domain igos.co.id. Lebih jelas lagi contoh berikut : netlab.co.id. IN MX 1 spawn.igos.co.id. netlab.co.id IN MX 2 crow.igos.co.id
Dalam contoh tersebut jika ada e-mail dari netlab.co.id., maka Ia akan coba mengirimkannya terlebih dahulu lewat spawn.igos.co.id. Jika gagal, maka dicoba crow.igos.co.id. Begitu seterusnya hingga e-mail berhasil diproses atau diteruskan. Untuk penerapannya, masukkan MX records jadi satu bersama records lainnya di file zone domain. 2.10.5 Administrasi BIND Untuk mengadministrasikan BIND (named), cukup jalankan program ndc, diikuti perintah yang diinginkan. Perintah yang tersedia adalah : •
status
:
Menunjukkan status named sebagaimana ditampilkan dengan perintah ps.
•
dumpdb
:
Membuang
database
/var/tmp/named_dump.db
dan
cache
dari
named
ke
58 •
reload
:
Menyebabkan named mengecek semua nomor serial zone primary dan secondary, dan menampilkan kembali setiap perubahan.
•
stats
:
Membuang statistik ke dalam file /var/tmp/named.stats
•
trace
:
Meningkatkan satu level tracing atau pelacakan. Semakin tinggi level pelacakannya, semakin banyak hal-hal yang dicatat. Semua dituliskan dalam file /var/tmp/named.run
•
notrace
:
Mengembalikan nilai atau level pelacakan menjadi nol. Perintah ini juga menghapus file /var/tmp/named.run jika masih ada.
•
querylog :
Berpindah
ke
model
querylog,
yang
menyebabkan
pencatatan ke dalam syslog setiap permintaan yang masuk. Perlu diperhatikan bahwa perintah ini akan mencetak file log dengan ukuran besar. Model ini juga dapat dijalankan dengan perintah qrylog. •
start
:
Menjalankan named
•
stop
:
Menghentikan named jika masih berjalan
•
restart
:
Menghentikan named dan menjalankannya kembali.
Misalnya untuk mulai menjalankan name server : # ndc restart
2.11
Web Server Di layer teratas protokol TCP/IP terdapat beberapa protokol untuk
berbagai jenis layanan yang sering digunakan. Salah satunya adalah protokol HTTP (HyperText Transfer Protocol) untuk layanan World Wide Web.
59
WWW adalah layanan yang paling sering digunakan dan memiliki perkembangan yang sangat cepat karena dengan layanan ini kita bisa menerima informasi dalam berbagai format (multimedia). Untuk mengakses layanan WWW dari sebuah komputer (yang disebut WWW server atau web server) digunakan program web client yang disebut web browser atau browser saja. Jenis-jenis browser yang sering digunakan adalah: Netscape Navigator/Comunicator, Internet Explorer, NCSA Mosaic, Arena dan lain-lain.
2.12 Qmail Server 2.12.1 Sekilas Tentang Mail Server Seiring dengan berkembangnya teknologi, setiap harinya jutaan warga internet mengirimkan puluhan juta pesan e-mail (electronic mail) ke seluruh penjuru dunia. Saat ini, e-mail telah menjadi sebuah alat komunikasi yang sangat luas dipakai dikarenakan e-mail dapat mengirimkan pesan secara lebih cepat daripada surat biasa dengan biaya yang relatif murah. Dalam pelaksanaannya, tentu saja lalu lintas e-mail ini memerlukan suatu metode pengaturan tersendiri agar e-mail (data) yang dikirimkan dapat sampai seperti yang direncanakan. Untuk itulah dalam internet terdapat server e-mail yang difungsikan sebagai aplikasi (perangkat lunak) yang ditujukan untuk proses pengiriman dan penerimaan e-mail yang dinamakan MTA (Mail Transfer Agent). MTA ini tentu saja berbeda dengan aplikasi yang digunakan user untuk mengambil atau menerima e-mail melalui komputer mereka yang dinamakan MC (Mail Client) seperti menggunakan Microsoft Outlook Express misalnya.
60
Sebuah server e-mail mempunyai daftar alamat e-mail yang ada padanya. Misalkan Yahoo!Mail mempunyai alamat e-mail seperti [email protected], atau [email protected].
Lalu
plasa.com
mempunyai
alamat
e-mail
seperti
[email protected] atau [email protected] dan masih banyak lagi contoh lainnya. Masing-masing alamat e-mail itu memiliki sebuah tempat khusus tempat menyimpan e-mail yang masuk (mailbox). Secara sederhana, proses pengiriman e-mail melalui server e-mail adalah sebagai berikut (dengan contoh mail server Yahoo!Mail dan PlasaMail) : Seseorang yang mempunyai alamat e-mail [email protected] akan menulis
e-mail
kepada
2
orang
rekannya
dengan
alamat
e-mail
[email protected] dan [email protected]. Ketika e-mail pertama dikirimkan kepada [email protected] melalui server e-mail Yahoo!Mail, maka server e-mail tersebut akan mengecek apakah e-mail tersebut ditujukan untuk user dalam lingkupnya atau tidak. Ternyata, e-mail tersebut ditujukan untuk user dalam lingkupnya. Maka Yahoo!Mail akan memformat dan menyimpan pesan e-mail tersebut dalam format file teks ke alamat e-mail yang dituju ([email protected]). Ketika e-mail kedua dikirimkan dan ternyata bukan untuk user dalam lingkupnya, maka Yahoo!Mail akan mencari server e-mail lain yang bertugas menangani lingkup alamat e-mail yang dituju (dalam hal ini server e-mailnya adalah PlasaMail). Setelah itu, PlasaMail akan memeriksa apakah e-mail tersebut ditujukan untuk user dalam lingkupnya atau tidak. Karena benar, e-mail tersebut akan dikirimkan kepada alamat e-mail yang dituju ([email protected]). Banyak sekali contoh aplikasi MTA yang digunakan untuk server e-mail. Sebagai contohnya, di Linux dikenal aplikasi seperti sendmail (aplikasi MTA
61
standar yang disertakan di hampir setiap distribusi Linux), postfix, dan qmail. Dan pada penulisan tugas akhir ini ini, akan dibahas aplikasi qmail, disertai dengan instalasi lengkapnya sebagai qmail server.
2.12.2 Sekilas Tentang qmail Aplikasi qmail (http://www.qmail.org) adalah salah satu contoh aplikasi untuk server e-mail yang berjalan pada platform Unix/ Linux. qmail diciptakan oleh Dan J Bernstein (http://cr.yp.to/djb.html), seorang profesor dari Departemen Matematika, Statistik, dan Ilmu Komputer Universitas Illinois, Chicago . Rilisan pertama dari qmail adalah versi beta 0.70 yang dirilis pada tanggal 24 Januari 1996. Sedangkan untuk versi gamma-nya, yaitu versi 0.90, dirilis pada 1 Agustus 1996. Versi 3.0 yang menjadi rilisan umum pertamanya diluncurkan pada tanggal 20 Februari 1997. Lalu versi terbaru dari qmail, versi 3.03 dirilis pada tanggal 15 Juni 1998. Sekarang, sedang direncanakan perbaikan dari qmail versi sebelumnya yang akan dinamakan qmail 2.0. Dengan qmail dapat dibangun sebuah server e-mail mulai dari lingkup yang kecil, seperti jaringan lokal sebuah perusahaan atau sebuah universitas sampai ke server e-mail besar di internet, seperti sebuah ISP (Internet Service Provider) yang menampung ribuan user . Banyak situs di internet yang mempercayakan server e-mailnya pada qmail. Beberapa diantaranya adalah HotMail (sebelum dibeli oleh Microsoft), usa.net, address.com, rediffmail.com, colonize.com, Yahoo!Mail, onelist.com, Ohio State (universitas terbesar di AS), uswest.net, gmx.de (ISP di Jerman),
62
hypermart.net, fsmail.net, vuurwerk.nl, dan masih banyak lagi. Banyak juga ISP di Indonesia yang mempercayakan server e-mailnya pada qmail .
2.12.3 Mengapa Harus qmail? Sebenarnya masih banyak lagi contoh–contoh aplikasi MTA yang digunakan untuk menjadi server e-mail. Lalu kenapa memilih qmail dibanding yang lain? Berikut beberapa alasan penting kenapa memilih dan menggunakan qmail sebagai server e-mail. •
Aman. Salah satu alasan qmail dibuat adalah karena pembuatnya sendiri merasa jengkel akan lubang keamanan pada sendmail (server e-mail lain untuk platform Unix/ Linux).
•
Cepat dan efisien. qmail mampu menangani jutaan e-mail setiap harinya. Bahkan dengan menggunakan komputer 486, qmail dapat menangani hingga 100.000 pesan e-mail per hari.
•
Dapat dihandalkan. Sekali pesan e-mail diterima oleh sistem qmail, maka pesan e-mail tersebut tidak akan hilang sekalipun listrik padam secara tiba-tiba, karena qmail mendukung format maildir yang tidak akan rusak jika sistem mengalami crash.
•
Administrasi virtual yang mudah dengan menggunakan vpopmail, sebuah program untuk qmail yang digunakan untuk mendukung banyak domain sekaligus dalam satu server.
•
Fasilitas untuk membuat sistem e-mail berbasis web dengan program sqwebmail.
•
Dukungan terhadap sistem mailing list dengan program ezmlm.
63
2.12.4 Paket Pendukung Instalasi qmail 1. Qmail Qmail adalah salah satu aplikasi untuk server e-mail yang berjalan pada platform Unix atau Linux. Paket-paket yang digunakan adalah: •
qmail-3.03.tar.gz
•
qmail-3.03-quotas-3.3.patch
•
qmail-3.03.errno.patch
•
qmailqueue-patch
2. ucspi-tcp ucspi-tcp adalah paket yang berisi utiliti tcp server dan tcp client yang digunakan untuk membangun aplikasi client-server dengan menggunakan protokol TCP. Paket-paket yang digunakan adalah : •
ucspi-tcp-0.88.tar.gz
•
ucspi-tcp-0.88.errno.patch
3. daemontools daemontools adalah paket yang berisi utiliti-utiliti untuk Linux yang digunakan untuk memanajemen proses-proses yang berjalan pada suatu server Linux. Paket-paket yang digunakan adalah : •
daemontools-0.76.tar.gz
•
daemontools-0.76.errno.patch
4. vpopmail vpopmail adalah sebuah paket tambahan untuk qmail yang digunakan untuk mendukung virtual e-mail domain dalam sebuah server. Dengan adanya vpopmail ini sebuah server e-mail dapat menampung banyak nama
64
domain untuk e-mail sekaligus. Misalkan [email protected], [email protected] dan seterusnya. Paket yang digunakan adalah : •
vpopmail-5.2.3.tar.gz
5. ezmlm ezmlm adalah mailing list manager yang didesain untuk berjalan pada sistem qmail. ezmlm merupakan singkatan dari EZ Mailing List Manager. Paket-paket yang digunakan adalah : •
ezmlm-0.53.tar.gz
•
ezmlm-idx-0.4.0.tar.gz
•
ezmlm-idx-0.53.400.unified_43.patch
6. autorespond autorespond adalah sebuah fasilitas tambahan untuk qmail agar secara otomatis membalas e-mail yang masuk dengan pesan e-mail yang telah ditentukan sebelumnya. Paket yang digunakan adalah : •
autorespond-2.0.2.tar.gz
7. qmailadmin qmailadmin adalah paket tambahan untuk qmail yang digunakan untuk menambahkan interface berbasis web untuk mengatur administrasi server qmail dengan virtual domain. Paket-paket yang digunakan adalah : •
qmailadmin-3.0.4.tar.gz
•
quotafix-patch.3.0.4-03.LINUX.tar.gz
8. courier-imap courier-imap adalah merupakan alternatif imap-server (server yang digunakan untuk melayani mekanisasi operasi-operasi e-mail melalui
65
protokol IMAP) yang mendukung format penyimpanan e-mail dengan mode maildir sehingga dapat dikatakan imap server ini tidak mendukung Mbox atau UNIX Traditional Mailbox. Paket yang digunakan adalah : •
courier-imap.3.7.3.tar.bz2
9. squirrelmail squirrelmail merupakan sebuah paket webmail standar yang dibuat dengan menggunakan PHP4. Webmail ini menggunakan dukungan murni PHP4 untuk mengakses protokol IMAP dan SMTP. Paket yang digunakan adalah: •
squirrelmail-3.4.2.tar.bz2
2.13 FTP Server 2.13.1 Pendahuluan File Transfer Protokol (FTP) adalah sekumpulan program yang digunakan untuk mentransfer file diantara sistem pada internet. Kebanyakan sistem Unix, VMS, dan MS-DOS pada internet memiliki program tersebut yang dapat digunakan untuk mentransfer data berupa file, baik itu mengambil data dari server (download) ataupun meletakkan data ke server yang menyediakan layanan FTP (upload). Dari sisi klien, software yang umum digunakan adalah ftp, wsftp, dll. Sedangkan pada sisi server khususnya pada sistem Linux, software yang digunakan berupa ftpd, wu-ftpd, dll. Ketika mesin terhubung ke sistem secara remote melalui FTP, anda harus login dengan menggunakan nama user dan password yang sah. Untuk itu FTP server biasanya menyediakan layanan berupa user-login FTP sistem atau anonymous FTP .
66
2.13.2 FTP Menggunakan TCP File Transfer Protokol menggunakan dua buah saluran TCP, yaitu TCP port 20 yang digunakan untuk data, dan TCP port 21 untuk perintah-perintah. Kedua saluran ini harus aktif pada sistem Linux agar berfungsi. Dengan dua saluran ini, TCP mentransfer perintah-perintah FTP dan data secara simultan . FTP daemon, ftpd, harus dijalankan bila kita akan menjalankan FTP server. Biasanya untuk menjalankan daemon ini kita letakkan pada inetd atau pada file startup rc . ftp stream tcp nowait root /usr/etc/ftpd ftpd -1
2.13.3 FTP Login Untuk membuat suatu user-based FTP service, dimana tiap-tiap user yang mengakses sistem harus memberikan nama login dan password yang sah, maka haruslah dibuat suatu account untuk tiap-tiap user tersebut pada file /etc/passwd . Sedangkan untuk anonymous FTP server, harus dibuat login untuk user ID anonymous. Hal ini dilakukan pada proses penambahan user secara normal yaitu pada file /etc/passwd. ftp:*:40051:Anonymous FTP access: /usr/ftp:/bin/false Konfigurasi di atas menggambarkan anonymous user dengan login ftp, tanda
asterik
password
berfungsi
mencegah
seseorang
masuk
dengan
menggunakan account, nomor user ID 400 menandakan user ID unik bagi sistem. Untuk alasan keamanan, lebih baik membuat suatu group untuk akses anonymous FTP yaitu dengan mengedit file /etc/group serta menambahkan suatu group baru, kemudian masukkan ftp user kedalam group tersebut. Direktori login pada direktoi diatas adalah /usr/ftp .