Upload
rido-astiwan
View
1.643
Download
4
Embed Size (px)
Citation preview
BAB IV
PELAKSANAAN DAN HASIL KERJA PRAKTEK
Kerja praktek dilaksanakan di ruang komputer Biomat LIPI Cibinong
untuk mensimulasikan pengembangan jaringan komputer dan server internet
berbasis linux. Tahap awal yang dilakukan adalah perancangan dan konfigurasi
server. Perancangan server ini meliputi pemilihan PC yang sesuai dengan
kebutuhan server, sistem operasi, perangkat keras jaringan dan konfigurasi
terhadap server agar semua layanan dapat dipenuhi secara efektif. Selanjutnya
akan dilakukan instalasi dan konfigurasi beberapa aplikasi server yang akan
menyediakan layanan-layanan pada server.
Simulasi ini menggunakan Ubuntu Linux 7.04 Feisty Fawn server sebagai
sistem operasi untuk server internet bagi komputer lainnya (komputer client).
Alasan penggunaan linux sebagai sistem operasi server adalah linux dapat
diperoleh secara gratis dan boleh disebarluaskan dengan bebas. Selain itu juga,
linux merupakan sistem operasi yang cukup handal untuk memenuhi kebutuhan
dalam menyediakan layanan-layanan server. Dan dengan dukungan komunitas
yang sangat besar di internet, memberikan kemudahan dalam hal penggunaannya
sebagai sistem operasi yang memiliki banyak varian ini.
4.1. Persiapan Instalasi
Perangkat yang digunakan :
1. PC dengan CPU Intel Pentium III 1 Ghz
2. Memori sebesar 512 MB
3. Hardisk berkapasitas 20 GB
4. Network Card (LAN Card) 2 buah
5. CD-ROM Drive
6. Switch/Hub 10/100 Mbps
7. CD Installer Ubuntu 7.04 Feisty Fawn server
4.2. Instalasi Ubuntu 7.04 Feisty Fawn Server
Secara umum ada beberapa teknik instalasi yang dapat dilakukan. Cara
termudah adalah dengan menginstalasi dari CD-ROM. CD instalasi Ubuntu Linux
merupakan bootable CD, sehingga dapat langsung dijalankan tanpa harus
membuat disket boot terlebih dahulu.
Konfigurasi BIOS harus terlebih dahulu dilakukan dengan mengubah CD-
ROM menjadi primary boot untuk dapat melakukan boot langsung dari CD.
Setelah itu, komputer akan melakukan restart untuk menyimpan konfigurasi BIOS
yang telah diubah. Jika proses booting berhasil, maka akan muncul boot menu
default dari Ubuntu Linux.
29
Gambar 4.1. Boot menu default Ubuntu Linux 7.04 Feisty Fawn server
Setelah memilih menu “Install to the hard disk”, akan dilakukan pemilihan
bahasa, lokasi dan jenis keyboard yang digunakan. Setelah itu sistem akan
berlanjut dengan melakukan pengecekan terhadap paket-paket dan komponen
pada CD instalasi, perangkat keras dan secara default akan mengkonfigurasi
network dengan DHCP.
30
Gambar 4.2.a. Memilih bahasa instalasi
Gambar 4.2.b. Memilih lokasi
31
Gambar 4.2.c. Memilih jenis keyboard
Gambar 4.2.d. Sistem melakukan pengecekan terhadap paket-paket pada CD
instalasi
32
Gambar 4.2.e. Sistem melakukan pengecekan terhadap komponen pada CD
instalasi
Selanjutnya akan dilakukan konfigurasi penamaan host pada komputer server.
Gambar 4.3. Konfigurasi penamaan host
33
Kemudian akan dilakukan pembagian partisi hardisk sebagai media
penyimpanan sistem operasi yang akan diinstal dan jenis file system yang akan
digunakan. Ubuntu Linux 7.04 Feisty Fawn server merupakan salah satu varian
linux sehingga konfigurasi pembagian partisinya pun sama dengan varian linux
lainnya. Pada linux, secara umum dibutuhkan minimal dua partisi hardisk untuk
melakukan instalasi. Partisi pertama adalah root yang akan digunakan untuk
menyimpan semua file sistem dan konfigurasi sistem operasi linux. Dan yang
kedua adalah partisi swap yang akan berfungsi sebagai virtual memory. Virtual
memory dimaksudkan untuk efisiensi dari aktifitas proses yang menggunakan
memori utama (RAM) dan akan menempatkan proses pada virtual memory
tersebut. Biasanya besar partisi swap untuk instalasi standar pada linux adalah dua
kali besar memori utama (RAM).
Di linux terdapat beberapa jenis file system yang dapat digunakan, antara
lain: ext2, ext3, dan swap. Pada umumnya, secara default linux akan
menggunakan file system ext3 yang merupakan pengembangan dan perbaikan dari
jenis file system ext2.
34
Gambar 4.4.a. Memilih metode pembagian partisi hardisk
Gambar 4.4.b. Memilih hardisk yang akan dipartisi
35
Gambar 4.4.c. Hardisk siap untuk diformat
Selanjutnya sistem akan memformat hardisk secara otomatis setelah
pembagian partisi dan pemilihan file system telah selesai dilakukan.
Gambar 4.5. Sistem memformat hardisk
36
Konfigurasi waktu di sistem.
Gambar 4.6. Konfigurasi waktu
Konfigurasi nama user dan password yang dapat menggunakan sistem.
Pada sistem operasi Ubuntu Linux 7.04 Feisty Fawn Server, tidak terdapat user
root atau superuser seperti pada umunya linux. Namun, user dapat berada
setingkat root yang dalam hal ini perintah-perintah yang hanya dapat dilakukan
oleh root dapat dieksekusi dengan menggunakan perintah 'sudo'. Dengan sudo
maka sistem akan menerjemahkan seolah-olah perintah tersebut dijalankan oleh
root atau superuser.
37
Gambar 4.7. Konfigurasi nama user
Gambar 4.8. Password user
38
Selanjutnya sistem akan melakukan instalasi awal dengan konfigurasi yang
telah dilakukan, lalu akan terdapat dialog untuk instalasi aplikasi server yang
pertama yaitu HTTP (LAMP) server dan DNS server. Setelah itu sistem akan
melanjutkan proses instalasi secara keseluruhan termasuk boot loader. Ubuntu
Linux 7.04 Feisty Fawn Server secara default menggunakan GRUB sebagai boot
loader.
Gambar 4.9.a. Instalasi awal
39
Gambar 4.9.b. Instalasi DNS dan LAMP server
Gambar 4.9.c. Instalasi Sistem
40
Gambar 4.9.d. Instalasi GRUB boot loader
Setelah semua proses dilakukan, maka sistem akan memunculkan dialog
untuk melakukan restart secara otomatis.
Gambar 4.10. Sistem meminta untuk melakukan restart
41
Setelah melakukan restart, CD harus segera dikeluarkan dari CD-ROM
drive untuk menghindari komputer boot melalui CD. Komputer akan kembali
menyala dan selanjutnya sistem akan melakukan konfigurasi terhadap keseluruhan
sistem secara default. Proses konfigurasi ini akan selesai dengan sendirinya dan
bila telah selesai maka akan muncul tampilan terminal yang akan meminta nama
user dan password yang akan masuk ke sistem.
4.3. Konfigurasi Server
Untuk melakukan konfigurasi pada server, maka user harus memiliki akses
penuh terhadap sistem. User yang memiliki hak penuh terhadap sistem adalah
superuser. Untuk berpindah modus dari user biasa ke superuser dapat dilakukan
dengan menggunakan perintah :
$sudo su
Sistem akan meminta password user yang akan menjadi superuser.
Lingkungan kerja pada Ubuntu 7.04 Feisty Fawn Server merupakan
lingkungan kerja yang berbasis teks atau konsol terminal. Dan sebagian besar file
konfigurasi yang berada pada sistem linux adalah berbasis plain text. Pengubahan
konfigurasi pada file-file tersebut dilakukan dengan menggunakan teks editor
nano. Nano merupakan aplikasi teks editor pada Ubuntu 7.04 Feisty Fawn Server
pada terminal yang cukup nyaman digunakan. Untuk membuka sebuah file dapat
dilakukan dengan perintah :
#nano nama_file
42
Perintah-perintah yang berkaitan dengan penggunaan teks editor nano
dapat dilihat di bagian bawah layar dan dapat diakses dengan menggunakan
kombinasi keyboard ctrl+huruf.
4.3.1. Konfigurasi Jaringan (Network)
Keseluruhan konfigurasi untuk kartu jaringan (ethernet card) terdapat pada
satu file tunggal yang terletak di /etc/network/interfaces. Konfigurasi
pengalamatan IP dapat dilakukan dengan menggunakan perintah:
#nano /etc/network/interfaces
Dan isi dari file tersebut:
# This file describes the network interfaces available on your# system and how to activate them. For more information, see# interfaces(5).
# The loopback network interface auto lo iface lo inet loopback
auto eth0 iface eth0 inet static address 192.168.52.222 netmask 255.255.255.0 network 192.168.52.0 broadcast 192.168.52.255 gateway 192.168.52.1 dns-nameservers 192.168.0.2 192.168.0.10 192.168.52.222 dns-search biomat.lipi.go.id
auto eth1 iface eth1 inet static address 172.18.212.20 netmask 255.255.255.0 network 172.18.212.0 broadcast 172.18.212.255 gateway 172.18.212.9
Komputer server dikonfigurasi untuk menggunakan alamat IP static untuk
kedua ethernet card-nya. Untuk ethernet card yang pertama yaitu eth0,
43
dikonfigurasi dengan alamat IP 192.168.52.222/24, alamat gateway 192.168.52.1,
alamat DNS server 192.168.0.2 192.168.0.10 192.168.52.222 dan DNS search
biomat.lipi.go.id. Dan untuk ethernet card yang kedua yaitu eth1, dikonfigurasi
dengan alamat IP 172.18.212.20/24 dan alamat gateway 172.18.212.9.
Konfigurasi tersebut menunjukkan bahwa kedua ethernet card akan aktif
secara otomatis saat komputer dihidupkan dan menggunakan sistem pengalamatan
IP dengan Ipv4. Setelah selesai dan disimpan, konfigurasi IP tersebut dapat segera
diaktifkan dengan me-restart service network pada sistem. Hal ini dapat dilakukan
dengan memberikan perintah:
#/etc/init.d/networking restart
Jika berhasil, maka di terminal akan menampilkan:
* Reconfiguring network interfaces... [ OK ]
Karena menggunakan alamat IP statis, maka DNS server harus
didefinisikan secara manual. Konfigurasi ini dilakukan dengan mengubah file
/etc/resolv.conf dengan menggunakan teks editor nano.
#nano /etc/resolv.conf
search biomat.lipi.go.id nameserver 172.18.212.20 nameserver 192.168.52.222 nameserver 192.168.0.2 nameserver 192.168.0.10
44
Perintah search akan menambahkan biomat.lipi.go.id ke query hotsname
untuk me-resolve alamat host pada jaringan. Sebagai contoh, bila salah satu
komputer memberikan perintah ping kepada komputer lain yang mempunyai
hostname “server” dalam satu domain, maka DNS query akan memodifikasinya
menjadi “server.biomat.lipi.go.id”. Perintah nameserver menentukan DNS server
yang akan me-resolve hostname menjadi alamat IP.
4.3.2. Konfigurasi Repository
Ubuntu linux dilengkapi dengan sistem repositories untuk mendukung
sistem manajemen paketnya. Repository Ubuntu menyediakan koleksi aplikasi
yang cukup besar untuk membangun sebuah sistem berbasis Ubuntu Linux baik
sebagai workstation maupun sebagai server.
Konfigurasi repository dilakukan dengan mengarahkan sistem manajemen
paket agar menggunakan repository yang berada di Indonesia sehingga proses
download untuk instalasi paket dapat dilakukan lebih cepat. Repository yang
digunakan sebagai sumber untuk instalasi paket yaitu repository yang berada di
kambing (www.kambing.vlsm.org). Konfigurasi dapat dilakukan dengan
mengubah entri file yang berada di /etc/apt/source.list dengan
menggunakan nano.
#nano /etc/apt/source.list
45
Isi dari file tersebut setelah dikonfigurasi untuk menggunakan repository
kambing:
# See http://help.ubuntu.com/community/UpgradeNotes for how to# upgrade to newer versions of the distribution.
## Uncomment the following two lines to add software from## Canonical's 'partner' repository. This software is not part of## Ubuntu, but is offered by Canonical and the respective vendors## as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu feisty partner # deb-src http://archive.canonical.com/ubuntu feisty partner
##Repo di Kambing deb http://kambing.vlsm.org/ubuntu feisty main restricted deb http://kambing.vlsm.org/ubuntu feisty universe multiverse deb-src http://kambing.vlsm.org/ubuntu/ feisty main restricted deb-src http://kambing.vlsm.org/ubuntu/ feisty universe deb-src http://kambing.vlsm.org/ubuntu/ feisty multiverse deb http://kambing.vlsm.org/ubuntu feisty-updates main deb http://kambing.vlsm.org/ubuntu feisty-updates restricted deb http://kambing.vlsm.org/ubuntu feisty-updates universe deb http://kambing.vlsm.org/ubuntu feisty-updates multiverse deb-src http://kambing.vlsm.org/ubuntu feisty-updates main deb-src http://kambing.vlsm.org/ubuntu feisty-updates restricted deb-src http://kambing.vlsm.org/ubuntu feisty-updates universe deb-src http://kambing.vlsm.org/ubuntu feisty-updates multiverse deb http://kambing.vlsm.org/ubuntu feisty-security main deb http://kambing.vlsm.org/ubuntu feisty-security restricted deb http://kambing.vlsm.org/ubuntu feisty-security universe deb http://kambing.vlsm.org/ubuntu feisty-security multiverse deb-src http://kambing.vlsm.org/ubuntu feisty-security main deb-src http://kambing.vlsm.org/ubuntu feisty-security restricted deb-src http://kambing.vlsm.org/ubuntu feisty-security universe deb-src http://kambing.vlsm.org/ubuntu feisty-security multiverse
Setelah file tersebut disimpan, maka akan dilakukan update terhadap
indeks paket-paket yang tersedia di server repository. Hal ini dilakukan dengan
mengetikkan perintah:
#apt-get update
46
4.4. SSH Server
4.4.1. Pendahuluan
Secure Shell (SSH) merupakan sebuah protokol TCP/IP yang menyediakan
layanan pertukaran data melalui jalur yang aman (terenkripsi) antara dua atau
lebih komputer yang tergabung dalam satu jaringan. Kapanpun data dikirim
melalui jaringan oleh sebuah komputer, SSH secara otomatis akan meng-encrypt
(mengacak) data tersebut. Lalu, ketika data sampai kepada penerimanya, SSH
akan kembali men-decrypt (menyusun kembali) secara otomatis pula. Sehingga
user dapat tetap bekerja dengan normal tanpa perlu mengetahui bagaiman data
terenkripsi di jaringan. SSH menggunakan algoritma enkripsi yang aman, modern
dan cukup efektif untuk beberapa aplikasi.
Protokol SSH melingkupi autentifikasi, enkripsi dan integritas terhadap
data yang dikirimkan melalui jaringan komputer. Autentifikasi akan menjamin
keabsahan identitas user yang log in ke dalam sebuah sistem (server). Enkripsi
akan mengacak data sehingga tak dapat dimengerti kecuali oleh penerima yang
sah. Hal ini akan melindungi komunikasi data yang terjadi dalam jaringan
komputer. Dan integritas akan menjamin bahwa data yang dikirim melalui
jaringan komputer akan sampai tanpa perubahan karena SSH dapat mendeteksi
apabila terjadi pencurian dan pemodifikasian data dalam jaringan.
SSH bekerja berdasarkan arsitektur client-server. Aplikasi SSH server,
akan menerima atau menolak koneksi yang datang ke komputer server. User,
menggunakan aplikasi SSH client, akan mengirimkan request ke komputer server,
seperti autentifikasi log in, meminta file dan/atau mengeksekusi perintah yang
47
ditujukan untuk server.
4.4.2. Instalasi dan Konfigurasi OpenSSH Server
Aplikasi yang akan digunakan untuk membangun server SSH adalah
OpenSSH. OpenSSH merupakan aplikasi berbasis protokol SSH yang berfungsi
untuk me-remote sebuah komputer dan/atau melakukan transfer file antar
komputer. OpenSSH menyediakan aplikasi client dan server untuk menjamin
operasi remote dan/atau transfer file yang terenkripsi dengan baik untuk
keamanannya.
Komponen OpenSSH server, sshd, akan mendengarkan secara kontinu
permintaan client dari beragam aplikasi SSH client. Ketika ada sebuah permintaan
koneksi dari client, sshd akan melakukan set up koneksi berdasarkan tipe koneksi
yang diminta oleh client. Contoh, apabila SSH client terhubung untuk melakukan
remote terhadap komputer server, maka session untuk melakukan remote
computing akan dibuka setelah proses autentifikasi selesai. Apabila remote user
terkoneksi ke sebuah OpenSSH server dengan scp, daemon OpenSSH server akan
memulai proses transfer file antara client dan server setelah proses autentifikasi.
OpenSSH mendukung banyak metode autentifikasi seperti plain password, public
key dan Kerberos tickets.
Instalasi OpenSSH baik untuk aplikasi client dan server relatif mudah, hal
ini dapat dilakukan dengan mengetikkan perintah berikut di terminal:
#apt-get install openssh-client
Untuk menginstal aplikasi client-nya, dan
48
#apt-get install openssh-server
untuk menginstal aplikasi server.
Konfigurasi OpenSSH server, sshd, dapat dilakukan dengan mengubah file
/etc/ssh/sshd_config. Terdapat beberapa perintah yang digunakan untuk
mengatur perilaku OpenSSH server yang dapat diketahui dengan melihat manual
yang dapat diakses melalui terminal pula, yaitu dengan mengetikkan perintah:
#man sshd_config
Beberapa contoh modifikasi perintah yang dapat dilakukan antara lain:
● Untuk mengubah port TCP dari 22 ke port TCP 2222 yaitu dengan
mengganti perintah Port seperti:
Port 2222
● Untuk membuat agar pesan sebelum log in dari file /etc/issue.net agar
muncul sebagai pre-login banner yaitu dengan menambahkan baris
berikut:
Banner /etc/issue.net
Setelah melakukan perubahan dan menyimpan file tersebut, maka aplikasi
server sshd harus di-restart untuk melihat perubahan yang telah dilakukan. Yaitu
dengan mengetikkan perintah:
#/etc/init.d/ssh restart
49
4.5. Firewall
4.5.1. Pendahuluan
Firewall merupakan salah satu cara untuk melindungi sistem dari ancaman
keamanan jaringan. Penerapan firewall dapat meningkatkan host security dari
serangan cracker bahkan hacker melalui celah-celah yang terbuka, seperti pada
protokol TCP/UDP. Dengan adanya firewall, setidaknya akan mempersempit
lubang kelemahan suatu sistem. Firewall sendiri merujuk kepada istilah yang
digunakan untuk menunjuk suatu komponen atau sekumpulan komponen jaringan
yang berfungsi untuk membatasi akses antara dua jaringan, khususnya antara
jaringan lokal (LAN) dan jaringan global (internet).
Secara fundamental, firewall dapat melakukan hal-hal berikut:
• Mengatur dan mengontrol lalu lintas jaringan
• Melakukan autentikasi terhadap akses
• Melindungi sumber daya dalam jaringan privat
• Mencatat semua kejadian, dan melaporkan kepada administrator
4.5.2. Arsitektur Firewall
4.5.2.1. Dual-Homed Host (Dual-Homed Gateway/DHG)
Sistem DHG menggunakan sebuah komputer dengan minimal memiliki
dua network interface. Interface pertama merupakan interface yang terhubung ke
jaringan lokal (internal) dan lainnya merupakan interface yang terhubung ke
internet (jaringan global). Dual-homed host-nya sendiri berfungsi sebagai bastion
host (front terdepan, bagian terpenting dalam firewall)
50
Gambar 4.11. Arsitektur firewall dengan dual-homed host
4.5.2.2. Screened-Host (Screened-Host Gateway/SHG)
Pada arsitektur SHG, fungsi firewall dilakukan oleh sebuah screening-
router dan bastion host. Router ini dikonfigurasi sedemikian sehingga akan
menolak semua trafik kecuali yang ditujukan ke bastion host, sedangkan untuk
trafik internal tidak dilakukan pembatasan. Dengan cara ini setiap layanan client
pada jaringan internal dapat menggunakan fasilitas komunikasi standar dengan
internet tanpa harus melalui proxy.
Gambar 4.12. Arsitektur firewall dengan screened-host
4.5.2.3. Screened-Subnet (Screened-Subnet Gateway/SSG)
Firewall dengan arsitektur screened-subnet menggunakan dua screening
router dan sebuah perimeter network diantara kedua router tersebut, dimana
ditempatkan bastion host. Kelebihan susunan ini akan terlihat ketika optimasi
penempatan server.
51
Gambar 4.13. Arsitektur firewall dengan screened-subnet
4.5.3. Tipe-Tipe Firewall
4.5.3.1. Packet-Filter Firewall
Pada bentuknya yang paling sederhana, sebuah firewall adalah sebuah
router atau komputer yang dilengkapi dengan dua buah NIC (Network Interface
Card, kartu jaringan) yang mampu melakukan penyaringan terhadap paket-paket
yang masuk. Perangkat jenis ini umumnya disebut dengan packet-filtering router.
Firewall jenis ini bekerja dengan cara membandingkan alamat sumber dari
paket-paket tersebut dengan kebijakan pengontrolan akses yang terdaftar dalam
Access Control List firewall, router tersebut akan mencoba memutuskan apakah
hendak meneruskan paket yang masuk tersebut ke tujuannya atau
menghentikannya. Pada bentuk yang lebih sederhana lagi, firewall hanya
melakukan pengujian terhadap alamat IP atau nama domain yang menjadi sumber
paket dan akan menentukan apakah hendak meneruskan atau menolak paket
tersebut. Meskipun demikian, packet-filtering router tidak dapat digunakan untuk
memberikan akses (atau menolaknya) dengan menggunakan basis hak-hak yang
dimiliki oleh pengguna.
Packet-filtering router juga dapat dikonfigurasikan agar menghentikan
beberapa jenis lalu lintas jaringan dan/atau mengizinkannya. Umumnya, hal ini
52
dilakukan dengan mengaktifkan/menonaktifkan beberapa port TCP/IP dalam
sistem firewall tersebut. Sebagai contoh, port 25 yang digunakan oleh protokol
SMTP (Simple Mail Transfer Protocol) umumnya dibiarkan terbuka oleh beberapa
firewall untuk mengizinkan e-mail dari Internet masuk ke dalam jaringan privat,
sementara port lainnya seperti port 23 yang digunakan oleh protokol telnet dapat
dinonaktifkan untuk mencegah pengguna Internet untuk mengakses layanan yang
terdapat dalam jaringan privat tersebut. Firewall juga dapat memberikan semacam
pengecualian (exception) agar beberapa aplikasi dapat melewati firewall tersebut.
Dengan menggunakan pendekatan ini, keamanan akan lebih kuat tapi memiliki
kelemahan yang signifikan yakni kerumitan konfigurasi terhadap firewall: daftar
Access Control List firewall akan membesar seiring dengan banyaknya alamat IP,
nama domain, atau port yang dimasukkan ke dalamnya, selain tentunya juga
exception yang diberlakukan.
4.5.3.2. Circuit Level Gateway
Firewall jenis lainnya adalah Circuit-Level Gateway, yang umumnya
berupa komponen dalam sebuah proxy server. Firewall jenis ini beroperasi pada
level yang lebih tinggi dalam model layer OSI (bekerja pada session layer)
daripada Packet Filter Firewall. Modifikasi ini membuat firewall jenis ini berguna
untuk menyembunyikan informasi mengenai jaringan yang terproteksi, meskipun
firewall ini tidak melakukan penyaringan terhadap paket-paket individual yang
mengalir dalam koneksi. Pengguna akan dihadapkan secara langsung dengan
firewall pada saat proses pembuatan koneksi dan firewall pun akan membentuk
koneksi dengan sumber daya jaringan yang hendak diakses oleh pengguna setelah
53
mengubah alamat IP dari paket yang ditransmisikan oleh dua belah pihak. Hal ini
mengakibatkan terjadinya sebuah sirkuit virtual (virtual circuit) antara pengguna
dan sumber daya jaringan yang diakses.
Firewall ini dianggap lebih aman dibandingkan dengan Packet-Filtering
Firewall, karena pengguna eksternal tidak dapat melihat alamat IP jaringan
internal dalam paket-paket yang diterima, melainkan alamat IP dari firewall.
Protokol yang populer digunakan sebagai Circuit-Level Gateway adalah SOCKS
v5.
4.5.3.3. Application Level Firewall
Application Level Gateway (atau Application-Level Firewall atau sering
juga disebut sebagai Proxy Firewall), umumnya juga merupakan komponen dari
sebuah proxy server. Firewall ini tidak mengizinkan paket yang datang untuk
melewati firewall secara langsung. Tetapi, aplikasi proxy yang berjalan dalam
komputer yang menjalankan firewall akan meneruskan permintaan tersebut
kepada layanan yang tersedia dalam jaringan privat dan kemudian meneruskan
respons dari permintaan tersebut kepada komputer yang membuat permintaan
pertama kali yang terletak dalam jaringan publik yang tidak aman.
Umumnya, firewall jenis ini akan melakukan autentikasi terlebih dahulu
terhadap pengguna sebelum mengizinkan pengguna tersebut untuk mengakses
jaringan. Selain itu, firewall ini juga mengimplementasikan mekanisme auditing
dan pencatatan (logging) sebagai bagian dari kebijakan keamanan yang
diterapkannya. Application Level Firewall juga umumnya mengharuskan
beberapa konfigurasi yang diberlakukan pada pengguna untuk mengizinkan mesin
54
client agar dapat berfungsi. Sebagai contoh, jika sebuah proxy FTP
dikonfigurasikan di atas sebuah application layer gateway, proxy tersebut dapat
dikonfigurasikan untuk mengizinkan beberapa perintah FTP, dan menolak
beberapa perintah lainnya. Jenis ini paling sering diimplementasikan pada proxy
SMTP sehingga mereka dapat menerima surat elektronik dari luar (tanpa
menampakkan alamat e-mail internal), lalu meneruskan e-mail tersebut kepada e-
mail server dalam jaringan. Tetapi, karena adanya pemrosesan yang lebih rumit,
firewall jenis ini mengharuskan komputer yang dikonfigurasikan sebagai
application gateway memiliki spesifikasi yang tinggi, dan tentu saja jauh lebih
lambat dibandingkan dengan packet-filter firewall.
4.5.3.4. NAT Firewall
NAT (Network Address Translation) Firewall secara otomatis
menyediakan proteksi terhadap sistem yang berada di balik firewall karena NAT
Firewall hanya mengizinkan koneksi yang datang dari komputer-komputer yang
berada di balik firewall. Tujuan dari NAT adalah untuk melakukan multiplexing
terhadap lalu lintas dari jaringan internal untuk kemudian menyampaikannya
kepada jaringan yang lebih luas (MAN, WAN atau Internet) seolah-olah paket
tersebut datang dari sebuah alamat IP atau beberapa alamat IP. NAT Firewall
membuat tabel dalam memori yang mengandung informasi mengenai koneksi
yang dilihat oleh firewall. Tabel ini akan memetakan alamat jaringan internal ke
alamat eksternal. Kemampuan untuk menaruh keseluruhan jaringan di belakang
sebuah alamat IP didasarkan terhadap pemetaan terhadap port-port dalam NAT
firewall.
55
4.5.4. Jenis-jenis Firewall
Firewall terbagi menjadi dua jenis, yakni sebagai berikut:
1. Personal Firewall: Personal Firewall didesain untuk melindungi
sebuah komputer yang terhubung ke jaringan dari akses yang tidak
dikehendaki. Firewall jenis ini berevolusi menjadi sebuah kumpulan
program yang bertujuan untuk mengamankan komputer secara total,
dengan ditambahkannya beberapa fitur pengaman tambahan semacam
perangkat proteksi terhadap virus, anti-spyware, anti-spam, dan
lainnya. Bahkan beberapa produk firewall lainnya dilengkapi dengan
fungsi pendeteksian gangguan keamanan jaringan (Intrusion Detection
System). Contoh dari firewall jenis ini adalah Microsoft Windows
Firewall (yang telah terintegrasi dalam sistem operasi Windows XP
Service Pack 2, Windows Vista dan Windows server 2003 Service
Pack 1), Symantec Norton Personal Firewall, Kerio Personal Firewall,
dan lain-lain. Personal Firewall secara umum hanya memiliki dua fitur
utama, yakni Packet Filter Firewall dan Stateful Firewall.
2. Network Firewall: Network Firewall didesain untuk melindungi
jaringan secara keseluruhan dari berbagai serangan. Umumnya
dijumpai dalam dua bentuk, yakni sebuah perangkat terdedikasi atau
sebagai sebuah perangkat lunak yang diinstalasikan dalam sebuah
server. Network Firewall secara umum memiliki beberapa fitur utama,
yakni apa yang dimiliki oleh personal firewall (packet filter firewall
dan stateful firewall), Circuit Level Gateway, Application Level
56
Gateway, dan juga NAT Firewall. Network Firewall umumnya bersifat
transparan (tidak terlihat) dari pengguna dan menggunakan teknologi
routing untuk menentukan paket mana yang diizinkan, dan mana paket
yang akan ditolak. Contoh dari firewall ini adalah Microsoft Internet
Security and Acceleration server (ISA server), Cisco PIX, Cisco ASA,
IPTables dalam sistem operasi GNU/Linux, pf dalam keluarga sistem
operasi Unix BSD, serta SunScreen dari Sun Microsystems, Inc. yang
dibundel dalam sistem operasi Solaris.
4.5.5. Membangun Firewall dengan iptables
Pada simulasi membangun firewall dengan Ubuntu Linux 7.04 Feisty
Fawn server akan dikhususkan untuk membangun firewall dengan arsitektur dual-
homed gateway untuk jenis network firewall yang menggunakan metode NAT
(Network Address Translation). Aplikasi yang digunakan adalah iptables, yang
merupakan aplikasi firewall untuk mengkontrol packet filtering dan komponen
NAT pada kernel.
Ubuntu Linux 7.04 Feisty Fawn server memiliki sistem firewall yang
disebut iptables, telah ter-built-in dan diaktifkan secara default. iptables
merupakan tool user space yang dapat digunakan oleh administrator untuk
membuat aturan-aturan packet filtering dan modul-modul NAT. Istilah iptables
sendiri biasanya digunakan untuk menunjuk keseluruhan sistem firewall,
termasuk netfilter, connection tracking dan NAT. iptables merupakan bagian
standar dari semua jenis distribusi linux, terutama yang dikhususkan untuk server.
Secara default, iptables tidak terkonfigurasi dengan baik. Sehingga belum
57
terbentuk suatu sistem firewall yang efektif untuk menangani keamanan jaringan.
Untuk membangun sebuah sistem firewall dengan menggunakan iptables, maka
perlu dibuat shell script yang akan menjalankan iptables berdasarkan fungsi-
fungsi yang telah ditentukan.
File yang berisi konfigurasi iptables akan dibuat pada direktori
/etc/network, dengan mengetikkan perintah:
#nano /etc/network/firewall.sh
Dan mengetikkan srcipt berikut:
#!/bin/sh
#variable IPT=/sbin/iptables INPUT="$IPT -A INPUT " FORWARD="$IPT -A FORWARD " MASQ="$IPT -t nat -A POSTROUTING -j MASQUERADE "
# cleaning up $IPT -F $IPT -t nat -F $IPT -P INPUT ACCEPT $IPT -P FORWARD ACCEPT
if [ "$1" = "stop" ]; then echo "firewall reset" exit 0 fi
#default policy $IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT ACCEPT
# INPUT access $INPUT -j ACCEPT -p tcp -m state --state ESTABLISHED,RELATED $INPUT -j ACCEPT -s 127.0.0.0/8 -d 0/0 $INPUT -j ACCEPT -s 192.168.52.0/24 -d 0/0 $INPUT -j ACCEPT -s 172.18.212.0/24 -d 0/0 $INPUT -j ACCEPT -s 0/0 -p udp -m multiport --sport 13,37,53,123,631,3130 $INPUT -j ACCEPT -s 0/0 -p udp -m multiport --dport 13,37,53,123,631,3130
58
$INPUT -j ACCEPT -s 0/0 -p tcp -m multiport --sport 13,20,21,22,25,37,53,80,123,443,461,3128,3130,8080,10000 $INPUT -j ACCEPT -s 0/0 -p tcp -m multiport --dport 13,20,21,22,25,37,53,80,123,443,631,10000,3128,8080 $INPUT -j ACCEPT -s 0/0 -p icmp
# FORWARD access $FORWARD -j ACCEPT -o eth0 -s 172.18.212.0/24 -d 0/0 -p tcp -m multiport --dport 80,443 $FORWARD -j ACCEPT -i eth1 -o eth0 -s 172.18.212.0/24 -d 0/0
#MASQUERADE access $MASQ -s 172.18.212.0/24 -d 0/0 -o eth0 -p tcp -m multiport --dport 80,443 $MASQ -s 172.18.212.0/24 -d 0/0 -o eth0
Setelah file disimpan, file tersebut harus diubah permission-nya menjadi
executable dengan menggunakan perintah:
#chmod u+x /etc/network/firewall.sh
Agar konfigurasi tersebut aktif pada saat komputer boot, maka akan dibuat
konfigurasi agar firewall aktif bersamaan dengan aktifnya service networking. Hal
tersebut dapat dilakukan dengan menambahkan entri pada file /etc/network/
interface menjadi:
#nano /etc/network/interface
# This file describes the network interfaces available on your# system and how to activate them. For more information, see# interfaces(5).
# The loopback network interface auto lo iface lo inet loopback
auto eth0 iface eth0 inet static address 192.168.52.222 netmask 255.255.255.0 network 192.168.52.0 broadcast 192.168.52.255 gateway 192.168.52.1
59
dns-nameservers 192.168.0.2 192.168.0.10 192.168.52.222 dns-search biomat.lipi.go.id up /etc/network/firewall.sh start down /etc/network/firewall.sh stop
auto eth1 iface eth1 inet static address 172.18.212.20 netmask 255.255.255.0 network 172.18.212.0 broadcast 172.18.212.255 gateway 172.18.212.9
Setelah mengubah dan menyimpan file tersebut, service networking perlu
di-restart dengan menggunakan perintah:
#/etc/init.d/networking restart
Dan jika berhasil, maka akan muncul di terminal:
* Reconfiguring network interfaces... [ OK ]
Untuk informasi konfigurasi lebih lanjut beserta perintah-perintah yang
dapat digunakan oleh iptables dapat dilihat pada manual page-nya dengan
menggunakan perintah:
#man iptables
4.6. DNS Server
4.6.1. Pendahuluan
DNS (Domain Name System) adalah sebuah sistem yang menyimpan
informasi tentang nama host maupun nama domain dalam bentuk basis data
tersebar (distributed database) di dalam jaringan komputer, misalkan: Internet.
Fungsi utama dari sebuah sistem DNS adalah menerjemahkan nama-nama host
60
(hostnames) menjadi alamat IP ataupun sebaliknya, sehingga nama tersebut
mudah diingat oleh pengguna internet. Fungsi lainnya adalah untuk memberikan
suatu informasi tentang suatu host ke seluruh jaringan internet.
Struktur dari database DNS bisa diibaratkan dengan dengan struktur file
dari sebuah sistem operasi UNIX. Seluruh database digambarkan sebagai sebuah
struktur terbalik dari sebuah pohon (tree) dimana pada puncaknya disebut dengan
root node. Pada setiap node dalam tree tersebut mempunyai keterangan (label)
misalnya, .org, .com, .edu, .net, .id dan lain-lainnya, yang relatif
rerhadap puncaknya (parent). Ini bisa diibaratkan dengan relative pathname pada
sistem file UNIX, seperti direktori bin, usr, var, etc dan lain sebagainya.
Pada puncak root node dalam sebuah sistem DNS dinotasikan dengan ”.” atau ”/”
pada sistem file UNIX. Pada setiap node juga merupakan root dari subtree, atau
pada sistem file UNIX merupakan root direktori dari sebuah direktori. Hal ini
pada sistem DNS disebut dengan nama domain. Pada tiap domain juga
memungkinkan nama subtree dan bisa berbeda pula, hal ini disebut subdomain
atau subdirektori pada sistem file UNIX. Pada bagian subdomainjuga
memungkinkan adanya subtree lagi yang bisa dikelola oleh organisasi yang
berbeda dengan domain utamanya.
4.6.2. Cara Kerja DNS
Konsep dan hirarki DNS DNS adalah suatu bentuk database yang
terdistribusi, dimana pengelolaan secara lokal terhadap suatu data akan segera
diteruskan ke seluruh jaringan (internet) dengan menggunakan skema client-
server. Suatu program yang dinamakan name server, mengandung semua segmen
61
informasi dari database dan juga merupakan resolver bagi client-client yang
berhubungan ataupun menggunakannya.
Ketika melakukan query (bisa berupa ping, ssh, dig, host, nslookup, email,
dan lain sebagainya) ke sebuah host misalnya biomat.lipi.go.id maka
name server akan memeriksa terlebih dahulu apakah ada record host tersebut di
cache name server lokal. Jika tidak ada, name server lokal akan melakukan query
kepada root server dan mereferensikan name server untuk TLD .go.id, name
server lokal kembali melakukan query kepada name server .go.id dengan jenis
query yang sama dan mereferensikan lipi.go.id. Name server lokal kembali
melakukan query ke name server lipi.go.id dan mereferensikan query
selanjutnya ke name server lokal yaitu biomat.lipi.go.id. Kemudian name
server lokal melakukan query kepada name server lokal yaitu
biomat.lipi.go.id dan akhirnya mendapatkan jawaban address yang
diminta.
4.6.3. Komponen DNS
Sistem DNS mempunyai beberapa komponen, yaitu:
4.6.3.1. Resolver
Resolver merupakan bagian dari aplikasi client yang mengakses name
server. Semua program atau aplikasi yang membutuhkan DNS, menggunakan
resolver. Proses resolving, yaitu:
● Mengajukan permintaan terhadap name server.
● Menginterpretasikan permintaan (resolve), dan memberikan response.
● Mengembalikan informasi kepada program atau aplikasi yang
62
memintanya.
Resolver akan menjawab dengan dua cara, yaitu melihat isi dari cache
yang pernah ditanyakan sebelumnya, serta menanyakan langsung kepada DNS
server untuk mendapatkan hasilnya. Resolver yang biasa digunakan unutk mencari
informsi tentang DNS adakah nslookup.
4.6.3.2. Resolution
Untuk menjawab permintaan terhadap sebuah domain, name server akan
mencari name server yang bertanggung jawab terhadap domain yang diminta.
Selain mencari, name server juga memberikan informasi tentang server yang
bersangkutan. Proses ini disebut name resolution, atau disingkat resolution.
4.6.3.3. 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 di-caching untuk selamanya, maka name server
mendefinisikannya dengan Time to Live (TTL).
4.6.4. Instalasi dan Konfigurasi BIND
Aplikasi yang akan digunakan sebagai DNS server pada Ubuntu Linux
7.04 Feisty Fawn server adalah BIND. BIND (Berkeley Internet Name Domain)
merupakan aplikasi yang paling banyak digunakan untuk DNS server di internet,
terutama pada sistem unix-like. Aplikasi BIND yang digunakan untuk membangun
DNS server pada Ubuntu Linux 7.04 Feisty Fawn server ini adalah BIND9.
63
Instalasi BIND9 dapat dilakukan dengan menggunakan perintah diterminal:
#apt-get install bind9
Setelah proses instalasi selesai, maka dilakukan pengubahan konfigurasi
terhadap file /etc/resolv.conf :
#nano /etc/resolv.confdomain biomat.lipi.go.idsearch biomat.lipi.go.idnameserver 172.18.212.20nameserver 192.168.52.222nameserver 192.168.0.2nameserver 192.168.0.10
Isi file /etc/resolv.conf adalah informasi alamat domain dan/atau
alamat IP dari name server. File ini diakses pertama kali oleh resolver pada saat
mengajukan permintaan terhadap sebuah domain. Konfigurasi diatas
menunjukkan nama domain lokal yaitu biomat.lipi.go.id dan perintah
search digunakan untuk melakukan hostname lookup pada domain lokal. Perintah
name server berisi informasi alamat IP DNS server.
Selanjutnya dilakukan pengubahan terhadap konfigurasi file
/etc/bind/named.conf.options. File ini berisi konfigurasi untuk
menambahkan forwarder sehingga alamat host yang tidak dapat di resolve oleh
server DNS lokal akan diteruskan ke server DNS yang telah didefinisikan dalam
fungsi forwarders.
#nano /etc/bind/named.conf.options
64
options {# directory "/var/cache/bind"; directory "/etc/bind/zona-biomat";
// If there is a firewall between you and nameservers you want // to talk to, you might need to uncomment the query-source // directive below. Previous versions of BIND always asked // questions using port 53, but BIND 8.1 and later use an // unprivileged port by default.
query-source address * port 53;
// If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses // replacing the all-0's placeholder.
forwarders { 192.168.0.2; 192.168.0.10; };
auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; };
// By default, name servers should only perform recursive // domain lookups for their direct clients. If recursion is // left open to the entire Internet, your name server could be // used to perform distributed denial of service attacks // against other innocent computers. For more information on // DDoS recursion: // http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0987
allow-recursion { localnets; };
// If you have DNS clients on other subnets outside of your // server's "localnets", you can explicitly add their networks // without opening up your server to the Internet at large: // allow-recursion { localnets; 192.168.0.0/24; };
// If your name server is only listening on 127.0.0.1, // consider: allow-recursion { 127.0.0.1; };};
Selanjutnya dilakukan pengubahan terhadap konfigurasi file
/etc/bind/named.conf.local. File ini menampung konfigurasi DNS
lokal. Isi file tersebut :
#nano /etc/bind/named.conf.local
65
//// Do any local configuration here//
// Consider adding the 1918 zones here, if they are not used in// your organization
//include "/etc/bind/zones.rfc1918";
include "/etc/bind/biomat.lipi.go.id";
Konfigurasi file /etc/bind/named.conf.local tersebut mengacu
pada file /etc/bind/biomat.lipi.go.id yang berisi:
zone "biomat.lipi.go.id"{ type master; file "/etc/bind/zona-biomat/biomat.lipi.go.id.data";};
zone "52.168.192.in-addr.arpa"{ type master; file "/etc/bind/zona-biomat/192.168.52.data";};
Isi file tersebut mengkonfigurasikan bind agar melihat database forward
zone pada file /etc/bind/zona-biomat/biomat.lipi.go.id.data
dan reverse zone pada file /etc/bind/zona-
biomat/192.168.52.data.
66
File /etc/bind/zona-biomat/biomat.lipi.go.id.data :
;
; BIND data file for benk.org;
$TTL 1440@ IN SOA server.biomat.lipi.go.id. admin.biomat.lipi.go.id.( 2006120100 ; serial 3H ; refresh 1H ; retry 1D ; expire 6H ; negative cache TTL );@ IN NS server.biomat.lipi.go.id.
$ORIGIN biomat.lipi.go.id.gateway IN A 192.168.52.222@ IN A 192.168.52.222www IN A 192.168.52.222server IN A 192.168.52.222data IN A 192.168.52.222proxy IN A 192.168.52.222intra IN A 192.168.52.222
File /etc/bind/zona-biomat/192.168.52.data:
$TTL 604800@ IN SOA server.biomat.lipi.go.id. proxy.biomat.lipi.go.id.( 2007010303 ; serial 604800 ; refresh 86400 ; retry 2419200 ; expire 604800) ; negative cache TTL ;@ IN NS 192.168.52.222
$ORIGIN 52.168.192.in-addr.arpa.
222 IN PTR server.biomat.lipi.go.id.222 IN PTR proxy.biomat.lipi.go.id.
67
4.6.5. Zone File
Zone file mengandung informasi yang akan mendefinisikan mapping
antara nama domain dan alamat IP (/etc/bind/zona-
biomat/biomat.lipi.go.id.data)dan juga berisi reverse mapping yang
akan me-resolve alamat IP menjadi nama domain (/etc/bind/zona-
biomat/192.168.52.data).
Zone file memiliki format yang sama dan menggunakan tipe record yang
sama untuk mendefinisikan informasi database domain. Tipe record yang
digunakan disebut sebagai resource record (RR). Database DNS yang terdefinisi
dalam zone file merupakan kumpulan dari beberapa resource record yang
memberikan informasi tentang objek tertentu.
Penjelasan mengenai komponen resource record yang digunakan pada file
/etc/bind/zona-biomat/biomat.lipi.go.id.data dan file
/etc/bind/zona-biomat/192.168.52.data:
TTL
Time to live, berisi 32 bit integer untuk mendefinisikan waktu
(dalam detik) yang akan digunakan oleh resolver untuk
melakukan cache terhadap RR sebelum diabaikan
A
Address Mapping record, mendefinisikan alamat IP host.
Digunakan untuk me-resolve query dari alamat IP untuk nama
domain tertentu.
NSName server record, mendefinisikan name server yang digunakan
dalam host yang bersangkutan
PTRReverse-lookup Pointer record, digunakan untuk melakukan
pemetaan dari alamat IP ke nama domain.
68
SOA
Start of Authority record, mengindikasikan server yang
authoritive untuk sebuah zone. Record SOA berisi informasi
umum tentang sebuah zone dan aturan-aturan untuk me-reload
secondary server.IN IN merupakan class dalam resource record yang berarti internet.
4.7. Proxy Server
4.7.1. Pendahuluan
Proxy server adalah server (komputer atau program aplikasi) yang
melayani request dari client-nya untuk meneruskan request ke server yang lain.
client yang terkoneksi ke proxy server, me-request suatu service, seperti file,
koneksi, halaman web, atau sumber daya yang lain, yang tersedia di server lain.
Proxy server menyediakan sumber daya tersebut dengan mengkoneksikan ke
server tertentu dan meminta service yang diminta oleh client-nya. Proxy server
dimungkinkan untuk mengubah request client atau respon server, dan dapat
melayani request tanpa berhubungan dengan server tertentu. Dalam hal ini, server
melakukan "cache" pada request pertama sehingga akan menyimpan informasi
yang dapat diakses kembali dengan lebih cepat.
Proxy server yang melewatkan seluruh request dan me-reply-nya tanpa
melakukan modifikasi disebut gateway atau tunneling proxy. Sebuah proxy server
dapat diletakkan di komputer lokal (user) atau di titik tertentu antara user dan
server atau internet.
69
Umumnya, sebuah proxy server erat kaitannya dengan 3 hal yaitu filtering,
firewalling dan caching. Filtering digunakan untuk membatasi akses client ke
alamat web atau IP tertentu. Dalam fungsinya sebagai firewall, proxy server dapat
digunakan untuk mengatur jaringan lokal agar bila client ingin menggunakan
koneksi internet, maka client harus melalui proxy. Pengaturan alamat IP juga
dapat diatur hak aksesnya untuk menggunakan proxy. Sedangkan fungsi dasar
proxy adalah caching. Sebagai caching proxy, penggunaan bandwith dapat
dihemat karena pengaksesan terhadap suatu server yang sama dapat dihindari
dengan adanya penyimpanan file-file tersebut dalam server proxy.
Suatu proxy server berhubungan dengan proxy server lainnya dibedakan
fungsinya sebagai parent dan sibling. Sebagai parent, sebuah proxy server
menggunakan proxy server dari lain dalam menjalankan fungsinya sebagai proxy
server. Jika ada request yang tidak dapat dilayani di cache proxy, maka akan
diambilkan dari proxy yang berfungsi sebagai parent. Dan jika di proxy parent
tidak terdapat request yang dibutuhkan, maka proxy parent akan mengambil
langsung dari server yang diminta. Proxy sibling tidak akan melayani request
apabila data yang diminta tidak terdapat dalam cache parent-nya.
4.7.2. Tipe dan Fungsi Proxy Server
Proxy server dapat menerapkan salah satu atau beberapa fungsi berikut:
Caching Proxy Server
Sebuah proxy server dapat melayani request tanpa berhubungan langsung
dengan server tertentu, yaitu dengan memberikan content yang telah disimpan dari
request sebelumnya, diminta oleh client yang sama atau bahkan client yang lain.
70
Caching proxy menyimpan request terhadap sumber daya yang sama dan
dilakukan berulang-ulang, sehingga memungkinkan sebuah lembaga atau ISP
untuk mengurangi penggunaan upstream bandwidth dan dapat meningkatkan
performa secara signifikan.
Web Proxy
Web proxy merupakan sebuah proxy server yang mengkhususkan pada
www traffic. Fungsi utama dari web proxy adalah sebagai web cache. Kebanyakan
aplikasi proxy menyediakan fungsi untuk menolak akses terhadap beberapa URL
tertentu yang telah didaftarkan, hal ini memenuhi fungsinya sebagai content
filtering. Beberapa web proxy melakukan format ulang terhadap halaman web
untuk tujuan tertentu, seperti pengaksesan halaman web dengan menggunakan
handpone atau PDA.
Dalam sebuah organisasi yang besar, terdapat access control yang
mengharuskan user untuk log in terlebih dahulu sebelum dapat mengakses web
sehingga dapat di monitor secara indvidual.
Anonymizing Proxy Server
Anonymous proxy server umumnya bertujuan untuk menyamarkan
identitas ketika melakukan pejelajahan web. Terdapat bermacam-macam tujuan
dari penyamaran identitas tersebut.
Hostile Proxy
71
Proxy dapat juga dimanfaaatkan sebagai sarana online criminal, yaitu
untuk memata-matai data yang dikomunikasikan antara client dan web atau server
tertentu. Semua halaman yang telah diakses, beserta form yang telah dikirimkan,
dapat di-capture dan dianalisa oleh operator proxy.
Intercepting Proxy Server
Intercepting proxy (disebut juga "transparent proxy") menggabungkan
antara proxy server dan gateway. Koneksi yang dibentuk oleh client melalui
gateway akan dialihkan melalui proxy tanpa melakukan konfigurasi ulang di
client. Keberadaan intercepting proxy dapat diketahui dengan membandingkan
alamat IP eksternal dengan alamat IP yang diterima oleh eksternal web server,
atau dengan memeriksa header HTTP pada server.
Transparent dan Non-Transparent Proxy Server
Istilah "transparent proxy" sering disalah artikan sebagai "intercepting
proxy" karena client tidak perlu mengkonfigurasi proxy dan tidak dapat
mendeteksi secara langsung apakah request yang dikirim melalui proxy atau tidak.
Namun, RFC 2616 (Hypertext Transfer Protocol -- HTTP/1.1) menjelaskan
definisinya: “Transparent proxy merupakan proxy yang tidak memodifikasi
request atau respon untuk keperluan autentifikasi dan identifikasi. Sedangkan
Non-transparent proxy akan memodifikasi request atau respon untuk memberikan
layanan tambahan untuk agen user, seperti reduksi protokol, transformasi media
type, atau filter anonim.”
72
Forced Proxy
Forced proxy mempunyai dua makna, yaitu sebagai intercepting proxy,
karena traffic filtering hanya dilakukan pada gateway ke internet, dan sebagai
non-intercepting proxy, karena user diharuskan mengkonfigurasi proxy untuk
dapat mengakses internet. Operasi forced proxy kadang diperlukan karena adanya
interception antara TCP connection dan HTTP. Interception dari HTTP request
berpengaruh pada penggunaan cache proxy, dan juga pada mekanisme
autentifikasi tertentu. Hal ini menjadi penting karena client beranggapan sedang
berkomunikasi dengan server, dan header request yang diperlukan oleh proxy
tidak dapat dibedakan dengan header yang mungkin diperlukan oleh upstream
server, terutama authorization header. Protokol HTTP pun melarang adanya
caching dari respon request yang berisi authorization header.
Split Proxy Server
Split Proxy merupakan proxy yang diimplementasikan dari dua aplikasi
proxy yang dibangun pada dua komputer yang berbeda. Penggunaan dua aplikasi
proxy yang sama ini menjadikan komunikasi yang dilakukan antara kedua proxy
tersebut lebih efisien dibanding komunikasi yang dilakukan antara proxy dan
server. Implementasi ini ideal untuk melakukan kompresi data pada transmisi
dengan kecepatan rendah, seperti wireless dan layanan aplikasi mobile, dan juga
transmisi dengan tingkat delay yang tinggi yang membutuhkan waktu untuk
melakukan stabilisasi koneksi TCP, seperti internet satelit.
Sebagai contoh pada kegiatan web browsing, ketika aplikasi browser yang
73
digunakan oleh user diarahkan ke local proxy yang akan berkomunikasi dengan
remote proxy pada lokasi tertentu. Remote server akan mengambil data yang
diperlukan, membentuk paket-paket, dan mengirimkannya ke local proxy yang
digunakan user yang kemudian membongkar paket-paket tersebut dan
menampilkan pada browser seperti yang ada pada server sebenarnya.
Beberapa aplikasi web accelerator merupakan proxy server. Sebagian
mengurangi kualitas gambar JPEG untuk mempercepat transmisi, dan sebagian
menggunakan split proxy untuk protokol tertentu, remote caching dan local
caching.
Reverse Proxy Server
Reverse proxy server merupakan aplikasi proxy server yang diinstal pada
neighborhood dari satu atau beberapa web server. Keseluruhan trafik yang datang
dari internet dan dengan tujuan salah satu dari web server tersebut akan melalui
proxy server. Beberapa tujuan penggunaan reverse proxy server:
● Keamanan. Proxy server berfungsi sebagai layer tambahan yang
digunakan untuk pertahanan dan melindungi web server.
● Enkripsi/SSL acceleration. Pada website yang aman, enkripsi SSL
biasanya tidak dapat dilakukan oleh web server itu sendiri, namun
dilakukan oleh reverse proxy yang dilengkapi dengan SSL acceleration.
● Load balancing. Reverse proxy server dapat mendistribusikan beban
kepada beberapa web server, masing-masing web server melayani
berdasarkan aplikasi tertentu yang diminta. Dalam kasus ini, reverse proxy
74
server akan melakukan translasi dari eksternal URL yang diketahui ke
lokasi internal.
● Cache static content. Reverse proxy server dapat mengurangi beban web
server dengan melakukan caching terhadap static content seperti gambar
dan static content grafis lainnya.
● Kompresi. Proxy server dapat mengoptimisasi dengan melakukan
kompresi content untuk mempercepat load time.
● Spoon feeding. Mengurangi penggunaan sumber daya web server oleh
client dengan melakukan caching dari content yang telah dikirim oleh web
server dan melakukan "spoon feed" ke client.
● Extranet publishing. Reverse proxy server yang berhubungan langsung
dengan internet dapat digunakan untuk berkomunikasi ke sebuah server
internal yang ter-firewall dengan menyediakan akses extranet ke beberapa
fungsi pada server tersebut.
Circumventor
Circumventor adalah metode yang digunakan untuk menggagalkan
kebijakan blocking pada proxy server yang juga dilakukan oleh proxy server
lainnya. Circumvemtor merupakan halaman web yang akan mem-bypass situs
yang di blok dengan menggunakan identitas dari situs lain yang tidak di blok
sehingga dapat diakses oleh user. Salah satu contoh circumventor adalah
https://210.18.104.227/cgi-bin/nph-120025.cgi.
75
4.7.3. Instalasi dan Konfigurasi Squid
Aplikasi yang digunakan untuk membangun sebuah proxy server pada
Ubuntu Linux 7.04 Feisty server adalah squid. Squid merupakan proxy caching
server yang memiliki performa tinggi untuk web client, mendukung FTP, gopher
dan HTTP data object. Squid menangani semua request I/O-driven process yang
tidak di blok. Squid juga mendukung enkripsi SSL, extensive access control, dan
full request logging. Dengan menggunakan protokol lightweight Internet Cache,
cache dari squid dapat disusun secara hirarki atau mesh untuk penghematan
bandwidth.
Instalasi squid dapat dilakukan dengan menggunakan perintah:
#apt-get install squid
Selanjutnya, konfigurasi squid dapat langsung dilakukan dengan melakukan
pengubahan terhadap file /etc/squid/squid.conf:
#nano /etc/squid/squid.conf
##Default:# none#cache_peer 192.168.52.11 parent 3128 3130 no-query default login=biomaterial\biomaterial:Biomaterialcache_peer proxy.lipi.go.id parent 3128 3130 no-query default login=biomaterial:Biomaterial
acl jakarta dstdomain biomat.lipi.go.idalways_direct allow jakarta
acl to_internet dst 0.0.0.0/0acl lipi_intra dst 192.168.0.0/16always_direct allow lipi_intranever_direct allow to_internet
76
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR clientS
acl dalam src 172.18.212.0/24http_access allow dalam
# Example rule allowing access from your local networks. Adapt# to list your (internal) IP networks from where browsing should# be allowed#acl our_networks src 192.168.1.0/24 192.168.2.0/24#http_access allow our_networkshttp_access allow localhost
# And finally deny all other access to this proxyhttp_access deny all
# TAG: http_access2# Allowing or Denying access based on defined access lists## Identical to http_access, but runs after redirectors. If# not set then only http_access is used.#
Script diatas merupakan potongan dari file /etc/squid/squid.conf
karena saat membangun proxy server hanya bagian itu saja yang dilakukan
pengubahan. Konfigurasi tersebut merupakan konfigurasi untuk membangun
proxy server dengan tipikal transparent proxy server dengan
proxy.lipi.go.id sebagai parent proxy.
Setelah pengubahan konfigurasi selesai dilakukan, maka service squid
perlu di restart. Hal ini dilakukan agar pengubahan konfigurasi yang telah
dilakukan dapat segera diterapkan dan jika terjadi kesalahan akan muncul pesan
kesalahan yang dapat digunakan untuk melakukan debug terhadap file
konfigurasinya.
77
4.8. DHCP Server
4.8.1. Pendahuluan
DHCP (Dynamic Host Configuration Protocol) adalah protokol yang
berbasis arsitektur client-server yang dipakai untuk memudahkan pengalokasian
alamat IP dalam satu jaringan. Sebuah jaringan lokal yang tidak menggunakan
sistem DHCP harus memberikan alamat IP kepada semua komputer secara
manual. Jika sistem DHCP dipasang di jaringan lokal, maka semua komputer
yang terhubung dalam jaringan akan mendapatkan alamat IP secara otomatis dari
server DHCP. Selain alamat IP, banyak parameter jaringan yang dapat diberikan
oleh DHCP, seperti default gateway dan DNS server. DHCP merupakan ekstensi
dari protokol Bootstrap Protocol (BOOTP).
4.8.2. Cara Kerja DHCP
Karena DHCP merupakan sebuah protokol yang menggunakan arsitektur
client-server, maka dalam DHCP terdapat dua pihak yang terlibat, yakni DHCP
server dan DHCP client.
● DHCP server merupakan sebuah mesin yang menjalankan layanan yang
dapat memberikan ("menyewakan") alamat IP dan informasi TCP/IP
lainnya kepada semua client yang memintanya.
● DHCP client merupakan mesin client yang menjalankan perangkat lunak
client DHCP yang memungkinkan mereka untuk dapat berkomunikasi
dengan DHCP server.
78
DHCP server umumnya memiliki sekumpulan alamat yang diizinkan
untuk didistribusikan kepada client, yang disebut sebagai DHCP Pool. Setiap
client kemudian akan meminta/menyewa alamat IP dari DHCP Pool untuk waktu
yang ditentukan oleh DHCP server. Ketika waktu penyewaan alamat IP tersebut
habis masanya, client akan meminta kepada server untuk memberikan alamat IP
yang baru atau memperpanjangnya.
DHCP client akan mencoba untuk mendapatkan "penyewaan" alamat IP
dari sebuah DHCP server dalam proses empat langkah berikut:
1. DHCPDISCOVER: DHCP client akan menyebarkan request secara
broadcast untuk mencari DHCP server yang aktif.
2. DHCPOFFER: Setelah DHCP server mendengar broadcast dari DHCP
client, DHCP server kemudian menawarkan sebuah alamat kepada DHCP
client.
3. DHCPREQUEST: client meminta DCHP server untuk menyewakan
alamat IP dari salah satu alamat yang tersedia dalam DHCP Pool pada
DHCP server yang bersangkutan.
4. DHCPACK: DHCP server akan merespons permintaan dari client dengan
mengirimkan paket acknowledgment. Kemudian, DHCP server akan
menetapkan sebuah alamat (dan konfigurasi TCP/IP lainnya) kepada
client, dan memperbarui database miliknya. client selanjutnya akan
memulai proses binding dengan tumpukan protokol TCP/IP dan karena
telah memiliki alamat IP, client pun dapat memulai komunikasi jaringan.
79
Empat tahap di atas hanya berlaku bagi client yang belum memiliki
alamat. Untuk client yang sebelumnya pernah meminta alamat kepada DHCP
server yang sama, hanya tahap 3 dan tahap 4 yang dilakukan, yakni tahap
pembaruan alamat (address renewal), yang jelas lebih cepat prosesnya.
Berbeda dengan sistem DNS yang terdistribusi, DHCP bersifat stand-
alone, sehingga jika dalam sebuah jaringan terdapat beberapa DHCP server,
database alamat IP dalam sebuah DHCP server tidak akan direplikasi ke DHCP
server lainnya. Hal ini dapat menjadi masalah jika konfigurasi antara dua DHCP
server tersebut berbenturan, karena protokol IP tidak mengizinkan dua host
memiliki alamat yang sama.
Selain dapat menyediakan alamat dinamis kepada client, DHCP server
juga dapat menetapkan sebuah alamat statik kepada client, sehingga alamat client
akan tetap dari waktu ke waktu.
Catatan: DHCP server harus memiliki alamat IP yang statis.
DHCP Scope
DHCP Scope adalah alamat-alamat IP yang dapat disewakan kepada
DHCP client. Ini juga dapat dikonfigurasikan oleh seorang administrator dengan
menggunakan peralatan konfigurasi DHCP server. Biasanya, sebuah alamat IP
disewakan dalam jangka waktu tertentu, yang disebut sebagai DHCP Lease, yang
umumnya bernilai tiga hari. Informasi mengenai DHCP Scope dan alamat IP yang
telah disewakan kemudian disimpan di dalam database DHCP dalam DHCP
server. Nilai alamat-alamat IP yang dapat disewakan harus diambil dari DHCP
80
Pool yang tersedia yang dialokasikan dalam jaringan. Kesalahan yang sering
terjadi dalam konfigurasi DHCP server adalah kesalahan dalam konfigurasi DHCP
Scope.
DHCP Lease
DHCP Lease adalah batas waktu penyewaan alamat IP yang diberikan
kepada DHCP client oleh DHCP server. Umumnya, hal ini dapat dikonfigurasikan
sedemikian rupa oleh seorang administrator dengan menggunakan beberapa
peralatan konfigurasi (dalam Windows NT server dapat menggunakan DHCP
Manager atau dalam Windows 2000 ke atas dapat menggunakan Microsoft
Management Console [MMC]). DHCP Lease juga sering disebut sebagai
Reservation.
DHCP Options
DHCP Options adalah tambahan pengaturan alamat IP yang diberikan oleh
DHCP ke DHCP client. Ketika sebuah client meminta alamat IP kepada server,
server akan memberikan paling tidak sebuah alamat IP dan alamat subnet
jaringan. DHCP server juga dapat dikonfigurasikan sedemikian rupa agar
memberikan tambahan informasi kepada client, yang tentunya dapat dilakukan
oleh seorang administrator. DHCP Options ini dapat diaplikasikan kepada semua
client, DHCP Scope tertentu, atau kepada sebuah host tertentu dalam jaringan.
81
4.8.3. Instalasi dan Konfigurasi dhcp3-server
Aplikasi yang digunakan sebagai DHCP server pada Linux Ubuntu 7.04
Feisty Fawn server adalah dhcp3-server. Instalasi dapat dilakukan pada terminal
dengan perintah:
#apt-get install dhcp3-server
Setelah proses instalasi selesai, maka dilakukan pengubahan konfigurasi pada file
/etc/dhcp3/dhcpd.conf:
#nano /etc/dhcp3/dhcpd.conf
# This is a very basic subnet declaration.
subnet 172.18.212.0 netmask 255.255.255.0 { range 172.18.212.30 172.18.212.99; option routers 172.18.212.20; option broadcast-address 172.18.212.255; option domain-name "biomat.lipi.go.id"; option domain-name-servers 172.18.212.20,192.168.0.2,192.168.0.10; default-lease-time 600; max-lease-time 7200;}
Script tersebut merupakan sebagian dari isi file
/etc/dhcp3/dhcpd.conf. Dengan konfigurasi yang telah dilakukan, maka
client akan menerima pengalamatan IP dengan konfigurasi sebagai berikut:
IP Address : 172.18.212.30 - 172.18.212.99Netmask : 255.255.255.0Gateway : 172.18.212.20DNS : 172.18.212.20
192.168.0.2 192.168.0.10
82
Konfigurasi itu juga mengatur default lease time 600 dan maximum lease
time 7200 dalam satuan detik.
Setelah konfigurasi disimpan, maka service DHCP server harus di restart:
#/etc/init.d/dhcpd restart
4.9. Web Server
4.9.1. Pendahuluan
Web server bekerja melalui protolol HTTP. HTTP merupakan protokol
komunikasi untuk mengirim dan menerima halaman dalam format hypertext
melalui internet.
HTTP adalah protokol standar request/response antara client dan server.
client, dengan menggunakan web browser, memulai request koneksi TCP/IP ke
server melalui port 80. Sebuah server HTTP akan mendengarkan request pada
port tersebut, menunggu pesan request dari client dan memberikan response
dengan mengirimkan pesan yang diminta, atau pesan kesalahan ke client. Antara
client dan server dimungkinkan terdapat beberapa perantara, seperti proxy,
gateway dan tunnel. HTTP dapat diimplementasikan diatas semua protokol di
internet, atau jaringan. HTTP dapat berkerja pada semua protokol transport yang
handal.
Ketika user mengetikkan URL melalui client agent, seperti web browser,
client akan mengirimkan request kepada server. URL (Universal Resource
Locator), terdiri dari tiga bagian yaitu <method>, <host>, dan <absolute
path URL (apURL)>. Skema dari ketiga bagian tersebut:
83
<method>://<host>/<absolute path URL (apURL)>
Pada URL http://biomat.lipi.go.id berarti menggunakan <method> http,
yang memerintahkan web browser untuk menggunakan protokol HTTP; alamat
<host> biomat.lipi.go.id; dan <apURL> adalah “/” yang berarti top directory
dari host biomat.lipi.go.id. Dengan menggunakan HTTP/1.1, web browser akan
mengirimkan request:
GET / HTTP/1.1Host: biomat.lipi.go.id
Request akan diterima di port 80 (default) pada host biomat.lipi.go.id dan
dipisahkan lagi berdasarkan tiga bagian, yaitu method (HTTP method, bukan URL
method) yang berisi pesan GET; URI (Universal Resource Identifier) “/”; dan
versi protokol yang digunakan. Kemudian akan diserahkan kepada web server
pada host biomat.lipi.go.id untuk memberikan response kepada client.
4.9.2. Instalasi dan Konfigurasi Apache2
Aplikasi yang paling umum digunakan sebagai web server adalah apache.
Apache dapat berjalan pada banyak platform sistem operasi seperti Unix, BSD,
Linux, Microsoft Windows, Novell Netware dan lainnya. Apache juga mendukung
banyak fitur, yang diterapkan dalam modul-modul untuk memperluas fungsi
utamanya. Fitur-fitur yang ada pun beragam mulai dari server-side programming
language hingga skema autentifikasi.
84
Adanya fitur virtual hosting pada Apache memungkinkan untuk dibangun
beberapa web server pada satu instalasi yang berada pada satu host. Virtual
hosting sendiri merupakan metode yang diterapkan pada suatu server, seperti web
server, untuk menggunakan beberapa nama domain pada komputer, atau alamat IP
yang sama. Terdapat dua jenis metode yang digunakan untuk membangun virtual
host, yaitu name-based dan IP-based.
Name-based
Name-based virtual host digunakan untuk membangun beberapa host
name pada satu alamat IP web server. Dengan web browser yang telah
mendukung protokol HTTP/1.1, ketika melakukan koneksi ke web server,
browser akan mengirimkan alamat yang diketikkan user (URL). server
menggunakan informasi ini untuk menentukan website mana yang akan
ditampilkan ke user. Browser menetukan alamat website dengan men-set Host
header HTTP yang sama dengan host yang telah ditentukan oleh user.
Sebagai contoh, sebuah server dapat menerima request untuk dua domain,
www. server 1.com dan www. server 2.com , yang keduanya di resolve pada alamat
IP yang sama. Namun, pada www. server 1.com server akan mengirimkan file
HTML dari direktori /www/server/server1/, dan www. server 2.com adalah
request untuk halaman web dari direktori /www/server/server2/.
Permasalahan yang ada pada name-based virtual server yaitu apabila DNS
tidak berfungsi dengan baik, maka akan sulit untuk mengakses website yang telah
dikonfigurasi untuk menggunakan virtual server. Dalam hal ini, user dapat
85
mencoba kembali untuk mengaksesnya dengan menggunakan alamat IP. Namun,
web browser tidak dapat mengetahui apa hostname yang dikirimkan, sehingga
server akan merespon dengan website default.
IP-based
Pada IP-based virtual hosting, tiap situs mengacu pada alamat IP yang
berbeda. Webserver dikonfigurasi dengan menggunakan beberapa physical
network interfaces, virtual network interfaces pada satu physical interface yang
sama atau beberapa alamat IP dengan satu network interface.
Instalasi Apache pada Ubuntu Linux 7.04 Feisty Fawn Server dapat
dilakukan di terminal:
#apt-get install apache2
Setelah proses instalasi selesai, akan muncul pesan ketika sistem
mengaktifkan service apache2:
apache2: Could not realibly determine the server's fully
qualified domain name, using 127.0.1.1 for serverName
Pesan tersebut dapat dihilangkan dengan melakukan pengubahan nama
server pada file /etc/apache2/apache2.conf:
#nano /etc/apache2/apache2.conf
86
Lalu, dengan menambahkan baris berikut:
serverName biomat.lipi.go.id
Setelah itu, file /etc/apache2/apache2.conf dapat disimpan
kembali dan service apache2 harus di restart:
#/etc/init.d/apache2 restart
Web server yang telah terinstal kini sudah dapat diakses melalui web
browser dari komputer client dengan mengetikkan alamat IP server pada address
bar browser. Tampilan default yang akan muncul adalah listing direktori dari
/var/www/apache2-default/.
Gambar 4.14. Tampilan listing direktori /var/www/apache2-default/
Setelah direktori apache2-default di klik, maka akan muncul
tampilan pesan yang menandakan bahwa web server telah berhasil diinstal.
87
Gambar 4.15. Server telah berhasil diinstal
Agar browser dapat langsung mengakses ke dalam direktori /var/www/
apache2-default/ tanpa perlu menampilkan listing direktori, maka
dilakukan pengubahan terhadap file /etc/apache2/sites-
available/default:
#nano /etc/apache2/sites-available/default
Dan menghilangkan tanda comment (#) pada baris:
RedirectMatch ^/$/apache2-default/
Menyimpan kembali, dan me-restart service apache2:
#/etc/init.d/apache2 restart
88
Apabila web server kembali dengan menggunakan browser, maka tampilan
akan langsung membuka file /var/www/apache2-default/index.html
dengan tampilan:
Gambar 4.16. Tampilan/var/www/apache2-default/index.html
Penjelasan mengenai beberapa variabel yang terdapat dalam file
/etc/apache2/apache2.conf:
ServerRoot
Default:
serverRoot “/etc/apache2”
Berisi informasi untuk path yang merupakan lokasi dari apache2.conf.
89
Timeout
Default:
Timeout 300
Timeout adalah variabel yang mengkonfigurasi waktu maksimum, dalam detik,
untuk menunggu sebuah request, memprosesnya dan memberikan respon terhadap
request tersebut.
KeepAlive
Default:
KeepAlive On
Nilai 'On' pada konfigurasi KeepAlive akan memungkinkan client untuk
melakukan persistent connection sehingga client hanya membutuhkan satu
request untuk mengakses tiap file, gambar dan lainnya. Hal ini berkaitan dengan
efisiensi.Konfigurasi yang berkaitan dengan KeepAlive didefinisikan pada
variabel-variabel berikut:
MaxKeepAliveRequests
Default:
MaxKeepAliveRequests 100
Variabel tersebut berisi konfigurasi banyaknya request yang diizinkan untuk
dilakukan pada tiap koneksi. Untuk memberikan nilai unlimited request maka
nilai variabel tersebut adalah 0 (nol).
90
KeepAliveTimeout
Default:
KeepAliveTimeout 15
Variabel ini mengkonfigurasi waktu yang dibutuhkan untuk menunggu request
selanjutnya dari client yang sama untuk koneksi yang sama pada persistent
connection. Jika tidak ada request dalam jangka waktu tersebut, maka koneksi
akan diputuskan.
HostnameLookups
Default:
HostnameLookups Off
Jika variabel tersebut bernilai 'On', maka akan mengaktifkan fitur DNS lookup
sehingga nama host yang mengakses akan tercatat pada file log (melakukan
reverse DNS check). Nilai 'Double' akan meneruskan reverse DNS check hingga
memberikan hostname.
4.9.3. Membangun Virtual Host
Apache2 memiliki dukungan untuk membangun beberapa web server pada
satu instalasi apache2 yang berada pada satu host atau virtual host. Jenis virtual
host yang akan dibangun pada simulasi ini adalah virtual host yang dibedakan
berdasarkan nama domain atau name-based virtual host. Domain yang pertama
adalah data.biomat.lipi.go.id dengan root direktori pada /home/server/web/
data.biomat.lipi.go.id/ dan domain yang kedua adalah
intra.biomat.lipi.go.id dengan root direktori pada
91
/home/server/web/intra.biomat.lipi.go.id/.
Hal pertama yang perlu dilakukan adalah membuat root direktori untuk
kedua virtual host tersebut:
$cd ~$mkdir web$mkdir -p web/data$mkdir -p web/intra
Lalu meng-copy-kan file /var/www/apache2-
default/index.html sebagai file yang akan dikirimkan ke web browser
untuk menguji apakah virtual host server telah berjalan atau belum. Layout
virtual host tersebut dapat digambarkan sebagai berikut:
92
Gambar 4.17. Layout virtual host
Selanjutnya adalah membuat konfigurasi untuk kedua virtual host tersebut
dengan menggunakan teks editor nano. File konfigurasi akan disimpan pada
direktori /etc/apache2/sites-available/. Konfigurasi untuk
data.biomat.lipi.go.id adalah:
#nano /etc/apache2/sites-available/data.biomat.lipi.go.id
93
Isi file data.biomat.lipi.go.id:
NameVirtualHost *<VirtualHost 192.168.52.222:80> serverAdmin [email protected] serverName data.biomat.lipi.go.id
DocumentRoot /home/server/web/data.biomat.lipi.go.id/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/server/web/data.biomat.lipi.go.id/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # This directive allows us to have apache2's
# default start page # in /apache2-default/, but still have / go to the
# right place RedirectMatch ^/$ /apache2-default/ </Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, # error, crit, alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined serverSignature On
Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory>
</VirtualHost>
94
Konfigurasi untuk intra.biomat.lipi.go.id:
#nano /etc/apache2/sites-available/intra.biomat.lipi.go.id
Isi file intra.biomat.lipi.go.id:
NameVirtualHost *<VirtualHost 192.168.52.222:80> serverAdmin [email protected] serverName intra.biomat.lipi.go.id DocumentRoot /home/server/web/intra.biomat.lipi.go.id/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/server/web/intra.biomat.lipi.go.id/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # This directive allows us to have apache2's
# default start page # in /apache2-default/, but still have / go to the
# right place RedirectMatch ^/$ /apache2-default/ </Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, # error, crit, alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined serverSignature On
Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128
95
</Directory>
</VirtualHost>
Lalu mengaktifkan kedua virtual host tersebut dengan perintah:
#a2ensite data.biomat.lipi.go.id
#a2ensite intra.biomat.lipi.go.id
Dari masing-masing eksekusi perintah tersebut akan muncul pesan sebagai
berikut:
Site data.biomat.lipi.go.id installed; run
/etc/init.d/apache2 reload to enable.
Site intra.biomat.lipi.go.id installed; run
/etc/init.d/apache2 reload to enable.
Maka selanjutnya service apache2 perlu di-restart:
#/etc/init.d/apache2 restart
Untuk menguji apakah kedua virtual host server tersebut telah berjalan
atau belum, cukup dengan mengetikkan alamat virtual host masing-masing di
address bar web browser. http://data.biomat.lipi.go.id dan
http://intra.biomat.lipi.go.id
96
Penjelasan mengenai beberapa variabel pada masing-masing file
konfigurasi virtual host:
ServerAdmin
serverAdmin merupakan variabel yang berisi alamat e-mail untuk
administrator server yang akan ditampilkan apabila ada kesalahan pada website.
Alamat e-mail ini juga akan ditampilkan jika variabel ServerSignature
bernilai 'On'.
ServerName
ServerName adalah variabel yang digunakan untuk memberikan nama domain
pada virtual host.
DocumentRoot
Berisi lokasi penyimpanan file-file public domain yang akan digunakan oleh
virtual host. Lokasi ini harus didefinisikan dengan menggunakan path absolut
(lengkap).
4.10. FTP Server
4.10.1. Pendahuluan
FTP (File Transfer Protocol) digunakan untuk melakukan transfer data
dari satu komputer ke komputer lainnya dalam satu jaringan komputer atau
internet. FTP merupakan protokol untuk melakukan pertukaran file pada semua
97
jaringan komputer yang mendukung protokol TCP/IP. Terdapat dua komputer
yang terlibat dalam sebuah FTP transfer: server dan client. FTP server,
menjalankan aplikasi FTP server, akan mendengarkan request yang datang dari
komputer lain dalam suatu jaringan komputer. FTP client, dengan menggunakan
aplikasi FTP client, menginisiasikan koneksi ke server. Ketika terhubung, client
dapat melakukan operasi manipulasi file seperti meng-upload file ke server, men-
download file dari server, mengubah nama file bahkan menghapus file yang
terdapat di server.
Secara default, FTP server akan mendengarkan permintaan koneksi dari
client pada port 21. Koneksi yang datang melalui port ini merupakan control
stream yang digunakan untuk mengirimkan perintah dari client ke server dan
kadang dari server ke client. Untuk melakukan transfer file, dibutuhkan koneksi
yang berbeda yang disebut sebagai data stream.
Metode koneksi yang digunakan sebagai data stream antara client dan
server yaitu:
Active Mode
Pada active mode, client akan membuka sembarang port (>1023),
mengirimkannya ke server melalui control stream dan menunggu koneksi dari
FTP server. client mengirimkan perintah PORT ke server yang menginformasikan
alamat IP dan nomor port yang akan didengarkan oleh client. server akan
memulai koneksi data ke client dengan menggunakan port 20.
98
Passive Mode
Pada passive mode, FTP server akan membuka sembarang port (>1023),
mengirimkan ke client alamat IP dan nomor port yang akan didengarkan melalui
control stream dan menunggu koneksi dari client. Pada kasus ini, client pun akan
menggunakan sembarang port (>1023) untuk melakukan koneksi. client
menggunakan perintah PASV untuk meminta informasi alamat IP dan nomor port
yang akan digunakan sebagai data stream pada server.
4.10.2. Instalasi dan Konfigurasi FTP Server
Aplikasi yang digunakan untuk membangun sebuah FTP server pada
Ubuntu Linux 7.04 Feisty Fawn server adalah ProFTPD. ProFTPD merupakan
aplikasi FTP server yang awalnya dikhususkan untuk digunakan berbagai varian
unix walapun saat ini telah ada ProFTPD yang dibuat untuk Windows. ProFTPD
memiliki kemiripan desain dengan Apache dalam banyak hal, seperti format
konfigurasi, desain modular dan lainnya.
Instalasi ProFTD dapat dilakukan pada terminal:
#apt-get install proftpd
99
Setelah proses instalasi selesai, akan muncul dialog:
Gambar 4.18. Dialog instalasi ProFTPD
Pada simulasi ini, option standalone yang akan dipilih dengan anggapan
akan terdapat banyak koneksi ftp yang akan dilakukan oleh client. Konfigurasi
tersebut dapat diubah dengan melakukan pengubaha pada file konfigurasi utama
ProFTPD yang terdapat pada file /etc/proftpd/proftpd.conf.
Server FTP yang akan dibangun adalah anonymous FTP. Berikut
konfigurasi anonymous FTP pada file /etc/proftpd/proftpd.conf. File-
file yang dipublikasikan melalui anonymous FTP server akan disimpan pada
direktori /home/Server/ftp/anonym/.
Hal pertama yang perlu dilakukan adalah membuat direktori
/home/Server/ftp/anonym/ dengan perintah:
$mkdir /home/Server/ftp$mkdir /home/Server/ftp/anonym
100
Lalu mengkonfigurasikan file /etc/proftpd/proftpd.conf untuk
anonymous server dengan path direktori yang telah dibuat:
#nano /etc/proftpd/proftpd.conf
Berikut adalah konfigurasi untuk membangun sebuah anonymous FTP server:
# A basic anonymous configuration, no upload directories.
<Anonymous /home/Server/ftp/anonym> User ftp Group nogroup # We want clients to be able to login with "anonymous" as well # as "ftp" UserAlias anonymous ftp # Cosmetic changes, all files belongs to ftp user DirFakeUser on ftp DirFakeGroup on ftp RequireValidShell off # Limit the maximum number of anonymous logins Maxclients 10 # We want 'welcome.msg' displayed at login, and '.message' # displayed in each newly chdired directory. DisplayLogin welcome.msg DisplayFirstChdir .message # Limit WRITE everywhere in the anonymous chroot <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> # Uncomment this if you're brave. # <Directory> # <Limit READ> # DenyAll # </Limit> # # <Limit STOR> # AllowAll # </Limit> # </Directory> </Anonymous>
101
4.11. Samba dan Domain Controller (Windows Networking)
4.11.1. Pendahuluan
Samba merupakan aplikasi yang mengimplementasikan protokol Server
Message Blok (SMB) di lingkungan Unix/Linux. Fungsi utama dari protokol ini
adalah untuk melakukan sharing file dan printer. Banyak sistem operasi, seperti
Windows dan OS/2, menggunakan protokol ini untuk melakukan client-server
networking. Dengan adanya dukungan terhadap protokol ini, samba
memungkinkan server berbasis Unix untuk berkomunikasi pada protokol jaringan
yang sama dengan produk-produk dari Microsoft Windows. Dengan adanya
samba pada, mesin-mesin unix dapat bertindak sebagai server bagi jaringan yang
berbasis Windows dan menyediakan beberapa layanan berikut:
● Berbagi (share) file pada beberapa file system.
● Berbagi (share) printer yang terinstal pada server maupun client.
● Mendukung Network Neighborhood browsing yang akan memudahkan
client untuk browsing pada komputer yang tergabung dalam jaringan.
● Mengautentifikasi client yang log on ke Windows domain.
● Mendukung WINS name server resolution.
4.11.2. Cara Kerja Protokol SMB
Protokol SMB atau yang dikenal sebagi protokol NetBEUI merupakan
non-routeable protocol yang bersifat broadcast based. Setidaknya ada dua proses
yang berjalan untuk melakukan file dan printer sharing:
● Mailslots
Mailslot adalah proses undirectional communication yang memungkinkan
102
untuk setiap client dapat menggunakan fasilitas Network Neighborhood
untuk melakukan browsing pada komputer yang sedang aktif.
● Named Pipes
Named pipes merupakan proses bidirectional communication yang terjadi
ketika sebuah komputer diakses, kemudian akan terlihat resource apa saja
yang bisa digunakan pada komputer tersebut. Saat berhasil masuk dan
menggunakan resource tersebut, terjadilah proses named pipes.
Dengan berkembangnya protokol TCP/IP, NT 4.0 menambahkan satu fitur
yaitu Windows Socket (winsock.dll) yang berfungsi agar protokol NetBEUI yang
tidak bisa routing, bisa run-over protokol yang bisa routing pada protokol TCP/IP
(IPX Encapsulated with TCP/IP). Pada proses ini, NetBEUI sedang berjalan pada
protokol TCP/IP.
Setiap proses RPC (Remote Procedure Call) membutuhkan satu protokol
transport. Ketika protokol TCP/IP diinstal pada Microsoft Windows, dan alamat IP
Samba dijadikan sebagai WINS server, maka Windows akan menganggap mesin
linux tersebut sebagai Windows. WINS merupakan NetBIOS Name Service
(NBNS) yang melakukan proses name resolution dan browsing. Kedua proses ini
akan dijalankan oleh nmbd pada Samba. NBNS merupakan service dimana
NetBIOS Name di-resolve ke alamat IP.
4.11.3. Instalasi dan Konfigurasi Samba
Instalasi Samba pada Ubuntu Linux 7.04 Feisty Fawn Server cukup
dengan mengetikkan perintah di terminal:
#apt-get install samba smbfs
103
Perintah akan menginstal Samba sebagai aplikasi utama dan smbfs yang
memuat modul-modul tambahan untuk dukungan protokol SMB/CIFS. Aplikasi
lain yang dapat diinstal yaitu smbclient. Aplikasi ini berisi paket utilitas untuk
mengakses Network Neighborhood Windows dari Unix/Linux pada modus
Command-Line.
Konfigurasi Samba terdapat pada satu file tunggal yaitu smb.conf yang
terletak di /etc/samba/smb.conf. Konfigurasi pada file ini bisa sederhana,
namun bisa juga menjadi sangat kompleks. Berikut ini adalah struktur file
konfigurasi Samba yang secara umum digunakan:
[global]. . .
[homes]. . .
[printers]. . .
[test] . . .
Konfigurasi Server
Untuk melakukan konfigurasi pada server Samba, secara umum terdapat
tiga opsi yang dapat diubah pada seksi [global] pada file smb.conf, yaitu:
[global]workgroup = BIOMATnetbios name = SERVERserver string = Samba %v on (%L)
Konfigurasi tersebut merupakan konfigurasi server yang sangat sederhana,
terdiri dari Workgroup BIOMAT, NetBIOS name SERVER dan menampilkan
deskripsi kepada client versi Samba yang digunakan.
104
Konfigurasi Disk Share
Berikut ini adalah konfigurasi untuk melakukan folder sharing pada
Samba. Direktori yang akan di-share adalah /home/server/data yang
diberi nama [data].
[global]workgroup = BIOMATnerbios name = SERVERserver string = Samba %v on (%L)
[data]comment = Direktori Datapath = /home/server/datapublic = yeswriteable = yesguest ok = yescreate mask = 0777directory mask = 077force user = nobodyforce group = nogroup
Direktori yang akan di-share perlu dibuat dengan menambahkan opsi agar
direktori tersebut dapat diakses dengan permission read/write enabled. Perintah
yang digunakan yaitu:
#mkdir /home/server/data#chmod 777 /home/server/data
Kemungkinan kesalahan terutama pada penulisan sintaks dapat di tes
dengan menggunakan perintah:
#testparm
105
Jika tidak ada kesalahan pada konfigurasi yang telah dilakukan, maka perintah
tersebut akan memberikan keterangan:
Load smb config files from /etc/samba/smb.confProcessing section “[homes]”Processing section “[printers]”Processing section “[share]”Loaded service file OK.Server role: ROLE_STANDALONEPress enter to see a dump of your service definitions
------------------------- (dipotong)----------------------------------------- berisi konfigurasi yang telah dibuat -------------
Setelah itu, Samba perlu di-restart agar konfigurasi yang telah dilakukan dapat
segera diterapkan:
#/etc/init.d/samba force-reload
Konfigurasi server Samba yang telah dibuat tersebut dikonfigurasikan
untuk berfungsi sebagai server dengan tipe standalone server. Istilah standalone
server berarti hanya menyediakan akses kontrol dan autentifikasi lokal untuk
semua resource yang ada pada server tersebut. Hal yang perlu dilakukan oleh
client untuk dapat mengakses resource yang disediakan server hanyalah memiliki
user account pada server tersebut. Standalone server tidak menyediakan layanan
domain logon.
106
Samba sebagai Domain Controller
Konfigurasi pada file smb.conf untuk memfungsikan Samba sebagai
Primary Domain Controller adalah sebagai berikut:
[global]workgroup = BIOMATnetbios name = SERVER1server string = %h server (Samba, Ubuntu)passdb backend = tdbsamsecurity = userusername map = /etc/samba/smbusersname resolve order = wins bcast hostsdomain logons = yespreferred master = yeswins support = yes
# Set CUPS for printingprintcap name = CUPSprinting = CUPS
# Default logonlogon drive = H:logon script = scripts/logon.batlogon path = server1profile%U
# Useradd scriptsadd user script = /usr/sbin/useradd -m %udelete user script = /usr/sbin/userdel -r %uadd group script = /usr/sbin/groupadd %gdelete group script = /usr/sbin/groupdel %gadd user to group script = /usr/sbin/usermod -G %g %uadd machine script = /usr/sbin/useradd -s /bin/false/ -d /var/lib/nobody %uidmap uid = 15000-20000idmap gid = 15000-20000
# sync smb passwords woth linux passwordspasswd program = /usr/bin/passwd %upasswd chat = *EntersnewsUNIXspassword:* %nn *RetypesnewsUNIXspassword:* %nn .
passwd chat debug = yesunix password sync = yes
# set the loglevellog level = 3
[homes]comment = Homevalid users = %Sread only = nobrowsable = no
107
[printers]comment = All Printerspath = /var/spool/sambaprintable = yesguest ok = yesbrowsable = no
[netlogon]comment = Network Logon Servicepath = /home/samba/netlogonadmin users = Administratorvalid users = %Uread only = no
[profile]comment = User profilespath = /home/samba/profilesvalid users = %Ucreate mode = 0600directory mode = 0700writable = yesbrowsable = no
108