---
title: Keamanan
description: Lindungi konsol admin dengan autentikasi dua faktor dan daftar izin IP, kelola peran admin, serta atur login: passkey, Google dan GitHub, captcha, dan domain e-mail terblokir.
url: https://nexcmp.com/id/docs/administration/security/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# Keamanan {#security}

> **Lokasi di admin:** System › Admin › Console security (`/account`), Admin users (`/users`); System › Settings › Customer logins (`/settings/login`).

## Konsol admin {#admin-console}

### Otentikasi dua faktor (TOTP) {#two-factor-authentication-totp}

Konsol dapat diakses dari Internet, jadi aktifkan TOTP.

1. Buka **System › Admin › Console security**.
2. Di bawah **Two-factor authentication (TOTP)** klik **Start setup**.
3. Pindai kode QR dengan Google Authenticator, Authy, 1Password, atau Bitwarden, lalu masukkan kode 6 digit.

### Rentang IP konsol yang diizinkan {#allowed-console-ip-ranges}

Di bawah **Allowed console IP ranges** masukkan satu IP atau CIDR (IPv4 atau IPv6) per baris. **Kosong berarti di mana saja.** Di luar rentang tersebut, proses masuk dan API admin akan diblokir.

::: warning Jangan sampai terkunci sendiri
Halaman ini menampilkan IP Anda saat ini dan mengharuskan daftar baru menyertakannya. Gunakan **+ Add my IP**. Jika Anda tetap terkunci, gunakan [emergency access](https://nexcmp.com/id/docs/getting-started/cli-reference/#emergency-access) dari server.
:::

### Ubah kata sandi {#change-password}

Isi **Current password**, **New password**, dan **Confirm new password**. Gunakan kata sandi yang panjang dan unik (12 karakter atau lebih; wisaya penyiapan mewajibkan 12 karakter untuk administrator pertama).

### Akun administrator dan peran {#administrator-accounts-and-roles}

Buka **System › Admin › Admin users** dan gunakan **+ Create account**.

| Role | Akses |
|---|---|
| `admin` | Akses penuh ke API admin |
| `staff` | Hanya-baca di seluruh sistem |
| `user` | Tampilan hanya-baca untuk sumber daya satu pelanggan |

Akun root adalah akun yang dibuat dalam [setup wizard](https://nexcmp.com/id/docs/getting-started/setup-wizard/). Aksi baris: **Edit**, **Reset PW**, **Key**, **Delete**. Kata sandi disimpan sebagai salted hash; mengubah atau mengunci akun akan langsung mengakhiri sesinya.

## Login pelanggan {#customer-sign-in}

Buka **System › Settings › Customer logins**.

| Pengaturan | Fungsi |
|---|---|
| **Google sign-in** | Aktifkan, lalu masukkan ID klien OAuth dan secret. Salin **Callback URL** yang ditampilkan di halaman ke *Google Cloud Console › APIs & Services › Credentials › OAuth client ID › Authorized redirect URIs*. Gunakan **Test configuration**. |
| **GitHub login** | Sama, dengan *GitHub › Settings › Developer settings › OAuth Apps › Authorization callback URL* |
| **Passkey** | Login sidik jari, PIN, atau kunci perangkat; aktif secara default. Passkey terikat pada domain; setiap domain reseller berfungsi sendiri-sendiri. Masukkan domain lama di *Legacy passkey Domain* setelah rebrand agar pelanggan mendapat petunjuk yang membantu |
| **Autentikasi ulang saat menambahkan metode login** | Minta kata sandi lagi sebelum menambahkan passkey atau menautkan Google/GitHub (nonaktif secara default) |
| **Captcha** | Cloudflare Turnstile atau Google reCAPTCHA saat pendaftaran: aktifkan, pilih penyedia, masukkan site key dan secret key |
| **Block e-mail domains** | Satu domain per baris (maks 2000). Alamat yang cocok akan ditolak saat pendaftaran dengan `email_domain_blocked` |

![Halaman login pelanggan yang menampilkan login Google beserta callback URL-nya](https://nexcmp.com/id/docs/images/administration/security-01-customer-logins.webp)

### Kebijakan bawaan {#built-in-policies}

| Kebijakan | Nilai |
|---|---|
| Kata sandi pelanggan | Minimal 10 karakter, huruf dan angka |
| Sesi pelanggan | 30 hari; sesi "login as customer" berlangsung selama 1 jam |
| Verifikasi email | Diperlukan sebelum membuat VM saat *require e-mail verified* aktif di pengaturan penjualan |
| Anti-carding | Akun dengan saldo di bawah top-up minimum hanya dapat membuat jumlah VM yang terbatas |

## Pengerasan server {#server-hardening}

- Port 3000 ditutup setelah penyiapan dan TLS; lihat [Installation](https://nexcmp.com/id/docs/getting-started/installation/#the-panel-port-3000).
- Layanan berjalan sebagai pengguna `nexcmp` non-istimewa dengan sandbox systemd yang dibatasi.
- Kunci API, kredensial pembayaran, dan kata sandi SMTP disimpan secara terenkripsi; kunci master berada di `/var/lib/nexcmp/secrets` — lindungi [backups](https://nexcmp.com/id/docs/getting-started/backup-and-restore/).
- Rilis diverifikasi dengan SHA-256 dan tanda tangan Ed25519 sebelum instalasi.


