Tutorial Reverse Proxy di Apache2
Bagian dari Tutorial Bab 4.
Pada bagian dari Bab 4 ini, praktikan akan mempraktekan cara membuat Reverse Proxy menggunakan aplikasi Apache2 di Ubuntu Server. Agar praktikum berjalan sesuai prosedur maka Asisten Mengajar Shift atau Praktikan dapat membaca tujuan dan persyaratan praktikum bab ini sebelum memulai ke bab teori dan bab praktek.
Tujuan
Tujuan Praktikum | Penjelasan |
---|---|
Memahami cara kerja proxy server | Bab ini menjelaskan bagaimana proxy server bekerja, termasuk jenis-jenis proxy server, manfaat menggunakan proxy server, dan cara kerjanya. |
Membuat transparent proxy dengan aplikasi Squid dan reverse proxy dengan aplikasi Apache2 di Ubuntu Server | Bab ini memandu praktikan langkah demi langkah untuk menginstal, mengkonfigurasi, dan mengelola transparent proxy dengan Squid dan reverse proxy dengan Apache2 di Ubuntu Server. |
Meningkatkan pengetahuan dan keterampilan teknis jaringan | Bab ini membantu praktikan mempelajari cara kerja Squid, Apache2, dan Ubuntu Server, yang merupakan keterampilan yang bermanfaat bagi administrator jaringan, system administrator, dan pengguna Linux. |
Persyaratan
Disarankan praktikan menggunakan hardware dan software sesuai pada dokumentasi ini. Apabila terdapat versi yang lumayan lampau dari versi yang direcommendasikan atau hardware yang lawas maka sebaiknya bertanya kepada Asisten Mengajar Shift.
Hardware yang dibutuhkan praktikum | Jenis |
---|---|
PC / Laptop CPU | ≥ 4 Cores |
PC / Laptop RAM | ≥ 8 GB |
PC / Laptop Storage | ≥ 10 GB |
Software yang dibutuhkan praktikum | Jenis |
---|---|
Windows OS | ≥ Versi 11 |
VirtualBox | ≥ Versi 7.0.14 |
Ubuntu Server VM | ≥ Versi 23.10 |
Internet Stabil | ≥ 10 Mbps |
Teori
Ada beberapa penjelasan singkat dari materi Bab 4 ini yang harus dimengerti oleh praktikan sebelum melanjutkan ke subbab berikutnya.
Apa itu Reverse Proxy?
Reverse proxy adalah server proxy yang bertindak sebagai perantara antara klien dan server di belakangnya. Ketika klien mengirim permintaan ke server, permintaan tersebut diterima oleh reverse proxy, yang kemudian meneruskannya ke server yang sesuai. Setelah server memproses permintaan, responsnya dikirim kembali melalui reverse proxy kepada klien.
Fungsi utama dari reverse proxy adalah untuk menyediakan akses ke server di belakangnya secara tersembunyi dari klien, sehingga server internal tidak terpapar langsung ke internet. Ini memberikan lapisan keamanan tambahan dengan menyembunyikan struktur jaringan internal dari serangan langsung.
Selain itu, reverse proxy juga dapat digunakan untuk:
-
Penyeimbangan Beban (Load Balancing): Reverse proxy dapat mendistribusikan lalu lintas masuk ke berbagai server di belakangnya berdasarkan algoritma tertentu, seperti round-robin atau berdasarkan beban kerja. Ini membantu dalam meningkatkan kinerja dan kekitalan layanan dengan menghindari overloading pada satu server tunggal.
-
Caching: Reverse proxy dapat menyimpan salinan dari sumber daya yang diminta oleh klien dalam cache. Ketika klien mengakses kembali sumber daya yang sama, reverse proxy dapat mengirimkannya langsung dari cache tanpa perlu mengakses server di belakangnya. Ini membantu dalam meningkatkan kinerja dan mengurangi beban pada server backend.
-
SSL Termination: Reverse proxy dapat menangani SSL/TLS handshake dengan klien dan kemudian meneruskan lalu lintas dalam bentuk terenkripsi ke server backend. Ini mengurangi beban pada server backend dan memungkinkan untuk mengelola sertifikat SSL secara sentral di reverse proxy.
-
Pengalihan Lalu Lintas: Reverse proxy dapat melakukan pengalihan lalu lintas berdasarkan aturan tertentu, seperti mempercepat akses ke konten statis atau membatasi akses ke sumber daya tertentu.
Reverse proxy merupakan komponen penting dalam arsitektur jaringan yang kompleks, seperti aplikasi web berbasis mikro, infrastruktur cloud, dan layanan web tingkat perusahaan.
Praktek
Ada beberapa poin penting yang harus semua ketahui sebelum ke subbab selanjutnya.
Kalau sudah tidak ada kendala, selanjutnya praktikum dapat memulai ke subab berikutnya.
Pindah ke VM Ubuntu DNS dan Web
Edit Domain di NS Bind9
Nyalakan VM Ubuntu DNS dan Web yang telah diimport pada bab 1 dengan cara klik VM Ubuntu bab 4 dan klik tombol start
untuk memulainya.
Setelah Ubuntu DNS dan Web booting lalu login pada Ubuntu Server DNS dan Web dengan memasukan username jkl
dan passwordnya jkl
.
Sebelum menginstall aplikasi-aplikasi ke dalam ubuntu sebaiknya mengakses server memakai user root
agar tidak ada masalah permission saat menginstall. Kita ketik perintah sudo -i
untuk masuk ke user tersebut.
Lalu mengkonfigurasi file db.domain
, ketikkan nano /etc/bind/db.domain
, lalu save konfigurasi dengan cara tekan CTRL+X
, Y
lalu tekan ENTER
.
Sebelumnya IP Address Webserver yaitu 192.168.10.123
dan mail.acsl-2024.com
merupakan sub domain untuk Mail Server dengan IP yang mengarah dengan IP Webserver yang berbeda yaitu 192.168.10.124
. Sekarang kita edit untuk IP Address domain Mail Server mail.acsl-2024.com
dan IP Address domain Webserver acsl-2024.com
menjadi satu ip address yaitu IP address pada VM Ubuntu Proxy yaitu 192.168.10.125
.
Edit Config di PTR Domain Bind9
Lalu konfigurasi db.refacsl
ketikkan nano /etc/bind/db.refacsl
, lalu save konfigurasi dengan cara tekan CTRL+X
, Y
lalu tekan ENTER
.
Edit pada bagian domain PTR yang dimana itu kebalikannya dari DNS, yaitu dari domain ke IP Address. Pada konfigurasi sebelumnya adalah angka 123
untuk IP Address oktal terakhir Webserver sedangkan angka 124
untuk IP Address Mail Server lalu diubah menjadi IP Address oktal terakhir pada Ubuntu Proxy yaitu 125
untuk kedua services Aplikasi.
Restart Services Bind9
Lalu restart Bind9 apakah konfigurasi telah berhasil atau tidak, Ketikkan perintah systemctl restart bind9.service
Jika berhasil, maka akan seperti pada gambar dibawah ini.
Ketik perintah systemctl status bind9.service
untuk melihat apakah ada error pada konfigurasi sebelumnya.
Test DNS yang Sudah Dikonfigurasi
Uji coba konfigurasi DNS menggunakan tools nslookup. Ketikkan perintah nslookup acsl-2024.com
dan nslookup mail.acsl-2024.com
. Hasil dari jawaban aplikasi bind9 akan berubah menjadi IP Address Ubuntu Proxy yaitu 192.168.10.125
untuk Mail Server dan Webserver.
Pindah ke VM Ubuntu Proxy
Install Aplikasi Apache2
Lalu kita meng-install aplikasi apache2 pada Ubuntu Server. Apache2 disini sebagai tempat web Reverse Proxy. Kita dapat mengetik perintah apt install apache2
pada terminal Ubuntu DNS dan Web lalu tekan ENTER
. Nanti ada peringatan ingin melanjutkan penginstallan apache2 maka kita ketik y
dan tekan ENTER
.
Enable Proxy Module Apache2
Sebelum kita konfigurasi apache reverse proxy, maka kita harus menyalakan modul-modul apache proxy seperti modul proxy, proxy_http, proxy_balancer agar konfigurasi proxy dapat berkerja dengan lancar. Untuk menyalakan modul apache2 ketik perintah a2enmod proxy
, a2enmod proxy_http
, dan a2enmod proxy_balancer
pada masing-masing perintah.
Buat Config Proxy Wordpress dan Roundcube
Copy file template yang ada pada apache2 yaitu 000-default.conf
di-rename sebagai proxy_acsl-2024.com.conf
dengan mengetik perintah cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/acsl-2024.com.conf
lalu tekan ENTER
.
Perintah selanjutnya copy dan rename file menjadi proxy_mail.acsl-2024.com.conf
dengan mengetik perintah cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/acsl-2024.com.conf
lalu tekan ENTER
.
Kita edit file proxy.acsl-2024.com.conf
dengan ketik perintah nano /etc/apache2/sites-available/proxy.acsl-2024.com.conf
lalu tekan ENTER
.
Lalu kita edit variable Servername, DocumentRoot, ProxyPass, dan ProxyPassReverse pada file proxy.acsl-2024.com.conf
. Lalu jangan lupa untuk merubah IP Address tujuan pada ProxyPass dan ProxyPassReverse dengan IP Address Ubuntu Proxy yang telah dikonfigurasi sebelumnya pada tutorial ini menggunakan IP Address 192.168.10.125
. lalu save konfigurasi dengan cara tekan CTRL+X
, Y
lalu tekan ENTER
.
Kita edit file proxy_mail.acsl-2024.com.conf
dengan ketik perintah nano /etc/apache2/sites-available/proxy_mail.acsl-2024.com.conf
lalu tekan ENTER
.
Lalu kita edit variable Servername, DocumentRoot, ProxyPass, dan ProxyPassReverse pada file proxy_mail.acsl-2024.com.conf
. Lalu jangan lupa untuk merubah IP Address tujuan pada ProxyPass dan ProxyPassReverse dengan IP Address Ubuntu Proxy yang telah dikonfigurasi sebelumnya pada tutorial ini menggunakan IP Address 192.168.10.125
. lalu save konfigurasi dengan cara tekan CTRL+X
, Y
lalu tekan ENTER
.
Enable Proxy Wordpress dan Roundcube
Ketik perintah a2ensite proxy.acsl-2024.com.conf
untuk men-enable website proxy reverse wordpress
dan roundcube
yang kita telah buat tadi.
Restart Service Apache2
Setelah men-enable konfigurasi website proxy reverse lalu kita restart service apache2
untuk menyegarkan config-config yang telah kita edit sebelumnya.
Buat DNS Resolving Netplan
Untuk konfigurasi selanjutnya, ketikkan nano /etc/netplan/50-cloud-init.yaml
, lalu save konfigurasi dengan cara tekan CTRL+X
, Y
lalu tekan ENTER
.
Sesuaikan IP Address pada nameservers dengan IP Address yang telah ditentukan atau ikuti IP Address yang sudah ada yaitu kolom addresses:
tanpa dengan prefix.
Ketik perintah ini pada unlink /etc/resolv.conf
, ln -sf /run/systemd/resolve/resolv.conf
, dan /etc/resolv.conf
masing-masing line terminal dengan ENTER
.
resolv.conf
di Ubuntu Server yaitu netplan menggunakan resolv DNS dengan IP Address 127.0.0.53 yang dimana itu untuk interface loopback. maka oleh karna itu kita harus mendefinisikan file pada /etc/netplan/50-cloud-init.yaml
yang di-script pada /run/systemd/resolve/resolv.conf
agar netplan menggunakan Nameservers
yang kita telah konfigurasi sebelumnya pada konfig Netplan.Setelah konfigurasi resolv.conf
maka kita harus me-restart netplan
dengan cara mengetik perintah netplan apply
pada terminal Ubuntu Proxy agar konfigurasi di /etc/netplan/50-cloud-init.yaml
dapat diterapkan pada sistem jaringan Ubuntu.
Selanjutnya jangan lupa untuk merestart konfigurasi /etc/resolv.conf
agar semua konfigurasi jaringan pada sistem Ubuntu berjalan dengan lancar. Dengan mengetik perintah systemctl restart systemd-resolved.service
pada terminal Ubuntu Proxy lalu tekan ENTER
.
Test DNS pada Ubuntu Proxy
Uji coba konfigurasi DNS menggunakan tools nslookup. Ketikkan perintah nslookup acsl-2024.com
dan nslookup mail.acsl-2024.com
. Hasil dari jawaban aplikasi bind9 untuk Mail Server dengan domain acsl-2024.com
dan Webserver dengan domain mail.acsl-2024.com
akan menjadi IP Address Ubuntu Proxy yaitu 192.168.10.125
.
Install Aplikasi IPtables Persistent
IPtables Persistent adalah sebuah utilitas dalam sistem Linux yang bertujuan untuk menyimpan aturan-aturan iptables (firewall) secara permanen. Tanpa IPtables Persistent, aturan-aturan iptables yang dibuat oleh pengguna hanya akan berlaku selama sesi berjalan. Oleh karna itu kita harus menginstall utilitas IPtables Persistent dengan mengetik perintah apt install iptables-persistent
pada terminal Ubuntu Server.
Setelah menjalakan perintah diatas maka sistem installer akan IPtables Persistent menanyakan apakah rules IPtables untuk IP Address v4 yang kita telah buat akan disimpan pada file /etc/iptables/rules.v4
. maka kita pilih Yes
dan tekan ENTER
.
Setelah menjalakan perintah diatas maka sistem installer akan IPtables Persistent menanyakan kempbali lagi apakah rules IPtables untuk IP Address v6 yang kita telah buat akan disimpan pada file /etc/iptables/rules.v6
. maka kita pilih Yes
dan tekan ENTER
.
Buat Rule Forward IPtables
Rule Forward dalam IPtables digunakan untuk mengarahkan lalu lintas jaringan dari satu interface ke interface lainnya. Ketika menggunakan proxy reverse untuk mengakses dua website yang berbeda dengan menggunakan satu alamat IP Address, Kita harus menggunakan Rule Forward untuk meneruskan port 25 (SMTP) dan port 143 (IMAP) dari IP Address Ubuntu Proxy untuk Client bisa login ke website Roundcube.
@acsl-2024.com
tidak dapat saling berkomunikasi karna domain MX (Mail Exchange) acsl-2024.com
akan mengarahkan ke IP Address 192.168.10.125
yang berarti milik Ubuntu Proxy yang tidak ada service mail. Oleh karna itu kita harus membuat Rule Forward agar permintaan @acsl-2024.com
dari Ubuntu Proxy diteruskan ke Ubuntu DNS dan Web yang mana kita telah konfigurasi mail server pada bab 3.Perintah dibawah berfungsi untuk menyalin konfigurasi iptables yang sedang berjalan ke dalam file /etc/iptables/rules.v.4
untuk rule IP Address v4 dan /etc/iptables/rules.v.6
untuk rule IP Address v6. Ini berguna untuk menyimpan konfigurasi iptables yang telah dikonfigurasi, sehingga konfigurasi tersebut dapat dipulihkan atau digunakan kembali setelah reboot.
Buat Config Sistem Forward
Setelah kita konfigurasi Rule Forward IPtables maka kita harus mengaktifkan fitur IP forwarding pada sistem Ubuntu. Dengan ketik perintah nano /etc/systcl,conf
lalu tekan ENTER
.
Setelah terbuka maka kita hapus #
pada baris konfig #net.ipv4.ip_forward=1
. Fitur net.ipv4.ip_forward=1
ini memungkinkan sistem untuk mengirimkan paket yang diterimanya dari satu antarmuka jaringan ke antarmuka jaringan lainnya seperti meneruskan paket SMTP dan IMAP dari Ubuntu Proxy ke Ubuntu DNS dan Web.
Restart Ubuntu Proxy
Untuk menghindari kegagalan maka langkah selanjutnya yaitu reboot sistem atau restart Ubuntu Server Proxy dengan mengetik perintah reboot
pada terminal lalu tekan ENTER
. tunggu beberapa menit untuk Ubuntu Server Proxy menyala kembali.
Hasil
Pada bab 4 ini kita akan menguji apakah penerusan website pada proxy reverse dan domain acsl-2024.com
adalah alamat website Wordpress sedangkan mail.acsl-2024.com
adalah alamat website Roundcube dan menguji mail server yang kita telah buat pada bab ini berhasil mengirimkan pesan dari akun yang bernama admin
kepada akun user
.