Informasi

Best Practices Keamanan Elasticsearch & nusabet88

Cluster Elasticsearch yang terbuka adalah salah satu sumber kebocoran data paling umum di internet. Panduan ini merangkum praktik keamanan penting untuk melindungi cluster dan panel nusabet88 Anda di lingkungan produksi.

Prinsip Dasar

Keamanan yang baik bertumpu pada pertahanan berlapis (defense in depth): tidak mengandalkan satu mekanisme tunggal. Bila satu lapisan gagal, lapisan lain tetap melindungi. Tiga pilarnya adalah membatasi akses jaringan, menerapkan autentikasi yang kuat, dan menjaga kesiapan pemulihan lewat backup.

Jangan pernah mengekspos port 9200 (Elasticsearch) atau port panel nusabet88 langsung ke internet tanpa proteksi. Cluster terbuka dapat dibaca, diubah, atau dihapus oleh siapa pun.

Lakukan vs Hindari

Lakukan

  • Ikat layanan ke 127.0.0.1 atau IP privat.
  • Gunakan reverse proxy Nginx dengan HTTPS.
  • Aktifkan Basic Auth pada panel.
  • Batasi akses dengan IP whitelist atau VPN.
  • Aktifkan security cluster (xpack / native realm).
  • Terapkan least privilege untuk setiap user.
  • Jadwalkan snapshot otomatis rutin.
  • Perbarui Elasticsearch dan nusabet88 berkala.

Hindari

  • Membuka -p 9200:9200 atau panel ke publik.
  • Menjalankan cluster tanpa autentikasi.
  • Memakai HTTP polos untuk kredensial.
  • Memakai satu user superuser untuk semua aplikasi.
  • Menyimpan kredensial di repositori kode.
  • Mengabaikan pembaruan keamanan.
  • Menjalankan produksi tanpa backup.
  • Menonaktifkan TLS antar-node pada cluster sensitif.

1. Kontrol Akses Jaringan

Lapisan pertama adalah jaringan. Pastikan cluster dan panel tidak dapat dijangkau langsung dari internet. Ikat layanan ke localhost atau IP privat, lalu akses lewat reverse proxy atau VPN.

# elasticsearch.yml — ikat ke localhost / IP privat
network.host: 127.0.0.1
http.port: 9200

# container nusabet88 — hanya localhost
docker run -d -p 127.0.0.1:8080:8080 semalt/nusabet88
Untuk akses tim dari luar, lebih aman memakai VPN atau SSH tunnel daripada membuka port publik. Lihat panduan Basic Auth & IP Whitelist untuk detailnya.

2. Reverse Proxy + HTTPS + Basic Auth

Letakkan Nginx di depan panel untuk menyediakan enkripsi TLS dan autentikasi tambahan. HTTPS memastikan kredensial dan data tidak dikirim dalam bentuk polos, sedangkan Basic Auth menambah gerbang sebelum panel.

# cuplikan konfigurasi Nginx
server {
  listen 443 ssl;
  server_name panel.contoh.com;

  ssl_certificate     /etc/letsencrypt/live/panel.contoh.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/panel.contoh.com/privkey.pem;

  location / {
    auth_basic           "Area Terbatas";
    auth_basic_user_file /etc/nginx/.htpasswd;
    allow 203.0.113.10;   # IP kantor
    deny  all;
    proxy_pass http://127.0.0.1:8080;
  }
}

3. Autentikasi Cluster & Least Privilege

Aktifkan fitur keamanan bawaan cluster (xpack security pada Elasticsearch atau security plugin pada OpenSearch) sehingga semua permintaan REST API butuh autentikasi. Lalu buat role dan user terpisah sesuai kebutuhan, bukan satu superuser untuk semua.

PeranHak yang DiberikanContoh Pemakai
read-onlyHanya baca indeks tertentuAplikasi pencarian, dashboard
writerBaca & tulis indeks tertentuPipeline ingest, indexer
index-adminKelola indeks & alias terbatasOperator data
superuserPenuh atas clusterHanya admin tepercaya
Gunakan API key berumur pendek untuk integrasi otomatis dan rotasi kredensial secara berkala.

4. Audit Log & Pemantauan

Aktifkan audit logging agar setiap akses dan perubahan terekam. Log audit membantu mendeteksi aktivitas mencurigakan dan menjadi bukti saat investigasi insiden. Pantau juga metrik cluster untuk mengenali pola tidak wajar, misalnya lonjakan query atau penghapusan indeks.

5. Backup, Update & Hardening Sistem

  1. Snapshot rutin

    Jadwalkan snapshot otomatis ke repository S3-compatible dan uji proses restore secara berkala.

  2. Update berkala

    Pasang pembaruan keamanan Elasticsearch/OpenSearch dan nusabet88 segera setelah dirilis.

  3. Hardening OS

    Aktifkan firewall (ufw/firewalld), nonaktifkan login root SSH, gunakan kunci SSH, dan tutup port yang tidak dipakai.

  4. Isolasi container

    Jalankan container dengan hak minimal dan jaringan internal, hindari mode privileged yang tidak perlu.

Backup yang belum pernah diuji restore-nya sama saja dengan tidak ada backup. Selalu verifikasi snapshot dapat dipulihkan.

Ringkasan

  • Jangan pernah mengekspos port 9200 atau panel ke internet — ikat ke localhost/IP privat.
  • Selalu pakai reverse proxy dengan HTTPS dan Basic Auth, lengkapi IP whitelist atau VPN.
  • Aktifkan security cluster dan terapkan least privilege untuk setiap user dan API key.
  • Aktifkan audit log, jadwalkan snapshot rutin yang teruji, dan perbarui secara berkala.

FAQ Keamanan

Apakah aman membuka port 9200 ke internet?

Tidak. Mengekspos port 9200 ke publik adalah salah satu kesalahan keamanan paling berbahaya. Cluster yang terbuka tanpa autentikasi bisa dibaca, diubah, atau dihapus siapa saja. Selalu ikat ke 127.0.0.1 atau IP privat dan akses melalui reverse proxy.

Apakah Basic Auth saja sudah cukup?

Basic Auth adalah lapisan minimum yang baik, tetapi sebaiknya dikombinasikan dengan HTTPS (agar kredensial tidak terkirim polos), IP whitelist atau VPN, serta autentikasi native/xpack di sisi cluster. Pertahanan berlapis jauh lebih kuat daripada satu mekanisme tunggal.

Seberapa sering saya harus melakukan snapshot?

Frekuensi tergantung seberapa cepat data berubah. Untuk produksi, snapshot harian otomatis ke repository S3-compatible adalah titik awal yang wajar, dengan snapshot tambahan sebelum operasi besar seperti reindex atau upgrade.

Apa itu prinsip least privilege untuk user Elasticsearch?

Least privilege berarti setiap user atau API key hanya diberi hak seminimal mungkin untuk tugasnya. Aplikasi yang hanya membaca tidak perlu hak tulis atau hak admin cluster. Ini membatasi dampak bila satu kredensial bocor.

Amankan panel Anda

Pasang reverse proxy Nginx dengan HTTPS dan Basic Auth untuk melindungi panel nusabet88 dari akses tidak sah.

Panduan Nginx + HTTPS