Kategori
Layanan Jaringan

Praktikum RnS – FHRP

Kepada mahasiswa peserta mata kuliah Routing and Switching, hari ini kita akan belajar tentang konsep Failover dan Redundancy di router Cisco dan Huawei. Silahkan kerjakan latihan berikut:

Misi 1:

Kerjakan modul 9.3.4 di modul Cisco Netacad! Kumpulkan screenshot hasil completion activity dan file .pkt

Misi 2:

Konfigurasi VRRP Huawei di eNSP.

  1. Skenario: Sebuah kampus memiliki jaringan laboratorium dengan dua router Huawei. Kedua router terhubung ke LAN yang sama. Saat ini, jaringan menggunakan satu router sebagai gateway. Jika router tersebut mengalami gangguan, pengguna kehilangan akses ke gateway. Sebagai network engineer, kalian diminta mengonfigurasi VRRP (Virtual Router Redundancy Protocol) agar tersedia gateway virtual yang dapat diambil alih oleh router cadangan.
  2. Ketentuan desain:
    1. R1 harus menjadi Master dalam kondisi normal.
    2. R2 menjadi Backup.
    3. PC menggunakan satu alamat gateway virtual, bukan IP fisik R1 atau R2.
    4. Ketika R1 mengalami gangguan, R2 mengambil alih.
    5. Ketika R1 pulih, R1 kembali menjadi Master karena prioritasnya lebih tinggi dan preemption diaktifkan.
  3. Topologi:
topologi vrrp

Pengalamatan jaringan:

Perangkat Interface IP address

R1 GE0/0/0 192.168.10.1/24

R2 GE0/0/0 192.168.10.2/24

VRRP Virtual IP 192.168.10.254

PC1 NIC 192.168.10.10/24

PC1 Gateway 192.168.10.254

Gunakan dua router AR, satu Ethernet Switch, dan satu PC di eNSP. Hubungkan semua perangkat ke switch. Tidak perlu konfigurasi VLAN khusus; gunakan VLAN default.

4. Konfigurasi alamat IP

a. Konfigurasikan R1:

system-view
[Huawei] sysname R1

[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] undo shutdown
[R1-GigabitEthernet0/0/0] ip address 192.168.10.1 24
[R1-GigabitEthernet0/0/0] quit

b. Konfigurasikan R2

system-view
[Huawei] sysname R2

[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] undo shutdown
[R2-GigabitEthernet0/0/0] ip address 192.168.10.2 24
[R2-GigabitEthernet0/0/0] quit

c. Konfigurasikan PC1

Pada command line VPCS:

ip 192.168.10.10 24 192.168.10.254

Lakukan pengujian awal:

ping 192.168.10.1
ping 192.168.10.2

Kedua IP fisik router harus dapat dijangkau sebelum melanjutkan.

5. Konfigurasi VRRP

a. R1 sebagai Master

[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] vrrp vrid 10 virtual-ip 192.168.10.254
[R1-GigabitEthernet0/0/0] vrrp vrid 10 priority 120
[R1-GigabitEthernet0/0/0] vrrp vrid 10 preempt-mode timer delay 10
[R1-GigabitEthernet0/0/0] quit

b. R2 sebagai Backup

[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] vrrp vrid 10 virtual-ip 192.168.10.254
[R2-GigabitEthernet0/0/0] quit

Penjelasan:

  • vrid 10: nomor kelompok VRRP. Kedua router harus menggunakan ID yang sama.
  • virtual-ip: alamat gateway virtual yang digunakan PC.
  • priority 120: membuat R1 lebih diprioritaskan daripada R2 yang menggunakan priority default 100.
  • preempt-mode: mengatur agar R1 dapat mengambil kembali status Master setelah pulih, dengan penundaan 10 detik.

Kedua router harus menggunakan VRID dan virtual IP yang sama pada jaringan tersebut. Periksa konfigurasi dan status menggunakan perintah display vrrp

6. Verifikasi status VRRP

Pada R1 dan R2 jalankan:

display ip interface brief
display vrrp brief
display vrrp

Hasil yang diharapkan:

PerangkatStatusPriority
R1Master120
R2Backup100

Kemudian dari PC1:

ping 192.168.10.254

Diharapkan PC1 berhasil melakukan ping ke virtual IP.

7. Simulasi kegagalan router Master

R1 mengalami gangguan. Pada R1, matikan interface yang terhubung ke LAN:

[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] shutdown

Tunggu sekitar 3–5 detik, kemudian periksa status pada R2:

[R2] display vrrp brief

Pertanyaan:

  1. Apakah status R2 berubah menjadi Master?
  2. Mengapa R2 dapat mengambil alih tanpa PC mengganti default gateway?
  3. Apakah virtual IP berubah setelah failover?

Kemudian dari PC1 uji kembali:

ping 192.168.10.254

Catat hasilnya.

8. Pemulihan router dan priority

a. Pulihkan R1

[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] undo shutdown

Tunggu sekitar 10–15 detik, kemudian jalankan:

display vrrp brief

Hasil yang diharapkan:

  • R1 kembali menjadi Master.
  • R2 kembali menjadi Backup.

9. Jawab pertanyaan berikut:

a. Apa perbedaan alamat IP fisik R1, IP fisik R2, dan virtual IP VRRP?

b. Mengapa PC menggunakan 192.168.10.254 sebagai default gateway?

c. Apa perbedaan status Master dan Backup?

d. Apa yang terjadi ketika R1 mengalami kegagalan?

e. Bagaimana priority memengaruhi pemilihan Master?

f. Apa fungsi preemption ketika R1 kembali aktif?

10. Laporkan

a. Screenshot topologi eNSP.

b. Hasil display vrrp brief pada R1 dan R2 sebelum gangguan.

c. Hasil ping ke virtual IP sebelum gangguan.

d. Hasil display vrrp brief setelah R1 dimatikan.

e. Hasil ping setelah R2 mengambil alih.

f. Hasil status setelah R1 dipulihkan.

g. Jawaban enam pertanyaan analisis no 9.

Have Fun!

Catatan:

a. gunakan Huawei AR yang mendukung VRRP. Nama interface mungkin berbeda menurut model.

b. Perintah preemption: uji vrrp vrid 10 preempt-mode timer delay 10 pada image yang digunakan. Jika tidak dikenali, periksa display vrrp untuk melihat status preemption; perilaku default dapat berbeda menurut versi perangkat lunak.

c. pastikan kedua router dan PC berada pada segmen LAN/VLAN yang sama.

Rubrik penilaian VRRP

KomponenPoin
Topologi dan pengalamatan IP3
Konfigurasi VRRP pada kedua router5
Verifikasi Master dan Backup3
Pengujian failover4
Pemulihan dan pengujian priority3
Penjelasan dan analisis2
Total20
    
    
    		
    Kategori
    Layanan Jaringan

    Latihan 9 Layanan Jaringan – phPmyAdmin

    Misi 1 : inventaris LAMP

    lsb_release -d; uname -r
    apache2 -v | head -n 1; php -v | head -n 1; mysql --version
    systemctl is-active apache2 mysql
    sudo ss -ltnp | grep -E ':(80|3306)([[:space:]]|$)'

    Laporkan: komponen, versi, service, port, file konfigurasi utama, dan log dari LAMP

    Lengkapi tabel berikut:

    KomponenFile konfigurasi utamaLokasi log
    Apache/etc/apache2//var/log/apache2/
    PHP
    MySQL

    Misi 2: Menelusuri Query

    A. Pastikan log tujuan menggunakan FILE.

    sudo mysql -e "SHOW VARIABLES LIKE 'log_output';"

    Pastikan hasilnya FILE atau FILE,TABLE

    B. jalankan tail -f di terminal.

    sudo tail -f /var/log/apache2/wordpress-access.log

    Kemudian buka halaman WordPress melalui browser di klien dan amati baris baru. Lalu aktifkan log query MySQL sementara:

    sudo mysql -e "SET GLOBAL general_log_file='/var/log/mysql/general.log'; SET GLOBAL general_log='ON';"


    # muat ulang halaman blog di browser

    sudo grep -E 'wp_options|wp_posts' /var/log/mysql/general.log | tail -n 10
    sudo mysql -e "SET GLOBAL general_log='OFF';"
    sudo rm /var/log/mysql/general.log

    Amati bahwa satu kali buka halaman memicu banyak query SELECT. Log ini hanya untuk lab dan harus dimatikan setelah selesai, karena mencatat semua query.

    sudo mysql -e "SET GLOBAL general_log='OFF';"
    sudo mysql -e "SHOW VARIABLES LIKE 'general_log';"
    sudo rm -f /var/log/mysql/general.log

    Laporkan 5–10 baris query yang relevan dengan wp_options atau wp_posts, pastikan log sudah dimatikan.

    Misi 3 phpMyAdmin

    sudo apt install -y phpmyadmin

    Pada prompt, pilih apache2 (spasi, lalu Enter), setujui konfigurasi database, dan kosongkan password aplikasi. Paket ini membuka /phpmyadmin di semua Virtual Host, jadi nonaktifkan dan buat Virtual Host sendiri yang dibatasi IP.

    export NAMA=budi
    sudo a2query -c phpmyadmin
    sudo a2disconf phpmyadmin
    sudo tee /etc/apache2/sites-available/60-pma.conf <<EOF
    <VirtualHost *:80>
    ServerName pma.$NAMA.test
    DocumentRoot /usr/share/phpmyadmin
    <Directory /usr/share/phpmyadmin/>
    Options FollowSymLinks
    AllowOverride None
    Require ip 192.168.10.0/24 127.0.0.1
    </Directory>
    ErrorLog /var/log/apache2/pma-error.log
    CustomLog /var/log/apache2/pma-access.log combined
    </VirtualHost>
    EOF
    sudo a2ensite 60-pma.conf
    sudo apache2ctl configtest
    sudo systemctl reload apache2
    sudo apache2ctl -S

    Ganti Budi dengan nama anda. Ganti 192.168.10.0/24 dengan subnet LAN anda, dan tambahkan record DNS atau baris hosts untuk http://pma.NAMA.test.

    Tugas di browser klien:

    1. Login dengan user wp_NAMA, bukan root. Hanya database wp_NAMA yang terlihat (prinsip hak akses minimal). Coba login sebagai root dan jelaskan mengapa ditolak.
    2. Temukan posting CV di tabel wp_posts, dan lihat kolom user_pass di wp_users (isinya hash, bukan password asli).
    3. Jalankan satu query lewat tab SQL.
    4. Buktikan curl -I http://pma.NAMA.test/phpmyadmin sudah tidak melayani panel (404).

    Misi 4: Konfigurasi LAMP

    # PHP: batas upload (cek dulu di WordPress: Media > Add New)


    sudo sed -i 's/^upload_max_filesize = .*/upload_max_filesize = 16M/' /etc/php/8.3/apache2/php.ini
    sudo sed -i 's/^post_max_size = .*/post_max_size = 20M/' /etc/php/8.3/apache2/php.ini
    sudo systemctl restart apache2

    menggunakan php cli:

    php -r 'echo ini_get("upload_max_filesize"), PHP_EOL;'

    # Apache: sembunyikan detail versicurl -sI http://blog.NAMA.test |

    grep -i '^server'
    sudo sed -i 's/^ServerTokens .*/ServerTokens Prod/' /etc/apache2/conf-available/security.conf
    sudo apache2ctl configtest && sudo systemctl reload apache2
    curl -sI http://blog.NAMA.test | grep -i '^server'

    # MySQL: hanya periksa, jangan diubah

    sudo mysql -e “SHOW VARIABLES LIKE ‘bind_address’;”

    Batas upload di halaman Media WordPress naik ke 16 MB. Perintah php -r tetap menampilkan nilai lama, karena memakai php.ini milik cli.

    Misi 5: Penutup, jawab pertanyaan berikut:

    (1) Sebutkan urutan komponen LAMP saat satu halaman dibuka.

    (2) Mengapa MySQL hanya listen di 127.0.0.1?

    (3) Mengapa phpMyAdmin dibatasi IP dan tidak dibuka untuk semua?

    (4) Mengapa php.ini untuk cli dan apache2 berbeda?

    Buat laporan dan kumpulkan ke LMS

    Have Fun!

    Kategori
    Layanan Jaringan

    Latihan 8 – Lanjar – HSTS

    Persiapan:

    Jalankan perintah berikut di ubuntu server anda:

    sudo -i
    export NAMA=budiaudit
    date; curl -sSI https://badssl.com/ | head -n 1

    silahkan ganti budi, gunakan nama panggilan+audit.

    Bagian A: HSTS di badssl.com 

    badssl menyediakan halaman uji khusus HSTS: hsts.badssl.com, preloaded-hsts.badssl.com, dan subdomain.preloaded-hsts.badssl.com. 

    A1. Browser laptop. Buka berurutan dan screenshot setiap hasilnya:

    1. http://http.badssl.com (perhatikan label “Not secure”)
    2. https://hsts.badssl.com, lalu ketik ulang alamatnya dengan http://hsts.badssl.com (apakah browser langsung memakai HTTPS?)
    3. https://preloaded-hsts.badssl.com
    4. https://subdomain.preloaded-hsts.badssl.com (perhatikan pesan eror nya dan apakah ada tombol untuk melanjutkan)

    A2. Terminal VM:

    curl -sI https://hsts.badssl.com/ | grep -i strict
    curl -sI https://preloaded-hsts.badssl.com/ | grep -i strict
    curl -sI http://http.badssl.com/ | head -n 1

    Tugas A: isi tabel (situs, header Strict-Transport-Security yang kamu salin, arti max-age dan includeSubDomains dan preload di header itu, perilaku browser). Situs badssl bisa berubah, jadi catat apa adanya.

    Bagian B: Bangun HTTPS “audit” 

    B1. Paket, hosts, key, dan sertifikat:

    apt update && apt install -y apache2 openssl
    echo ServerName localhost > /etc/apache2/conf-available/servername.conf && a2enconf servername
    echo 127.0.0.1 admin.$NAMA.test >> /etc/hosts
    mkdir -p /etc/apache2/sertifikat /var/www/audit
    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/sertifikat/$NAMA.key -out /etc/apache2/sertifikat/$NAMA.crt -subj /C=ID/O=Praktikum/CN=admin.$NAMA.test -addext subjectAltName=DNS:admin.$NAMA.test
    chmod 600 /etc/apache2/sertifikat/$NAMA.key; chmod 644 /etc/apache2/sertifikat/$NAMA.crt

    B2. Halaman dan Virtual Host:

    a2enmod ssl
    echo "<h1>Lab Audit HTTPS $NAMA</h1>" > /var/www/audit/index.html
    cat > /etc/apache2/sites-available/40-audit-https.conf <<EOF
    <VirtualHost *:80>
        ServerName admin.$NAMA.test
        Redirect permanent / https://admin.$NAMA.test/
    </VirtualHost>
    <VirtualHost *:443>
        ServerName admin.$NAMA.test
        DocumentRoot /var/www/audit
        SSLEngine on
        SSLCertificateFile /etc/apache2/sertifikat/$NAMA.crt
        SSLCertificateKeyFile /etc/apache2/sertifikat/$NAMA.key
        <Directory /var/www/audit>
            Require all granted
        </Directory>
    </VirtualHost>
    EOF
    a2ensite 40-audit-https.conf
    apache2ctl configtest && systemctl restart apache2
    apache2ctl -S
    ss -ltnp | grep -E ':(80|443)'

    apache2ctl -S akan menampilkan Virtual Host dari kemarin juga.

    B3. Dua bukti dasar:

    curl -sI http://admin.$NAMA.test | head -n 3
    curl -sI --cacert /etc/apache2/sertifikat/$NAMA.crt https://admin.$NAMA.test | head -n 1

    Hasil: 301 dengan Location ke HTTPS, lalu 200 OK.

    Bagian C: HSTS lokal 

    C1. Kondisi awal belum ada HSTS:

    curl -sI --cacert /etc/apache2/sertifikat/$NAMA.crt https://admin.$NAMA.test | grep -i strict
    curl -sI http://admin.$NAMA.test | head -n 1

    Baris pertama kosong. Baris kedua 301.

    C2. Aktifkan HSTS  dengan max-age pendek

    a2enmod headers
    printf '<IfModule mod_headers.c>\n    Header always set Strict-Transport-Security max-age=300\n</IfModule>\n' > /etc/apache2/conf-available/hsts.conf
    a2enconf hsts
    apache2ctl configtest && systemctl restart apache2
    curl -sI --cacert /etc/apache2/sertifikat/$NAMA.crt https://admin.$NAMA.test | grep -i strict
    curl -sI http://admin.$NAMA.test | grep -i strict

    Header muncul di respons HTTPS. Pada respons HTTP, header kemungkinan juga muncul. Pertanyaan: mengapa browser mengabaikan header HSTS yang datang lewat HTTP biasa?

    C3. Buktikan HSTS bekerja , dengan cache HSTS milik curl:

    rm -f /tmp/hsts.txt
    curl -sI --hsts /tmp/hsts.txt --cacert /etc/apache2/sertifikat/$NAMA.crt https://admin.$NAMA.test | head -n 1
    cat /tmp/hsts.txt
    curl -sv --hsts /tmp/hsts.txt --cacert /etc/apache2/sertifikat/$NAMA.crt http://admin.$NAMA.test 2>&1 | grep -iE 'hsts|< HTTP'
    curl -sI http://admin.$NAMA.test | head -n 1

    Yang harus terlihat: file /tmp/hsts.txt berisi admin.$NAMA.test beserta waktu kedaluwarsa. Perintah ketiga menunjukkan pesan peralihan ke HTTPS karena HSTS dan langsung 200, tanpa 301. Perintah keempat (tanpa cache) tetap 301. Jika grep tidak menampilkan apa-apa, jalankan tanpa grep dan salin keluarannya apa adanya.

    C4. Analisis syarat preload . Bandingkan header buatanmu dengan syarat daftar preload. Menurut hstspreload.org, syaratnya adalah max-age minimal satu tahun, includeSubDomains, token preload, dan pengalihan HTTP ke HTTPS. Tulis tabel: syarat, terpenuhi atau tidak, alasan. Jelaskan juga mengapa lab tidak boleh memakai max-age panjang atau preload
    Bagian D:

    1. Apa yang berbeda antara respons curl dengan dan tanpa cache HSTS pada C3?
    2. Mengapa browser mengabaikan header HSTS dari koneksi yang sertifikatnya tidak tepercaya?
    3. Apa risiko memberi max-age satu tahun pada domain yang sertifikatnya bermasalah?
    4. Apa bedanya halaman hsts.badssl.com dan preloaded-hsts.badssl.com bagi pengguna yang belum pernah berkunjung?

    Pembersihan setelah screenshot selesai:

    a2disconf hsts; a2dissite 40-audit-https.conf; systemctl reload apache2

    Kumpulkan: tabel badssl, hasil B3, hasil C1 sampai C3, tabel preload, history 150, dan jawaban bagian D

    Kategori
    Layanan Jaringan

    Latihan 7 Lanjar – Troubleshooting

    Misi 1: Registrasi & Persiapan 

    1. Buka browser dan akses situs sadservers.com.
    2. Klik Sign In / Register di pojok kanan atas, lalu mendaftar menggunakan alamat email.
    3. Masuk ke halaman utama dashboard Scenarios.

    Misi 2: Skenario Saint John

    1. https://sadservers.com/scenario/saint-john
    2. Klik tombol Run untuk mengaktifkan terminal Linux di browser.
    3. Deskripsi: Akses ke web server menghasilkan kode respons HTTP 500 Internal Server Error. Skenario ini menguji kemampuan menganalisis berkas log web server untuk menemukan kesalahan pada konfigurasi atau hak akses berkas web, lalu memulihkan layanan hingga mengembalikan status 200 OK.
    4. Instruksi Pengerjaan: Periksa log menggunakan perintah tail -f /var/log/bad.log
    5. Jalankan lsof /var/log/bad.log untuk mencari process ID (PID) dan command name yang menyebabkan eror.
    6. Matikan process yang menyebabkan eror kill <PID> (or kill -9 <PID>)
    7. Alternatif bisa jalankan perintah berikut kill $(lsof -t /var/log/bad.log) 
    8. Klik Check My Solution di SadServers UI atau  jalankan peritntah /home/admin/agent/check.sh untuk memastikan log file tidak bertambah. 
    9. Dokumentasi: Ambil screenshot pada 3 momen penting (Diagnosa Eror, Perintah Perbaikan, dan Status Sukses Check My Solution).

    Misi 3. Skenario Saskatoon

    1. https://sadservers.com/scenario/saskatoon
    2. Deskripsi:Terdapat sebuah berkas log akses web server di /home/admin/access.log. Berkas ini berisi satu baris untuk setiap request HTTP, dengan alamat IP pemohon berada di awal setiap baris (kolom pertama).
    3. Cari alamat IP yang memiliki jumlah request terbanyak di dalam berkas ini (tidak ada nilai seri/kembar; IP jawaban bersifat unik). Tuliskan jawaban tersebut ke dalam berkas /home/admin/highestip.txt.
    4. Sebagai contoh, jika jawaban Anda adalah "1.2.3.4", Anda dapat menjalankan:echo "1.2.3.4" > /home/admin/highestip.txt
    5. CATATAN: IP jawaban muncul sebanyak 482 kali (perintah grep -c -F -f highestip.txt access.log akan mengembalikan angka 482). Jika jawaban Anda menghasilkan angka yang lebih kecil, berarti Anda menemukan IP yang salah.
      • Akses Root (sudo): Ya (True)Pengujian (Test): Nilai SHA1 checksum dari alamat IP sha1sum /home/admin/highestip.txt adalah 6ef426c40652babc0d081d438b9f353709008e93 (ini hanya cara sistem memverifikasi jawaban tanpa membocorkan IP-nya langsung; sistem juga menerima IP yang benar meskipun tanpa karakter newline di akhir berkas).
      Tombol “Check My Solution” akan menjalankan skrip /home/admin/agent/check.sh, yang dapat Anda lihat dan eksekusi secara manual.

    Misi 4. Skenario Verona

    • https://sadservers.com/scenario/verona
    • Deskripsi: Sebuah portal Apache internal telah dimigrasikan ke host ini. Document root dari portal tersebut berada di /var/www/portal.
    • Halaman utama di http://localhost/ tidak menampilkan beranda yang diharapkan, dan bookmark lama (legacy) di jalur /reports tidak lagi mengarah ke halaman status (sedangkan akses langsung ke /status/ berfungsi normal).
    • Temukan dan perbaiki masalah yang menyebabkan portal root dan redirect lama tersebut tidak berjalan. Menambahkan konten yang kurang/hilang diperbolehkan.
    • Akses Root (sudo): Ya (True)
    • Pengujian (Test):
    • Perintah curl -L http://localhost/reports harus mengembalikan baris pertama berupa: SadServers - Status OK.

    Format Laporan Praktikum (Unggah ke LMS)

    Mahasiswa mengumpulkan dengan format penamaan NIM_Nama_TroubleshootingSadServers.pdf yang berisi struktur berikut:

    • Identitas & Ringkasan Hasil
      • Nama, NIM, dan tanggal pengerjaan.
      • Ringkasan status penyelesaian 
    • Laporan per Skenario (Skenario 1–3) Untuk masing-masing skenario, sertakan:
      • Bukti Tangkapan Layar (Screenshot):
        1. Screenshot 1: Terminal saat menemukan sumber eror (hasil pengecekan log/status).
        2. Screenshot 2: Perintah CLI atau suntingan file yang digunakan untuk memperbaiki eror.
        3. Screenshot 3: Tampilan indikator Check My Solution yang berhasil bernilai benar (Passed).
      • Analisis Troubleshooting (2–3 kalimat):
        • Penyebab Masalah: Apa yang membuat server eror saat awal dijalankan?
        • Langkah Solusi: Perintah atau file apa yang diubah untuk mengatasi masalah tersebut?

    Have Fun!

    Kategori
    Ngoprek

    ReveseMango – SimpleCTF

    Buka room Simple CTF di TryHackMe.

    https://tryhackme.com/room/easyctf

    1. Untuk mengerjakan praktikum ini anda silahkan memilih salah satu diantara dua metode berikut: a. Menggunakan “AttackBox” (Mesin Kali linux yang sudah terinstal di tryhackme). Attackbox hanya bisa digunakan selama 60 menit secara gratis. b. Menggunakan “OpenVPN” (menggunakan kali linux anda sendiri kemudian terhubung ke server tryhackme melalui openvpn). Tidak ada batasan waktu
    2. Opsi A:Klik tombol biru “Start AttackBox” di pojok kanan atas halaman room.
    3. Opsi B: Unduh file konfigurasi .ovpn dari menu Access pada profil THM (Tryhackme) Anda. Jalankan di terminal Kali Linux: sudo openvpn [nama_file].ovpn. (pastikan kali linux sudah terhubung ke internet)
    4. Aktivasi target: di Task 1 –> Start machine: tunggu hingga IP Target muncul

    Setelah machine berhasil dijalankan:

    1. Catat IP address target.
    2. Pastikan mesin Anda dapat berkomunikasi dengan target.
    3. Jangan langsung membuka browser atau menjalankan exploit.
    4. Kemudian lakukan connectivity test: ping -c 4 <TARGET-IP>
    5. Bagian 2 — Reconnaissance. Kita mulai dari informasi paling dasar. Bagian 2 — Reconnaissance. nmap <TARGET-IP>
    6. Kemudian lakukan service detection: nmap -sV <TARGET-IP>
    7. Bagian 3 — Enumeration. Sekarang pilih service yang paling menarik dari hasil Nmap. Lakukan enumeration terhadap service tersebut.
    8. Jika menemukan web server: gobuster dir -u http://<Target-IP> -w <wordlist>
    9. Bagian 4 — Web Investigation. Jika menemukan website, buka: http://<TARGET-IP>
    10. Periksa: halaman utama, source code, comments, links, robots.txt, directory, file yang ditemukan, informasi versi software, Gunakan browser dan command line.
    11. Bagian 5 — Vulnerability Discovery. Sekarang Anda seharusnya sudah mempunyai beberapa informasi tentang target. Gunakan informasi tersebut untuk mencari vulnerability. Sebaliknya, gunakan: nama software, versi software, service, vulnerability database, Google, search engine, dokumentasi, exploit database. Contoh pola pencarian: <software> <version> vulnerability.
    12. atau: <software> <version> exploit
    13. Catat: Software: Version: Vulnerability: CVE / exploit reference: Why is it vulnerable?
    14. Bagian 6 — Exploitation. Sekarang waktunya mendapatkan initial access. Sebelum menjalankan exploit, pahami dulu exploit-nya. Jawab: Apa vulnerability yang dieksploitasi? Service apa yang diserang? Apa yang dilakukan exploit? Apakah exploit membutuhkan username/password? Apa hasil yang diharapkan?Baru kemudian lakukan exploitation.
    15. Dapatkan akses ke target. Setelah berhasil: whoami, Kemudian:id, dan: hostname
    16. Lakukan basic enumeration: pwd
    17. ls -la
    18. Kemudian cari informasi yang relevan. Misalnya: find / -name "*flag*" 2>/dev/null
    19. Bagian 8 — Privilege Escalation. Sekarang Anda sudah mendapatkan initial access. Apakah user tersebut sudah root? whoami
    20. Jika belum root, lakukan enumeration. sudo -l
    21. Kemudian periksa: id
    22. dan informasi sistem: uname -a
    23. Cari kemungkinan: sudo misconfiguration, SUID, writable files, cron jobs, weak credentials, vulnerable software, misconfiguration lainnya. Mendapatkan: root
    24. Langkah serangan: Nmap – Open Port – Service – Enumeration – Information Disclosure – Vulnerability – Exploit – Initial Access – Privilege Escalation – ROOT – FLAG

    Have Fun!

    Kategori
    Layanan Jaringan

    Latihan 6 – Layanan Jaringan

    Misi 1 — Server Health Check

    a. Jalankan perintah berikut satu-persatu dan catat hasilnya.

    ip -br addr
    ip route
    df -h
    systemctl --failed
    sudo ss -lntup

    b. periksa status layanan yang digunakan di server

    systemctl status bind9
    systemctl status chrony

    c. Periksa status layanan dhcp

    systemctl status isc-dhcp-server

    d. Laporkan layanan mana yang aktif, mana yang gagal!

    Misi 2 — DHCP Detective

    a. Pada komputer klien, periksa alamat IP, gateway, dan DNS yang diperoleh.

    • Linux: ip -br addr dan ip route
    • Windows: ipconfig /all

    b. Pada server, periksa status DHCP dan lognya:

    sudo journalctl -u isc-dhcp-server --since "-15 min"

    c. Catat apakah alamat klien berada dalam rentang DHCP yang direncanakan.

    Misi 3

    a. Periksa konfigurasi DNS:

    cat /etc/resolv.conf

    b. Periksa konfigurasi resolver:

    resolvectl status

    c. Uji resolusi nama domain publik: (ganti nama domain)

    getent hosts example.com

    d. Uji (ganti IP dengan IP domain misi 3c, ganti example.com dengan nama domain misi 3c)

    ping -c 2 1.1.1.1
    ping -c 2 example.com

    Misi 4 — NTP Check
    Pada server dan klien, periksa:

    chronyc tracking
    chronyc sources

    Misi 5 — Temukan Masalah

    a. Periksa layanan yang gagal:

    systemctl --failed

    b. Periksa layanan jaringan yang relevan:

    systemctl status bind9 --no-pager
    systemctl status isc-dhcp-server --no-pager
    systemctl status chrony --no-pager

    c. Periksa port:

    sudo ss -lntup

    d. Periksa log terbaru dari salah satu layanan yang tersedia: (boleh ganti chrony dengan layanan lain)

    sudo journalctl -u chrony -n 20 --no-pager

    Buat Laporan dan kumpulkan

    Have Fun!

    Kategori
    lanjar

    Latihan 5 – Linux

    Bagian I: Hak Akses Berkas & Pencarian Data 

    1. Buat direktori ~/projek_sistem/keamanan/ dan buat berkas kosong bernama rahasia.txt di dalamnya. Tampilkan hak akses (permission) berkas tersebut menggunakan perintah ls -l.
    2. Ubah hak akses berkas rahasia.txt menggunakan perintah chmod mode angka (oktal) agar hanya pemilik (owner) yang memiliki akses baca dan tulis, sedangkan group dan others tidak memiliki akses sama sekali.
    3. Ubah hak akses direktori ~/projek_sistem/keamanan/ menggunakan perintah chmod mode simbolik agar pemilik (owner), group, dan others semuanya mendapatkan hak akses penuh (baca, tulis, dan eksekusi).
    4. Cari seluruh berkas yang memiliki ekstensi .conf di dalam direktori /etc menggunakan perintah find, lalu alihkan (redirect) daftar hasilnya ke dalam berkas ~/projek_sistem/daftar_konfig.txt.
    5. Cari seluruh berkas di dalam direktori /var/log yang memiliki ukuran lebih besar dari 1 MB menggunakan perintah find dengan opsi -size, lalu alihkan daftar hasilnya ke berkas ~/projek_sistem/log_besar.txt.
    6. Cari lokasi path dari program utama bash dan tar menggunakan perintah which atau whereis.

    Bagian II: Pengarsipan, Kompresi & Link 

    1. Buat arsip terkompresi berformat .tar.gz dari direktori ~/projek_sistem/keamanan/ dengan nama keamanan_backup.tar.gz, lalu simpan berkas arsip tersebut di dalam direktori ~/projek_sistem/.
    2. Buat sebuah symbolic link bernama link_konfig di direktori home (~) yang mengarah ke berkas ~/projek_sistem/daftar_konfig.txt.
    3. Buat sebuah hard link bernama hard_konfig di dalam direktori ~/projek_sistem/keamanan/ yang terhubung ke berkas ~/projek_sistem/daftar_konfig.txt.

    Bagian III: Pengeditan Berkas Teks Menggunakan Editor vi 

    1. Buat dan buka berkas baru bernama server_config.conf di dalam direktori ~/projek_sistem/ menggunakan editor vi.
    2. Masukkan teks berikut ke dalam berkas tersebut melalui Insert Mode (tekan tombol i):# Konfigurasi Server Ubuntu ServerName=UbuntuLab
      Port=8080
      MaxClients=100
      Environment=Development
      LogLevel=Debug
    3. Tampilkan nomor baris pada layar editor menggunakan perintah mode Command-line (:set nu).
    4. Ubah teks Environment=Development menjadi Environment=Production menggunakan perintah pencarian dan penggantian otomatis (:%s/Environment=Development/Environment=Production/g).
    5. Salin baris Port=8080 lalu tempelkan tepat di bawah baris tersebut. Ubah baris hasil salinan menjadi SSLPort=8443.
    6. Simpan seluruh perubahan dan keluar dari editor secara aman (:wq).

    Bagian IV: Pemrosesan Teks & Filter Data 

    1. Tampilkan 5 baris pertama dari berkas /etc/passwd menggunakan perintah head.
    2. Tampilkan 3 baris terakhir dari berkas /etc/passwd menggunakan perintah tail.
    3. Ekstrak hanya kolom nama pengguna (kolom 1) dan shell yang digunakan (kolom 7) dari berkas /etc/passwd menggunakan cut dengan pemisah tanda titik dua (:).
    4. Gunakan kombinasi perintah grep dan wc dengan metode piping (|) untuk menghitung jumlah baris dalam /etc/passwd yang mengandung frasa /bin/bash.
    5. Gunakan perintah awk untuk menampilkan nama pengguna (kolom 1) yang memiliki UID (kolom 3) lebih besar atau sama dengan 1000 dari berkas /etc/passwd.
    6. Gunakan perintah sed untuk mengganti seluruh kemunculan frasa /bin/bash menjadi /bin/zsh pada output layar dari berkas /etc/passwd tanpa mengubah isi berkas asli.

    Kumpulkan laporan

    Have Fun!

    Kategori
    Uncategorized @id

    Latihan 4 – DNS-NTP

    1. Jalankan menyalakan Ubuntu Server (pastikan isc-dhcp-server menyala)


    2. Jalankan penyadap paket bawaan Linux (tcpdump) di antarmuka Host-Only (misal enp0s8):

    sudo tcpdump -i enp0s8 port 67 or port 68 -vn

    3. Buka CMD di Windows Host dan mengetik: ipconfig /release lalu ipconfig /renew.

    4. Screenshot paket Request (Discover) –> Reply (Offer) –> Request –> Reply (ACK). di Ubuntu server. Tekan Ctrl C

    5. Buka kembali konfigurasi DHCP Server dari minggu lalu:

    sudo nano /etc/dhcp/dhcpd.conf

    Perhatikan dua baris krusial di dalam blok subnet. ubah agar mengarah ke IP dan Nama Domain DNS Server yang mereka buat pada pertemuan kemarin:

    option domain-name-servers 192.168.xx.yy;
    option domain-name "[nama_anda].com";

    6. Restart layanan DHCP: 

    sudo systemctl restart isc-dhcp-server

    7.  Pastikan pengaturan kartu jaringan Host-Only di Windows diatur ke “Obtain an IP address automatically” DAN “Obtain DNS server address automatically”. Buka CMD Windows, ketik ipconfig /renew lalu ipconfig /all

    Pastikan baris Connection-specific DNS Suffix dan DNS Servers di Windows sudah otomatis terisi domain dan IP BIND9, lalu tes dengan ping www.[nama_anda].com

    8. Cek Status Waktu & Zona Waktu Saat Ini:

    timedatectl status
    sudo timedatectl set-timezone Asia/Jakarta

    9. Instalasi Chrony (Otomatis menggantikan timesyncd):

    sudo apt update
    sudo apt install chrony -y

    10. Konfigurasi Server Pool Indonesia & Izin Klien Lokal. Buka konfigurasi Chrony:

    sudo nano /etc/chrony/chrony.conf

    Tambahkan/ubah baris pool di bagian atas agar mengambil waktu dari server Indonesia: 

    pool id.pool.ntp.org iburst

    Di baris paling bawah, izinkan jaringan Host-Only (laptop karyawan) untuk meminta waktu ke server ini:

    allow 192.168.xx.0/24 (sesuaikan xx dengan segmen IP NIM anda)

    11. Restart & Verifikasi Stratum:

    sudo systemctl restart chrony

    chronyc sources -v

    chronyc tracking

    12. Ketik perintah berikut dan screenshot:

    a. timedatectl

    b. chronyc tracking

    c. cat /var/lib/dhcp/dhcpd.leases

    Have Fun!

    Kategori
    Ngoprek

    ReverseMango – Setup Kali dan Recon

    1. Instalasi VirtualBox & Kali Linux. Unduh VirtualBox versi terbaru sesuai OS laptop Anda di virtualbox.org.
    2. Jalankan file installer dan ikuti petunjuknya hingga selesai (gunakan pengaturan default).
    3. Buka situs resmi Kali Linux: kali.org/get-kali/#kali-virtual-machines. Pilih opsi VirtualBox (64-bit). Unduh file .7z atau .ova yang disediakan.
    4. Ekstrak file yang sudah diunduh menggunakan 7-Zip atau WinRAR.
    5. Buka VirtualBox, klik menu Machine –> Add (atau tekan Ctrl + A), lalu arahkan ke folder hasil ekstrak dan pilih file .vbox.
    6. Klik kanan pada VM Kali Linux –> Settings:
    7. System –> Motherboard: Alokasikan RAM minimal 2048 MB (2 GB) atau disarankan 4098 MB (4 GB) jika RAM laptop –> 8 GB.
    8. System –> Processor: Alokasikan minimal 2 CPU Core.
    9. Network: Pastikan Adapter 1 teratur ke NAT.
    10. Jalankan VM dengan menekan tombol Start.
    11. Login menggunakan kredensial default: Username: kali. Password: kali
    12. Buka terminal di dalam Kali Linux dan tes koneksi internet: ping -c 3 google.com
    13. Matikan VM (Power Off), lalu di VirtualBox klik menu tiga titik/ikon di samping nama VM –> Snapshots –> Take. Beri nama “Clean State”. Ini berguna agar VM bisa di-rollback jika terjadi kerusakan di kemudian hari.
    14. Buka browser di dalam Kali Linux, masuk ke akun TryHackMe.
    15. Akses menu Access / My Access https://tryhackme.com/access
    16. Pilih server region terdekat (misal: Singapore / AU), lalu klik Download Access File (file berformat .ovpn).
    17. Buka terminal Kali Linux, navigasi ke folder Download, dan jalankan perintah: sudo openvpn nama_file.ovpn
    18. Biarkan jendela terminal tersebut tetap terbuka. Buka browser dan refresh halaman Access di TryHackMe hingga status bercentang hijau (Connected).
    19. Kerjakan modul https://tryhackme.com/room/passiverecon
    20. dan modul https://tryhackme.com/room/activerecon
    Kategori
    Kuliah Layanan Jaringan

    Latihan 1 – Lanjar

    Selamat, Anda baru saja mendirikan perusahaan startup teknologi Anda sendiri! Namun, perusahaan Anda belum memiliki infrastruktur digital. Misi Anda hari ini adalah membangun server utama dari nol. Server ini nantinya akan menampung seluruh aplikasi web, database, dan sistem komunikasi perusahaan Anda.

    1. Instruksi Awal

    • Pastikan anda sudah menginstal VirtualBox (atau VMware) . Kalau belum silahkan unduh dan instal dari : https://www.virtualbox.org/wiki/Downloads
    • Unduh file ISO Ubuntu Server LTS 24.04.4 di laptop masing-masing. https://ubuntu.com/download/server
    • Skenario Startup: Tentukan nama startup (contoh: SaskiaNet, RakaTech). Nama ini wajib digunakan sebagai identitas server (hostname) hari ini.

    2. Misi 1: Virtual Machine

    Buat “mesin fisik” virtual anda di VirtualBox.

    • Langkah Eksekusi:
      • Membuat VM baru dengan tipe Linux (Ubuntu 64-bit).
      • Alokasi Resource: Mengatur RAM (minimal 2GB) dan CPU (minimal 2 Core, jika memungkinkan).
      • Penyimpanan: Membuat Virtual Hard Disk berkapasitas minimal 20GB.
      • Konfigurasi Jaringan (Krusial): mengatur Network Adapter ke mode NAT (agar VM bisa mengunduh pembaruan/paket dari internet) atau menyiapkan dua adapter (Adapter 1: NAT, Adapter 2: Host-Only).
      • Memasukkan ISO Ubuntu Server ke Optical Drive virtual.

    3. Misi 2: Instalasi Sistem Operasi

    Nyalakan VM dan masuk ke antarmuka instalasi Ubuntu Server.

    • Langkah Eksekusi:
      • Pemilihan bahasa dan tata letak keyboard (biarkan default).
      • Konfigurasi Jaringan: Biarkan sementara menggunakan DHCP agar mendapat akses internet saat instalasi.
      • Partisi Disk: Gunakan opsi Use an entire disk (hindari LVM kustom di sesi awal agar tidak memakan waktu).
      • Pembuatan Identitas (Profile Setup):
        • Your name: Nama mahasiswa (contoh:Asep).
        • Your server’s name: [namastartup]-server (contoh: AsepNet-server).
        • Username & Password: Buat password administrator.
      • OpenSSH Server: Wajib dicentang agar server nantinya bisa di-remote dari laptop fisik (Host).

    4. Misi 3: First Boot & Validasi

    Setelah instalasi selesai dan VM melakukan reboot, akan layar hitam Terminal (CLI).

    • Langkah Eksekusi:
      • Login menggunakan username dan password yang tadi dibuat.
      • Uji Koneksi Internet: Ketikkan ping google.com untuk memastikan server sudah terhubung ke dunia luar.
      • Cek Identitas: Ketikkan perintah hostname untuk memvalidasi bahwa nama server sudah sesuai dengan nama startup.
      • Cek IP Address: Ketikkan perintah ip a atau ifconfig untuk melihat IP dinamis yang didapat dari VirtualBox.

    5. Misi 4: Checkpoint Snapshot

    Ini adalah penerapan SOP untuk mencegah kerusakan fatal di minggu-minggu berikutnya.

    • Langkah Eksekusi:
      • Matikan server menggunakan perintah: sudo poweroff.
      • Kembali ke jendela utama VirtualBox.
      • Klik menu Snapshots > Take.
      • Beri nama: Fresh Install - Minggu 1.
      • “Jika minggu depan server kalian error parah, kalian cukup melakukan ‘Restore’ ke titik ini, tidak perlu instal ulang dari nol.”

    6. Pengumpulan Laporan

    • Screenshot yang menunjukkan CLI Ubuntu dengan kondisi anda sudah login (menampilkan username@namastartup-server:~$) beserta hasil ping.
    • Upload ke LMS

    Have Fun!