thoriqagfi / Jarkom-Modul-2-B08-2023

Modul 2 Computer Network Practical with Topic DNS and Web Server

Home Page:https://github.com/arsitektur-jaringan-komputer/Modul-Jarkom/tree/master/Modul-2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Jarkom-Modul-1-B08-2023

Nama NRP Kelas
Adrian Karuna Soetikno 5025211019 Jarkom B
Thariq Agfi Hermawan 5025211215 Jarkom B

Soal 1

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 dengan pembagian sebagai berikut. Folder topologi dapat diakses pada drive berikut

Pertama, kita lakukan konfigurasi IP dari setiap server

Pandudewanata

image

Switch 1


Nakula

image

Sadewa

image

Yudhistira

image

Werkudara

image

Switch 2


Arjuna

image

Switch 3


Prabukusuma

image

Abimanyu

image

Wisanggeni

image

Setelah konfigurasi berhasil, kita mendeklarasikan iptables pada .bashrc

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.182.0.0/16

Selanjutnya, kita masukkan nameserver 192.168.122 ke /etc/resolv.conf untuk server yang memerlukan internet :

echo nameserver 192.168.122.1 >> /etc/resolv.conf

Jika konfigurasi berhasil, maka :

image

Soal 2

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

DNS master : Yudhistira DNS Slave : Werkudara Load Balancer : Arjuna Web Server : Prabakusuma, Abimanyu, dan Wisanggeni

Pada Yudhistira (DNS Master) kita akan lakukan instalasi bind9 dan konfigurasi sebagai berikut :

  • Instalasi bind9
apt-get update
apt-get install bind9 -y
service bind9 start
  • Konfigurasi /etc/bind/named.conf.local
zone "arjuna.B08.com" {
type master;
file "/etc/bind/jarkom/arjuna.B08.com";
};

zone "abimanyu.B08.com" {
type master;
file "/etc/bind/jarkom/abimanyu.B08.com";
};

Soal 3

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

  • Make directory jarkom pada /etc/bind

  • Konfigurasi /etc/bind.jarkom/arjuna.B08.com

    image

  • Konfigurasi /etc/bind/jarkom/abimanyu.B08.com

    image

Hasil :

image

Soal 4

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.

image

Hasil :

image

Soal 5

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

Untuk melakukan reverse domain, kita lakukan konfigurasi pada domain reverse address => /etc/bind/[1 atau 2].182.192.in-addr.arpa dan named.conf.local

Sebelum melakukan konfigurasi, kita lakukan copy file db.local lebih dulu :

cp /etc/bind/db.local /etc/bind/jarkom/1.182.192.in-addr.arpa
cp /etc/bind/db.local /etc/bind/jarkom/2.182.192.in-addr.arpa

Selanjutnya

  • Edit named.conf.local

    image

  • Edit /etc/bind/[1 atau 2].182.192.in-addr.arpa

    • Arjuna

      zone "1.182.192.in-addr.arpa" {
        type master;
        file "/etc/bind/jarkom/1.182.192.in-addr.arpa";
      };
      
    • Abimanyu

      zone "2.182.192.in-addr.arpa" {
        type master;
        file "/etc/bind/jarkom/2.182.192.in-addr.arpa";
      };
    

Jangan lupa untuk melakukan service bind9 restart. Kita akan melakukan test di client (Sadewa). Hasilnya adalah

image

Soal 6

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

Untuk melakukan DNS Slave, kita melakukan konfigurasi pada DNS Master (Yudhistira) di named.conf.local

image

Selanjutnya, kita lakukan konfigurasi pada Server Slave (Werkudara) sebagai berikut

apt-get update
apt-get install bind9 -y
service bind9 start

Setelahnya, kita konfigurasi named.conf.local pada Werkudara :

image

Untuk melakukan test, kita mematikan service pada Yudhistira terlebih dulu, kemudian kita lakukan test pada Client server

image

image

Soal 7

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.

Kita menambahkan

image

ns1        IN    NS    192.182.1.5
baratayuda IN    NS    ns1

Ini merupakan tahapan untuk mendelegasikan baratayuda.B08.com ke IP Werkudara. Selanjutnya, tak lupa kita menambahkan /etc/bind/named.conf.options

allow-query(any;);

Setelah itu, kita lakukan konfigurasi pada server Werkudara dengan menambahkan named.conf.local

image

Kemudian, kita lakukan konfigurasi pada /etc/bind/delegasi/baratayuda.abimanyu.B08.com

image

Selanjutnya, kita lakukan service bind9 restart pada kedua server. Untuk melakukan testing, kita lakukan ping dari server client

image

Kita berhasil melakukan ping pada baratayuda.abimanyu.B08.com dan www.baratayuda.abimanyu.B08.com

Soal 8

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.

Untuk menambahkan subdomain rjp, kita hanya perlu menambahkannya di /etc/bind/delegasi/baratayuda.abimanyu.B08.com

image

Hasil :

image

Soal 9

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

Pertama, kita melakukan instalasi nginx dan lynx pada masing-masing worker dan load balancer

apt-get update
apt-get install nginx -y
service nginx start

Kemudian, kita juga coba mengakses masing-masing localhost dengan lynx

  • Prabukusuma

    image

  • Abimanyu

    image

  • Wisanggeni

    image

Soal 10

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.

Kita konfigurasi nginx menggunakan algoritma round robin. Pertama, kita akses server arjuna dan konfigurasi di /etc/nginx/sites-available/lb-jarkom dengan syntax

image

Selanjutnya, kita buat symlink yang mengkoneksikan antara sites-available dan sites-enabled

ln -s /etc/nginx/sites-available/arjuna.B08.com /etc/nginx/sites-enabled

Setelah itu, kita melakukan konfigurasi pada 3 worker server, yaitu Prabukusuma, Abimanyu, Wisanggeni. Sebelum melakukan konfigurasi, kita insatll tools php dan php-fpm

apt-get install php php-fpm -y
service php7.0-fpm start

Selanjutnya, untuk konfigurasi nginx pada 3 server worker

server {
  Listen 8001; (Tergantung port yang sudah di config antara 8001, 8002 dan 8003)

  root /var/www/jarkom;

  index index.php index.html index.htm
  server_name _;
  location / {
      try_files $uri /index.php?$query_string;
  }
  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/jarkom_error.log;
  access_log /var/log/nginx/jarkom_access.log;
}

Selanjutnya, kita cek di client apakah sudah berhasil atau belum dengan lynx localhost masing-masing server worker

  • Prabukusuma

    image

  • Abimanyu

    image

  • Wisanggeni

    image

Soal 11

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

Pertama, kita install apache2 pada worker Abimanyu

apt-get installapache2

Selanjutnya kita download unzip untuk download resources dari yang disediakan dan buat folder di /var/www/abimanyu.B08 dan pindah hasil download ke folder tersebut.

Setelah selesai kita perlu setting DocumentRoot pada webserver ini untuk mengarah ke /var/www/abimanyu.B08 pertama-tama masuk ke directory cd /etc/apache2/sites-available dan edit file 000-default.conf dan tambahkan script berikut

ServerName www.abimanyu.B08.com
DocumentRoot /var/www/html

Setelah selesai kita coba restart apache2 nya dan kita coba testing dengan cara lynx arjuna.B08.com/home.html di server abimanyu tersebut

image

Soal 12

Untuk membuat alias baru, maka kita harus merubah config apache2 dari abimanyu, dan menambahkan line dibawah

 <Directory /var/www/abimanyu.B08>
     Options +Indexes
 </Directory>

 Alias "/home" "/var/www/abimanyu.B08/index.php/home"
Screenshot 2023-10-15 at 13 24 36

hasil :

Screenshot 2023-10-15 at 13 27 23

Soal 13

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

untuk ini kita harus membuat config untuk parikesit.abimanyu.B08.com

<VirtualHost *:80 >
    	ServerAdmin webmaster@localhost
      ServerName parikesit.abimanyu.B08.com
    	DocumentRoot /var/www/pariketsit.abimanyu.B08
    	ServerAlias www.parikesit.abimanyu.B08.com

      <Directory /var/www/parikesit.abimanyu.B08.com>
       Options +Indexes
       </Directory>

     Alias "/home" "/var/www/parikesit.abimanyu.B08/index.php/home"

    	ErrorLog ${APACHE_LOG_DIR}/rjp_baratayuda_error.log
    	CustomLog ${APACHE_LOG_DIR}/rjp_baratayuda_access.log combined
</VirtualHost>

lalu lakukan service restart apache2 dan a2ensite apabila diperlukan. dan hasilnya adalah :

Screenshot 2023-10-15 at 13 13 18

Soal 14

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

maka kita perlu menambahkan pada config parikesit, dimana kita perlu menambahkan +indexes dan -Indexes untuk secret nya agar tidak terlihat

<VirtualHost *:80 >
    	ServerAdmin webmaster@localhost
      ServerName parikesit.abimanyu.B08.com
    	DocumentRoot /var/www/pariketsit.abimanyu.B08
    	ServerAlias www.parikesit.abimanyu.B08.com

      <Directory /var/www/parikesit.abimanyu.B08.com>
       Options +Indexes
       </Directory>
      <Directory /var/www/parikesit.abimanyu.B08/public>
       Options +Indexes
       </Directory>
      <Directory /var/www/pariketsit.abimanyu.B08/secret>
       Options -Indexes
       </Directory>

     Alias "/home" "/var/www/parikesit.abimanyu.B08/index.php/home"

    	ErrorLog ${APACHE_LOG_DIR}/rjp_baratayuda_error.log
    	CustomLog ${APACHE_LOG_DIR}/rjp_baratayuda_access.log combined
</VirtualHost>

maka hasilnya ketika di lynx adalah :

/public

Screenshot 2023-10-15 at 14 00 05

/secret

Screenshot 2023-10-15 at 13 58 13

Soal 15

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.

Untuk melakukan kustomisasi error, kita harus menambahkan pada /etc/apache2/sites-available/parikesit.abimanyu.B08.com

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

hingga confignya akan menjadi

<VirtualHost *:80 >
    	ServerAdmin webmaster@localhost
      ServerName parikesit.abimanyu.B08.com
    	DocumentRoot /var/www/pariketsit.abimanyu.B08
    	ServerAlias www.parikesit.abimanyu.B08.com

      <Directory /var/www/parikesit.abimanyu.B08.com>
       Options +Indexes
       </Directory>
      <Directory /var/www/parikesit.abimanyu.B08/public>
       Options +Indexes
       </Directory>
      <Directory /var/www/pariketsit.abimanyu.B08/secret>
       Options -Indexes
       </Directory>

      Alias "/home" "/var/www/parikesit.abimanyu.B08/index.php/home"
      ErrorDocument 404 /error/404.html
      ErrorDocument 403 /error/403.html

    	ErrorLog ${APACHE_LOG_DIR}/rjp_baratayuda_error.log
    	CustomLog ${APACHE_LOG_DIR}/rjp_baratayuda_access.log combined
</VirtualHost>

hasilnya :

Screenshot 2023-10-15 at 14 02 57 Screenshot 2023-10-15 at 14 03 08

Soal 16

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

Untuk membuat nama alias, kita dapat menambahkan script :

Alias "/js" "/var/www/parikesit.abimanyu.B08/public/js"

Hasil :

image

Soal 17

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

Pertama, kita pindahkan source dari soal ke /var/www/rjp.baratayuda.abimanyu.B08

<VirtualHost *:14000 *:14400 >
    	ServerName rjp.baratayuda.abimanyu.B08.com

    	ServerAdmin webmaster@localhost
    	DocumentRoot /var/www/rjp.baratayuda.abimanyu.B08
    	ServerAlias www.rjp.baratayuda.abimanyu.B08.com

    	ErrorLog ${APACHE_LOG_DIR}/rjp_baratayuda_error.log
    	CustomLog ${APACHE_LOG_DIR}/rjp_baratayuda_access.log combined
</VirtualHost>

Kemudian, kita tambahkan port di /etc/apache2/ports.conf

Listen 14000
Listen 14400

Selanjutnya, kita cek apakah port 14400 dan 14000 sudah terbuka dengan

netstat -nltp | grep apache

image

Hasil :

image

Soal 18

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

Pertama, kita install apache2 dan apache2-utils

sudo apt-get update
sudo apt-get install apache2 apache2-utils

Kemudian, kita buat username dan password dengan

htpasswd -nb Wayang baratayudab08 > /etc/apache2/.htpasswd

Kemudian masukan password baratayudaB08 dan tambahkan script di sites-available/rjp.baratayuda.abimanyu.B08 dengan

      <Directory />
            	Options FollowSymLinks
            	AllowOverride None
    	</Directory>
    	<Directory /var/www/rjp.baratayuda.abimanyu.B08.com>
            	AuthType Basic
            	AuthName "Restricted Content"
            	AuthUserFile /etc/apache2/.htpasswd
            	Require valid-user
    	</Directory>

Soal 19

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

Kita ubah httaccess untuk forward ke domain tersebut, tetapi kita dulu a2enmod rewrite sudah menyalah dengan cara menjalankan

a2enmod rewrite

Setelah itu kita setting .htaccess menjadi sebagai berikut sebagai berikut :

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^192\.182\.3\.3$
RewriteRule ^(.*) http://www.abimanyu.B08.com/$1 [L,R=301]

Kemudian tambahakan script berikut ini untuk menjalankan .

 # Soal No 19
    	<Directory /var/www/abimanyu.B08.com>
            	Options +FollowSymLinks -Multiviews
            	AllowOverride All
    	</Directory>

Soal 20

## Soal 19

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

Pertama, kita tambahkan .htaccess pada /var/www/parikesit.abimanyu.B08.com kemudian tambahkan syntax dibawah ini

RewriteEngine On
RewriteBase /

# Check if the request is not already /abimanyu.png
RewriteCond %{REQUEST_URI} !^/abimanyu.png$ [NC]

# Redirect requests for images containing "abimanyu" to abimanyu.png
RewriteCond %{REQUEST_URI} abimanyu [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://www.parikesit.abimanyu.B08.com/abimanyu.png [L,R=301]

Kemudian tambahakn alias dengan cara ubah parikesit.abimanyu.B08.com.conf menjadi

<VirtualHost *:80>
    	ServerName parikesit.abimanyu.B08.com

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

    	ServerAdmin webmaster@localhost
    	DocumentRoot /var/www/parikesit.abimanyu.B08.com
    	ServerAlias www.parikesit.abimanyu.B08.com

    	# Soal No 14
    	<Directory /var/www/abimanyu.B08.com/public>
            	Options +Indexes
    	</Directory>

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

    	# SOal No 16
    	Alias "/js" "/var/www/parikesit.abimanyu.B08.com/public/js"

    	# Soal No 20
     	<Directory /var/www/parikesit.abimanyu.B08.com>
            	Options +FollowSymLinks -Multiviews
            	AllowOverride All
    	</Directory>
    	Alias "/abimanyu.png" "/var/www/parikesit.abimanyu.B08.com/public/images/abimanyu.png"

    	ErrorLog ${APACHE_LOG_DIR}/parikesit_error.log
    	CustomLog ${APACHE_LOG_DIR}/parikesit_access.log combined
</VirtualHost>

About

Modul 2 Computer Network Practical with Topic DNS and Web Server

https://github.com/arsitektur-jaringan-komputer/Modul-Jarkom/tree/master/Modul-2