Skip to content

rafifiaan/Jarkom-Modul-2-F07-2023

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Laporan Resmi Praktikum Jaringan Komputer Modul 2 2023

Repository in Bahasa

Topic :

Domain Name System (DNS) & Web Server

Identity :

Kelompok F07 - Jaringan Komputer (F)
Insitut Teknologi Sepuluh Nopember

Authors :

Name Student ID
Arfi Raushani Fikra 5025211084
Rafi Aliefian Putra Ramadhani 5025211234

List of Contents

Preparation

Must be known before starting configuration

Network Topology

Using Topology number 6

imgTopology

Node Configuration

  • Router
    • Pandudewanata
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet static
        address 10.55.1.1
        netmask 255.255.255.0
    
    auto eth2
    iface eth2 inet static
        address 10.55.2.1
        netmask 255.255.255.0
    
    auto eth3
    iface eth3 inet static
        address 10.55.3.1
        netmask 255.255.255.0
    
    

Switch 1

  • Client
    • Nakula
    auto eth0
    iface eth0 inet static
          address 10.55.1.2
          netmask 255.255.255.0
          gateway 10.55.1.1
    
    • Sadewa
    auto eth0
    iface eth0 inet static
          address 10.55.1.3
          netmask 255.255.255.0
          gateway 10.55.1.1
    
  • DNS
    • Yudhistira (Master)
    auto eth0
    iface eth0 inet static
          address 10.55.1.4
          netmask 255.255.255.0
          gateway 10.55.1.1
    
    • Werkudara (Slave)
    auto eth0
    iface eth0 inet static
          address 10.55.1.5
          netmask 255.255.255.0
          gateway 10.55.1.1
    

Switch 2

  • Load Balancer
    • Arjuna
    auto eth0
    iface eth0 inet static
          address 10.55.2.2
          netmask 255.255.255.0
          gateway 10.55.2.1
    

Switch 3

  • Web Server
    • Prabukusuma
    auto eth0
    iface eth0 inet static
          address 10.55.3.2
          netmask 255.255.255.0
          gateway 10.55.3.1
    
    • Abimanyu
    auto eth0
    iface eth0 inet static
          address 10.55.3.3
          netmask 255.255.255.0
          gateway 10.55.3.1
    
    • Wisanggeni
    auto eth0
    iface eth0 inet static
          address 10.55.3.4
          netmask 255.255.255.0
          gateway 10.55.3.1
    

Install & Setup

  • Router (Pandudewanata)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 10.55.0.0/16
echo 'nameserver 192.168.122.1' > /etc/resolv.conf
  • DNS Master & Slave (Yudhistira & Werkudara)
echo 'nameserver 192.168.122.1' > /etc/resolv.conf
apt-get update
apt-get install bind9 -y      
  • Client (Nakula & Sadewa)
echo '
nameserver 10.55.1.4 # IP Yudhistira
nameserver 10.55.1.5 # IP Werkudara
nameserver 192.168.122.1' > /etc/resolv.conf

apt-get update
apt-get install dnsutils -y
apt-get install lynx -y
  • Web Server Nginx
apt install nginx php php-fpm -y
  • Web Server Apache2
apt-get update
apt-get install dnsutils -y
apt-get install lynx -y
apt-get install nginx -y
service nginx start
apt-get install apache2 -y
apt-get install libapache2-mod-php7.0 -y
service apache2 start
apt-get install wget -y
apt-get install unzip -y
apt-get install php -y
echo -e "\n\nPHP Version:"
php -v
  • Zip Download & Unzip Web Server Resources
wget -O '/var/www/abimanyu.f07.com' 'https://drive.usercontent.google.com/download?id=1a4V23hwK9S7hQEDEcv9FL14UkkrHc-Zc'
unzip -o /var/www/abimanyu.f07.com -d /var/www/
mv /var/www/abimanyu.yyy.com /var/www/abimanyu.f07
rm /var/www/abimanyu.f07.com
rm -rf /var/www/abimanyu.yyy.com

wget -O '/var/www/parikesit.abimanyu.f07.com' 'https://drive.usercontent.google.com/download?id=1LdbYntiYVF_NVNgJis1GLCLPEGyIOreS'
unzip -o /var/www/parikesit.abimanyu.f07.com -d /var/www/
mv /var/www/parikesit.abimanyu.yyy.com /var/www/parikesit.abimanyu.f07
rm /var/www/parikesit.abimanyu.f07.com
rm -rf /var/www/parikesit.abimanyu.yyy.com
mkdir /var/www/parikesit.abimanyu.f07/secret

wget -O '/var/www/rjp.baratayuda.abimanyu.f07.com' 'https://drive.usercontent.google.com/download?id=1pPSP7yIR05JhSFG67RVzgkb-VcW9vQO6'
unzip -o /var/www/rjp.baratayuda.abimanyu.f07.com -d /var/www/
mv /var/www/rjp.baratayuda.abimanyu.yyy.com /var/www/rjp.baratayuda.abimanyu.f07
rm /var/www/rjp.baratayuda.abimanyu.f07.com
rm -rf /var/www/rjp.baratayuda.abimanyu.yyy.com

Question 1 - DNS

Yudhistira akan digunakan sebagai DNS Master, Werkudara sebagai DNS Slave, Arjuna merupakan Load Balancer yang terdiri dari beberapa Web Server yaitu Prabakusuma, Abimanyu, dan Wisanggeni. Buatlah topologi nya!

Setelah membuat Topologi Node dan konfigurasi Node dengan menggunakan GNS3, langkah selanjutnya yaitu melakukan setup pada Node router (Pandudewanata) dan juga pada Node client (Nakula & Sadewa).

Script Solution

Testing Node

ping google.com -c 3

Test Result

Nakula : p-gglNakula

Sadewa : p-gglSadewa

Question 2 - DNS

Buatlah website utama pada node arjuna dengan akses ke arjuna.yyy.com dengan alias www.arjuna.yyy.com dengan yyy merupakan kode kelompok!

Dilakukan setup terlebih dahulu pada Node Yudhistira (DNS Master). Setelah itu dilanjut dengan pembuatan domain yang tertera pada script berikut.

Script Solution

  • Node Yudhistira
echo 'zone "arjuna.f07.com" {
        type master;
        file "/etc/bind/praktikum-jarkom/arjuna.f07.com";
};'

mkdir /etc/bind/praktikum-jarkom

echo "
\$TTL    604800
@       IN      SOA     arjuna.f07.com. root.arjuna.f07.com. (
                        2023101101      ; Serial
                        604800          ; Refresh
                        86400           ; Retry
                        2419200         ; Expire
                        604800 )        ; Negative Cache TTL
;
@               IN      NS      arjuna.f07.com.
@               IN      A       10.55.2.2 ; IP Arjuna
www             IN      CNAME   arjuna.f07.com.
" > /etc/bind/praktikum-jarkom/arjuna.f07.com

service bind9 restart

Setelah itu melakukan setup yaitu menghapus namserver 192.168.122.1 atau nameserver router dan menambahkan nameserver IP Node Yudhistira dalam file /etc/resolv.conf pada Node Client (Nakula / Sadewa) seperti berikut :

nameserver 10.55.1.4

Dan setelah itu dapat dibuktikan dengan melakukan Ping dan host melalui CNAME pada domain yang telah dibuat

ping arjuna.f07.com -c 3
ping www.arjuna.f07.com -c 3
host -t CNAME www.arjuna.f07.com

Test Result

Test tanpa www

domArjuna

Test menggunakan www

domWwwArjuna

Test Alias dari www

cnameArjuna

Question 3 - DNS

Dengan cara yang sama seperti soal nomor 2, buatlah website utama dengan akses ke abimanyu.yyy.com dan alias www.abimanyu.yyy.com!

Langkah-langkah implementasi yang dilakukan sama seperti Question 2, perbedaannya hanya terletak pada nama domain

Script Solution

  • Node Yudhistira
echo 'zone "abimanyu.f07.com" {
        type master;
        file "/etc/bind/praktikum-jarkom/abimanyu.f07.com";
};'

echo "
\$TTL    604800
@       IN      SOA     abimanyu.f07.com. root.abimanyu.f07.com. (
                        2023101101      ; Serial
                        604800          ; Refresh
                        86400           ; Retry
                        2419200         ; Expire
                        604800 )        ; Negative Cache TTL
;
@               IN      NS      abimanyu.f07.com.
@               IN      A       10.55.3.3 ; IP Abimanyu
www             IN      CNAME   abimanyu.f07.com.
" > /etc/bind/praktikum-jarkom/abimanyu.f07.com

service bind9 restart

Setelah itu, dikarenakan nameserver masih menggunakan IP Node Yudhistira maka langkah selanjutnya yaitu langsung dibuktikan dengan melakukan Ping dan host melalui CNAME pada domain

ping abimanyu.f07.com -c 3
ping www.abimanyu.f07.com -c 3
host -t CNAME www.abimanyu.f07.com

Test Result

Test tanpa www

domAbimanyu

Test menggunakan www

domWwwAbimanyu

Test Alias dari www

cnameAbimanyu

Question 4 - DNS

Kemudian, karena terdapat beberapa web yang harus di-deploy, buatlah subdomain parikesit.abimanyu.yyy.com yang diatur DNS-nya di Yudhistira dan mengarah ke Abimanyu!

Dalam membuat subdomain pada domain abimanyu.yyy.com, perlu menambahkan baris baru dengan nama parikesit pada file abimanyu.f07.com dengan type A

Script Solution

  • Node Yudhistira
echo "
\$TTL    604800
@       IN      SOA     abimanyu.f07.com. root.abimanyu.f07.com. (
                        2023101101      ; Serial
                        604800          ; Refresh
                        86400           ; Retry
                        2419200         ; Expire
                        604800 )        ; Negative Cache TTL
;
@               IN      NS      abimanyu.f07.com.
@               IN      A       10.55.3.3 ; IP Abimanyu
www             IN      CNAME   abimanyu.f07.com.
parikesit       IN      A       10.55.3.3 ; IP Abimanyu
" > /etc/bind/praktikum-jarkom/abimanyu.f07.com

service bind9 restart

Setelah itu, langkah selanjutnya masih sama dengan Question 2 / 3, yaitu langsung dibuktikan melalui Ping

ping parikesit.abimanyu.f07.com -c 3

Test Result

parikesit

Question 5 - DNS

Buat juga reverse domain untuk domain utama. (Abimanyu saja yang direverse)!

Sebelum melakukan reverse domain, langkah pertama adalah perlu untuk mengetahui IP dari Node Abimanyu. Karena IP Abimanyu adalah 10.55.3.3, maka kita perlu mengubahnya menjadi 3.3.55.10.

Script Solution

Setelah mengetahui IP dari Node Abimanyu, kita perlu mengedit file /etc/bind/named.conf.local dengan menambahkan 3 byte awal dari IP Node Abimanyu seperti berikut

  • Node Yudhistira
echo 'zone "3.55.10.in-addr.arpa" { 
        type master;
        file "/etc/bind/praktikum-jarkom/3.55.10.in-addr.arpa";
};' > /etc/bind/named.conf.local

Dan dilanjut dengan meng-copy file db.local ke-dalam folder praktikum-jarkom dan merubah namanya menjadi /etc/bind/jarkom/3.55.10.in-addr.arpa. Setlah itu mengeditnya menjadi seperti berikut

echo "
\$TTL    604800
@       IN      SOA     abimanyu.f07.com. root.abimanyu.f07.com. (
                        2023101101      ; Serial
                        604800          ; Refresh
                        86400           ; Retry
                        2419200         ; Expire
                        604800 )        ; Negative Cache TTL
;
3.55.10.in-addr.arpa.   IN      NS      abimanyu.f07.com.
3                       IN      PTR     abimanyu.f07.com.
" > /etc/bind/praktikum-jarkom/3.55.10.in-addr.arpa

service bind9 restart

Untuk mengecek apakah konfigurasi sudah benar atau belum, lakukan perintah berikut

apt-get update
apt-get install dnsutils

Pastikan nameserver di /etc/resolv.conf pada Node Yudhistira telah dikembalikan sama dengan nameserver dari Pandudewanata

Setelah itu, testing dapat dilakukan sama seperti pada Question 2 / 3 / 4 yaitu pada Node Client dengan memasukkan command berikut

host -t PTR 10.55.3.3

Test Result

ptrIP

Question 6 - DNS

Agar dapat tetap dihubungi ketika DNS Server Yudhistira bermasalah, buat juga Werkudara sebagai DNS Slave untuk domain utama.

Dalam membuat DNS Slave, kita memerlukan beberapa konfigurasi pada DNS Master dan DNS Slave (Node Werkudara)

Script Solution

Langkah awal adalah menambahkan nofity, also-notify dan allow-transfer agar memberikan izin kepada IP yang dituju

  • Node Yudhistira
echo 'zone "arjuna.f07.com" {
        type master;
        notify yes;
        also-notify { 10.55.1.5; }; // IP Werkudara
        allow-transfer { 10.55.1.5; }; // IP Werkudara
        file "/etc/bind/praktikum-jarkom/arjuna.f07.com";
};

zone "abimanyu.f07.com" {
        type master;
        notify yes;
        also-notify { 10.55.1.5; }; // IP Werkudara
        allow-transfer { 10.55.1.5; }; // IP Werkudara
        file "/etc/bind/praktikum-jarkom/abimanyu.f07.com";
};

zone "3.55.10.in-addr.arpa" { 
        type master;
        file "/etc/bind/praktikum-jarkom/3.55.10.in-addr.arpa";
};' > /etc/bind/named.conf.local

service bind9 restart
service bind9 stop // Stop untuk testing Slave
  • Node Werkudara (Slave)

Membuat type slave pada zone dari domain dan mengubah path file

echo 'zone "arjuna.f07.com" {
        type slave;
        masters { 10.55.1.4; }; // IP Yudhistira
        file "/var/lib/bind/arjuna.f07.com";
};

zone "abimanyu.f07.com" {
        type slave;
        masters { 10.55.1.4; }; // IP Yudhistira
        file "/var/lib/bind/abimanyu.f07.com";
};' > /etc/bind/named.conf.local

service bind9 restart

Setelah itu, untuk membuktikan Slave berhasil atau tidak, perlu ditambahkan IP Werkudara pada /etc/resolv.conf didalam Node Client

nameserver 10.55.1.5

Jika sudah, testing dapat dilakukan dengan melakukan Ping pada domain yang telah dibuat seperti Arjuna dan Abimanyu

ping arjuna.f07.com -c 3
ping abimanyu.f07.com -c 3

Test Result

Start bind9 Werkudara

strWerku

Stop bind9 Yudhistira

stpYudhi

Test domain Arjuna

slaveArjuna

Test domain Abimanyu

slaveAbimanyu

Question 7 - DNS

Seperti yang kita tahu karena banyak sekali informasi yang harus diterima, buatlah subdomain khusus untuk perang yaitu baratayuda.abimanyu.yyy.com dengan alias www.baratayuda.abimanyu.yyy.com yang didelegasikan dari Yudhistira ke Werkudara dengan IP menuju ke Abimanyu dalam folder Baratayuda.

Dalam membuat Delegasi subdomain, diperlukan beberapa configurasi pada DNS Master dan DNS Slave. Kita juga memerlukan bantuan allow-query { any; }; pada `DNS Master dan Slave. Serta kita memerlukan NS karena NS digunakan untuk delegasi zona DNS untuk menggunakan authoritative name server yang diberikan

Script Solution

Perlu menambahkan ns1 IN A 10.55.1.5 ; IP Werkudara agar mendapatkan authoritative terhadap Werkudara. Kita juga perlu mengaktifkan allow-query { any; }; pada DNS Master. Dan juga perlu untuk mengedit /etc/bind/named.conf.local

  • Node Yudhistira
echo '
$TTL    604800
@       IN      SOA     abimanyu.f07.com. root.abimanyu.f07.com. (
                        2023101101      ; Serial
                        604800          ; Refresh
                        86400           ; Retry
                        2419200         ; Expire
                        604800 )        ; Negative Cache TTL
;
@               IN      NS      abimanyu.f07.com.
@               IN      A       10.55.3.3 ; IP Abimanyu
www             IN      CNAME   abimanyu.f07.com.
parikesit       IN      A       10.55.3.3 ; IP Abimanyu
ns1             IN      A       10.55.1.5 ; IP Werkudara
baratayuda      IN      NS      ns1
' > /etc/bind/praktikum-jarkom/abimanyu.f07.com

echo '
options {
        directory "var/cache/bind";
        //dnssec-validation auto;
        allow-query{any;};
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};
' > /etc/bind/named.conf.options

echo 'zone "abimanyu.f07.com" {
        type master;
        file "/etc/bind/praktikum-jarkom/abimanyu.f07.com";
        allow-transfer { 10.55.1.5; }; // IP Werkudara
};

zone "3.55.10.in-addr.arpa" { 
        type master;
        file "/etc/bind/praktikum-jarkom/3.55.10.in-addr.arpa";
};' > /etc/bind/named.conf.local

service bind9 restart 
  • Node Werkudara

Dan juga perlu setup juga pada Node Werkudara untuk mengarahkan zone ke DNS Master agar authoritative tadi dapat jalan. Kita juga perlu mengaktifkan allow-query { any; }; pada DNS Slave

echo '
options {
        directory "var/cache/bind";
        //dnssec-validation auto;
        allow-query{any;};
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};
' > /etc/bind/named.conf.options

echo 'zone "baratayuda.abimanyu.f07.com"{
        type master;
        file "/etc/bind/Baratayuda/baratayuda.abimanyu.f07.com";
};'> /etc/bind/named.conf.local

mkdir -p /etc/bind/Baratayuda
cp /etc/bind/db.local /etc/bind/Baratayuda/baratayuda.abimanyu.f07.com

echo '
$TTL    604800
@       IN      SOA     baratayuda.abimanyu.f07.com. root.baratayuda.abimanyu.f07.com. (
                        2023101101      ; Serial
                        604800          ; Refresh
                        86400           ; Retry
                        2419200         ; Expire
                        604800 )        ; Negative Cache TTL
;
@               IN      NS      baratayuda.abimanyu.f07.com.
@               IN      A       10.55.3.3       ; IP Abimanyu
www             IN      CNAME   baratayuda.abimanyu.f07.com.
' > /etc/bind/Baratayuda/baratayuda.abimanyu.f07.com

service bind9 restart

Setelah semua berhasil di-setup, untuk melakukan testing cukup melakukan Ping pada baratayuda.abimanyu.f07.com atau www.baratayuda.abimanyu.f07.com dan juga Alias dapat dilihat dengan menjalankan host melalui CNAME

ping baratayuda.abimanyu.f07.com -c 3
ping www.baratayuda.abimanyu.f07.com -c 3
host -t CNAME www.baratayuda.abimanyu.f07.com 

Test Result

Test tanpa www

baratayuda

Test menggunakan www

baratayudaWWW

Test Alias dari www

cnameBarata

Question 8 - DNS

Untuk informasi yang lebih spesifik mengenai Ranjapan Baratayuda, buatlah subdomain melalui Werkudara dengan akses rjp.baratayuda.abimanyu.yyy.com dengan alias www.rjp.baratayuda.abimanyu.yyy.com yang mengarah ke Abimanyu.

Dikarenakan sebelumnya telah melakukan delegasi terhadap DNS Slave dan sekarang diberi perintah untuk melakukan subdomain terhadap delegasi domain tadi.

Script Solution

Langkah yang dilakukan yaitu perlu untuk melakukan penambahan pada Werkudara / DNS Slave sebagai berikut

rjp             IN      A       10.55.3.3     ; IP Abimanyu
www.rjp         IN      CNAME   rjp.baratayuda.abimanyu.f07.com.
  • Node Werkudara
echo '
$TTL    604800
@       IN      SOA     baratayuda.abimanyu.f07.com. root.baratayuda.abimanyu.f07.com. (
                        2023101101      ; Serial
                        604800          ; Refresh
                        86400           ; Retry
                        2419200         ; Expire
                        604800 )        ; Negative Cache TTL
;
@               IN      NS      baratayuda.abimanyu.f07.com.
@               IN      A       10.55.3.3       ; IP Abimanyu
www             IN      CNAME   baratayuda.abimanyu.f07.com.
rjp             IN      A       10.55.3.3       ; IP Abimanyu
www.rjp         IN      CNAME   rjp.baratayuda.abimanyu.f07.com.
' > /etc/bind/Baratayuda/baratayuda.abimanyu.f07.com

service bind9 restart

Setelah berhasil ditambahkan dan restart bind9, untuk melakukan testing cukup dengan melakukan Ping pada rjp.baratayuda.abimanyu.f07.com atau www.rjp.baratayuda.abimanyu.f07.com dan juga Alias dapat dilihat dengan menjalankan CNAME

ping rjp.baratayuda.abimanyu.f07.com -c 3
ping www.rjp.baratayuda.abimanyu.f07.com -c 3
host -t CNAME www.rjp.baratayuda.abimanyu.f07.com

Test Result

Test tanpa www

rjpbaratayuda

Test menggunakan www

rjpbaratayudaWWW

Test Alias dari www

cnamerjpBarata

Question 9 - Web Server

Arjuna merupakan suatu Load Balancer Nginx dengan tiga worker (yang juga menggunakan nginx sebagai webserver) yaitu Prabakusuma, Abimanyu, dan Wisanggeni. Lakukan deployment pada masing-masing worker.

Untuk melakukan load balancer, kita dapat melakukan konfigurasi pada node Arjuna sebagai load balancer, node : Prabakusuma, Abimanyu, dan Wisanggeni sebagai workernya. Konfigurasi ini dapat dijadikan ke dalam satu script bash, namun dibedakan untuk setiap fungsinya

Script Solution

Pada node Arjuna, dapat melakukan konfigurasi berikut (Beberapa perintah sudah sempat disinggung sebelumnya pada bagian Preparation, namun ditulis kembali).

echo -e '
nameserver 192.168.122.1
nameserver 10.55.1.4 # IP Yudhistira
nameserver 10.55.1.5 # IP Werkudara
' > /etc/resolv.conf

ping google.com -c 3
apt-get update
apt-get install bind9 nginx
apt-get install dnsutils -y
apt-get install lynx -y

Setelah itu, untuk load balancer pada node Arjuna, dapat dilakukan melalui konfigurasi berikut

echo '
 upstream myweb  {
 	server 10.55.3.2; #IP Prabakusuma
 	server 10.55.3.3; #IP Abimanyu
 	server 10.55.3.4; #IP Wisanggeni
 }

 server {
 	listen 80;
 	server_name arjuna.f07.com www.arjuna.f07.com;

 	location / {
 	proxy_pass http://myweb;
 	}
 }
' > /etc/nginx/sites-available/lb-arjuna.f07

 ln -s /etc/nginx/sites-available/lb-arjuna.f07 /etc/nginx/sites-enabled
 service nginx restart

Untuk worker, pada node Prabakusuma, dapat melakukan konfigurasi berikut

echo -e '
nameserver 192.168.122.1
nameserver 10.55.1.4 # IP Yudhistira
nameserver 10.55.1.5 # IP Werkudara
' > /etc/resolv.conf
apt-get update && apt install nginx php php-fpm -y
php -v
apt-get install lynx -y
apt-get install dnsutils -y

mkdir /var/www/praktikum-jarkom

echo '
 <?php
  echo "Halo, Kamu berada di Prabakusuma";
 ?>
' > /var/www/praktikum-jarkom/index.php

echo '
 server {

 	listen 80;

 	root /var/www/praktikum-jarkom;

 	index index.php index.html index.htm;
 	server_name _;

 	location / {
 			try_files $uri $uri/ /index.php?$query_string;
 	}

 	# pass PHP scripts to FastCGI server
 	location ~ \.php$ {
 	include snippets/fastcgi-php.conf;
 	fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 	}

 location ~ /\.ht {
 			deny all;
 	}

 	error_log /var/log/nginx/arjuna.f07_error.log;
 	access_log /var/log/nginx/arjuna.f07_access.log;
 }
' > /etc/nginx/sites-available/arjuna.f07

ln -s /etc/nginx/sites-available/arjuna.f07 /etc/nginx/sites-enabled
service php7.0-fpm start
rm /etc/nginx/sites-enabled/default
service nginx restart

Untuk worker, pada node Abimanyu, dapat melakukan konfigurasi berikut

echo -e '
nameserver 192.168.122.1
nameserver 10.55.1.4 # IP Yudhistira
nameserver 10.55.1.5 # IP Werkudara
' > /etc/resolv.conf
apt-get update && apt install nginx php php-fpm -y
php -v
apt-get install lynx -y
apt-get install dnsutils -y

mkdir /var/www/praktikum-jarkom

echo '
 <?php
  echo "Halo, Kamu berada di Abimanyu";
 ?>
' > /var/www/praktikum-jarkom/index.php

echo '
 server {

 	listen 80;

 	root /var/www/praktikum-jarkom;

 	index index.php index.html index.htm;
 	server_name _;

 	location / {
 			try_files $uri $uri/ /index.php?$query_string;
 	}

 	# pass PHP scripts to FastCGI server
 	location ~ \.php$ {
 	include snippets/fastcgi-php.conf;
 	fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 	}

 location ~ /\.ht {
 			deny all;
 	}

 	error_log /var/log/nginx/arjuna.f07_error.log;
 	access_log /var/log/nginx/arjuna.f07_access.log;
 }
' > /etc/nginx/sites-available/arjuna.f07

ln -s /etc/nginx/sites-available/arjuna.f07 /etc/nginx/sites-enabled
service php7.0-fpm start
rm /etc/nginx/sites-enabled/default
service nginx restart

Untuk worker, pada node Wisanggeni, dapat melakukan konfigurasi berikut

echo -e '
nameserver 192.168.122.1
nameserver 10.55.1.4 # IP Yudhistira
nameserver 10.55.1.5 # IP Werkudara
' > /etc/resolv.conf
apt-get update && apt install nginx php php-fpm -y
php -v
apt-get install lynx -y
apt-get install dnsutils -y

mkdir /var/www/praktikum-jarkom

echo '
 <?php
  echo "Halo, Kamu berada di Wisanggeni";
 ?>
' > /var/www/praktikum-jarkom/index.php

echo '
 server {

 	listen 80;

 	root /var/www/praktikum-jarkom;

 	index index.php index.html index.htm;
 	server_name _;

 	location / {
 			try_files $uri $uri/ /index.php?$query_string;
 	}

 	# pass PHP scripts to FastCGI server
 	location ~ \.php$ {
 	include snippets/fastcgi-php.conf;
 	fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 	}

 location ~ /\.ht {
 			deny all;
 	}

 	error_log /var/log/nginx/arjuna.f07_error.log;
 	access_log /var/log/nginx/arjuna.f07_access.log;
 }
' > /etc/nginx/sites-available/arjuna.f07

ln -s /etc/nginx/sites-available/arjuna.f07 /etc/nginx/sites-enabled
service php7.0-fpm start
rm /etc/nginx/sites-enabled/default
service nginx restart

Test Result

Lakukan pengujian pada node client seperti Nakula. Tuliskan perintah berikut

9 test

Maka akan diperoleh hasil sebagai berikut. Hasil ini dapat berubah-ubah jika perintah pengujian di atas dijalankan kembali

Hasil menampilkan Prabakusuma

9a testpra

Hasil menampilkan Abimanyu

9b testabi

Hasil menampilkan Wisanggeni

9c testwis

Question 10 - Web Server

Kemudian gunakan algoritma Round Robin untuk Load Balancer pada Arjuna. Gunakan server_name pada soal nomor 1. Untuk melakukan pengecekan akses alamat web tersebut kemudian pastikan worker yang digunakan untuk menangani permintaan akan berganti ganti secara acak. Untuk webserver di masing-masing worker wajib berjalan di port 8001-8003. Contoh Prabakusuma:8001, Abimanyu:8002, Wisanggeni:8003

Setelah sebelumnya berhasil melakukan deployment pada setiap worker, untuk menerapkan Round Robin dan setiap worker ditentukan port-nya. Kita hanya perlu mengubah beberapa konfigurasi pada load balancer Arjuna, dan ketiga workernya.

Script Solution

Untuk load balancer Arjuna, dapat mengubah konfigurasinya menjadi seperti berikut ini. Disini ditambahkan :800N pada setiap baris server worker-nya, dengan N merupakan angka 1 hingga 3 untuk membedakan port pada setiap workernya.

echo '
 upstream myweb  {
 	server 10.55.3.2:8001; #IP Prabakusuma
 	server 10.55.3.3:8002; #IP Abimanyu
 	server 10.55.3.4:8003; #IP Wisanggeni
 }

 server {
 	listen 80;
 	server_name arjuna.f07.com;

 	location / {
 	proxy_pass http://myweb;
 	}
 }
' > /etc/nginx/sites-available/lb-arjuna.f07
ln -s /etc/nginx/sites-available/lb-arjuna.f07 /etc/nginx/sites-enabled
service nginx restart

Adapun untuk worker-nya, terdapat tambahan keterangan terkait port yang digunakan. Pada konfigurasi ini, dapat dilihat pada baris listen 800N, dimana N merupakan angka menyesuaikan dengan masing-masing port worker. Disini juga ditambahkan satu perintah echo (echo yang ketiga) yang menampilkan pesan tambahan terkait port yang digunakan oleh setiap worker.

echo '
 <?php
  echo "Halo, Kamu berada di [Nama Worker]";
 ?>
' > /var/www/praktikum-jarkom/index.php

echo '
server {

 	listen 800N;

 	root /var/www/praktikum-jarkom;

 	index index.php index.html index.htm;
 	server_name _;

 	location / {
 			try_files $uri $uri/ /index.php?$query_string;
 	}

 	# pass PHP scripts to FastCGI server
 	location ~ \.php$ {
 	include snippets/fastcgi-php.conf;
 	fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 	}

location ~ /\.ht {
 			deny all;
 	}

 	error_log /var/log/nginx/arjuna.f07_error.log;
 	access_log /var/log/nginx/arjuna.f07_access.log;
 }
' > /etc/nginx/sites-available/arjuna.f07

nginx_port=$(awk '/listen/ {print $2}' /etc/nginx/sites-available/arjuna.f07)
echo "
 <?php
  echo ',tepatnya di port : $nginx_port'
 ?>
" >> /var/www/praktikum-jarkom/index.php

service php7.0-fpm start
rm /etc/nginx/sites-enabled/default
service nginx restart

Test Result

Lakukan pengujian pada node client seperti Nakula. Tuliskan perintah berikut

9 test

Hasil menampilkan Prabakusuma

10a testpra

Hasil menampilkan Abimanyu

10b testabi

Hasil menampilkan Wisanggeni

10c testwis

Question 11 - Web Server

Selain menggunakan Nginx, lakukan konfigurasi Apache Web Server pada worker Abimanyu dengan web server www.abimanyu.yyy.com. Pertama dibutuhkan web server dengan DocumentRoot pada /var/www/abimanyu.yyy

Diperlukan beberapa konfigurasi setup jika belum melakukan setup pada Node Abimanyu, seperti

apt-get update
apt-get install apache2 -y
apt-get install libapache2-mod-php7.0 -y
service apache2 start
apt-get install wget -y
apt-get install unzip -y
apt-get install php -y

Kemudian juga menjalankan setup-setup berikut

wget -O '/var/www/abimanyu.f07.com' 'https://drive.usercontent.google.com/download?id=1a4V23hwK9S7hQEDEcv9FL14UkkrHc-Zc'
unzip -o /var/www/abimanyu.f07.com -d /var/www/
mv /var/www/abimanyu.yyy.com /var/www/abimanyu.f07
rm /var/www/abimanyu.f07.com
rm -rf /var/www/abimanyu.yyy.com

Script Solution

  • Node Abimanyu
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/abimanyu.f07.com.conf

rm /etc/apache2/sites-available/000-default.conf

echo -e '<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/abimanyu.f07

  ServerName abimanyu.f07.com
  ServerAlias www.abimanyu.f07.com

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>' > /etc/apache2/sites-available/abimanyu.f07.com.conf

a2ensite abimanyu.f07.com.conf

service apache2 restart

Kemudian setelah itu, untuk menampilkan pada client yaitu menggunakan lynx yang di-install (Jangan lupa untuk menambahkan nameserver router pada saat penginstalan)

apt-get install lynx -y

Setelah itu dapat langsung dijalankan dengan command berikut

lynx abimanyu.f07.com

Test Result

11

Question 12 - Web Server

Setelah itu ubahlah agar url www.abimanyu.yyy.com/index.php/home menjadi www.abimanyu.yyy.com/home.

Untuk menyelesaikan permasalahan ini, diperlukan bantuan Directory sebagai tools untuk rewrite Indexes agar dapat melakukan Alias pada domain. Penerapan nya sebagai berikut

<Directory /var/www/abimanyu.f07/index.php/home>
  Options +Indexes
</Directory>

Alias "/home" "/var/www/abimanyu.f07/index.php/home"

Script Solution

  • Node Abimanyu
echo -e '<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/abimanyu.f07
  ServerName abimanyu.f07.com
  ServerAlias www.abimanyu.f07.com

  <Directory /var/www/abimanyu.f07/index.php/home>
          Options +Indexes
  </Directory>

  Alias "/home" "/var/www/abimanyu.f07/index.php/home"

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>' > /etc/apache2/sites-available/abimanyu.f07.com.conf

service apache2 restart

Setelah itu, lakukan testing dengan menjalankan command berikut pada Node Client

lynx abimanyu.f07.com/home

Test Result

12

Question 13 - Web Server

Selain itu, pada subdomain www.parikesit.abimanyu.yyy.com, DocumentRoot disimpan pada /var/www/parikesit.abimanyu.yyy

Dalam menyelesaikan permasalahan tersebut, disini kita sebelumnya diperlukan beberapa konfigurasi setup seperti berikut

wget -O '/var/www/parikesit.abimanyu.f07.com' 'https://drive.usercontent.google.com/download?id=1LdbYntiYVF_NVNgJis1GLCLPEGyIOreS'
unzip -o /var/www/parikesit.abimanyu.f07.com -d /var/www/
mv /var/www/parikesit.abimanyu.yyy.com /var/www/parikesit.abimanyu.f07
rm /var/www/parikesit.abimanyu.f07.com
rm -rf /var/www/parikesit.abimanyu.yyy.com
mkdir /var/www/parikesit.abimanyu.f07/secret

Dan dilanjut dengan melakukan konfigurasi pada ServerName dan ServerAlias

Script Solution

echo -e '<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/parikesit.abimanyu.f07
  ServerName parikesit.abimanyu.f07.com
  ServerAlias www.parikesit.abimanyu.f07.com

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>' > /etc/apache2/sites-available/parikesit.abimanyu.f07.com.conf

a2ensite parikesit.abimanyu.f07.com.conf

service apache2 restart

Setelah itu, testing dilakukan pada Node Client dengan menjalankan command berikut

lynx parikesit.abimanyu.f07.com

Test Result

13

Question 14 - Web Server

Pada subdomain tersebut folder /public hanya dapat melakukan directory listing sedangkan pada folder /secret tidak dapat diakses (403 Forbidden).

Dalam menyelesaikan permasalahan tersebut cukup simple, prinsipnya jika kita mau mengizinkan public agar dapat melakukan directory listing kita menggunakan Options +Indexes. Sedangkan agar suatu folder tidak dapat di akses (forbidden), kita dapat menggunakan Option -Indexes.

Script Solution

  • Node Abimanyu
echo -e '<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/parikesit.abimanyu.f07
  ServerName parikesit.abimanyu.f07.com
  ServerAlias www.parikesit.abimanyu.f07.com

  <Directory /var/www/parikesit.abimanyu.f07/public>
          Options +Indexes
  </Directory>

  <Directory /var/www/parikesit.abimanyu.f07/secret>
          Options -Indexes
  </Directory>

  Alias "/public" "/var/www/parikesit.abimanyu.f07/public"
  Alias "/secret" "/var/www/parikesit.abimanyu.f07/secret"

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>' > /etc/apache2/sites-available/parikesit.abimanyu.f07.com.conf

service apache2 restart

Setelah itu, untuk membuktikan nya cukup dengan memasukkan command berikut pada Node Client

lynx parikesit.abimanyu.f07.com/public
lynx parikesit.abimanyu.f07.com/secret

Test Result

Test public

pariPublic

Test secret

pariSecret

Laman secret setelah alert

nextPariSecret

Question 15 - Web Server

Buatlah kustomisasi halaman error pada folder /error untuk mengganti error kode pada Apache. Error kode yang perlu diganti adalah 404 Not Found dan 403 Forbidden

Dalam membuat page error html, didapatkan dari file resources yang telah diberikan, untuk detailnya ada pada folder parikesit.abimanyu.f07.com/public/error/. Disana terdapat 2 file yaitu 403.html dan 404.html.
Untuk menyelesaikan-nya juga menggunakan ErrorDocument yang berfungsi melakukan redirect terhadap file yang diinginkan ketika mendapatkan masalah ketika mengakses domain yang telah ada sebelumnya. Sehingga penerapan konfigurasinya dengan menambahkan berikut

ErrorDocument 404 /error/404.html
ErrorDocument 403 /error/403.html

Script Solution

  • Node Abimanyu
echo -e '<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/parikesit.abimanyu.f07
  ServerName parikesit.abimanyu.f07.com
  ServerAlias www.parikesit.abimanyu.f07.com

  <Directory /var/www/parikesit.abimanyu.f07/public>
          Options +Indexes
  </Directory>

  <Directory /var/www/parikesit.abimanyu.f07/secret>
          Options -Indexes
  </Directory>

  Alias "/public" "/var/www/parikesit.abimanyu.f07/public"
  Alias "/secret" "/var/www/parikesit.abimanyu.f07/secret"

  ErrorDocument 404 /error/404.html
  ErrorDocument 403 /error/403.html

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>' > /etc/apache2/sites-available/parikesit.abimanyu.f07.com.conf

service apache2 restart

Setelah itu, untuk membuktikan custom error cukup dengan menjalankan command berikut pada Node Client

lynx parikesit.abimanyu.f07.com/testerror
lynx parikesit.abimanyu.f07.com/secret

Test Result

Test pada laman 404 Error

error1

Laman 404 Error setelah alert

nextError

Test pada laman 403 Forbidden

forbidden1

Laman 403 Forbidden setelah alert

nextSecret

Question 16 - Web Server

Buatlah suatu konfigurasi virtual host agar file asset www.parikesit.abimanyu.yyy.com/public/js menjadi www.parikesit.abimanyu.yyy.com/js

Agar www.parikesit.abimanyu.f07.com/public/js dapat diakses hanya dengan masuk ke www.parikesit.abimanyu.f07.com/js, kita dapat menambahkan Alias ke dalam file parikesit.abimanyu.f07.com.conf

Script Solution

Pada file parikesit.abimanyu.f07.com.conf tambahkan baris Alias "/js" "/var/www/parikesit.abimanyu.f07/public/js" seperti ini

echo -e '<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/parikesit.abimanyu.f07
  ServerName parikesit.abimanyu.f07.com
  ServerAlias www.parikesit.abimanyu.f07.com

  <Directory /var/www/parikesit.abimanyu.f07/public>
          Options +Indexes
  </Directory>

  <Directory /var/www/parikesit.abimanyu.f07/secret>
          Options -Indexes
  </Directory>

  Alias "/public" "/var/www/parikesit.abimanyu.f07/public"
  Alias "/secret" "/var/www/parikesit.abimanyu.f07/secret"
  Alias "/js" "/var/www/parikesit.abimanyu.f07/public/js"

  ErrorDocument 404 /error/404.html
  ErrorDocument 403 /error/403.html

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>' > /etc/apache2/sites-available/parikesit.abimanyu.f07.com.conf

Setelah itu lakukan perintah service apache2 restart

Test Result

Ketika dilakukan pengujian pada client node Nakula,

16 test

Diperoleh hasil yang sama ketika mengakses www.parikesit.abimanyu.f07.com/public/js, yaitu sebagai berikut

16a testresult

Question 17 - Web Server

Agar aman, buatlah konfigurasi agar www.rjp.baratayuda.abimanyu.yyy.com hanya dapat diakses melalui port 14000 dan 14400.

Untuk mengizinkan akses hanya pada port 14000 dan 14400, kita dapat mengatur port pada virtual host dan konfigurasi Listening port pada file ports.conf

Script Solution

Setelah melakukan pengaturan awal (seperti download dari drive), kita dapat memberi keterangan <VirtualHost *:14000 *:14400> pada virtual host dengan membuat konfigurasi pada file /etc/apache2/sites-available/rjp.baratayuda.abimanyu.f07.com.conf sebagai berikut

echo -e '<VirtualHost *:14000 *:14400>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/rjp.baratayuda.abimanyu.f07
  ServerName rjp.baratayuda.abimanyu.f07.com
  ServerAlias www.rjp.baratayuda.abimanyu.f07.com

  ErrorDocument 404 /error/404.html
  ErrorDocument 403 /error/403.html

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>' > /etc/apache2/sites-available/rjp.baratayuda.abimanyu.f07.com.conf

Setelah itu, kita perlu menambah Listening Port pada file /etc/apache2/ports.conf. Berikut konfigurasinya

echo -e '# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 80
Listen 14000
Listen 14400

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet' > /etc/apache2/ports.conf

Setelah itu, kita perlu melakukan aktivasi dan restart server Apache2

a2ensite rjp.baratayuda.abimanyu.f07.com.conf
service apache2 restart

Test Result

Untuk pengujian dengan mengakses port 14000 atau 14400, diperoleh hasil sebagai berikut

17 test

17a testresult

Adapun untuk pengujian akses dengan port yang salah, diperoleh hasil sebagai berikut

17b testnotvalid

17c testnotvalidresult

Question 18 - Web Server

Untuk mengaksesnya buatlah autentikasi username berupa “Wayang” dan password “baratayudayyy” dengan yyy merupakan kode kelompok. Letakkan DocumentRoot pada /var/www/rjp.baratayuda.abimanyu.yyy

Untuk autentikasi username dan password, kita dapat menambahkan pengaturan seperti AuthType, AuthName, AuthUserFile, dan Require valid-user pada pengaturan <Directory /x> ... </Directory> di dalam file /etc/apache2/sites-available/rjp.baratayuda.abimanyu.f07.com.conf.

Script Solution

Untuk konfigurasinya adalah sebagai berikut

echo -e '<VirtualHost *:14000 *:14400>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/rjp.baratayuda.abimanyu.f07
  ServerName rjp.baratayuda.abimanyu.f07.com
  ServerAlias www.rjp.baratayuda.abimanyu.f07.com

  <Directory /var/www/rjp.baratayuda.abimanyu.f07>
          AuthType Basic
          AuthName "Restricted Content"
          AuthUserFile /etc/apache2/.htsecure
          Require valid-user
  </Directory>

  ErrorDocument 404 /error/404.html
  ErrorDocument 403 /error/403.html

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>' > /etc/apache2/sites-available/rjp.baratayuda.abimanyu.f07.com.conf

Setelah itu, dapat menjalankan perintah berikut

htpasswd -c -b /etc/apache2/.htsecure Wayang baratayudaf07

dimana -c berarti created, -b berarti fungsi bcrypt untuk mengubah password menjadi sebuah hash. Lalu Wayang sebagai username dan baratayudaf07 sebagai password. Setelah itu lakukan aktivasi dan restart apache2 server.

a2ensite rjp.baratayuda.abimanyu.f07.com.conf
service apache2 restart

Test Result

Untuk pengujian, dapat kembali mengakses lynx rjp.baratayuda.abimanyu.f07.com:14000 atau lynx rjp.baratayuda.abimanyu.f07.com:14400 pada node client Nakula

17 test

setelah itu akan muncul pesan peringatan, yang dilanjutkan dengan tampilan untuk mengisikan username dan password autentikasi

18a testwarning

18b  testuser

18c testpass

Setelah mengisikan username Wayang dan password baratayudaf07, diperoleh hasil sebagai berikut

18d testresult

Question 19 - Web Server

Buatlah agar setiap kali mengakses IP dari Abimanyu akan secara otomatis dialihkan ke www.abimanyu.yyy.com (alias)

Untuk mengakses www.abimanyu.f07.com dengan melalui IP Abimanyu, diperlukan sebuah Redirect ke www.abimanyu.f07.com. Kita dapat memasukkan konfigurasi ini ke dalam 000-default.conf yang merupakan pengaturan default dari service Apache

Script Solution

Berikut konfigurasinya

echo -e '<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Redirect / http://www.abimanyu.f07.com/
</VirtualHost>' > /etc/apache2/sites-available/000-default.conf

apache2ctl configtest

service apache2 restart

# Test
# lynx 10.55.3.3

Test Result

Kita dapat menjalankan pengujian sebagai berikut pada node client Nakula dengan menggunakan lynx ditujukan pada IP Abimanyu yaitu 10.55.3.3

19 test

Diperoleh hasil sebagai berikut

19a testresult

Question 20 - Web Server

Karena website www.parikesit.abimanyu.yyy.com semakin banyak pengunjung dan banyak gambar gambar random, maka ubahlah request gambar yang memiliki substring “abimanyu” akan diarahkan menuju abimanyu.png.

Untuk menjawab soal ini, kita perlu mengatur pemetaan URL dengan bantuan a2enmod rewrite.

Script Solution

Berikut konfigurasinya

Pertama, kita perlu menjalankan perintah

a2enmod rewrite

Setelah itu, kita menjalankan pengaturan untuk ketentuan Rewrite-nya.

echo 'RewriteEngine On
RewriteCond %{REQUEST_URI} ^/public/images/(.*)(abimanyu)(.*\.(png|jpg))
RewriteCond %{REQUEST_URI} !/public/images/abimanyu.png
RewriteRule abimanyu http://parikesit.abimanyu.f07.com/public/images/abimanyu.png$1 [L,R=301]' > /var/www/parikesit.abimanyu.f07/.htaccess

Berikut keterangan terkait konfigurasi kode di atas

RewriteEngine On: Ini mengaktifkan mod_rewrite untuk server web. Tanpa baris ini, aturan pemetaan ulang URL tidak akan diterapkan.

RewriteCond %{REQUEST_URI} ^/public/images/(.*)(abimanyu)(.*\.(png|jpg)): Ini adalah kondisi pertama yang memeriksa apakah URL memenuhi pola tertentu. Kondisi ini memeriksa apakah URL dimulai dengan /public/images/ diikuti oleh teks apa pun, kemudian abimanyu, kemudian teks lagi, dan diakhiri dengan .png atau .jpg.

RewriteCond %{REQUEST_URI} !/public/images/abimanyu.png: Ini adalah kondisi kedua yang memeriksa apakah URL tidak mengarah ke /public/images/abimanyu.png. Ini dirancang untuk mencegah aturan rewrite diterapkan jika URL sudah mengarah ke gambar abimanyu.png.

RewriteRule abimanyu http://parikesit.abimanyu.f07.com/public/images/abimanyu.png$1 [L,R=301]: Aturan pemetaan ulang ini digunakan ketika kedua kondisi di atas terpenuhi. Aturan ini akan mengarahkan URL yang memenuhi pola tersebut ke http://parikesit.abimanyu.f07.com/public/images/abimanyu.png, menambahkan apapun yang cocok dengan (.*) pada URL target.

Setelah itu terdapat konfigurasi virtual host sebagai berikut

echo -e '<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/parikesit.abimanyu.f07

  ServerName parikesit.abimanyu.f07.com
  ServerAlias www.parikesit.abimanyu.f07.com

  <Directory /var/www/parikesit.abimanyu.f07/public>
          Options +Indexes
  </Directory>

  <Directory /var/www/parikesit.abimanyu.f07/secret>
          Options -Indexes
  </Directory>

  <Directory /var/www/parikesit.abimanyu.f07>
          Options +FollowSymLinks -Multiviews
          AllowOverride All
  </Directory>

  Alias "/public" "/var/www/parikesit.abimanyu.f07/public"
  Alias "/secret" "/var/www/parikesit.abimanyu.f07/secret"
  Alias "/js" "/var/www/parikesit.abimanyu.f07/public/js"

  ErrorDocument 404 /error/404.html
  ErrorDocument 403 /error/403.html

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>' > /etc/apache2/sites-available/parikesit.abimanyu.f07.com.conf

Terakhir, jalankan perintah berikut

a2enmod rewrite
service apache2 restart

Test Result

Untuk pengujian dapat dilakukan sebagai berikut, dimana kita mencoba menjalankan perintah lynx yang diikuti parikesit.abimanyu.f07.com/public/images/ lalu disertai nama file. Nama file disini dapat berupa gambar, dll. Konfigurasi Rewrite akan melakukan penyaringan seperti ketentuan kondisi di atas.

20 test

Diperoleh hasil sebagai berikut

20a testresult

Jika dilakukan percobaan dengan tidak sesuai ketentuan, misalnya pada percobaan terakhir yaitu lynx parikesit.abimanyu.f07.com/public/images/notabimanyujustmuseum.177013, maka akan diperoleh hasil sebagai berikut

20b testresultnotvalid

Obstacle

  • Sempat stuck pada Soal 9, namun masih tetap solved.
  • Sempat chaos waktu menjalankan script yang menjadi 1 script saja, tapi hamdalah bisa teratasi dengan mengubah cara script :D

Thank you modul 2!

About

This is a repo in Bahasa, for DNS & Web Server practice

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages