---
title: 보안
description: 관리자 콘솔을 2단계 인증과 IP 허용 목록으로 보호하고, 관리자 역할을 관리하며, 패스키, Google 및 GitHub, 캡차, 차단된 이메일 도메인 등 고객 로그인 설정을 구성합니다.
url: https://nexcmp.com/ko/docs/administration/security/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# 보안 {#security}

> **관리자 위치:** System › Admin › Console security (`/account`), Admin users (`/users`); System › Settings › Customer logins (`/settings/login`).

## 관리자 콘솔 {#admin-console}

### 2단계 인증 (TOTP) {#two-factor-authentication-totp}

콘솔은 인터넷을 통해 접근 가능하므로 TOTP를 활성화하세요.

1. **System › Admin › Console security**를 엽니다.
2. **Two-factor authentication (TOTP)** 아래에서 **Start setup**을 클릭합니다.
3. Google Authenticator, Authy, 1Password 또는 Bitwarden으로 QR 코드를 스캔한 다음 6자리 코드를 입력합니다.

### 허용된 콘솔 IP 범위 {#allowed-console-ip-ranges}

**Allowed console IP ranges**에 줄당 하나의 IP 또는 CIDR(IPv4 또는 IPv6)을 입력합니다. **비워 두면 어디서나 허용됩니다.** 이 범위를 벗어나면 로그인과 관리자 API 모두 차단됩니다.

::: warning 잠금 방지
페이지에 현재 IP가 표시되며 새 목록에 해당 IP가 포함되어야 합니다. **+ Add my IP**를 사용하세요. 만약 잠긴 경우 서버에서 [emergency access](https://nexcmp.com/ko/docs/getting-started/cli-reference/#emergency-access)를 사용하세요.
:::

### 비밀번호 변경 {#change-password}

**Current password**, **New password**, **Confirm new password**를 입력합니다. 길고 고유한 비밀번호를 사용하세요(12자 이상; 설치 마법사는 첫 번째 관리자에 대해 12자를 필수로 요구합니다).

### 관리자 계정 및 역할 {#administrator-accounts-and-roles}

**System › Admin › Admin users**를 열고 **+ Create account**를 사용합니다.

| 역할 | 액세스 |
|---|---|
| `admin` | 관리자 API에 대한 전체 액세스 |
| `staff` | 전체 시스템에 대한 읽기 전용 |
| `user` | 단일 고객 리소스에 대한 읽기 전용 보기 |

루트 계정은 [setup wizard](https://nexcmp.com/ko/docs/getting-started/setup-wizard/)에서 생성된 계정입니다. 행 작업: **Edit**, **Reset PW**, **Key**, **Delete**. 비밀번호는 솔티드 해시로 저장되며, 계정을 변경하거나 잠그면 즉시 세션이 종료됩니다.

## 고객 로그인 {#customer-sign-in}

**System › Settings › Customer logins**를 엽니다.

| 설정 | 작동 내용 |
|---|---|
| **Google sign-in** | 활성화한 다음 OAuth 클라이언트 ID와 시크릿을 입력합니다. 페이지에 표시되는 **Callback URL**을 *Google Cloud Console › APIs & Services › Credentials › OAuth client ID › Authorized redirect URIs*에 복사합니다. **Test configuration**을 사용합니다. |
| **GitHub login** | 동일하게 *GitHub › Settings › Developer settings › OAuth Apps › Authorization callback URL*을 사용합니다 |
| **Passkey** | 지문, PIN 또는 하드웨어 키 로그인으로, 기본적으로 켜져 있습니다. 패스키는 도메인에 바인딩되며 각 리셀러 도메인은 개별적으로 작동합니다. 리브랜딩 후 고객이 유용한 힌트를 볼 수 있도록 *Legacy passkey Domain*에 이전 도메인을 입력하세요 |
| **로그인 방식 추가 시 재인증** | 패스키 추가 또는 Google/GitHub 연동 전에 비밀번호를 다시 확인합니다(기본값: 꺼짐) |
| **Captcha** | 가입 시 Cloudflare Turnstile 또는 Google reCAPTCHA 사용: 활성화하고 공급자를 선택한 후 사이트 키와 시크릿 키를 입력합니다 |
| **Block e-mail domains** | 한 줄에 하나의 도메인(최대 2000개). 일치하는 주소는 가입 시 거부되며 `email_domain_blocked` |

![콜백 URL과 함께 Google 로그인을 보여주는 고객 로그인 페이지](https://nexcmp.com/ko/docs/images/administration/security-01-customer-logins.webp)

### 기본 제공 정책 {#built-in-policies}

| 정책 | 값 |
|---|---|
| Customer password | 최소 10자, 영문자와 숫자 |
| Customer session | 30일; "고객으로 로그인" 세션은 1시간 동안 유지됩니다 |
| E-mail verification | 영업 설정에서 *require e-mail verified*가 켜져 있을 때 VM 생성 전에 필수입니다 |
| Anti-carding | 최소 충전 금액 미만인 계정은 제한된 수의 VM만 생성할 수 있습니다 |

## 서버 강화 {#server-hardening}

- 설정 및 TLS 완료 후 포트 3000은 닫힙니다. [Installation](https://nexcmp.com/ko/docs/getting-started/installation/#the-panel-port-3000)을 참조하세요.
- 서비스는 제한된 systemd 샌드박스가 적용된 권한 없는 `nexcmp` 사용자로 실행됩니다.
- API 키, 결제 자격 증명 및 SMTP 비밀번호는 암호화되어 저장되며, 마스터 키는 `/var/lib/nexcmp/secrets`에 있습니다. [backups](https://nexcmp.com/ko/docs/getting-started/backup-and-restore/)을 보호하세요.
- 릴리스는 설치 전에 SHA-256 및 Ed25519 서명으로 검증됩니다.


