Nama | NRP | Kelas |
---|---|---|
Adrian Karuna Soetikno | 5025211019 | Jarkom B |
Thariq Agfi Hermawan | 5025211215 | Jarkom B |
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
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 :
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";
};
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
-
Konfigurasi /etc/bind/jarkom/abimanyu.B08.com
Hasil :
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.
Hasil :
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
-
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
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
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 :
Untuk melakukan test, kita mematikan service pada Yudhistira terlebih dulu, kemudian kita lakukan test pada Client server
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
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
Kemudian, kita lakukan konfigurasi pada /etc/bind/delegasi/baratayuda.abimanyu.B08.com
Selanjutnya, kita lakukan service bind9 restart pada kedua server. Untuk melakukan testing, kita lakukan ping dari server client
Kita berhasil melakukan ping pada baratayuda.abimanyu.B08.com dan www.baratayuda.abimanyu.B08.com
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
Hasil :
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
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
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
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
Setelah itu ubahlah agar url www.abimanyu.yyy.com/index.php/home menjadi www.abimanyu.yyy.com/home.
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"
hasil :
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 :
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
/secret
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 :
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 :
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
Hasil :
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>
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>
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>