01. Baseline Keamanan
01. Baseline Keamanan (Berlaku Semua Server)
Semua server Debian 13 harus mengikuti baseline security ini sebelum deployment service-specific. Diasumsikan Anda melakukan instalasi server fresh dengan akses root.
Ujung
Gunakan Script Otomatis!
Kami telah menyediakan script setup_baseline.sh yang akan mengotomatisasi seluruh proses di halaman ini secara interaktif dan aman (termasuk setup password admin, mitigasi konflik SSH config, dan pengaturan UFW yang aman dari pemutusan koneksi). Anda sangat disarankan untuk menjalankan skrip tersebut daripada melakukan setup manual:
./setup_baseline.sh
1.1 User dan Sudo Setup
Semua aplikasi harus dijalankan dengan user non-root. Konvensi penamaan: app-user, cms-user, db-user.
Langkah-langkah:
-
Install paket dasar:
-
Enable Byobu (opsional tapi disarankan):
-
Buat user baru (contoh: app-user):
-
Verifikasi akses sudo:
1.2 SSH Key-based Authentication
Root login dan password authentication harus dinonaktifkan. Gunakan SSH key yang kuat (Ed25519 disarankan).
Langkah-langkah:
-
Generate key di mesin client:
-
Salin public key ke server:
-
Uji koneksi:
1.3 SSHD Hardening
-
Buat file konfigurasi modular:
-
Isi dengan konfigurasi berikut:
-
Validasi dan Restart:
1.4 CrowdSec + Firewall Bouncer
CrowdSec digunakan dalam monitoring mode untuk mendeteksi ancaman tanpa menyebabkan false positive pada server pengembangan.
Instalasi:
Konfigurasi Allowlist (Trusted IPs):
Tambahkan semua jaringan internal ke allowlist untuk mencegah false positive dari CrowdSec (lihat detail akses di bagian 1.7). Networks yang tercantum memiliki akses ke SSH/SFTP/FTP dan services database yang berbeda.
- Buat allowlist:
- Tambahkan jaringan:
Instalasi Firewall Bouncer (nftables):
1.5 UFW Default Policy & Rules
UFW bertindak sebagai lapisan pertahanan pertama. Peraturan berikut sesuai dengan klasifikasi jaringan di bagian 1.7.
-
Setup Awal:
-
Izinkan SSH & SFTP/FTP dari jaringan terpercaya (Akses SSH/SFTP/FTP & DB):
-
Layanan Spesifik Role (HTTP/S, DB, Broker, dll):
Konfigurasi firewall untuk layanan spesifik dilakukan pada masing-masing dokumen peran (Role). Baseline hanya mengatur akses dasar sistem (SSH).
-
Catatan penting:
- Akses layanan spesifik (seperti Database, Message Broker, Valkey) dikonfigurasi pada dokumen peran (role) masing-masing.
- Sesuai kebijakan IoT, port Message Broker dan Valkey Pub/Sub dibuka untuk publik guna mendukung koneksi dari jaringan broadband dinamis.
1.6 Sinkronisasi Waktu (NTP)
Penyelarasan waktu sangat penting untuk validitas log dan sertifikat SSL.
1.7 Klasifikasi Jaringan
| Network | Nama | Deskripsi |
|---|---|---|
<YOUR_PRIVATE_LAN> |
Protected LAN | Internal terproteksi, Akses SSH/SFTP/FTP & DB diizinkan |
100.96.0.0/12 |
Cloudflare CGNAT Mesh | Carrier-Grade NAT space untuk Cloudflare One Client (WARP), virtual IP addresses untuk Zero Trust tunnel, Akses SSH/SFTP/FTP & DB diizinkan |
<YOUR_DC_SUBNET_A> |
Data Center | Network data center (Subnet A) |
<YOUR_DC_SUBNET_B> |
Data Center | Network data center (Subnet B) |
<YOUR_CAMPUS_SUBNET> |
Campus Wide | Akses SSH/SFTP/FTP & DB diizinkan |
0.0.0.0/0 |
Public | HTTP/S, AMQP/S, MQTT/S, WS/S, Redis, S3 |
Untuk setup Cloudflare Virtual Mesh dan Tunnel, lihat dokumentasi terpisah di bagian berikutnya.