Jam Digital

Senin, 10 Desember 2012

WEB SERVER

WEB SERVER
TUJUAN PEMBELAJARAN:
1. Mengenalkan pada mahasiswa tentang konsep web server di linux
2. Mahasiswa memahami cara instalasi web server di Linux
3. Mahasiswa mampu melakukan troubleshooting web server di Linux
DASAR TEORI
1. Apache web Server
Web server adalah software yang memberikan layanan web. Web server menggunakan
protocol yang disebut dengan HTTP (HyperText Transfer Protocol). Anda mempunyai banyak
pilihan di dunia open source, tergantung pada keperluan Anda. Salah satu web server yang sangat
terkenal dan menjadi standar de facto setiap distribusi Linux, yaitu Apache.Apache adalah nama
web server yang dibuat berbasiskan kode sumber dan ide-ide yang ada pada web server
leluhurnya, yaitu web server NCSA.
Sesuai namanya, web server NCSA dibuat oleh National Center for Supercomputing
Applications. Tidak seperti poryek leluhurnya yang dibiayai oleh pemerintah Amerika, web
server Apache dikembangkan oleh sekelompok programer yang bekerja tanpa dibayar oleh
siapapun. Mereka mengerjakan proyek ini dengan berbagai macam alasan, akan tetapi alasan
yang paling mendasar adalah mereka senang jika perangkat lunak mereka digunakan oleh banyak
orang.
Apache adalah web server yang kompak, modular, mengikuti standar protokol HTTP,
dan tentu saja sangat digemari. Kesimpulan ini bisa didapatkan dari jumlah pengguna yang jauh
melebihi para pesaingnya. Sesuai hasil survai yang dilakukan oleh Netcraft, bulan Januari 2005
saja jumlahnya tidak kurang dari 68% pangsa web server yang berjalan di Internet. Ini berarti jika
semua web server selain Apache digabung, masih belum bias mengalahkan jumlah Apache. Saat
ini ada dua versi Apache yang bisa dipakai untuk server produksi, yaitu versi mayor 2.0 dan versi
mayor 1.3. Anda bisa menggunakan salah satu dari keduanya. Tapi sangat dianjurkan Anda
memakai versi 2.0.
2. Fitur Apache
Mengapa kita harus memilih Apache? Tentu itu pertanyaan yang terfi kir dalam benak Anda. Ya,
tentu saja kita harus mempunyai alasan untuk segala hal, termasuk memilih Apache sebagai web
server pilihan. Mungkin daftar berikut bisa menjadi jawabannya.
· Arsitektur modular.
· Mendukung banyak sistem operasi, termasuk di dalamnya adalah Windows NT/2000/XP
dan berbagai varian Unix.
· Mendukung IP versi 6 (Ipv6).
· Mendukung CGI (Common Gateway Interface) dan SSI (Server Side Include).
· Mendukung otentifi kasi dan kontrol akses.
· Mendukung SSL (Secure Socket Layer) untuk komunikasi terenkripsi.
· Konfi gurasi yang mudah dipahami.
· Mendukung Virtual Host.
· Pesan kesalahan multi bahasa dan bias dimodifikasi.
TUGAS PENDAHULUAN
1. Jelaskan fungsi web server !
2. Sebutkan software web server komersial atau free yang ada (min 3)
3. Sebutkan web client yang anda kenal (min 5)
4. Dimana file konfigurasi web server disimpan?
5. Apa fungsi daemon pada server ?
6. Jelaskan mengenai proses three way handshake pada web server dan web client.
7. Apa yang disebut virtual hosting. Jelaskan!
PERCOBAAN
1.Instalasi web server, menyalakan service, mengoperasikan web server
· Cek apakah apache sudah terinstall pada computer anda dengan perintah
# rpm –qa | grep httpd
Jika belum, installah versi rpm dari apache.
· Nyalakan service apache, dengan perintah :
# service httpd start
· Cek apakah memang service apache sudah berjalan dengan perintah :
# nmap localhost
Bila port 80 dan service httpd tertera disitu, berarti service apache sudah berjalan
2. Test webserver dari komputer lokal
· Hilangkan firewall di server dengan perintah iptables -F. Bukalah browser di tempat
server, ketik :
http://localhost
Bila sudah, maka anda akan melihat window test page powered by apache. Capture
hasilnya untuk laporan
· Jangan lupa cek file /etc/resolv.conf. Masukkan baris :
search jerapah.com
nameserver 10.252.105.33
· Nyalakan DNS anda, dengan perintah :
# service named start
· Set proxy server agar tidak menuju ke proxy.eepis-its.edu dengan cara menambahkan
entry jerapah.com pada browser. Untuk firefox, masuk ke tab edit, preference, advance,
network. Pilih connection. Lalu pada setting, pada entry no proxy for, tambahkan
jerapah.com. Dengan cara ini, browser tidak akan mencari ke proxy untuk mendapatkan
domain jerapah.com
· Coba ketik www.jerapah.com di server.
3. Test webserver di komputer client.
· Jangan lupa cek file /etc/resolv.conf. Masukkan baris :
search jerapah.com
nameserver 10.252.105.33
· Set proxy server agar tidak menuju ke proxy.eepis-its.edu dengan cara emnambahkan
entry jerapah.com pada browser. Untuk firefox, masuk ke tab edit, preference, advance,
network. Pilih connection. Lalu pada setting, pada entry no proxy for, tambahkan
jerapah.com. Dengan cara ini, browser tidak akan mencari ke proxy untuk mendapatkan
domain jerapah.com
· Hilangkan firewall di client dengan perintah iptables -F. Buka browser di computer lain
dan ketik :
http://www.jerapa h .com
Capture hasilnya untuk laporan
· Agar apache berjalan pada runlevel 3 dan 5 waktu anda booting linux, jalankan perintah
# chkconfig --level 35 httpd on
4. Konfigurasi minimum web server
· Buka file pada /etc/httpd/conf/httpd.conf
· Cari section 2. Hilangkan tanda # agar syntax anda diaktifkan. Lakukan konfigurasi
berikut :
ServerAdmin webmaster@jerapah.com
ServerName www.jerapah.com:80
· Coba ubah tampilan webpage apache dengan membuat file index.html pada direktori
yang tertera pada DocumentRoot. Biasanya index.html diletakkan di direktori
/var/www/html/web
<html>
<head>
<title>SELMAA Homepage</title>
</head>
<body>
<h1>
Welcome To WWW Home Page !!!!
</h1>
<FONT SIZE="5">
<b>Ini adalah SELMAA homepage.
<BR> NRPku adalah 2295100035
</b>
</FONT>
</body>
</html>
· Restart service httpd dengan :
# service httpd start
 Capturelah hasil website sederhana anda.
5. Menggunakan php
· Cek apakah php sudah terinstall di linux anda. Jika belum install paket-paketnya.
· Tambahkan konfigurasi berikut pada httpd.conf
....
AddType application/x-httpd-php .php
.....
· Test konfigurasi php dengan file test.php ini. Simpan file tersebut di /var/www/html/web/
<HTML>
<BODY>
Anda sukses menginstall PHP
<?phpinfo( )
?>
</BODY>
</HTML>
· Buka browser http://www.jerapah.com
Capture tampilannya.
6. Konfigurasi virtual hosting
· Buka kembali konfigurasi DNS server. Tambahkan baris ini pada file
/var/named/chroot/var/named/jerapah.com.zone.db
…….
ns IN A 10.252.105.33
mail IN CNAME ns
www IN CNAME ns
ftp IN CNAME ns
# tambahan baris
web1 IN CNAME ns
web2 IN CNAME ns
www.web3 IN CNAME ns
alias IN CNAME ns
· Restart service named dengan perintah
# service named restart
· Ping ke no IP berikut : web1.jerapah.com, web2.jerapah.com,
www.web3.jerapah.com, dan alias.jerapah.com
· Berhasilkah ?
· Buka file httpd.conf dan tambahkan baris ini
NameVirtualHost *:80
<VirtualHost *:80>
ServerName web1.jerapah.com
ServerAdmin webmaster@web1.jerapah.com
DocumentRoot /var/www/html/web1/
</VirtualHost>
<VirtualHost *:80>
ServerName web2.jerapah.com
ServerAdmin webmaster@web2.jerapah.com
DocumentRoot /var/www/html/web2/
</VirtualHost>
<VirtualHost *:80>
ServerName www.web3.jerapah.com
ServerAdmin webmaster@web3.jerapah.com
ServerAlias alias.jerapah.com
DocumentRoot /var/www/html/web3/
</VirtualHost>
· Buat file index.html berikut dan letakkan difolder /var/wwwhtml/web1/
<html>
<body>
<h1>
Virtual Hosting Web 1
</h1>
</body>
</html>
· Buat file index.html berikut dan letakkan difolder /var/wwwhtml/web2/
<html>
<body>
<h1>
Virtual Hosting Web 2
</h1>
</body>
</html>
· Buat file index.html berikut dan letakkan difolder /var/wwwhtml/web3/
<html>
<body>
<h1>
Virtual Hosting www dot web3 dot jerapah dot com dan alias dot jerapah dot com
</h1>
</body>
</html>
· Restart service httpd
# service httpd restart
· Buka browser dan ketikkan
http://web1.jerapah.com,http://web2.jerapah.com,
http://www.web3.jerapah.com,http://alias.jerapah.com
· Capture hasil tampilan web anda
Daftar Pertanyaan
1. Berikan kesimpulan hasil praktikum yang anda lakukan.
2. Apa yang disebut named based dan ip based virtual hosting
3. Apa fungsi tag ServerAlias pada named based virtual hosting ?
4. Sebutkan macam-macam log file apache. Jelaskan perbedaan fungsi tiap log file
5. Sebutkan bagian-bagian utama konfigurasi Apache. Jelaskan fungsinya
6. Berapa nomor port yang diberikan untuk layanan https
7. Bagaimana cara menyalakan dan mematikan service httpd

FIREWALL

FIREWALL
Firewall atau yang lebih dikenal pelindung jaringan private dapat berupa aplikasi yang
dikhususkan untuk melindungi jaringan lokal kita atau hardware (contohnya : router + firewall) yang
diposisikan antara jaringan internet dan intranet (lokal) dan jumlah interface ethernet biasanya lebih
dari satu. Satu interface terkoneksi ke jaringan PUBLIC dan yang lainnya terkoneksi ke jeringan
PRIVATE.
Tugas dari firewall ini pada umumnya melakukan filtering terhadap akses dari jaringan lokal ke
jaringan public ataupun sebaliknya dan melakukan translasi IP (Masquerade) jaringan lokal ke jaringan
public (NAT). Parameter – parameter firewall tergantung dari kebutuhan jaringan tersebut dan antar
lokasi tentunya berbeda. Parameter ini sering dikatakan juga access-list. Dalam pendefinisiannya
firewall memiliki aturan – aturan terhadap boleh dan tidaknya akses protocol jaringan lokal. Namun
sebelum mempelajari prinsip kerja firewall ini, Anda diwajibkan memahami terlebih dahulu jenis
protocol TCP dan UDP serta aliran/arah packet data.
Tabel iptables dibagi menjadi beberapa tabel yaitu :
- Filtering
- NAT
- Mangle
DIAGRAM IP FLOW Router Mikrotik
Posisi Firewall
Firewall
PC client Switch LAN
Internet
Di linux khusunya ubuntu, aplikasi firewall yang digunakan yaitu iptables. Aplikasi ini secara default
sudah terinstall pada mesin ubuntu Anda, untuk pengecekan tabel iptables ketikan perintah berikut ini
pada terminal ubuntu :
root@ubuntu#iptables -L -n -v
hasilnya adalah urutan rule – rule untuk filtering, untuk manual referensinya ketikan perintah berikut :
root@ubuntu#man iptables
1. FILTERING
Chain (Rangkaian) untuk melakukan filtering di ubuntu adalah sebagai berikut :
a. INPUT
Proses filtering terhadap paket data yang sumbernya dari jaringan lokal atau pun internet dengan tujuan
ke mesin ubuntu (firewall). Sebagai contoh kita dapat mengatur IP mana saja yang boleh melakukan
remote mesin ubuntu kita melalui protocol SSH.
FILTERING INPUT
b. OUTPUT
Proses filtering terhadap paket data yang sumbernya dari mesin ubuntu (firewall) ke jaringan lokal
ataupun internet.
c. FORWARD
Proses filtering yang melewati mesin ubuntu (firewall) dari arah jaringan lokal kita ke jaringan internet
ataupun sebaliknya. Chain forward ini paling sering digunakan untuk melakukan batasan akses
terhadap port, MAC Address serta IP Address. Selain chain, iptables juga memiliki TARGET atau
status yang menentukan aturan tersebut diperbolehkan atau ditolak.
Parameter TARGET sebagai berikut :
 ACCEPT
Akses atau rule diterima
 REJECT
Akses ditolak, kompter yang melewati firewall langsung terputus, biasanya terdapat pesan “connection
refused” sehingga tidak membebani jaringan.
 DROP
Akses diterima tetapi packet dibuang langsung oleh kernel sehingga pengguna tidak tahu bahwa
koneksinya dibatasi oleh firewall. Penggunaan DROP ini memakan resource firewall yang cukup tinggi
sehingga tidak disarankan digunakan pada jaringan yang congesti.
Beberapa Option yang sering digunakan dalam iptables :
- A : <jenis chain>: option untuk menambahkan aturan baru pada akhir chain
- I :<jenis chain>: option untuk menyisihkan aturan baru pada chain
- D : <jenis chain> <nomor aturan>: untuk menghapus suatu aturan dalam chain, berdasarkan
posisi aturan tersebut dimana aturan pertama adala nomor 1, aturan kedua adalah nomor 2,
dan seterusnya
- i : <network interface>: menentukan network interface untuk paket data yang masuk
- o : <network interface>: menentukan network interface untuk paket data yang keluar
- j : <policy>: menentukan policy atau action yang dijalankan jika terjadi match terhadap
aturan. Pada umumnya, policy bisa berupa ACCEPT atau DROP
- p : <protokol>: menentukan jenis protokol yang digunakan oleh paket data. Jenis yang sering
digunakan adalah protokol tcp, udp, icmp
- s : <alamat asal>: menentukan alamat asal untuk paket data
- d : <alamat tujuan>: menentukan alamat tujuan untuk paket data
- - sport : <nomor port>: menentukan nomor port asal untuk paket data (hanya berlaku untuk
jenis protokol tcp dan udp)
- - dport : <nomor port>: menentukan nomor port tujuan untuk paket data (hanya berlaku
untuk jenis protokol tcp dan udp)
- Dan lain – lain (lihat man iptables)
Bentuk perintah iptables FILTERING :
root@ubuntu#iptables -A <CHAIN> <Option> <TARGET>
Saatnya praktek.. Perhatikan Contoh didepan!!
Contoh Filtering :
1. Membatasi port number (INPUT Chain)
root@ubuntu#iptables -A INPUT -i eth0 -s 192.168.2.2 -d 192.168.2.1 -p udp --dport ssh -j REJECT
Perintah diatas membatasi klien komputer untuk mengakses port SSH ke firewall (mesin ubuntu).
melihat tabel firewall :
root@ubuntu#iptables -L -n -v
2. Membatasi port P2P (FORWARD Chain)
root@ubuntu#iptables -A FORWARD -p tcp --dport 6340:6350 -j REJECT
root@ubuntu# iptables -A FORWARD -p udp --dport 6340:6350 -j REJECT
Perintah diatas membatasi koneksi tipe tcp dan udp dari port 6430 – 6350 melewati firewall
3. Membatasi koneksi internet untuk 1 IP klien (FORWARD Chain)
root@ubuntu#iptables -A FORWARD -s 192.168.2.2 -d 0/0 -j REJECT
Perintah diatas membatasi koneksi internet untuk IP 192.168.2.2 ke semua tujuan (0/0) atau internet.
4. Membatasi koneksi internet berdasarkan range-ip-address
root@ubuntu#iptables -A FORWARD -m iprange --src-range 192.168.2.2-192.168.2.5 -d 0/0 -j
REJECT
Perintah diatas membatasi koneksi internet dari klien komputer 192.168.2.2 hingga 192.168.2.5
5. Membatasi koneksi internet berdasarkan MAC Address
root@ubuntu#iptables -A FORWARD -m mac --mac-source 0e:1a:18:1a:4c:3e -d 0/0 -j REJECT
perintah diatas membatasi MAC Address 0e:1a:18:1a:4c:3e koneksi ke internet
NAT (Native Address Translation)
NAT adalah mekanisme translasi jaringan IP Private kita ke satu atau lebih jaringan PUBLIC yang kita
miliki. NAT juga dapat digunakan untuk pengarahan port aplikasi dari PUBLIC kita ke PRIVATE yang
biasanya digunakan untuk pengalihan port Web Server lokal kita.
Bentuk perintah iptables untuk NAT :
root@ubuntu#iptables -t nat <chain> <opsi> <TARGET>
Chain pada NAT dibagi menjadi 2 bagian :
1. POSTROUTING
Melakukan NAT paket data dari IP Private kita ke internet.
2. PREROUTING
Melakukan NAT yang masuk ke firewall, biasanya digunakan untuk pengalihan port aplikasi server
lokal kita.
Catatan :
- Jangan lupa tambahkan default route
- Ganti isi file ip_forward menjadi 1 di : /proc/sys/net/ipv4/ip_forward
Saatnya Praktek!!!
Contoh firewall NAT :
1. NAT ke internet
root@ubuntu#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -d 0/0 -j SNAT --to-source
222.124.22.30
atau
root@ubuntu#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -d 0/0 -j MASQUERADE
Perintah diatas melakukan translasi Network Address pivate kita 192.168.2.0/24 ke IP Public.
Perbedaan kedua perintah diatas, yang pertama melakukan translasi ke satu IP Public kita (Static IP
Public), sedangkan yang kedua melakukan translasi ke satu IP Public kita yang dinamis dengan
menggunakan kata MASQUERADE.
2. NAT ke Server lokal kita
root@ubuntu#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination
192.168.2.2:80
Perintah diatas melakukan translasi ke IP Private kita dari interface eth0 melalui port 80 (translasi
Web Server).
Menghapus tabel firewall (iptables) :
 root@ubuntu#iptables -F (menghapus semua tabel filtering)
 root@ubuntu#iptables -t nat -F (menghapus semua tabel NAT)
 root@ubuntu#iptables -D FORWARD 1 (menghapus tabel baris 1 untuk Chain FORWARD
filtering).