BAB 2 LANDASAN TEORI
2.1
Teori-Teori Dasar / Umum 2.1.1
Jaringan Komputer Jaringan komputer merupakan sekumpulan komputer berjumlah banyak yang terpisah-pisah akan tetapi saling berhubungan (interkoneksi) dalam melaksanakan tugas-tugas komputasi suatu organisasi. (Tanenbaum, 2003, p1). Jaringan komputer terdiri dari empat elemen dasar: Peraturan atau persetujuan untuk mengatur bagaimana pesan dikirim, diarahkan, diterima, dan diterjemahkan. Pesan unit informasi yang berpindah dari satu alat ke alat yang lain. Sebuah media yang menghubungkan alat-alat, sebuah media yang dapat mentransportasikan pesan dari satu alat ke alat yang lain. Alat-alat pada jaringan yang saling bertukar pesan-pesan satu sama lain.
Gambar 2.1 Diagram Jaringan Sumber: http://cnap.binus.ac.id/ccna/prot-doc/Exploration1/
8
9 Gambar di atas menunjukkan tipikal jaringan yang mengandung alatalat, media dan layanan, diikat oleh peraturan dan bekerja bersama-sama untuk mengirimkan pesan.
2.1.2
Model Open System Interconnection (OSI) Model ini dikembangkan oleh International Standards Organization (ISO) sebagai langkah pertama menghadapi standardisasi internasional dari protokol yang digunakan di berbagai macam layer. Model ini disebut ISO OSI karena merujuk pada sistem koneksi terbuka yang berarti terbuka untuk berkomunikasi dengan sistem yang lain. (Forouzan, 2007, p33) Tabel 2.1 OSI Model Layer
Tugas
Physical
Bertanggung jawab atas proses data menjadi bit dan mentransfernya melalui media, seperti kabel, dan menjaga koneksi fisik antar sistem.
Data Link
Menyediakan hubungan fisik dan kebutuhan untuk mengaktifkan,
memperbarui,
dan
mengaktifkan
hubungan kembali. Network
Mengelola kebutuhan untuk mentransfer informasi diantara sistem akhir sampai ke beberapa jaringan komunikasi.
Transport
Menerima data dari layer di atasnya, memecahnya menjadi unit-unit yang lebih kecil, lalu meneruskannya ke layer network, dan memastikan bahwa semua bagian diterima dengan baik.
Session
Menyediakan transaksi komunikasi antara dua atau lebih peralatan jaringan.
10 Presentation
Menyediakan format data yang akan ditukar ke application
layer,
menyediakan
sintaks
yang
digunakan dalam application layer. Application
Menyediakan berbagai macam protokol yang biasa digunakan oleh user, misalnya HTTP.
2.1.3
Model Transmission Control Protocol / Internet Protocol (TCP/IP) Model ini dikembangkan oleh U.S. Departement of Defense (DoD) pada tahun 1970-an untuk mendukung pembangunan jaringan internet di seluruh dunia. Model TCP/IP sudah berkembang dan dinikmati secara luas sebelum ISO menetapkan model ini sebagai protokol alternatif selain OSI. (Forouzan, 2007, p42) Tabel 2.2 TCP / IP Model Layer
Tugas
Network
Sebagai jalur untuk mengirimkan paket-paket IP antara host dengan network.
Internet
Menentukan format paket yang dikirimkan dan mengirimkannya melalui satu atau lebih jaringan yang terkoneksi.
Transport
Menerima data dari layer di atasnya, memecahnya menjadi
unit-unit
yang
lebih
kecil,
lalu
meneruskannya ke layer intenet, dan memastikan bahwa semua bagian diterima dengan baik. Application
Menyediakan berbagai macam protokol yang biasa digunakan oleh user, misalnya HTTP.
11 2.1.4
Perangkat Jaringan 2.1.4.1
Access Point (AP) Access point adalah sebuah perangkat keras yang berfungsi sebagai hub komunikasi untuk pengguna peralatan nirkabel untuk terhubung dengan wired LAN. AP penting untuk menyediakan keamanan nirkabel tingkat tinggi dan memperluas jangkauan fisik layanan akses pengguna nirkabel. (http://cnap.binus.ac.id/ccna/)
2.1.4.2
Hub Hub adalah sebuah istilah yang biasa digunakan untuk menyebut sebuah alat yang berfungsi sebagai pusat dari jaringan topologi star. Hub juga merupakan perangkat keras yang berguna untuk menghubungkan alat-alat dalam sebuah jaringan. Hub bisa menjadi aktif (ketika mereka mengulang sinyal yang dikirimkan melalui mereka) atau pasif (ketika mereka tidak mengulang tetapi hanya
membagi
sinyal
yang
dikirim
melalui
mereka).
(http://cnap.binus.ac.id/ccna/) 2.1.4.3
Router Router adalah peralatan jaringan yang bekerja pada network layer, yang meneruskan paket-paket data dari satu jaringan ke jaringan lain berdasarkan informasi dari network layer. Router terletak di gateway, tempat di mana dua atau lebih jaringan terhubung. Router menggunakan protokol seperti ICMP untuk berkomunikasi dengan yang lainnya dan mengkonfigurasi jalur terbaik di antara dua host. (http://cnap.binus.ac.id/ccna/)
12 2.1.4.4
Switch Switch adalah sebuah perangkat jaringan yang berfungsi untuk menyaring, meneruskan, dan mengisi frame (tipe data yang dikirimkan oleh switch) berdasarkan pada alamat tujuan dari tiap frame. Switch beroperasi di layer data link dari model OSI (Open System Interconnection), berfungsi untuk menghubungkan banyak segmen LAN ke dalam satu jaringan yang lebih besar. Switch juga merupakan istilah yang digunakan untuk menyebut peralatan elektronik yang mengizinkan koneksi sesuai yang dibutuhkan dan menghentikan
koneksi
ketika
tidak
ada
lagi
sesi.
(http://cnap.binus.ac.id/ccna/) 2.1.4.5
Firewall Firewall adalah alat (biasanya berupa komputer atau router) yang diinstal diantara jaringan internal dan internet, dibutuhkan untuk mengontrol akses menuju sistem. Firewall didesain untuk meneruskan beberapa paket dan menyaring (tidak meneruskan) yang
lainnya.
Firewall
biasanya
diklasifikasikan
menjadi
(Forouzan, 2007, p1022): 1. Packet-Filter Firewall Packet-Filter
Firewall
adalah
router
yang
menggunakan tabel penyaringan untuk memutuskan paket mana yang harus dibuang atau tidak diteruskan. Firewall ini melakukan tugas penyaringan paket di lapisan network atau transport.
13 2. Proxy Firewall Proxy Firewall bertugas untuk melakukan penyaringan paket di lapisan aplikasi. Ini karena ada beberapa paket yang perlu disaring menggunakan URL atau informasi yang terkandung dalam pesan itu sendiri. Salah satu caranya adalah dengan menginstal proxy komputer yang berada di antara komputer client dan komputer server.
2.1.6 Macam Jaringan 2.1.6.1
Local Area Network (LAN) LAN adalah jaringan milik pribadi di dalam gedung atau kampus yang berukuran sampai beberapa kilometer. LAN biasa digunakan untuk menghubungkan komputer-komputer pribadi dalam sebuah perusahaan atau pabrik untuk berkomunikasi dan memakai resource secara bersamaan. (Tanenbaum, 2003, p16).
Gambar 2.2 Local Area Network (LAN) Sumber: http://cnap.binus.ac.id/ccna/prot-doc/Exploration1/
14 2.1.6.2
Metropolitan Area Network (MAN) MAN merupakan versi LAN yang ukurannya lebih besar dan biasanya menggunakan teknologi yang sama dengan LAN. Aspek penting dari MAN adalah adanya sebuah medium broadcast yang mampu menyederhanakan rancangan jaringan.
Gambar 2.3 Metropolitan Area Network (MAN) Sumber: http://www.highteck.net/images/221-Ethernet-Gigabit.jpg
2.1.6.3
Wide Area Network (WAN) WAN merupakan jenis jaringan yang lebih luas lagi dari MAN. WAN mencakup area geografi yang luas dan seringkali mencakup sebuah negara atau benua.
Gambar 2.4 Wide Area Network (WAN) Sumber: http://cnap.binus.ac.id/ccna/prot-doc/Exploration1/
15 2.1.6.4
Internet Internet adalah jaringan komputer yang terhubung dengan jaringan yang dapat diakses secara publik, yang mengirimkan data
menggunakan
IP
(Internet
Protocol).
(http://cnap.binus.ac.id/ccna/)
2.1.7
Client/Server Client/server adalah arsitektur komputasi yang melibatkan dua proses, yaitu proses pada client dan server. Client adalah sebuah proses yang mengirimkan pesan pada sebuah server, meminta supaya server melakukan suatu tugas (layanan). Client biasanya mengontrol user-interface dari aplikasi, mengesahkan data yang dimasukkan oleh user, mengirim permintaan ke server, dan kadang-kadang menjalankan logika bisnis. Server memenuhi permintaan client dengan melakukan tugas yang diminta. Secara umum, server menerima permintaan dari client, menjalankan permintaan dan perbaikan database, mengontrol integritas data, dan mengirim respon ke permintaan klien, serta kadang-kadang menjalankan bisnis logika yang umum atau kompleks. (Tanenbaum, 2003)
2.1.8
Proxy Server Proxy server adalah sebuah komputer yang menjaga kopian respon sampai permintaan terbaru. Client HTTP mengirimkan permintaan pada proxy server. Proxy server akan mengecek cache-nya. Jika respon tidak
16 disimpan di dalam cache, proxy server mengirimkan permintaan pada server koresponden. Respon yang masuk dikirim ke proxy server dan disimpan untuk permintaan di masa mendatang dari client lain. Proxy server mengurangi muatan dari server aslinya, mengurangi traffic, dan memperbaiki waktu yang dibutuhkan oleh paket data untuk melalui koneksi tertentu. Proxy berada di antara komputer client dan server perusahaan. Ketika client mengirim pesan, proxy menjalankan server yang menerima permintaan. Server membuka paket di application layer dan menentukan apakah permintaan sah atau tidak. Jika sah, server akan mengirimkan pesan ke server perusahaan yang sesungguhnya. Jika tidak, pesan akan dihentikan dan pesan error akan dikirim ke user. (Forouzan, 2007, p868)
2.1.9
Network Development Life Cycle (NDLC) Kata cycle atau siklus di dalam NDLC menunjukkan bahwa perkembangan jaringan akan berlangsung secara terus menerus. Selain itu, sebuah jaringan yang didesain dari awal, pasti harus dimulai di satu titik, yaitu fase analisis. Jaringan yang sudah ada pun juga terus mengalami perkembangan dari satu fase ke fase yang lain dalam NDLC. Misalnya, fase monitoring dari jaringan yang sudah ada akan menyebabkan terjadinya fase manajemen dan menghasilkan statistik performa dengan menggunakan protokol manajemen jaringan seperti SNMP. Kemudian, analis jaringan akan menganalisis statistik performa dari jaringan yang sudah ada tersebut. Hasil dari analisis jaringan statistik
17 performa
ini
akan
menentukan
apakah
desain
jaringan
akan
diimplementasikan atau tidak. Desain jaringan yang berubah, pertama-tama akan disimulasikan menggunakan perangkat lunak simulasi jaringan yang canggih atau dibuat prototypenya untuk dilakukan tes, sebelum dikembangkan atau diimplementasikan. Siklus dari analisis, desain, simulasi, implementasi, monitoring, dan manajemen ini bersifat terus-menerus. Ini merupakan tuntutan dari sebuah jaringan yang berada pada kondisi terus-menerus berubah karena perubahan dalam bisnis, aplikasi, atau kebutuhan data, sehingga desain jaringan sendiri harus bersifat dinamis supaya bisa mendukung perubahanperubahan kebutuhan ini. (Goldman, 2004, p378)
Gambar 2.5 Network Development Life Cycle Sumber: Goldman, 2004, p378
2.1.10 Flowchart / Diagram Alir Diagram alir adalah sebuah representasi grafis dari sebuah sistem, termasuk di dalamnya adalah proses informasi (input, pemrosesan data,
18 penyimpanan data, dan output) dan proses operasi yang berhubungan (orang, peralatan, organisasi, dan aktivitas kerja). Diagram alir ini menggambarkan urutan dari aktivitas yang dilakukan di dalam sebuah sistem. Karena mengandung aktivitas komputer dan yang manual, diagram alir sistem menyajikan terjemahan fisik dan logik dari siapa, apa, bagaimana, dan di mana dari informasi dan proses operasi. (Gelinas, 2008, p105) Diagram
alir
adalah
sarana
yang
biasa
digunakan
untuk
menggambarkan suatu sistem. Manfaat dari diagram alir: Memberikan
gambaran
sistem
secara
menyeluruh
dengan
mengkombinasikan aspek fisik dan logik. Perubahan sistem yang terjadi dapat lebih mudah digambarkan. Lebih mudah menemukan kelemahan-kelemahan dalam sistem dan mengidentifikasi bidang-bidang yang membutuhkan perbaikan. Beberapa simbol yang sering digunakan dalam diagram alir: Arus
Simbol ini menyatakan arus dari suatu proses. Mulai/Selesai (terminal)
Simbol ini digunakan untuk menggambarkan awal dan akhir dari suatu sistem.
19 Manual Keying (typing, verifying)
Simbol ini menggambarkan pemasukan data ke dalam komputer melalui online terminal. Online computer process
Simbol ini menggambarkan pengolahan data dengan komputer secara online. Keputusan
Simbol ini menggambarkan keputusan yang harus dibuat dalam proses pengolahan data. Keputusan yang dibuat dituliskan di dalam simbol. Disk Storage
Simbol ini menggambarkan penyimpanan output ke dalam disk. Disk
Simbol ini menggambarkan disk sebagai tempat penyimpanan.
2.2
Teori-Teori Khusus yang Berhubungan dengan Topik Bahasan 2.2.1 Single Sign-On (SSO) Single Sign-On adalah suatu mekanisme dimana masing-masing user hanya memiliki satu akun yang berfungsi sebagai identitas user satu-
20 satunya. Satu akun ini dapat digunakan untuk meminta izin dari sistem supaya user dapat mengakses berbagai aplikasi dengan username dan password yang sama dalam session tertentu. Single Sign-On mengurangi jumlah human error yang merupakan alasan kegagalan utama dari sebuah sistem. (http://www.opengroup.org/security/sso/) Keuntungan dari Single Sign-On: Meningkatkan produktivitas pengguna. Pengguna tidak lagi perlu untuk mengingat berbagai macam username dan password. Hal ini juga menyebabkan berkurangnya permintaan untuk mereset password karena lupa. Meningkatkan produktivitas pengembang. SSO menyediakan framework otentikasi yang sudah umum untuk para pengembang. Pada kenyataannya, jika mekanisme SSO terlepas sendiri, para pengembang tidak perlu mengkhawatirkan tentang otentikasi sama sekali. Mereka bisa mengasumsikan bahwa ketika ada sebuah permintaan untuk aplikasi yang diikuti oleh username, otentikasi sudah terjadi. Menyederhanakan administrasi. Ketika aplikasi ikut serta dalam protokol SSO, beban administrasi dari mengatur
akun-akun
user
menjadi
lebih
sederhana.
Tingkat
kesederhanaannya tergantung dari aplikasinya karena SSO hanya berhubungan dengan otentikasi.
21 Kekurangan dari SSO: Sulit untuk diperbarui. Solusi SSO bisa menjadi sulit, membutuhkan waktu, dan mahal untuk diperbarui pada aplikasi yang sudah ada. Dekstop yang tak terkendali. Mengimplementasikan SSO mengurangi beberapa resiko keamanan tetapi meningkatkan yang lainnya. Contohnya, pengguna yang jahat bisa mendapatkan akses ke sumber dari pengguna lain jika pengguna tersebut meninggalkan komputernya dan akunnya berada dalam keadaan login. Satu titik penyerangan. Dengan SSO, layanan pusat otentikasi digunakan oleh semua aplikasi. Ini adalah target menarik bagi hacker yang mungkin memutuskan untuk menyerang. (http://www.ibm.com/developerworks/web/library/wa-singlesign/index.html)
2.2.2
Authentication, Authorization, Accounting (AAA) 2.2.2.1
Authentication Proses dari otentikasi sering dianggap terdiri dari dua fase yang berbeda: 1. Identifikasi, adalah proses untuk mencari identitas user dalam sistem keamanan. Identitas ini biasanya berbentuk user ID. User ID ini tersimpan dalam akun user. Setiap akun user mengandung keterangan seperti alamat dan nama lengkap dari
22 setiap individu. User ID merupakan nama dari setiap akun user yang berfungsi untuk memudahkan sistem mencari akun user yang diinginkan 2. Otentikasi, adalah proses mengesahkan identitas user. User yang telah teridentifikasi melalui user ID belum tentu adalah pemilik user ID yang sesungguhnya. Maka, dibutuhkan proses otentikasi untuk memastikannya. Sistem akan meminta user untuk memberikan bukti supaya identitas user dapat terbukti. Bukti yang diberikan oleh user dalam proses otentikasi biasa disebut credential. Credential biasanya berbentuk password, angka PIN, dan merupakan rahasia yang hanya diketahui oleh user dan sistem. Dengan kata lain, otentikasi adalah proses untuk memastikan identitas user yang sudah
teridentifikasi
menggunakan
bukti
yang
sudah
disediakan oleh user. (Nakhjiri, 2005, p1) 2.2.2.2 Authorization Otorisasi adalah proses untuk menentukan apakah user yang sudah teridentifikasi dan terotentikasi boleh mengakses sumber informasi atau tidak. Proses ini menggunakan satu set aturan untuk menentukan apa saja yang bisa dilakukan oleh user dalam sistem. Otorisasi untuk layanan tertentu bisa berupa read, write, read-write, atau tak ada akses. Hak akses untuk menggunakan layanan bisa dalam jangka waktu yang tak terbatas, terbatas, atau satu kali penggunaan.
23 2.2.2.3 Accounting Akuntasi adalah proses mencatat permintaan user dalam sistem. Akuntansi juga membahas tentang hubungan alat-alat jaringan dengan server akuntasi. Jika dilihat dari segi pengawasan, akuntasi menyediakan informasi tentang otentikasi yang sukses dan tidak pada sistem.
2.2.3
Remote Authentication Dial-In User Service (RADIUS) RADIUS adalah protokol standar industri yang dijelaskan dalam RFC 2865, “Remote Authentication Dial-In User Service (RADIUS)”, dan RFC
2886,
“RADIUS
Accounting”.
RADIUS
digunakan
untuk
menyediakan layanan otentikasi, otorisasi, dan akuntasi. Client RADIUS mengirimkan data user dan informasi parameter koneksi dalam bentuk pesan RADIUS ke server RADIUS. Server RADIUS mengotentikasi dan mengotorisasi permintaan client RADIUS, dan mengirimkan kembali sebuah respon dari pesan RADIUS. Client RADIUS juga mengirimkan pesan akuntasi RADIUS ke server RADIUS. Sebagai tambahan, standar RADIUS mendukung penggunaan proxy RADIUS. Proxy RADIUS adalah komputer yang meneruskan pesan RADIUS diantara komputer-komputer yang aktif-RADIUS. Pesan RADIUS dikirim dengan pesan User Datagram Protocol (UDP). Port UDP 1812 digunakan untuk pesan otentikasi RADIUS dan port UDP 1813 digunakan untuk pesan akuntasi RADIUS. Beberapa dari server akses jaringan mungkin menggunakan port UDP 1645 untuk pesan
24 otentikasi RADIUS dan port UDP 1646 untuk pesan akuntasi RADIUS. Hanya satu pesan RADIUS yang termasuk dalam muatan UDP dari paket RADIUS. Sebuah pesan RADIUS terdiri dari sebuah header RADIUS dan nol atau lebih atribut RADIUS. Setiap atribut menspesifikasian setiap keping informasi
tentang
percobaan
koneksi.
Atribut
digunakan
untuk
menyampaikan informasi antara klien RADIUS, proxy RADIUS, dan server RADIUS. Kontrasnya, pesan Access-Accept mengandung informasi tentang tipe koneksi yang akan dibuat, kendala koneksi, dan vendorspecific
attributes
(VSAs).
(http://technet.microsoft.com/en-
us/library/cc781821(WS.10).aspx)
2.2.3.1
Jenis-Jenis Paket RADIUS Paket set RADIUS cukup sederhana dan hanya terdiri dari delapan pesan (Hassel, 2002): Access-Request Pesan ini dibuat oleh client RADIUS yang dikirimkan ke server untuk meneruskan permintaan dari user yang meminta otentikasi dan otorisasi untuk percobaan koneksi. Access-Accept Pesan ini dikirim dari server RADIUS ke client RADIUS sebagai respon terhadap pesan Access-Request. Pesan ini
25 menginformasikan kepada client RADIUS bahwa percobaan koneksi telah diotentikasi dan diotorisasi. Access-Reject Pesan ini dikirim oleh server RADIUS sebagai respon terhadap pesan Access-Request. Pesan ini menginformasikan kepada client RADIUS bahwa percobaan koneksi ditolak. Server RADIUS mengirimkan pesan ini jika otentikasi dan otorisasi tidak dilaksanakan. Access-Challenge Pesan ini dikirim dari server RADIUS ke klien RADIUS sebagai respon terhadap pesan Access-Request. Pesan ini adalah sebuah tantangan untuk klien RADIUS yang membutuhkan respon. Accounting-Request Pesan ini dikirim dari klien ke server akuntasi untuk menyampaikan informasi akuntasi tentang layanan yang disediakan untuk user. Accounting-Response Pesan ini dikirim oleh server RADIUS pada klien sebagai respon terhadap pesan Accounting-Request. Pesan ini mengakui bahwa informasi akuntasi yang dikirim oleh klien telah diterima dan menunjukkan hasil dari fungsi akuntasi yang telah dilakukan oleh server.
26 Status-Server dan Status-Client Dua pesan ini bersifat percobaan. 2.2.3.2
Format Paket Struktur paket data RADIUS sangat sederhana dan terdiri dari header, yang mengandung code, identifier, length, dan authenticator, dan load yang mengandung muatan paket, merupakan daftar dari nol atau lebih atribut. Akhir dari daftar atribut ditentukan oleh RADIUS length dalam header.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Authenticator | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Attributes +-+-+-+-+-+-+-+-+-+-+-+-+-
Gambar 2.6 Struktur Paket Data RADIUS Sumber: http://www.untruth.org/~josh/security/radius/radius-auth.html
Struktur paket data RADIUS: Code memiliki panjang satu oktet (satu Byte) dan berfungsi untuk mengidentifikasikan berbagai macam tipe paket RADIUS yang dikirim. Paket dengan code yang invalid akan dibuang tanpa pemberitahuan. Kode-kode tersebut (dalam desimal), yaitu:
1 Access-Request
2 Access-Accept
27
3 Access-Reject
4 Accounting-Request
5 Accounting-Response
11 Access-Challenge
12 Status-Server (experimental)
13 Status-Client (experimental)
255 Reserved
Identifier juga memiliki panjang satu oktet. Fungsinya adalah mencocokkan permintaan client RADIUS dengan respon RADIUS.
Server
RADIUS
bisa
menghentikan
pesan
duplikasi dengan memeriksa beberapa faktor seperti IP address, port UDP, jangka waktu diantara pesan yang dicurigai, dan identifier. Length memiliki panjang dua oktet dan menspesifikasikan panjang paket RADIUS. Length ini didapat dari penghitungan analisis code, identifier, length, authenticator, dan atribut sampai didapat jumlahnya. Ketika server RADIUS menerima sebuah paket, length dicek untuk memastikan integritas data. Minimal paket adalah 20 oktet dan maksimal adalah 4096 oktet. Authenticator memiliki nilai enam belas oktet dan bertugas untuk
membuktikan
Authenticator
juga
balasan
dari
digunakan
penyembunyian password.
server dalam
RADIUS. mekanisme
28 Attributes mendeskripsikan tentang tingkah laku atau tipe dari layanan. Nomor atribut berguna untuk menentukan jenis informasi apa yang telah ditransmisikan. Attribute ini mengandung tiga bagian, yaitu: - Type
bernilai
satu
oktet
(maksimal
255
atribut),
mengidentifikasikan berbagai macam tipe atribut, seperti berikut ini: Code Attributes
23
Framed-IPX-Network
1
User-Name
24
State
2
User-Password
25
Class
3
CHAP-Password
26
Vendor-Specific
4
NAS-IP-Address
27
Session-Timeout
5
NAS-Port
28
Idle-Timeout
6
Service-Type
29
Termination-Action
7
Framed-Protocol
30
Called-Station-Id
8
Framed-IP-Address
31
Calling-Station-Id
9
Framed-IP-Netmask
32
NAS-Identifier
10
Framed-Routing
33
Proxy-State
11
Filter-Id
34
Login-LAT-Service
12
Framed-MTU
35
Login-LAT-Node 3
13
Framed-Compression 36
Login-LAT-Group
14
Login-IP-Host
37
Framed-AppleTalk-Link
15
Login-Service
38
Framed-AppleTalk-
16
Login-TCP-Port
17
(unassigned)
39
Framed-AppleTalk-Zone
18
Reply-Message
40-
(reserved for accounting)
Network
29 19
Callback-Number
59
20
Callback-Id
60
CHAP-Challenge
21
(unassigned)
61
NAS-Port-Type
22
Framed-Route
62
Port-Limit
63
Login-LAT-Port
- Length bernilai satu oktet. Panjang dari atribut dalam oktet, menentukan seluruh panjang dari muatan atribut, termasuk type dan length. - Value bernilai nol atau lebih oktet, mengandung informasi yang spesifik tentang atribut.
2.2.4
FreeRADIUS FreeRADIUS adalah sebuah produk RADIUS open-source yang dilengkapi dengan modul, perfoma tinggi, dan banyak fitur termasuk di dalamnya adalah server, client, development libraries, dan berbagai kegunaan tambahan yang berhubungan dengan RADIUS. Sebagai open-source RADIUS yang pertama, FreeRADIUS ini dimasukkan sebagai paket standar dengan banyak Sistem Operasi, memiliki paket binary, dan sumber yang bisa digunakan untuk membangun hampir di semuanya. Penyebaran produksi ini mencakup instalasi berskala besar yang berisikan banyak server AAA dengan pengguna lebih dari sepuluh juga dan jutaan permintaan setiap harinya. FreeRADIUS juga mendukung permintaan proxy dengan fail-over (kemampuan untuk berpindah ke server yang redundansi atau siaga ketika terjadi kegagalan) dan load balancing
30 (teknik mendistribusikan pekerjaan pada port-port jaringan untuk meningkatkan penggunaan jaringan), sebaik dengan kemampuan untuk mengakses
berbagai
macam
tipe
basis
data
back-end.
(http://freeradius.org/) Perbedaan yang dimiliki antara FreeRADIUS dengan server RADIUS yang lain : Akses didasarkan pada huntgroup. Banyak entry DEFAULT di file raddb/users. Setiap entry file pengguna memiliki pilihan “fall through”. Menyimpan/meng-cache-kan semua file config di memori. Menyimpan daftar dari pengguna yang masuk (file radutmp). Program “radwho” dapat diinstal sebagai “fingerd”. Merekam format file UNIX wtmp dan detail rekaman data RADIUS. Mendukung Simultaneous-Use = X parameter. Yang berarti bahwa login berkali-kali dapat dihindari. Mendukung atribut yang terspesifikasi dari vendor, termasuk USR yang tidak standar. Mendukung proxy. Mendukung paket “Alive”. Exec-Program-Wait mengizinkan dibuatnya sebuah program eksternal yang dijalankan sesudah otentikasi dan menghasilkan sebuah daftar dari pasangan A/V yang kemudian ditambahkan ke respon. Mendukung Pluggable Authentication Modules (PAM).
31 2.2.5
Lightweight Directory Access Protocol (LDAP) Lightweight directory access protocol adalah standar untuk mengakses direktori informasi dan merupakan protokol yang mendasari untuk berbagai sistem email, sistem web, dan aplikasi perusahaan. LDAP dapat menyatukan layanan-layanan yang ada menjadi sebuah direktori tunggal yang bisa diakses oleh client LDAP dari berbagai macam vendor. Client-client ini dapat berupa web browsers, mail servers, email clients, atau berbagai macam aplikasi lainnya. Dengan mengorganisasi informasiinformasi dengan dengan baik dan berpikir hati-hati tentang informasi yang biasa dibutuhkan oleh aplikasi client, redundansi data dalam direktori dapat dikurangi dan dengan begitu mengurangi biaya administrasi yang diperlukan
untuk
memelihara
data
serta
dapat
menyederhanakan
manajemen direktori dan total biaya kepemilikan. 2.2.5.1
Lightweight LDAP dikatakan lightweight karena LDAP berakar dari X.500 yang mendapat gelar heavyweight. X.500 adalah sebuah layanan directory yang lebih besar dan lebih kompleks daripada LDAP. LDAP sebenarnya didesain sebagai directory access protocol (DAP) untuk layanan directory X.500 karena sumber daya yang dibutuhkan oleh X.500 terlalu berat. Selain itu, LDAP juga
menyederhanakan
beberapa
operasi
X.500
dan
menghilangkan beberapa fitur yang hanya dimengerti oleh orang-orang tertentu saja.
32 Pada
X.500,
client
dan
server
berkomunikasi
menggunakan protokol stack Open Systems Interface (OSI). Stack dengan tujuh layer ini memang bagus untuk mendesain rangkaian protokol jaringan tapi ketika dibandingkan dengan rangkaian protokol TCP/IP, OSI 7-layer menjadi terlihat sangat berat. LDAP menggunakan pesan udara tingkat rendah yang dipetakan secara langsung ke dalam layer TCP (biasanya port 389) dari stack protokol TCP/IP. Karena X.500 adalah protokol layer aplikasi, ini membawa lebih banyak beban karena header jaringan dibungkus di sekeliling paket di setiap layer sebelum akhirnya ditransmisikan ke jaringan. (Carter, 2003)
2.2.5.2
Directory Artian directory secara umum adalah sebuah daftar dari informasi tentang obyek-obyek yang tersusun dalam urutan tertentu dan memberikan detail dari setiap obyek. Contohnya adalah buku telepon, di mana daftar obyeknya adalah orangorang dengan nama yang tersusun secara alfabet dan detailnya adalah alamat dan nomor telepon. Dalam istilah komputer, directory adalah sebuah database spesial, atau biasa disebut data repository, yang memiliki karakteristik yang membedakannya dengan database relasional secara umum. Salah satu karakteristik spesialnya adalah
33 directory diakses (dibaca atau dicari) lebih sering daripada diperbarui (ditulis). Contohnya, ratusan orang akan mencari nomor telepon tapi nomor telepon jarang berubah. Directory dioptimasikan untuk akses pembacaan karena directory harus mampu melayani permintaan pembacaan dalam jumlah banyak. Akses penulisan / perubahan terbatas hanya pada administrator sistem atau pemilih dari setiap informasi. Berbeda dengan database relasional secara umum yang mendukung aplikasi seperti aplikasi perbankan, yang mengalami pembaruan dengan intensitas yang tinggi. Karena itu, directory yang bertujuan untuk menyimpan informasi statis, tidak cocok untuk menyimpan informasi yang berubah secara cepat. Perbedaan lain antara directory dan database relasional secara umum adalah cara informasi diakses. Sebagian besar database mendukung metode yang sudah terstandardisasi dan memiliki akses yang sangat kuat yaitu Structured Query Language (SQL). SQL mengizinkan pembaruan dan fungsi query yang kompleks sebagai harga dari ukuran program dan kompleksitas aplikasi. Di sisi lain, directory menggunakan access protocol yang sederhana dan teroptimasi sehingga bisa digunakan dalam program yang berukuran kecil dan aplikasi yang relatif sederhana. Karena directory memang tidak dimaksudkan untuk menyediakan banyak fungsi seperti database relasional secara
34 umum, directory dapat dioptimasikan secara ekonomis untuk menyediakan banyak aplikasi dengan akses cepat menuju directory data dalam lingkungan distribusi yang besar. Sebuah permintaan biasanya dilakukan oleh directory client dan proses pencarian informasi dalam directory disebut directory server. Secara umum, server melayani layanan tertentu pada client. Terkadang, server bisa menjadi client dari server lainnya untuk mengumpulkan informasi supaya bisa memproses permintaan. (Tuttle, 2004, p5)
2.2.5.3
Access Protocol LDAP cukup diketahui sebagai protokol client-server yang berbasis pesan dan ditentukan oleh RFC 2251. LDAP bisa dibilang asinkron (walaupun banyak alat pengembangan yang menyediakan
API
baik
yang
blocking
maupun
yang
nonblocking), yang berarti bahwa client bisa melakukan banyak permintaan tapi urutan respon yang dilakukan oleh server bisa berbeda dengan urutan permintaan dari client. (Carter, 2003)
2.2.5.4
Model LDAP Model LDAP mewakili layanan yang disediakan oleh server, yang bisa dilihat oleh client. Model LDAP ini merupakan model abstrak yang mendeskripsikan berbagai macam segi dari
35 direktori LDAP. Model LDAP terbagi menjadi empat komponen (Carter, 2003): Model Informasi Model informasi menyediakan struktur dan tipe data yang diperlukan untuk membangun sebuah pohon direktori LDAP, juga mendeskripsikan apa saja yang dapat diletakkan di dalam direktori. Sebuah entry adalah unit dasar dari direktori LDAP. Sebuah entry mengandung informasi tentang suatu hal dari satu atau lebih objectClass. objectClass ini mempunyai atribut tertentu baik yang wajib maupun yang tidak. Tipe atribut telah menetapkan aturan tentang persandian dan aturan kesesuaian yang mengatur hal-hal seperti tipe data atribut
dapat
mempertahankan
dan
bagaimana
membandingkan data saat pencarian. Contohnya, sebuah entry mungkin memiliki atribut. Sintaks yang dikaitkan dengan tipe atribut ini akan menentukan apakah nilai dari nomor telepon ditunjukkan dengan string yang bisa dicetak, diikuti oleh kata kunci yang mendeskripsikan ukuran kertas dan karakteristik resolusi. Ini mungkin bahwa entry direktori untuk sebuah organisasi akan mengandung banyak nilai dalam atribut, sehingga sebuah organisasi atau orang yang diwakilkan oleh entity akan memiliki banyak nomor fax.
36
Gambar 2.7 Skema LDAP Sumber: Arkills, 2003
Berikut adalah tabel dari beberapa atribut yang umum digunakan. Beberapa atribut memiliki nama alias yang dapat digunakan dimanapun ketika nama lengkap atribut telah digunakan. Contohnya, cn dapat digunakan untuk merujuk pada atribut commonName. Tabel 2.3 Atribut yang Umum Digunakan Atribut, Alias commonName, cn surname, sn telephoneNumber
Sintaks Deskripsi Contoh Cls Nama umum John Smith dari sebuah entry Cls Nama belakang Smith dari seseorang Tel Nomor telepon 021-53146783
37 organizationalU nit Name, ou
Cls
Owner
Dn
Organization, o
Cls
jpegPhoto
Bin
Nama dari unit organisasi DN dari orang yang memiliki entry Nama dari organisasi Gambar foto dalam format JPEG
Tivoli cn=John Smith, o=IBM,c=us IBM Foto dari John Smith
Model Penamaan Model penamaan mendefinisikan bagaimana entry dan data di Directory Information Tree (DIT) dirujuk secara unik. Setiap entry memiliki sebuah atribut yang unik diantara semua saudaranya dari satu single parent. Atribut yang unik ini disebut relative distinguised name (RDN). Setiap entry apapun di dalam direktori bisa diidentifikasi secara unik dengan mengikuti RDN dari semua entry di path dari node yang diinginkan sampai ke root dari pohon. String dibuat dengan mengkombinasikan RDN untuk membentuk sebuah nama unik yang disebut node’s distinguished name (DN).
38
Gambar 2.8 Contoh Pohon Direktori LDAP Sumber: Carter, 2003
Pada gambar 2.8, entry direktori yang berada di dalam kotak memiliki sebuah RDN dari cn=gerald carter. Bisa dilihat bahwa nama atribut dan nilai juga termasuk dalam RDN. DN untuk node ini adalah
cn=gerald
carter,
ou=people, dc=plainjoe, dc=org.
Model Fungsi Model fungsi mendeskripsikan apa saja yang bisa dilakukan dengan data direktori. Model fungsi adalah protokol LDAP itu sendiri. Protokol ini menyediakan sarana untuk
mengakses
data
pada
pohon
direktori.
Akses
diimplementasikan oleh operasi otentikasi (binding), operasi query (search dan read), dan operasi pembaruan (write).
39 Tabel 2.4 Tabel konfigurasi privileges Keyword
Privileges
None Disclose Auth Compare Search Read Write
0 D Xd Cxd Scxd Rscxd Wrsxd
Model Keamanan Model keamanan mendeskripsikan bagaimana data direktori dilindungi dari akses yang tidak terotorisasi. Model keamanan ini menyediakan sebuah mekanisme bagi client untuk membuktikan identitas mereka (otentikasi) dan bagi server untuk mengontrol akses terotentikasi client menuju data (otorisasi).
2.2.6
OpenLDAP OpenLDAP
adalah
sebuah
open
source
yang
merupakan
implementasi dari Lightweight Directory Access Protocol (LDAP). Komponen-komponen yang ada di dalam rangkaian OpenLDAP bisa dibagi menjadi empat komponen (Butcher, 2007, p22): Servers Server utama dari rangkaian LDAP adalah Stand-Alone LDAP Daemon (SLAPD). Server ini menyediakan akses menuju satu atau lebih pohon direktori informasi. Client terhubung dengan server melalui
40 protokol LDAP, biasanya dengan menggunakan sebuah koneksi berbasis jaringan (walaupun SLAPD juga menyediakan sebuah socket listener UNIX). Sebuah server dapat menyimpan data direktori secara lokal atau hanya mengakses (atau akses proxy) ke sumber-sumber eksternal. Secara khas, server menyediakan otentikasi dan pencarian layanan, dan juga mendukung penambahan, penghapusan, dan perubahan data direktori. Ini juga menyediakan kontrol akses finegrained ke direktori. Clients Client mengakses server LDAP melalui protokol jaringan LDAP. Client berfungsi dengan meminta bahwa server melakukan operasi untuk kepentingan mereka. Secara khas, client akan pertama kali terhubung dengan server direktori, kemudian melakukan bind (otentikasi), dan kemudian melakukan nol atau lebih operasi lain (mencari, mengubah, menambah, menghapus, dan lain-lain) sebelum akhirnya melakukan unbinding dan memutuskan koneksi. Utilities Tidak
seperti
client,
utilities
tidak
melakukan
operasi
menggunakan protokol LDAP. Sebagai gantinya, utilities memanipulasi data di tingkatan yang lebih rendah dan tanpa penghubung oleh server. Utilities digunakan terutama untuk membantu memelihara server.
41 Libraries Ada beberapa library OpenLDAP yang dibagi diantara aplikasiaplikasi LDAP. Library ini menyediakan fungsi-fungsi LDAP pada aplikasi-aplikasi. Client, utilities, dan server, semuanya membagi akses pada beberapa library. Application Programming Interfaces (APIs) disediakan untuk mengizinkan para pengembang perangkat lunak menulis aplikasi LDAP mereka sendiri tanpa menulis ulang kode dasar LDAP. Jika API yang disediakan untuk OpenLDAP ditulis dalam bahasa C, proyek OpenLDAP juga menyediakan dua Java API. Library dari Java ini tidak termasuk dalam rangkaian OpenLDAP tapi bisa didapatkan dari http://openldap.org.
Gambar 2.9 Diagram keempat komponen OpenLDAP Sumber: Butcher, 2007, p21
42 2.2.7
Email 2.2.7.1
Simple Mail Transfer Protocol (SMTP) Simple Mail Transfer Protocol adalah protokol pengiriman email TCP/IP. SMTP memindahkan email di internet dan jaringan lokal. Tujuan dari SMTP adalah mengirimkan pesan yang efisien dan dapat dipercaya. Protokol ini ditentukan dalam RFC 2821, A Simple Mail Transfer Protocol. SMTP berjalan di layanan yang terorientasi pada hubungan dan terpercaya yang disediakan oleh Transmission Control Protocol (TCP), dan protokol ini sudah dikenal menggunakan port nomor 25. SMTP tidak bergantung pada subsistem transmisi tertentu dan hanya membutuhkan channel arus data yang terpercaya. Salah satu fungsi SMTP yang signifikan adalah kemampuannya untuk mengirimkan pesan antar jaringan, yang biasa disebut SMTP mail relaying (pengiriman pesan SMTP). Sebuah jaringan terdiri dari host-host yang terakses melalui TCP pada jaringan public internet, host-host yang terakses melalui TCP pada TCP/IP Intranet dengan firewall, atau host-host pada jaringan LAN atau WAN yang memanfaatkan sebuah protokol transportlevel yang non-TCP. Saat
menggunakan
SMTP,
sebuah
proses
dapat
mengirimkan pesan ke proses lain dalam jaringan yang sama atau ke beberapa jaringan berbeda melalui proses relay atau gateway yang dapat diakses oleh kedua jaringan. Dalam hal ini,
43 sebuah pesan dapat melewati beberapa relay atau gateway host dalam perjalanannya. Mekanisme Mail eXchanger dari domain name system (DNS) digunakan untuk mengidentifikasi tujuan berikutnya yang benar dari pesan tersebut. Desain SMTP dapat dilihat sebagai berikut: +----------+ +------+
|
|
| User |<-->|
|
+------+
|
+------+
|
+----------+ SMTP
|
|
|
|
Client- |Commands/Replies| ServerSMTP
|<-------------->| and Mail
SMTP
| |
| File |<-->|
|
|System|
|
|
+------+
+----------+ SMTP client
SMTP server
+------+
|
|<-->| File |
|
|
|System|
+----------+
+------+
Gambar 2.10 Desain SMTP Sumber: RFC 2821
Saat SMTP client memiliki pesan yang akan dikirim, SMTP client akan membuat dua jalur pengiriman ke SMTP server. Tugas dari SMTP client adalah untuk mengirimkan pesan ke satu atau lebih SMTP server, atau mengirimkan laporan bahwa pesan tersebut gagal dikirim. (RFC 2821).
2.2.7.2
Zimbra Collaboration Suite (ZCS) Zimbra, sebagai bagian dari VMware, Inc., merupakan pemimpin di open source perangkat lunak email dan kolaborasi generasi selanjutnya. Zimbra menyederhanakan IT dan mengatur standar untuk web dan cloud yang berdasarkan pada kolaborasi
44 dengan pengalaman pengguna yang inovatif seperti tampilan web AJAX. Dengan lebih dari 60 juta kotak surat berbayar di seluruh dunia, Zimbra adalah salah satu dari penyedia email yang terbesar dan tercepat perkembangannya. Produk-produk dari Zimbra adalah Zimbra Collaboration Suite (ZCS) dan Zimbra Dekstop. ZCS adalah sebuah email dan server kalender, ditambah dengan fasilitas penyimpanan dan pengeditan dokumen, pesan instan, dan kontrol administrasi yang sederhana. Semua fasilitas ini dibangun di atas teknologi web AJAX yang terbaru. ZCS juga menyediakan mobilitas dan sinkronisasi ke aplikasi dekstop client sedangkan server digunakan pada perangkat keras Linux dan server Mac. (http://www.zimbra.com)
2.2.8
PHP Hypertext Preprocessor (PHP) PHP adalah bahasa pemograman yang ditempel pada HTML (HyperText Markup Languange) dan biasa digunakan untuk membangun website yang dinamis dan interaktif (Choi, 2004, p1). PHP pertama kali dirancang oleh Rasmus Lerdorf pada tahun 1995 dan awalnya diberi nama Personal Home Page, sebuah set kecil dari script Perl untuk mengumpulkan data tentang orang-orang yang melihat resume-nya. Pada saat itu, WWW masih berada pada tahap primitif dan siapapun yang ingin menambahkan isi yang bersifat dinamis ke dalam website sangat membutuhkan scripting languange yang fleksibel dan beroperasi di server.
45 PHP dibangun di atas struktur bahasa pemograman yang familiar seperti C, Java, dan Perl (Allen, 2002, p3). PHP memadukan beberapa fitur terbaik dari bahasa pemograman modern menjadi sebuah aplikasi penulisan website yang unik dan menyegarkan. PHP juga mengizinkan adanya perkembangan dengan kekacauan yang minimal.
2.2.9
MySQL Database MySQL telah menjadi open source database yang paling terkenal sedunia karena performanya yang tinggi, kehandalannya, dan kemudahan untuk digunakan. Ini juga merupakan database pilihan dari generasi aplikasi baru yang dibangun di atas stack LAMP (Linux, Apache, MySQL, PHP/Perl/Python). Organisasi-organisasi terbesar sedunia dan pertumbuhannya sangat cepat pun bergantung pada MySQL untuk menghemat waktu dan uang menggerakkan websites berkapasitas besar, sistem bisnis yang kritis, dan paket perangkat lunak mereka. MySQL juga berjalan di lebih dari dua puluh platform termasuk Linux, Windows, Mac OS,
Solaris,
HP-UX,
IBM
AIX, memberikan fleksibilitas
yang
memudahkan untuk dikontrol. (http://www.mysql.com/why-mysql/) Structured Query Language (SQL) adalah sebuah bahasa yang digunakan untuk membuat dan mengoperasikan relational database, yang merupakan kumpulan informasi yang berhubungan dan tersimpan di dalam tabel. Relational database diatur oleh program yang disebut database
46 management system (DBMS), contohnya MySQL. MySQL menggunakan SQL untuk semua operasi database. (Gruber, 2000, pxxiii)
2.2.10 Joomla Joomla adalah sebuah open source content management system (CMS) berbasis PHP dan MySQL, yang memungkinkan penggunanya untuk membangun website dan aplikasi online. CMS adalah perangkat lunak yang menjaga setiap bagian dari isi website, mirip dengan perpustakaan yang menjaga setiap buku dan menyimpannya. Isi yang dijaga ini bisa berupa teks, foto, lagu, video, dokumen, dan lain-lain. Keuntungan utama dari penggunaan CMS adalah tidak diperlukan kemampuan teknik atau pengetahuan untuk mengatur karena CMS yang mengatur semua isinya. (http://www.joomla.org/about-joomla.html) Inti dari framework Joomla memampukan para pengembang untuk secara cepat dan mudah membangun: Sistem kontrol inventaris. Alat untuk melaporkan data. Jembatan aplikasi. Katalog dari berbagai macam produk. Sistem e-commerce yang terintegrasi. Direktori untuk bisnis yang kompleks. Sistem reservasi. Alat komunikasi.