Jejak Tani
Jejak Tani adalah aplikasi web untuk mencatat kepemilikan lahan dan hasil panen. Proyek ini dibangun sebagai bagian dari mata kuliah Keamanan Jaringan, dengan fokus pada keamanan di tingkat aplikasi (backend) dan infrastruktur server.
Keamanan Tingkat Aplikasi (Backend)
Sisi backend dibangun menggunakan HonoJS dan mengimplementasikan standar keamanan berlapis untuk memitigasi kerentanan umum:
- Password Hashing: Menggunakan Bcrypt untuk mengenkripsi kredensial pengguna sebelum masuk ke database.
- Validasi Input: Memanfaatkan middleware Zod untuk memvalidasi struktur tipe data dari setiap request.
- Rate Limiting: Membatasi jumlah request per alamat IP untuk mencegah serangan brute-force dan DoS.
- CORS Policy: Membatasi akses API secara eksklusif hanya untuk domain frontend resmi demi mencegah serangan CSRF.
- JWT & Role-Based Access Control: Mengelola sesi melalui token JWT untuk membatasi rute secara spesifik berdasarkan hak akses (contoh: admin dan petani).
- Secure File Upload: Menyimpan file unggahan ke penyimpanan objek eksternal (Object Storage) dan mengacak namanya menjadi UUID untuk menghindari risiko eksekusi skrip (RCE).
Keamanan Tingkat Server & Jaringan
PM2 menjalankan aplikasi di latar belakang sebagai process manager, menangani uptime dan pencatatan log. Cloudflare Tunnel merutekan seluruh lalu lintas masuk, sehingga server tidak membuka port publik sama sekali. Aturan UFW hanya mengizinkan akses dari 127.0.0.1 (lokal). Cloudflare Zero Trust Access melindungi jalur web administratif dengan autentikasi berbasis identitas.
Selama mengikuti mata kuliah ini, saya juga mendalami manajemen server Linux dan implementasi server hardening, meliputi:
- Konfigurasi UFW yang ketat dan integrasi Fail2ban untuk secara otomatis memblokir alamat IP yang mencurigakan.
- Penggunaan Tailscale untuk akses VPN peer-to-peer ke dalam jaringan internal secara aman.
- Penyiapan Squid Proxy sebagai filter lalu lintas akses jaringan keluar.
- Pengujian keamanan port dan jaringan server secara mandiri menggunakan Nmap dan Xray.
PM2 mengalirkan log aplikasi ke syslog lokal, lalu agen Wazuh SIEM menganalisisnya secara real-time. Wazuh mendeteksi anomali keamanan (pemindaian port agresif, percobaan login berulang) dan mengirimkan peringatan insiden ke Telegram Security Bot.
Tautan Proyek
- GitHub Repository: Isann22/EAS-KEMJAR



