SERVER ADMIN
SIMULATOR MANAJEMEN SERVER - FILE, SHELL, INFO, AUDIT - 100% SANDBOX
VIRTUAL SHELL
PANEL MISI
LANGKAH DICEK OTOMATIS SAAT KAMU MENGETIK
FILE MANAGER
BROWSE VIRTUAL FILESYSTEM - KLIK NAMA FILE UNTUK MELIHAT ISI
SYSTEM INFO
DATA VIRTUAL - SEMUA DIHITUNG LOKAL DI BROWSER
NETWORK TOOLS
INTERFACE, KONEKSI, ROUTE, ARP - TAMPILAN ALA NETSTAT/IP
SECURITY AUDIT
8 CHECK OTOMATIS - IDENTIFIKASI KELEMAHAN VIRTUAL SERVER
DAFTAR MISI
8 MISI - TOTAL 480 XP. ALUR: INVENTORY SAMPAI AUDIT KEAMANAN PENUH.
KUIS SERVER
10 SOAL ACAK - 15 DETIK PER SOAL - TOMBOL 1-4 UNTUK MENJAWAB
MATERI SERVER ADMIN
8 MODUL - KLIK UNTUK MEMBUKA.
Remote management = mengendalikan server dari lokasi lain melalui jaringan. Tiga pendekatan utama yang wajib kamu pahami:
| METODE | PORT | KEUNGGULAN | RISIKO |
|---|---|---|---|
| SSH | 22 | Terenkripsi, standar industri, CLI penuh | Brute force jika password lemah |
| WEB PANEL | 80/443 | GUI ramah pemula (cPanel, Webmin, Cockpit) | Attack surface besar - wajib HTTPS |
| WEB SHELL | 80/443 | Akses cepat via HTTP | SANGAT BAHAYA - sering dipakai penyerang |
Web shell seperti b374k, WSO, dan China Chopper adalah script (biasanya PHP) yang diunggah ke server dan memberikan akses file + command execution melalui browser. Mereka adalah pisau bermata dua: admin bisa memakainya untuk troubleshooting cepat, tetapi penyerang memakainya untuk mempertahankan akses setelah eksploitasi awal.
Cara kerja web shell: 1) file .php diunggah via celah (upload form, CMS rentan, LFI); 2) file itu berisi kode yang menerima perintah dari parameter URL/POST; 3) perintah dieksekusi via shell_exec(), system(), atau popen(); 4) hasil dikirim balik ke browser penyerang.
Kenapa tool ini adalah SIMULASI: semua yang kamu lihat di sini berjalan 100% di browser JavaScript - tidak ada satu byte pun yang dikirim ke server mana pun. Virtual filesystem dan virtual shell adalah model data di memori. Ini sama seperti trainer Linux sebelumnya: melatih pola pikir tanpa risiko.
Deteksi web shell di server nyata: cari file PHP yang memanggil eval(), base64_decode(), gzinflate(), atau shell_exec(); pantau file PHP baru di folder upload; periksa log akses untuk request dengan parameter aneh panjang; gunakan tool seperti LMD (Linux Malware Detect).
Filesystem Linux adalah pohon dari /. Pahami direktori kunci untuk navigasi server:
| DIREKTORI | ISI | PENTING UNTUK |
|---|---|---|
| /etc | Konfigurasi sistem | SSH, network, user, service |
| /var/www | File web (HTML/PHP) | Target utama defacement |
| /var/log | Log system & aplikasi | Forensik, audit, monitoring |
| /home | Folder user | Data pribadi & script user |
| /tmp | Sementara (world-writable) | Tempat favorit malware |
| /root | Home admin (root) | Script admin, ssh key |
| /proc | Virtual: info proses/kernel | Troubleshooting, forensik |
Permission rwx - tiga digit untuk owner/group/others. Kombinasi kritis:
| MODE | UNTUK | KONTEKS SERVER |
|---|---|---|
| 644 | File konfigurasi & HTML | Owner tulis, lainnya baca - standar web |
| 755 | Folder & script (CGI) | Owner penuh, lain baca+eksekusi |
| 600 | Private key, config rahasia | Hanya owner - wajib untuk .pem, .env |
| 777 | TIDAK PERNAH | Undangan menyuntik kode web shell |
Aturan audit permission: file .env, .pem, config.php, wp-config.php harus 600 atau 640. Folder upload boleh 755 tapi file di dalamnya tidak boleh bisa dieksekusi. find /var/www -name "*.php" -perm 777 adalah perintah audit wajib.
Ownership: chown www-data:www-data /var/www - web server butuh baca (dan kadang tulis untuk upload), tapi TIDAK perlu menjadi root. Proses berjalan sebagai www-data: jika web shell masuk, dampaknya terbatas pada hak www-data - bukan seluruh sistem.
Setiap program yang berjalan adalah proses dengan PID unik. Memahami apa yang berjalan adalah langkah pertama monitoring DAN forensik:
| PERINTAH | FUNGSI | PENTING UNTUK |
|---|---|---|
| ps aux | Daftar semua proses | Audit: ada proses mencurigakan? |
| top / htop | Monitor real-time | Lihat pemakan CPU/RAM |
| systemctl status | Status layanan | Debug: layanan mati atau hidup? |
| journalctl -u nama | Log layanan systemd | Cari pesan error spesifik |
| lsof -i :80 | Proses yang pakai port 80 | Konflik port, audit |
Red flags di output ps: proses dengan nama aneh (kdevtmpfsi, kinsing - cryptominer), proses berjalan dari /tmp (tidak wajar), CPU 100% tanpa beban nyata, banyak child process dari proses web (indikasi web shell mengeksekusi command).
Uptime dan load average - baris pertama uptime: 14:32:01 up 45 days, load average: 0.15, 0.10, 0.05. Load harus di bawah jumlah core. Load tinggi konstan = perlu investigasi (bisa cryptominer, bisa traffic naik).
Log yang wajib dipantau:
/var/log/auth.log- login sukses/gagal, sudo: deteksi brute force/var/log/syslog- pesan system umum/var/log/nginx/access.log&error.log- request web & error aplikasijournalctl -f- pantau semua log real-time
Crontab - penjadwalan yang juga jadi tempat favorit malware untuk persistensi: crontab -l (user saat ini), sudo crontab -l (root), cek juga /etc/cron.d/. Entri mencurigakan: script dari /tmp, curl/wget ke IP asing, base64 di on-event.
Server yang sehat hanya membuka port yang dia butuhkan. Port asing = pertanyaan keamanan. Tools wajib:
| PERINTAH | MENAMPILKAN | FLAG PENTING |
|---|---|---|
| ss -tulpn | Port listening + proses | t=TCP u=UDP l=listen p=proses n=numeric |
| ss -tupn | Semua koneksi aktif | Tanpa l: koneksi established juga |
| ip a | Interface & alamat IP | Cek state UP, IP benar |
| ip r | Routing table | Gateway default via 0.0.0.0/0 |
| ip neigh | ARP table (tetangga) | MAC address perangkat LAN |
| netstat -antp | Koneksi TCP + PID (legacy) | Pengganti: ss |
Anomali yang dicari di audit jaringan:
- Port listening yang tidak dikenal (mis. 4444 = metasploit default, 1337 = backdoor umum)
- Koneksi ESTABLISHED ke IP asing yang tidak seharusnya (C2 server, data exfiltration)
- Banyak koneksi SYN_SENT ke satu IP (server kamu jadi bot DDoS)
- Interface promiscuous mode (packet sniffing berjalan)
Port yang harus ada di whitelist server web: 22 (SSH - batasi IP), 80/443 (HTTP/HTTPS), 8291 jika MikroTik Winbox (JANGAN expose ke WAN). Semua port lain yang listening perlu dijelaskan atau ditutup.
Firewall - pertahanan pertama: ufw allow 22/tcp, ufw allow 80/tcp, ufw enable. Aturan emas: deny by default, allow spesifik. Cek: ufw status verbose.
Hardening = proses menutup celah keamanan. Checklist yang wajib diterapkan di setiap server sebelum dianggap siap:
| AREA | AKSI | KOMANDO / METODE |
|---|---|---|
| SSH | Nonaktifkan root login & password auth | PermitRootLogin no, PasswordAuthentication no |
| SSH | Gunakan key-based auth | ssh-keygen + ssh-copy-id |
| Firewall | Enable + allow minimal | ufw allow 22/tcp && ufw enable |
| Updates | Patch keamanan rutin | apt update && apt upgrade -y |
| User | Tidak ada user kosong password | Audit /etc/shadow, kunci user tidak aktif |
| Service | Matikan yang tidak dipakai | systemctl disable --now nama |
| Fail2ban | Auto-blokir brute force | apt install fail2ban |
| File permission | Config rahasia 600 | chmod 600 .env config.php |
| Monitoring | Log + alerting | logwatch, auditd, osquery |
SUID/SGID audit - file dengan bit SUID berjalan sebagai pemiliknya (biasanya root). Daftar sah: /usr/bin/passwd, /usr/bin/sudo, /bin/mount, /bin/umount. SUID aneh di /tmp atau /home = backdoor. Cek: find / -perm -4000 -type f 2>/dev/null.
World-writable files - siapa pun bisa menulis = siapa pun bisa menanam web shell. Cek: find /var/www -perm -o+w -type f. Folder /tmp memang harus 1777 (sticky bit t), tapi file di dalamnya yang executable mencurigakan.
Users tanpa password - akun layanan memang tanpa password login, tapi harus /usr/sbin/nologin atau /bin/false di /etc/passwd. User manusia dengan kolom shell kosong + password kosong = pintu terbuka. Cek: awk -F: '($2==""){print $1}' /etc/shadow.
Sebagai teknisi TKJ, kamu perlu bisa mengenali web shell di server yang kamu tanggung jawabkan. Ini adalah skill defensif yang sangat bernilai:
Ciri-ciri web shell di filesystem:
- File PHP dengan nama acak di folder upload:
wp-content/uploads/2024/shell.php - File PHP berisi
eval(base64_decode('...'))ataueval(gzinflate(...)) - File dengan nama mencurigakan: cmd.php, c99.php, r57.php, b374k.php, wso.php
- File PHP yang sangat besar (b374k full bisa 100+ KB) di tempat tak seharusnya
- File dengan permission 777 di folder web
Ciri-ciri di log akses: request POST panjang ke file PHP aneh, User-Agent aneh (empty, python-requests, sqlmap), akses ke file .php di folder upload, pola GET dengan parameter berisi perintah shell ter-encode.
Perintah pencarian:
find /var/www -name "*.php" -mtime -7- file PHP baru 7 hari terakhirgrep -rl "eval(" /var/www --include="*.php"- file yang pakai evalgrep -rl "base64_decode" /var/www --include="*.php"grep -rl "shell_exec\|system(\|passthru" /var/www --include="*.php"
Langkah pembersihan: 1) karantina server (offline dari internet); 2) identifikasi semua file berbahaya; 3) backup data bersih; 4) hapus web shell + backdoor lain (cron, SSH authorized_keys); 5) patch celah awal (update CMS, plugin); 6) ganti semua password; 7) restore dan pantau ketat.
Pencegahan: disable allow_url_include & allow_url_fopen di php.ini, batasi eksekusi PHP di folder upload via .htaccess, gunakan open_basedir untuk membatasi direktori PHP.
Server yang sehat bukan yang sekali diconfig lalu dilupakan, tapi yang dipantau dan dirawat rutin. Jadwal yang direkomendasikan:
| FREKUENSI | AKTIVITAS | PERINTAH |
|---|---|---|
| HARIAN | Cek log error & security | grep -i error /var/log/syslog | tail -20 |
| HARIAN | Cek disk space | df -h (alert jika >80%) |
| HARIAN | Cek service kritis | systemctl status nginx ssh |
| MINGGUAN | Update security patches | apt update && apt upgrade |
| MINGGUAN | Review login & auth.log | last -20, grep Failed auth.log |
| BULANAN | Audit user & permission | Cek /etc/passwd, find perm 777 |
| BULANAN | Backup + test restore | tar/rsync + verifikasi bisa dibuka |
| KUARTAL | Full security audit | Scan port, SUID, cron, web shell |
Disk monitoring - disk penuh = layanan berhenti (database corrupt, log gagal). Threshold alert: 80%. Bersihkan: du -sh /var/log/* | sort -rh | head -10, journalctl --vacuum-size=100M, logrotate config.
Backup 3-2-1: 3 salinan data, 2 media berbeda, 1 di lokasi berbeda. Backup yang belum pernah dites restore = tidak ada backup. Test restore setiap bulan.
Tools monitoring yang bisa dipelajari lanjut: Nagios/Zabbix (enterprise), Prometheus + Grafana (modern, metrics), Netdata (real-time, mudah dipasang), glances (CLI all-in-one).
Alur kerja yang ditiru oleh 8 misi di simulator ini - hafalkan urutannya, detail menyesuaikan distro:
- 1. Inventory: kenali servermu -
uname -a,cat /etc/os-release,df -h,free -h,ip a - 2. Security baseline: ganti password, nonaktifkan root SSH, enable firewall, install fail2ban
- 3. Updates:
apt update && apt upgrade -ysebelum install apapun - 4. Install services: hanya yang dibutuhkan -
apt install nginx(bukan LAMP semua) - 5. Konfigurasi & permission: file config 600, folder 755, ownership www-data
- 6. Deploy aplikasi: taruh file di /var/www, test via curl localhost
- 7. Setup monitoring: cek log, setup cron untuk cleanup, pasang alerting
- 8. Audit & dokumentasi: jalankan security audit, catat semua konfigurasi, buat runbook
Prinsip yang membedakan teknisi baik:
- Least privilege - beri akses minimum yang diperlukan
- Defense in depth - banyak lapisan, bukan satu pagar
- Document everything - runbook menyelamatkan saat darurat
- Test before deploy - sandbox/VM dulu, produksi kemudian
- Monitor constantly - masalah yang tidak diketahui = masalah terbesar
Setelah lancar di simulator: latih di VM (VirtualBox + Ubuntu Server), lalu di server lab sekolah di bawah supervisi. Skill yang dibangun di sini adalah fondasi sertifikasiCompTIA Linux+, RHCSA, dan pekerjaan sysadmin juniormu.
TIPS SERVER
10 TIPS BERJENJANG: BASIC -> INTER -> PRO.
FAQ SERVER ADMIN
10 PERTANYAAN YANG PALING SERING MUNCUL.
b374k adalah PHP web shell sungguhan yang memberikan akses penuh ke server saat diunggah. Tool ini adalah SIMULATOR edukasi: UI dan workflow-nya meniru gaya remote management, tapi semua data dan perintah berjalan 100% di browser JavaScript tanpa koneksi ke server mana pun. Tidak ada file yang diunggah, tidak ada perintah yang dieksekusi nyata. Tujuannya melatih pola pikir admin dan forensik keamanan secara aman.
Web shell adalah script (biasanya PHP) yang diunggah ke server web dan memberikan interface untuk menjalankan perintah, browse file, dan mengakses database via browser. Berbahaya karena: 1) berjalan di port 80/443 yang pasti terbuka; 2) tampak seperti traffic web normal di firewall; 3) berjalan dengan hak user web server (www-data); 4) mudah diunggah via celah upload. Deteksi: grep eval(, base64_decode(, shell_exec( di file PHP; pantau file baru di folder upload.
Formatnya disederhanakan namun struktur datanya meniru Linux asli: path, permission, format ps/ss/df, nama proses standar. Simulator melatih pola pikir dan workflow; di server asli akan ada detail lebih banyak (flags, kolom, edge case). Setelah lancar di sini, pindah ke VirtualBox + Ubuntu Server untuk pengalaman penuh, lalu server lab sekolah di bawah supervisi.
Urutan audit dasar: 1) ss -tulpn (port listening sah?); 2) last & grep Failed /var/log/auth.log (login mencurigakan?); 3) find / -perm -4000 (SUID di luar daftar sah?); 4) find /var/www -perm -o+w (world-writable?); 5) crontab -l + /etc/cron.d/ (scheduled task aneh?); 6) grep eval( /var/www (web shell?); 7) /etc/passwd & /etc/shadow (user aneh/tanpa password?); 8) ufw status (firewall aktif?). Simulator ini punya versi otomatis di menu AUDIT.
Root adalah username yang PASTI ada di semua server Linux - penyerang tidak perlu menebak usernya, cukup fokus menebak passwordnya. Dengan PermitRootLogin no, meskipun password root bocor, SSH langsung gagal. Praktiknya: buat user biasa dengan sudo, login sebagai user itu, lalu sudo untuk yang perlu. Bonus: sudo tercatat di audit log - jejak lebih baik daripada root langsung.
Urutan respons insiden: 1) ISOLASI - putus dari internet (jangan matikan, itu menghapus bukti RAM); 2) DOKUMENTASI - screenshot, copy log sebelum diutak-atik; 3) IDENTIFIKASI - bagaimana masuknya? (log auth, web shell, celah aplikasi); 4) BERISIHKAN - hapus backdoor, patch celah; 5) GANTI SEMUA password; 6) RESTORE dari backup bersih; 7) PANTAU KETAT - serangan sering kembali; 8) LEMBAR BELAJAR - catat pelajaran untuk mencegah ulang.
777 berarti siapa pun (termasuk user www-data yang menjalankan web server) bisa TULIS file. Jika ada celah upload atau LFI di aplikasi, penyerang bisa menulis file PHP ke folder yang 777, lalu mengaksesnya via browser = web shell terpasang. Aturan: file 644, folder 755, folder upload 755 TANPA eksekusi PHP (via .htaccess: php_flag engine off). File yang butuh ditulis aplikasi: owner www-data, group www-data, mode 644/664.
SUID (Set User ID) adalah bit permission yang membuat file berjalan dengan HAK PEMILIKNYA (biasanya root), terlepas dari siapa yang menjalankannya. Contoh sah: /usr/bin/passwd perlu SUID agar user biasa bisa mengubah passwordnya sendiri (menulis ke /etc/shadow). Bahaya: SUID di /tmp, /home, atau file yang bisa ditulis = eskalasi privilege. Audit: find / -perm -4000 -type f, bandingkan dengan daftar yang diketahui sah. SUID di file yang bisa ditulis = backdoor.
Ya - semua tersimpan di localStorage perangkat ini (prefix abr_srv_): misi selesai, XP, jumlah perintah, skor kuis terbaik, dan jumlah ronde. Tidak terkirim ke server mana pun. Catatan: clear site data akan menghapus progres; gunakan browser yang sama. Tombol RESET hanya mengembalikan virtual server ke kondisi awal - XP dan misi tidak ikut hilang.
Tiga jenjang: 1) Ulangi semua misi tanpa hint - target di bawah 30 perintah total; 2) Pasang Ubuntu Server di VirtualBox, ulangi seluruh workflow (update, SSH key, nginx, fail2ban, audit) di sana; 3) Ambil proyek nyata di bawah supervisi: setup web server lab, audit server yang sudah ada, atau bikin documentation runbook. Setelah itu siapkan diri untuk sertifikasi: CompTIA Linux+ atau RHCSA - materi di sini adalah fondasinya.