WEB SERVER
- Cara memuat
routing sederhana yang terdiri atas client, router dan DMZ?
Caranya Pertama buatlah sebuah file yang akan menginisiasikan tiap
host dan switch. Tulis script berikut pada
file tersebut.
Untuk membuat switch :
uml_switch -unix
[nama_switch] > /dev/null < /dev/null &
untuk membuat host yang
terhubung dengan switch :
xterm -T [nama_host] -e
linux ubd0=[nama_host],uml umid=[nama_host] eth0=daemon,,,[nama_switch] mem=[jumlah memori] &
untuk membuat router:
xterm -T [nama_router]
-e linux ubd0=[nama_router],uml umid=[nama_router] eth0=tuntap,,,10.151.70.77 eth1=daemon,,,[nama_switch]
mem=[jumlah_memori] &
buatlah host sebanyak
yang dibutuhkan dengan nama yang berbeda-beda, dalam soal buat routing dengan 1 client, 1 DMZ dan 1
router. Kita anggap client dan DMZ
sebagai host yang terhubung
dengan switch sehingga buat 2 host ,1 switch dan 1 router
Cara meng-install
apache,mySQL, phpmyadmin pada DMZ
Host ,switch dan router telah dibuat, namun saat dijalankan
host,router dan switch masih belum terhubung satu dengan yang lainnya dan belum
terhubung ke internet juga. Oleh karenanya kita harus melakukan beberapa
konfigurasi untuk terhubung ke jaringan ITS sehingga dapat menginstall
apache,mySQL dan phpmyadmin pada host DMZ.
Konfigurasi pada Router :
edit file pada direktori /etc/network/interfaces dengan text editor
(nano,vim,dll). Tambahkan script berikut :
auto lo
iface lo inet loopback
auto eth0 # inisiasi hubungan ke jaringan luar
iface eth0 inet static
address 10.151.70.78 #ip router yang diinginkan(IP yang diberikan +2)
netmask 255.255.255.0 #netmask
gateway 10.151.70.77 # gateway yang diinginkan(IP yang diberikan +1)
auto eth1 # hubungan ke switch
iface eth1 inet static
address 172.16.0.3 #ip router ke switch
netmask 255.255.255.0
buka file pada /etc/sysctl.conf
uncommnet pada bagian net.ipv4.ip_forward=1
untuk dapat ping ke jaringan luar kita harus menambahkan script untuk
mengatur iptables. Edit file pada /etc/rc.local dan tambahkan script berikut :
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE.
Restart service untuk jaringan dengan menginput command :
service networking restart.
Tes untuk koneksi ke jaringan ITS dengan ping its.ac.id.
Konfigurasi pada host
buka dan edit file pada /etc/network/interfaces dengan script berikut :
auto lo
iface lo inet loopback
auto eth0 # untuk hubungan dengan router
iface eth0 inet static
address 172.16.0.131 #ip host yang diinginkan
netmask 255.255.255.0
gateway 172.16.0.3 #gateway adalah ip router yang terhubung dengan
switch
restart service untuk networking dengan menjalankan command :
service networking restart
Ping ke router lalu ping ke its.ac.id
jika host telah mendapatkan respond maka sudah terhubung dengan jaringan
ITS.
Install apache2, mySQL dan phpmyadmin
apt-get install apache2
apt-get install mySQL
apt-get install phpmyadmin
- DMZ
akan digunakan sebagai Web Server. Terdapat 2 buah website yang ditangani oleh
web server ini yaitu ip_anda:80, ip_anda:8080. Kemudian pada website ip_anda:80
terdapat subdirektori /admin yang mana sebenarnya file-filenya terletak
di /home/admin, berbeda dengan file-file lain yang terletak di /var/www.Ketika
mengakses ip_anda:8080 user harus menginputkan username dan password
(menggunakan .htaccess) Semua website tidak boleh menampilkan list direktori.
Jadi jika tidak ada file index (index.html, index.php, default.asp) maka daftar
file dan subdirektori yang ada tidak akan tampil. Ketika kita mengakses
ip_anda:80/example maka akan diarahkan ke ip_anda:80/example/example.html
Untuk dapat membuka laman sebuah website kita harus
menginstall lynx browser pada virtual host yang kita miliki.
Apt-get install lynx
setelah menginstall apache cobalah untuk membuka laman
default dari DMZnya dengan menjalankan command
lynx (ip_anda)172.16.0.131:80 atau localhost
Jika mengeluarkan tampilan sebagai berikut maka apache2 sudah
terinstall dengan baik
Konfigurasi untuk port 80:
untuk menambahkan meletakkan file-file yang ingin diakses
pada sebuah direktori tambahkan direktori baru pada direktori home dengan
menjalankan command :
mkdir /home/admin.
Agar dapat membuka file pada direktori admin tersebut dengan
menggunakan lynx kita harus mengedit file pada
/etc/apache2/sites-availble/default dengan menambahkan :
<Directory
/home/admin/>
Order
allow,deny
allow
from all
</Directory>
Lalu untuk mengubah agar lynx hanya membuka alamat dengan
menunjuk kepada direktori file yang terdapat pada /admin kita tambahkan script
berikut
Alias /admin /home/admin
dan hapus kata indexes pada kalimat Option Indexes
FollowSymLinks Multiviews
sehingga script pada /etc/apache2/sites-availble/default
menjadi :
Konfigurasi pada port 8080:
copy script
/etc/apache2/sites-availble/default (blm diedit) ke filebaru pada direktori
/etc/apache2/sites-availble/filebaru. Lalu edit pada beberapa bagian diantaranya
:
tambahkan pada baris paling atas listen 8080
ganti virtualhost yang dituju menjadi 8080
<VirtualHost *:8080>
ganti direktori pada document root menjadi
/var/www/fiilebaru(nama file baru)
DocumentRoot /var/www/ fiilebaru
untuk menambah autentikasi pada saat membuka laman dengan
port 8080. buatlah file baru pada /var/www/ dengan nama .htaccess jalankan
dengan command :
nano /var/www/.htaccess
tambahkan pada file tersebut :
AuthName "selamat datang" #header dari kalimat saat
prompt autentikasi keluar
AuthType Basic
AuthUserFile
/var/www/.htpasswd #letak dari password tiap user yang telah direquire
require user e19 #
nama-nama user yang dapat mengakses laman
Buat file .htpasswd dengan menjalankan command
htpasswd -cmd .htpasswd , dimana akan diberikan prompt untuk
memasukan nama user dan password yang ingin diberikan. Atau dengan membuat file
baru pada /var/www/ dengan nama .htpasswd yang berisi
namauser:enkripsipassword.
Lalu edit kembali file /etc/apache2/sites-availble/port8080
dengan mengganti pada kalimat AllowOverride None diganti menjadi AllowOverride
AuthConf
jalankan command service apache2 restart. Untuk merestart
apache
jalankan dengan membuka laman lynx ip_anda:8080
- Buatlah configurasi webserver agar dapat menggunakan SSL pada
Apache HTTP Server anda dengan studi kasus : self-signed-certificate.
Untuk membuat ssl dengan studi kasus self-signed-certificate
, pertama kita harus mengenerate sertifikatnya dan keynya dengan menjalankan
command berikut :
openssl x509 -in
new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days NNN
buat folder baru pada direktori yang diinginkan lalu copy sertifikat
dan key yang telah digenerate tadi ke
folder tersebut.
cp new.cert.cert
/direktori_anda/apache.pem
cp new.cert.key /direktori_anda/apache.key
lalu buka dan edit file pada /etc/apache2/sites-availble/default-ssl
menjadi :
SSLEngine on
SSLCertificateFile /direktori_anda/apache.pem
SSLCertificateKeyFile /direktori_anda/apache.key
jalankan command a2ensite default-ssl
service apache2 restart
untuk mencobanya buka laman dengan tambahan https sebagai protokolnya.
Kita lihat besar memori yang digunakan untuk menjalankan
webserver dengan mengetikkan command top. Disitu kita dapat melihat jumlah
memori yang digunakan tiap proses, jika kita mengetikkan shift+m maka akan di
sort sesuai dengan jumlah terbesar dari yang terkecil. Alhasil pada data yang
kami dapatkan terlihat bahwa terdapat lebih dari satu proses apache yang
berjalan. Untuk mengoptimasi penggunaan memori ini kita ambil nilai dari memori
yang paling besar
lalu jalankan command free -m untuk melihat jumlah memori yang terpakai
seluruhnya dan yang free.
Maka jalankan rumus sebagai berikut.
N = nilai optimasi
M = jumlah memori yang dipakai proses apache2
F = memori yang free
(ceil)N = M * 0,8 / F
nilai N dibulatkan keatas
lalu buka file pada /etc/apache2/apache2.conf cari MaxClients yang digunakan dan ganti
dengan nilai dari N.
Min dan MaxSpareServers adalah 20% dari nilai MaxClients dan dibulatkan
sehingga menjadi
MinSpareServers 20%*N(Ceil)
MaxSpareServers 20%*N(Ceil)
MaxClients N
untuk melihat hasilnya jalankan command top kembali shift+m lihat jumlah
proses dengan command apache2