Difference between revisions of "OS: PRAKTIKUM — Integrated OS Lab"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
| − | + | ==Tujuan Praktikum== | |
| − | |||
| − | |||
| − | Tujuan Praktikum | ||
Setelah menyelesaikan praktikum ini, mahasiswa mampu: | Setelah menyelesaikan praktikum ini, mahasiswa mampu: | ||
| − | Mengorkestrasi tiga OS berbeda dalam satu sistem terintegrasi | + | * Mengorkestrasi tiga OS berbeda dalam satu sistem terintegrasi |
| − | Mendesain topologi jaringan yang realistis dan aman | + | * Mendesain topologi jaringan yang realistis dan aman |
| − | Mengkonfigurasi routing & firewall berbasis kernel | + | * Mengkonfigurasi routing & firewall berbasis kernel |
| − | Menyajikan layanan dari Ubuntu dan mengaksesnya dari Android | + | * Menyajikan layanan dari Ubuntu dan mengaksesnya dari Android |
| − | Menganalisis alur data lintas OS (kernel ↔ user space ↔ jaringan) | + | * Menganalisis alur data lintas OS (kernel ↔ user space ↔ jaringan) |
Filosofi inti: | Filosofi inti: | ||
| − | Di dunia nyata, sistem selalu multi-OS. Nilai engineer terlihat dari kemampuan mengintegrasikan, bukan sekadar mengonfigurasi satu OS. | + | Di dunia nyata, sistem selalu multi-OS. Nilai engineer terlihat dari kemampuan mengintegrasikan, bukan sekadar mengonfigurasi satu OS. |
| − | Gambaran Arsitektur Lab | + | |
| − | [ Android x86 ] <-- client (untrusted) | + | ==Gambaran Arsitektur Lab== |
| − | + | ||
| − | + | [ Android x86 ] <-- client (untrusted) | |
| − | + | | | |
| − | [ OpenWRT x86 ] <-- router / firewall / policy | + | | TCP/IP |
| − | + | | | |
| − | + | [ OpenWRT x86 ] <-- router / firewall / policy | |
| − | + | | | |
| − | [ Ubuntu Server 24.04 ] <-- controller / services | + | | routing + NAT |
| + | | | ||
| + | [ Ubuntu Server 24.04 ] <-- controller / services | ||
| + | |||
Peran kunci: | Peran kunci: | ||
| − | Ubuntu: controller (server, monitoring, orchestration) | + | * Ubuntu: controller (server, monitoring, orchestration) |
| − | OpenWRT: router (routing, firewall, policy enforcement) | + | * OpenWRT: router (routing, firewall, policy enforcement) |
| − | Android: client (end-user system, sandboxed) | + | * Android: client (end-user system, sandboxed) |
| − | Persiapan Lingkungan | + | |
| − | Spesifikasi & Prasyarat | + | ==Persiapan Lingkungan== |
| − | Host: Ubuntu Desktop 24.04 | + | ===Spesifikasi & Prasyarat=== |
| − | Hypervisor: VirtualBox (+ GNS3 opsional) | + | * Host: Ubuntu Desktop 24.04 |
| − | VM: | + | * Hypervisor: VirtualBox (+ GNS3 opsional) |
| − | Ubuntu Server 24.04 (2–4 CPU, 4–8 GB RAM) | + | * VM: |
| − | OpenWRT x86 (1 CPU, 256–512 MB RAM) | + | ** Ubuntu Server 24.04 (2–4 CPU, 4–8 GB RAM) |
| − | Android x86 (2 CPU, 2–4 GB RAM) | + | ** OpenWRT x86 (1 CPU, 256–512 MB RAM) |
| − | Jaringan: | + | ** Android x86 (2 CPU, 2–4 GB RAM) |
| − | Internal Network untuk lab | + | * Jaringan: |
| − | NAT opsional untuk internet | + | ** Internal Network untuk lab |
| − | Gunakan snapshot VM sebelum mulai. | + | ** NAT opsional untuk internet |
| + | ** Gunakan snapshot VM sebelum mulai. | ||
Konfigurasi OpenWRT sebagai Router | Konfigurasi OpenWRT sebagai Router | ||
| − | IP Addressing (Deterministik) | + | |
| + | ===IP Addressing (Deterministik)=== | ||
| + | |||
OpenWRT (br-lan): 192.168.100.1/24 | OpenWRT (br-lan): 192.168.100.1/24 | ||
| + | |||
Cek: | Cek: | ||
| − | ip addr | + | ip addr |
| − | ip route | + | ip route |
| − | DHCP (Opsional, Disarankan) | + | |
| + | ===DHCP (Opsional, Disarankan)=== | ||
Pastikan DHCP aktif agar Android mudah mendapat IP. | Pastikan DHCP aktif agar Android mudah mendapat IP. | ||
| − | uci show dhcp | + | uci show dhcp |
| − | /etc/init.d/dnsmasq restart | + | /etc/init.d/dnsmasq restart |
| − | Firewall Dasar (Zona) | + | |
| + | ===Firewall Dasar (Zona)=== | ||
Konsep security zone: | Konsep security zone: | ||
| − | LAN: Android | + | * LAN: Android |
| − | WAN/CTRL: Ubuntu | + | * WAN/CTRL: Ubuntu |
| + | |||
Cek aturan: | Cek aturan: | ||
| − | uci show firewall | + | uci show firewall |
| + | |||
Firewall OpenWRT dieksekusi oleh kernel networking stack—bukan sekadar aplikasi. | Firewall OpenWRT dieksekusi oleh kernel networking stack—bukan sekadar aplikasi. | ||
| − | Ubuntu sebagai Controller | + | |
| − | Static IP Ubuntu | + | ==Ubuntu sebagai Controller== |
| + | ===Static IP Ubuntu=== | ||
Set 192.168.100.10/24, gateway 192.168.100.1. | Set 192.168.100.10/24, gateway 192.168.100.1. | ||
| − | sudo nano /etc/netplan/01-lab.yaml | + | sudo nano /etc/netplan/01-lab.yaml |
| − | sudo netplan apply | + | sudo netplan apply |
| + | |||
Verifikasi: | Verifikasi: | ||
| − | ip a | + | ip a |
| − | ip route | + | ip route |
| − | ping 192.168.100.1 | + | ping 192.168.100.1 |
| − | Layanan Controller (Contoh Nyata) | + | ===Layanan Controller (Contoh Nyata)=== |
Web server ringan untuk observasi lintas OS: | Web server ringan untuk observasi lintas OS: | ||
| − | sudo apt update | + | sudo apt update |
| − | sudo apt install -y python3 | + | sudo apt install -y python3 |
| − | python3 -m http.server 8080 | + | python3 -m http.server 8080 |
| + | |||
Buka port (UFW): | Buka port (UFW): | ||
| − | sudo ufw allow 8080 | + | sudo ufw allow 8080 |
| − | sudo ufw enable | + | sudo ufw enable |
| − | Android sebagai Client | + | |
| − | Koneksi Jaringan | + | ==Android sebagai Client== |
| + | ===Koneksi Jaringan=== | ||
Pastikan Android mendapat IP 192.168.100.x. | Pastikan Android mendapat IP 192.168.100.x. | ||
| + | |||
Cek (ADB): | Cek (ADB): | ||
| − | adb shell ip addr | + | adb shell ip addr |
| − | adb shell ip route | + | adb shell ip route |
| + | |||
Uji Konektivitas | Uji Konektivitas | ||
| − | adb shell ping -c 3 192.168.100.1 | + | adb shell ping -c 3 192.168.100.1 |
| − | adb shell ping -c 3 192.168.100.10 | + | adb shell ping -c 3 192.168.100.10 |
| − | Akses Layanan Ubuntu | + | |
| + | ===Akses Layanan Ubuntu=== | ||
Dari browser Android: | Dari browser Android: | ||
| − | http://192.168.100.10:8080 | + | http://192.168.100.10:8080 |
Observasi lintas OS: | Observasi lintas OS: | ||
| − | Android app → Android framework → kernel Android → TCP/IP → OpenWRT (routing/firewall) → Ubuntu (service). | + | Android app → Android framework → kernel Android → TCP/IP → OpenWRT (routing/firewall) → Ubuntu (service). |
| − | Integrasi & Observasi Sistem | + | |
| − | Monitoring dari Ubuntu | + | ==Integrasi & Observasi Sistem== |
| − | ss -tulpen | + | ===Monitoring dari Ubuntu=== |
| − | ip -s link | + | ss -tulpen |
| − | journalctl -f | + | ip -s link |
| − | Monitoring di OpenWRT | + | journalctl -f |
| − | logread -f | + | |
| − | iptables -L -v -n | + | ===Monitoring di OpenWRT=== |
| − | Observasi di Android | + | logread -f |
| − | adb shell ps -A | head | + | iptables -L -v -n |
| − | adb shell getenforce | + | ===Observasi di Android=== |
| + | adb shell ps -A | head | ||
| + | adb shell getenforce | ||
Perhatikan perbedaan model isolasi dan policy di tiap OS. | Perhatikan perbedaan model isolasi dan policy di tiap OS. | ||
| − | Keamanan Berlapis (Defense in Depth) | + | ==Keamanan Berlapis (Defense in Depth)== |
| − | Android: sandbox, UID isolation, SELinux enforcing | + | * Android: sandbox, UID isolation, SELinux enforcing |
| − | OpenWRT: firewall, routing policy, NAT | + | * OpenWRT: firewall, routing policy, NAT |
| − | Ubuntu: UFW, service hardening | + | * Ubuntu: UFW, service hardening |
Contoh kebijakan: | Contoh kebijakan: | ||
| − | Android → Ubuntu: allow HTTP (8080) | + | * Android → Ubuntu: allow HTTP (8080) |
| − | Android → Ubuntu: deny SSH (22) | + | * Android → Ubuntu: deny SSH (22) |
| + | |||
Implementasi (Ubuntu): | Implementasi (Ubuntu): | ||
| − | sudo ufw deny from 192.168.100.0/24 to any port 22 | + | sudo ufw deny from 192.168.100.0/24 to any port 22 |
| − | Failure Scenarios (Wajib Dicoba) | + | |
| − | Matikan firewall OpenWRT → amati perubahan akses | + | ==Failure Scenarios (Wajib Dicoba)== |
| − | Putuskan routing → Android gagal akses Ubuntu | + | * Matikan firewall OpenWRT → amati perubahan akses |
| − | Hentikan service Ubuntu → Android connection refused | + | * Putuskan routing → Android gagal akses Ubuntu |
| − | Belajar OS terbaik datang dari kegagalan yang terkontrol. | + | * Hentikan service Ubuntu → Android connection refused |
| − | Refleksi Akademik (OBE-Oriented) | + | * Belajar OS terbaik datang dari kegagalan yang terkontrol. |
| + | |||
| + | ==Refleksi Akademik (OBE-Oriented)== | ||
Mahasiswa kini mampu: | Mahasiswa kini mampu: | ||
| − | Mendesain sistem multi-OS | + | * Mendesain sistem multi-OS |
| − | Mengintegrasikan jaringan lintas OS | + | * Mengintegrasikan jaringan lintas OS |
| − | Menerapkan keamanan berlapis | + | * Menerapkan keamanan berlapis |
| − | Menganalisis alur data lintas kernel & user space | + | * Menganalisis alur data lintas kernel & user space |
| − | Berpikir sebagai system architect | + | * Berpikir sebagai system architect |
| − | Penutup | + | ==Penutup== |
Praktikum ini menegaskan transformasi akhir: | Praktikum ini menegaskan transformasi akhir: | ||
| − | dari OS user → OS builder → system integrator. | + | * dari OS user → OS builder → system integrator. |
| − | Ubuntu, OpenWRT, dan Android kini bukan entitas terpisah, melainkan satu sistem komputasi hidup—seperti yang ditemui di data center, edge computing, dan IoT dunia nyata. | + | * Ubuntu, OpenWRT, dan Android kini bukan entitas terpisah, melainkan satu sistem komputasi hidup—seperti yang ditemui di data center, edge computing, dan IoT dunia nyata. |
| − | Jika Anda menuntaskan praktikum ini, Anda tidak hanya memahami sistem operasi—Anda memahami sistem terintegrasi. | + | * Jika Anda menuntaskan praktikum ini, Anda tidak hanya memahami sistem operasi—Anda memahami sistem terintegrasi. |
Latest revision as of 13:13, 15 February 2026
Tujuan Praktikum
Setelah menyelesaikan praktikum ini, mahasiswa mampu:
- Mengorkestrasi tiga OS berbeda dalam satu sistem terintegrasi
- Mendesain topologi jaringan yang realistis dan aman
- Mengkonfigurasi routing & firewall berbasis kernel
- Menyajikan layanan dari Ubuntu dan mengaksesnya dari Android
- Menganalisis alur data lintas OS (kernel ↔ user space ↔ jaringan)
Filosofi inti:
Di dunia nyata, sistem selalu multi-OS. Nilai engineer terlihat dari kemampuan mengintegrasikan, bukan sekadar mengonfigurasi satu OS.
Gambaran Arsitektur Lab
[ Android x86 ] <-- client (untrusted)
|
| TCP/IP
|
[ OpenWRT x86 ] <-- router / firewall / policy
|
| routing + NAT
|
[ Ubuntu Server 24.04 ] <-- controller / services
Peran kunci:
- Ubuntu: controller (server, monitoring, orchestration)
- OpenWRT: router (routing, firewall, policy enforcement)
- Android: client (end-user system, sandboxed)
Persiapan Lingkungan
Spesifikasi & Prasyarat
- Host: Ubuntu Desktop 24.04
- Hypervisor: VirtualBox (+ GNS3 opsional)
- VM:
- Ubuntu Server 24.04 (2–4 CPU, 4–8 GB RAM)
- OpenWRT x86 (1 CPU, 256–512 MB RAM)
- Android x86 (2 CPU, 2–4 GB RAM)
- Jaringan:
- Internal Network untuk lab
- NAT opsional untuk internet
- Gunakan snapshot VM sebelum mulai.
Konfigurasi OpenWRT sebagai Router
IP Addressing (Deterministik)
OpenWRT (br-lan): 192.168.100.1/24
Cek:
ip addr ip route
DHCP (Opsional, Disarankan)
Pastikan DHCP aktif agar Android mudah mendapat IP.
uci show dhcp /etc/init.d/dnsmasq restart
Firewall Dasar (Zona)
Konsep security zone:
- LAN: Android
- WAN/CTRL: Ubuntu
Cek aturan:
uci show firewall
Firewall OpenWRT dieksekusi oleh kernel networking stack—bukan sekadar aplikasi.
Ubuntu sebagai Controller
Static IP Ubuntu
Set 192.168.100.10/24, gateway 192.168.100.1.
sudo nano /etc/netplan/01-lab.yaml sudo netplan apply
Verifikasi:
ip a ip route ping 192.168.100.1
Layanan Controller (Contoh Nyata)
Web server ringan untuk observasi lintas OS:
sudo apt update sudo apt install -y python3 python3 -m http.server 8080
Buka port (UFW):
sudo ufw allow 8080 sudo ufw enable
Android sebagai Client
Koneksi Jaringan
Pastikan Android mendapat IP 192.168.100.x.
Cek (ADB):
adb shell ip addr adb shell ip route
Uji Konektivitas
adb shell ping -c 3 192.168.100.1 adb shell ping -c 3 192.168.100.10
Akses Layanan Ubuntu
Dari browser Android:
http://192.168.100.10:8080
Observasi lintas OS:
Android app → Android framework → kernel Android → TCP/IP → OpenWRT (routing/firewall) → Ubuntu (service).
Integrasi & Observasi Sistem
Monitoring dari Ubuntu
ss -tulpen ip -s link journalctl -f
Monitoring di OpenWRT
logread -f iptables -L -v -n
Observasi di Android
adb shell ps -A | head adb shell getenforce
Perhatikan perbedaan model isolasi dan policy di tiap OS.
Keamanan Berlapis (Defense in Depth)
- Android: sandbox, UID isolation, SELinux enforcing
- OpenWRT: firewall, routing policy, NAT
- Ubuntu: UFW, service hardening
Contoh kebijakan:
- Android → Ubuntu: allow HTTP (8080)
- Android → Ubuntu: deny SSH (22)
Implementasi (Ubuntu):
sudo ufw deny from 192.168.100.0/24 to any port 22
Failure Scenarios (Wajib Dicoba)
- Matikan firewall OpenWRT → amati perubahan akses
- Putuskan routing → Android gagal akses Ubuntu
- Hentikan service Ubuntu → Android connection refused
- Belajar OS terbaik datang dari kegagalan yang terkontrol.
Refleksi Akademik (OBE-Oriented)
Mahasiswa kini mampu:
- Mendesain sistem multi-OS
- Mengintegrasikan jaringan lintas OS
- Menerapkan keamanan berlapis
- Menganalisis alur data lintas kernel & user space
- Berpikir sebagai system architect
Penutup
Praktikum ini menegaskan transformasi akhir:
- dari OS user → OS builder → system integrator.
- Ubuntu, OpenWRT, dan Android kini bukan entitas terpisah, melainkan satu sistem komputasi hidup—seperti yang ditemui di data center, edge computing, dan IoT dunia nyata.
- Jika Anda menuntaskan praktikum ini, Anda tidak hanya memahami sistem operasi—Anda memahami sistem terintegrasi.