diff --git a/content/self-host/rustdesk-server-pro/2fa/_index.ko.md b/content/self-host/rustdesk-server-pro/2fa/_index.ko.md new file mode 100644 index 00000000..a72f6d8e --- /dev/null +++ b/content/self-host/rustdesk-server-pro/2fa/_index.ko.md @@ -0,0 +1,117 @@ +--- +title: 2FA +weight: 16 +description: "RustDesk 서버 프로에서 이메일 인증 또는 Authy, Microsoft Authenticator, Google Authenticator와 같은 TOTP 앱을 사용해 2단계 인증을 활성화하십시오." +keywords: ["rustdesk 2fa", "rustdesk totp", "rustdesk email verification", "rustdesk authenticator", "rustdesk server pro 2fa"] +--- + +이 안내서를 사용하여 RustDesk Server Pro에서 더 강력한 계정 보안을 위해 2FA를 활성화하십시오. + +계정에 로그인할 때 2FA 인증을 켜면 계정 보안을 향상시킬 수 있습니다. + +## 어떤 2FA 방법을 선택해야 하나요? + +| 방법 | 최적의 사용 사례 | 사용하는 이유 | +| --- | --- | --- | +| 이메일 인증 | 이미 SMTP에 의존하는 간편한 배포 | 사용자가 이미 인증 앱을 사용하지 않는 경우 가장 쉽게 도입 가능 | +| TOTP | 강력한 일상적인 계정 보안 | 장기적인 관리자 및 운영자 계정에 더 안전하고 표준화된 방식 | + +## 2FA 빠른 답변 + +- RustDesk Server Pro는 이메일 인증과 TOTP를 지원합니다. +- TOTP가 활성화되면 이메일 로그인 인증은 더 이상 사용되지 않습니다. +- TOTP 설정 시 6개의 백업 코드가 생성됩니다. +- 백업 코드는 한 번만 사용할 수 있습니다. +- 만료된 2FA는 여전히 작동할 수 있지만, 다시 활성화하면 비밀번호가 새로 생성되어 보안이 강화됩니다. + +현재 당사 웹 콘솔은 두 가지 종류의 2FA를 지원합니다: + +1. 이메일 인증 +2. TOTP. 인증 코드를 생성하려면 [Authy](https://authy.com), [Microsoft Authenticator](https://www.microsoft.com/en-us/security/mobile-authenticator-app/) 및 [Google Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2)와 같은 타사 인증 앱이 필요합니다. + +먼저 계정 설정 페이지로 이동해야 합니다. + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/1-settings-account.png) + +## 이메일 인증 + +로그인을 위한 이메일 인증을 활성화하려면 다음이 필요합니다: + +1. 이메일을 설정하세요. +2. `Enable email login verification` 옵션을 활성화하세요. +3. `Submit`를 클릭하세요. + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/2-2fa-email-1.png) + +다음에 로그인할 때 RustDesk는 인증 코드 이메일을 보내며, 웹 페이지도 인증 페이지로 이동합니다. + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/2-2fa-email-2.png) + +## TOTP + +TOTP는 널리 사용되는 2FA 방법이므로, RustDesk 서버 프로의 웹 콘솔에서 2FA는 TOTP 인증을 의미합니다. + +### 인증 앱 준비하기 + +먼저 인증 앱을 준비해야 합니다. +[Authy](https://authy.com), [Microsoft Authenticator](https://www.microsoft.com/en-us/security/mobile-authenticator-app/) 및 [Google Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) 인증 앱 중에서 선택할 수 있습니다. + +### 2FA 활성화 + +설정 페이지에 `Enable 2FA` 버튼이 표시되면 현재 2FA가 활성화되지 않은 것입니다. + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-enable-1.png) + +버튼을 클릭하면 2FA를 활성화할 수 있는 양식이 나타납니다. + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-enable-2.png) + +인증 앱을 열고 QR코드를 스캔하여 계정을 추가하세요. + +QR코드 스캔이 불편한 경우, 여기에 직접 코드를 입력할 수도 있습니다. + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-enable-3.png) + +인증 앱에서 계정을 추가한 후, 인증 앱에서 인증 코드를 입력하여 2FA를 켜세요. + +2FA가 성공적으로 켜진 후, RustDesk Server Pro는 6개의 **백업 코드**와도 연결됩니다. 따라서 인증 앱을 사용할 수 없는 경우에도 이 **백업 코드**를 사용해 인증을 통과할 수 있습니다. + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-enable-4.png) + +{{% notice note %}} +1. 이 백업 코드는 한 번만 사용할 수 있습니다. + +2. 백업 코드를 안전한 곳에 보관해 주세요. +{{% /notice %}} + +### 로그인 인증 + +2FA가 활성화되면 이메일 로그인 인증은 더 이상 사용되지 않습니다. 대신 2FA 로그인 인증을 사용하게 됩니다. + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-enable-login-5.png) + +로그인 시 인증 페이지로 리디렉션됩니다. + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-enable-login-6.png) + +### 설정 수정 + +2FA가 활성화된 경우 계정 설정을 수정하려면 추가적인 2FA 인증이 필요합니다. + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-settings-1.png) + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-settings-2.png) + +### 2FA 상태 + +2FA는 총 3가지 상태를 가집니다: 비활성화, 활성화 및 만료됨. + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-state-not-enabled.png) + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-state-enabled.png) + +![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-state-expired.png) + +{{% notice note %}} +2FA는 만료된 후에도 정상적으로 사용할 수 있습니다. 다만 오랜 기간 동안 2FA 설정이 변경되지 않았다는 의미입니다(기본값 180일). 보안을 위해 2FA를 다시 활성화하는 것이 좋습니다. 이렇게 하면 비밀 데이터가 업데이트될 수 있습니다. +{{% /notice %}} \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/_index.ko.md b/content/self-host/rustdesk-server-pro/_index.ko.md new file mode 100644 index 00000000..f63ccf13 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/_index.ko.md @@ -0,0 +1,120 @@ +--- +title: RustDesk 서버 프로 +description: "RustDesk Server Pro의 완벽한 가이드 - 프리미엄 자체 호스팅 원격 데스크톱 솔루션입니다. 엔터프라이즈 인증(OIDC, LDAP, 2FA), 웹 콘솔, API 액세스 및 전문적인 배포를 위한 고급 보안 제어 기능을 제공합니다." +keywords: ["rustdesk server pro", "rustdesk pro server", "remote desktop server", "enterprise remote access", "rustdesk professional", "self-hosted rdp", "rustdesk enterprise", "remote desktop solution", "rustdesk licensing", "rustdesk web console"] +aliases: + - /en/self-host/pro/ + - /self-host/pro/ +weight: 200 +pre: "2.2. " +--- + +RustDesk Server Pro는 중앙 집중식 관리, 신원 통합 및 RustDesk 서버 코어를 기반으로 한 고급 제어 기능이 필요한 팀을 위한 상용 자체 호스팅 배포 옵션입니다. + +## RustDesk Server Pro 빠른 답변 + +- 중앙 집중식 관리 기능, 신원 통합 또는 정책 제어가 필요할 때 Pro를 선택하세요. +- 가장 빠르고 쉬운 배포를 위해 [Docker](/docs/ko/self-host/rustdesk-server-pro/installscript/docker/)로 시작하세요. +- `systemd`와 스크립트된 Linux 설정을 원한다면 [install.sh](/docs/ko/self-host/rustdesk-server-pro/installscript/script/)를 사용하세요. +- [Windows install path](/docs/ko/self-host/rustdesk-server-pro/installscript/windows/)는 이전 버전으로 간주하세요. +- 서버가 시작된 직후 HTTPS, 라이선스 및 클라이언트 구성에 대해 계획을 세우세요. + +## RustDesk Server Pro를 선택하는 경우 + +RustDesk Server OSS만으로 부족하고 다음이 필요할 때 RustDesk Server Pro를 선택하세요: + +- 계정 +- [Web console](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/) +- [API](https://github.com/rustdesk/rustdesk/wiki/FAQ#api-of-rustdesk-server-pro) +- [OIDC](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/oidc/), [LDAP](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/ldap/), [2FA](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/2fa/) +- 주소록 +- 로그 관리(연결, 파일 전송, 알람 등) +- 디바이스 관리 +- [Security Settings sync](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/strategy/) +- [Access control](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/permissions/) +- [Multiple relay servers](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/relay/)(가장 가까운 릴레이를 자동으로 선택함) +- [Custom client generator](https://rustdesk.com/docs/en/self-host/client-configuration/#1-custom-client-generator-pro-only) +- 웹소켓 +- 웹 클라이언트 자체 호스팅 + +{{% notice note %}} +집이나 사무실에서 자체 서버를 구축하고 공개 IP/도메인을 통해 연결할 수 없는 경우, [this article](https://rustdesk.com/docs/en/self-host/nat-loopback-issues/)를 확인해 주세요. +{{% /notice %}} + +{{% notice note %}} +계속하기 전에 먼저 이 내용을 읽어보시는 것을 권장합니다, [How does self-hosted server work?](/docs/ko/self-host/#how-does-self-hosted-server-work). +{{% /notice %}} + +## 하드웨어 요구사항 + +가장 낮은 수준의 VPS만으로도 사용 사례에 충분합니다. 서버 소프트웨어는 CPU와 메모리 집약적이지 않습니다. 2코어/4GB Vultr 서버에 호스팅된 당사의 공개 ID 서버는 100만 개 이상의 엔드포인트를 지원합니다. 각 릴레이 연결은 초당 평균 180kb를 소비합니다. 1개의 CPU 코어와 1G RAM만으로도 1000개의 릴레이 동시 연결을 지원할 수 있습니다. + +## 기사 튜토리얼 +[Step-by-Step Guide: Self-Host RustDesk Server Pro on Cloud via Docker for Secure Remote Access](https://www.linkedin.com/pulse/step-by-step-guide-self-host-rustdesk-server-pro-cloud-montinaro-fwnmf/) + +## 동영상 튜토리얼 + +[Beginner's Guide: Self-Host RustDesk Server Pro for Novice Linux User](https://www.youtube.com/watch?v=MclmfYR3frk) + +[Quick Guide: Self-Host RustDesk Server Pro for Adavanced Linux User](https://youtu.be/gMKFEziajmo) + +## 라이선스 + +라이선스는 https://rustdesk.com/pricing.html에서 받을 수 있으며, 자세한 내용은 [license](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/) 페이지를 확인하십시오. + +## 시작하기 +### 1. 설치 + +``` +bash <(wget -qO- https://get.docker.com) +wget rustdesk.com/pro.yml -O compose.yml +sudo docker compose up -d +``` + +자세한 내용은 [Docker](/docs/ko/self-host/rustdesk-server-pro/installscript/docker/)를 확인하십시오. + +### 2. 필요한 포트 + +`21114`-`21119` TCP 및 `21116` UDP 포트를 열어야 하며, 방화벽 규칙과 Docker 포트 매핑을 설정할 때 이들 포트가 정확히 설정되었는지 확인하십시오. + +이 포트에 대한 자세한 정보는 [here](/docs/ko/self-host/rustdesk-server-oss/install/#ports)를 확인하십시오. + +### 3. 라이선스 설정 + +`http://:21114`, [log in](/docs/ko/self-host/rustdesk-server-pro/console/#log-in)에 기본 자격 증명 admin/test1234를 사용해 웹 콘솔을 엽니다. `admin`/`test1234`도 동일합니다. [this guide](/docs/ko/self-host/rustdesk-server-pro/license/#set-license)를 따라 라이선스를 설정하십시오. + +### 4. 웹 콘솔용 HTTPS 설정 + +> 체험 기간 동안 HTTPS를 사용하지 않으려면 이 단계를 건너뛸 수 있지만, HTTPS를 설정한 후 클라이언트의 API 주소를 변경하는 것을 잊지 마세요. + +다음은 [manual HTTPS setup](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#set-up-https-for-web-console-manually)에 대한 간단한 자습서입니다. + +### 5. 자체 호스팅 서버를 사용하도록 클라이언트 구성하기 + +https://rustdesk.com/docs/en/self-host/client-configuration/ + +### 6. WebSocket 설정하기 + +웹 클라이언트나 [desktop / mobile client](/docs/ko/self-host/client-configuration/advanced-settings/#allow-websocket)가 WebSocket을 통해 제대로 작동하려면 리버스 프록시 구성에 다음 설정을 추가해야 합니다. + +https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms + +## 서버 업그레이드 + +이 [guide](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#there-is-a-new-version-of-rustdesk-server-pro-out-how-can-i-upgrade)는 낮은 버전에서 RustDesk Server Pro로 업그레이드하는 방법을 다루며, 다양한 설치 방식을 설명합니다. + +## 새 호스트로 이전 및 백업/복원 + +다음은 상세한 [tutorial](https://github.com/rustdesk/rustdesk-server-pro/discussions/184)입니다. + +## 라이선스 이전 + +이 [guide](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/#invoices-license-retrieval-and-migration)를 따르십시오. + +## 라이선스 업그레이드 + +[this guide](/docs/ko/self-host/rustdesk-server-pro/license/#renewupgrade-license)를 따라 언제든지 더 많은 사용자와 장치를 위한 라이선스를 업그레이드하십시오. + +## 보안 정보 + +https://github.com/rustdesk/rustdesk/discussions/9835 \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/admin-role/_index.ko.md b/content/self-host/rustdesk-server-pro/admin-role/_index.ko.md new file mode 100644 index 00000000..a163f68d --- /dev/null +++ b/content/self-host/rustdesk-server-pro/admin-role/_index.ko.md @@ -0,0 +1,171 @@ +--- +title: 관리자 역할 +weight: 17 +description: "RustDesk 서버 프로에서 관리자 역할을 사용하여 사용자, 장치, 전략(Strategy), 제어 역할 및 기타 콘솔 리소스에 대한 범위 지정된 관리 권한을 위임하십시오." +keywords: ["rustdesk admin role", "rustdesk delegated admin", "rustdesk server pro permissions", "rustdesk role management", "rustdesk web console roles"] +--- + +RustDesk 서버 프로에서 전체 관리자 권한을 부여하지 않고 부분적인 관리 접근 권한을 위임해야 할 때 관리자 역할을 사용하십시오. + +관리자 역할을 통해 관리자는 비관리자 사용자에게 부분적인 관리 권한을 위임할 수 있습니다. 다양한 범위 내의 사용자 및 디바이스뿐만 아니라 전역 리소스(예: 정책, 제어 역할 및 사용자 지정 클라이언트)에 대한 권한을 정의할 수 있습니다. + +관리자 역할이 사용자에게 할당되면, 사용자는 부여된 권한에 따라 웹 콘솔에서 해당 페이지와 메뉴를 볼 수 있습니다. + +## 언제 관리자 역할을 사용해야 하나요? + +누군가가 전체 관리자가 되지 않고도 RustDesk 환경의 일부를 관리해야 할 때 관리자 역할을 사용하십시오. 이 모델은 헬프데스크 책임자, 지역 IT팀, 디바이스 소유자 또는 그룹 범위의 운영자에게 적합하며, 이들은 플릿의 일부만 관리해야 합니다. + +## 관리자 역할에 대한 간단한 답변 + +- 관리자 역할은 콘솔 관리 권한을 위임합니다. +- 이는 전체 관리자 계정을 대체하지 않습니다. +- 한 사용자가 동시에 여러 개의 관리자 역할을 가질 수 있습니다. +- 유효한 권한 집합은 할당된 모든 관리자 역할의 합집합입니다. +- 관리가 선택된 그룹으로 제한되어야 할 경우 그룹 범위 역할이 적합합니다. + +## 관리자 vs 관리자 역할 + +- 관리자만이 관리자 역할을 편집하고 사용자에게 관리자 역할을 할당할 수 있습니다. +- 관리자는 관리자 역할에 의해 제한되지 않으며, 관리자에게 관리자 역할을 할당할 수 있습니다. +- 비관리자 사용자는 전역 사용자 권한이 부여되어 있더라도 관리자 계정을 편집할 수 없습니다. + +## 역할 유형 + +관리자 역할은 세 가지 유형으로 나뉘며, 각각 다른 범위와 사용 가능한 권한을 갖습니다. + +| 유형 | 설명 | +|------|-------------| +| **전체** | 전체 팀의 모든 리소스를 관리할 수 있음 | +| **개별** | 사용자의 자체 기기와 감사 로그만 관리할 수 있음 | +| **그룹 범위** | 지정된 그룹 내의 사용자와 기기를 관리할 수 있음 | + +### 그룹 범위 정보 + +| 선택됨 권한 | 적용 대상 | +|-------|-------------| +| **사용자 권한** | 선택된 사용자 그룹 내 사용자에 적용 | +| **장치 권한** | 다음에서 장치에 적용: | + +그룹 범위 역할에서 사용자 권한 또는 장치 권한만 선택하여 권한과 범위를 보다 명확히 할 수 있습니다. 예를 들어, 사용자 권한만 선택하면 어떤 장치 접근 권한 없이 사용자를 관리할 수 있으며, 장치 권한만 선택하면 사용자 그룹, 장치 그룹 또는 미할당 장치를 범위로 선택하여 장치를 관리할 수 있습니다. + +## 권한 규칙 + +### 모든 편집 권한에는 해당하는 보기 권한이 포함됩니다 + +모든 편집 권한은 자동으로 해당하는 보기 권한을 포함합니다. 예를 들어, "장치 활성화/비활성화" 권한에는 "장치 보기" 권한이 포함됩니다. + +### 편집 권한에는 할당이 포함되지 않습니다 + +리소스(사용자 그룹, 장치 그룹, 전략, 제어 역할)에 대한 편집 권한은 리소스 자체만 편집할 수 있도록 하며, 이를 사용자나 장치에 할당하는 것은 허용되지 않습니다. + +예를 들어, "장치 그룹 편집" 권한은 장치 그룹을 생성하고 수정할 수 있지만, 그룹에 장치를 추가하거나 제거하려면 "장치 그룹 업데이트" 권한이 필요합니다. + +### 보기 권한에는 구성원이 포함되지 않습니다 + +리소스(사용자 그룹, 장치 그룹, 전략, 제어 역할)에 대한 보기 권한은 리소스 자체만 볼 수 있도록 하며, 그 안의 구성원을 볼 수는 없습니다. + +예를 들어, "디바이스 그룹 보기" 권한은 디바이스 그룹 목록을 볼 수 있도록 허용하지만, 그룹 내의 디바이스를 보려면 "디바이스 보기" 권한 또는 어떤 디바이스 편집 권한이 필요합니다. 디바이스 권한이 전역인 경우 그룹 내 모든 디바이스를 볼 수 있으며, 그룹 범위 또는 개별 권한인 경우 허용된 범위 내의 디바이스만 볼 수 있습니다. + +{{% notice note %}} +주소록의 디바이스 읽기는 관리자 역할에 의해 제한되지 않습니다. 클라이언트의 액세스 가능한 장치 피어 탭은 콘솔의 **설정 → 기타 → 액세스 가능한 장치 가져오기 비활성화**에 의해서만 제어되며, 관리자 역할에 의해 제한되지 않습니다. +{{% /notice %}} + +## 콘솔 작업 + +### 역할 생성 + +1. **관리자 역할** 페이지로 이동하여 **생성**을 클릭하세요. +2. 역할에 대한 **이름**을 입력하세요. +3. **유형**을 선택하세요(그룹 범위인 경우 범위도 구성하세요). +4. 부여할 **권한**을 선택하세요. + +![](/docs/en/self-host/rustdesk-server-pro/admin-role/images/admin-role-create-name.png) +![](/docs/en/self-host/rustdesk-server-pro/admin-role/images/admin-role-create-permission.png) + +### 역할 할당 + +사용자에게 관리자 역할을 할당하는 방법은 두 가지가 있습니다: + +1. **사용자 페이지** → 사용자에서 **편집**을 클릭한 후 **관리자 역할** 필드에서 역할을 선택하세요. +2. **관리자 역할 페이지** → **사용자 수** 또는 **사용자 할당**을 클릭한 후 역할에 사용자를 추가하거나 제거하세요. + +![](/docs/en/self-host/rustdesk-server-pro/admin-role/images/admin-role-assign-user-page.png) +![](/docs/en/self-host/rustdesk-server-pro/admin-role/images/admin-role-assign-role-page.png) + +{{% notice note %}} +- 사용자는 여러 개의 관리자 역할을 할당받을 수 있습니다. 할당된 모든 역할의 권한이 결합됩니다(모든 권한의 합집합). +{{% /notice %}} + +## 권한 참조 + +### 글로벌 권한 + +| 권한 | 설명 | +|------------|-------------| +| 사용자-보기 | 모든 사용자의 목록 정보를 읽습니다. | +| 사용자-생성 | 비관리자 사용자를 직접 생성합니다. | +| 사용자-초대 | 이메일을 통해 사용자를 초대합니다. | +| 사용자-삭제 | 비관리자 사용자를 삭제합니다. 사용자는 비활성화된 후에만 삭제할 수 있습니다. | +| 사용자-활성화/비활성화 | 비관리자 사용자를 활성화하거나 비활성화합니다. | +| 사용자-이메일 편집 | 비관리자 사용자의 이메일을 변경합니다. | +| 사용자-비밀번호 변경 | 비관리자 사용자의 비밀번호를 변경합니다. | +| 사용자-노트 편집 | 비관리자 사용자의 노트를 변경합니다. | +| 사용자-2FA 관리 | 비관리자 사용자의 로그인 인증을 관리합니다. 2FA 강제 활성화/비활성화, 2FA 구성 재설정, 이메일 로그인 인증 비활성화 포함됩니다. | +| 사용자-강제 로그아웃 | 모든 기기에서 비관리자 사용자의 로그아웃을 강제합니다. | +| 사용자-그룹 업데이트 | 비관리자 사용자의 그룹을 변경합니다. | +| 사용자-전략 업데이트 | 비관리자 사용자의 전략을 변경합니다. | +| 사용자-제어 역할 업데이트 | 비관리자 사용자의 제어 역할을 변경합니다. | +| 기기-보기 | 모든 기기의 목록 정보를 읽습니다. | +| 기기-활성화/비활성화 | 어떤 기기도 활성화하거나 비활성화합니다. | +| 기기-삭제 | 어떤 기기도 삭제합니다. 기기는 비활성화된 후에만 삭제할 수 있습니다. | +| 기기-정보 편집 | 어떤 기기의 이름, 기기 사용자 이름(기기의 시스템 사용자 이름, RustDesk 사용자가 아님), 그리고 노트를 편집합니다. | +| 기기-사용자 할당 | 어떤 기기를 어떤 사용자에게 할당합니다. | +| 기기-그룹 업데이트 | 어떤 기기의 그룹을 변경합니다. | +| 기기-전략 업데이트 | 어떤 기기의 전략을 변경합니다. | +| 사용자 그룹-보기 | 모든 사용자 그룹의 목록 정보를 읽습니다. 사용자 보기 권한이 있으면 그룹 구성원을 볼 수 있습니다. 사용자 그룹 업데이트 권한이 있으면 여기서 사용자의 그룹을 일괄 업데이트할 수 있습니다. | +| 사용자 그룹-편집 | 사용자 그룹을 생성, 편집, 삭제하며, 그룹 구성원 업데이트는 포함하지 않습니다. | +| 기기 그룹-보기 | 모든 기기 그룹의 목록 정보를 읽습니다. 기기 보기 권한이 있으면 그룹 구성원을 볼 수 있습니다. 기기 그룹 업데이트 권한이 있으면 여기서 기기의 그룹을 일괄 업데이트할 수 있습니다. | +| 기기 그룹-편집 | 기기 그룹을 생성, 편집, 삭제하며, 그룹 구성원 업데이트는 포함하지 않습니다. 전략 업데이트 권한도 포함됩니다. | +| 기기 그룹-전략 업데이트 | 어떤 기기 그룹의 전략을 변경합니다. | +| 감사 로그-보기 | 모든 로그를 읽습니다. 노트를 편집할 수 있습니다. "관리자만 로그에 접근 가능" 옵션이 활성화되어 있어도 가능합니다. | +| 감사 로그-편집 | 어떤 활성 연결도 연결 해제할 수 있습니다. | +| 전략-보기 | 어떤 전략도 읽습니다. 사용자 보기, 기기 보기, 기기 그룹 보기 권한이 있으면 사용자, 기기, 기기 그룹의 전략을 읽을 수 있습니다. 사용자 전략 업데이트, 기기 전략 업데이트, 기기 그룹 전략 업데이트 권한이 있으면 여기서 해당 전략을 일괄 업데이트할 수 있습니다. | +| 전략-편집 | 전략을 생성, 편집, 삭제하며, 사용자, 기기, 기기 그룹의 전략 업데이트는 포함하지 않습니다. | +| 제어 역할-보기 | 어떤 제어 역할도 읽습니다. 사용자 보기 권한이 있으면 사용자의 제어 역할을 읽을 수 있습니다. 사용자 제어 역할 업데이트 권한이 있으면 여기서 해당 제어 역할을 일괄 업데이트할 수 있습니다. | +| 제어 역할-편집 | 제어 역할을 생성, 편집, 삭제하며, 사용자의 제어 역할 업데이트는 포함하지 않습니다. | +| 사용자 지정 클라이언트-보기 | 사용자 지정 클라이언트의 목록을 읽습니다. 컴파일된 사용자 지정 클라이언트를 다운로드할 수 있습니다. 사용자 지정 클라이언트의 상세 구성은 읽을 수 없습니다. | +| 사용자 지정 클라이언트-편집 | 사용자 지정 클라이언트를 생성, 편집, 삭제합니다. + +### 개별 권한 + +| 권한 | 설명 | +|------------|-------------| +| 장치-보기 | 사용자의 장치 목록 정보를 읽습니다. | +| 장치-활성화/비활성화 | 사용자의 장치를 활성화하거나 비활성화합니다. | +| 장치-삭제 | 사용자의 장치를 삭제합니다. 장치를 삭제하려면 먼저 비활성화해야 합니다. | +| 장치-정보 편집 | 사용자의 장치 이름, 장치 사용자 이름(장치의 시스템 사용자 이름이 아니라 RustDesk 사용자 이름), 및 노트를 편집합니다. | +| 장치-전략 변경 | 사용자의 장치 전략을 변경합니다. | +| 감사 로그-보기 | 개인 로그를 읽습니다. 노트를 편집할 수 있습니다. "관리자만 로그에 접근 가능" 옵션이 활성화된 경우에도 가능합니다. | +| 감사 로그-편집 | 개인의 활성 연결을 연결 해제할 수 있습니다. | + +### 그룹 범위 권한 + +| 권한 | 설명 | +|------------|-------------| +| 사용자-보기 | 선택된 사용자 그룹 내 사용자의 목록 정보를 읽습니다. | +| 사용자-생성 | 선택된 사용자 그룹 내 비관리자 사용자를 생성합니다. | +| 사용자-초대 | 선택된 사용자 그룹 내 이메일을 통해 사용자를 초대합니다. | +| 사용자-삭제 | 선택된 사용자 그룹 내 비관리자 사용자를 삭제합니다. 사용자는 삭제되기 전에 비활성화되어야 합니다. | +| 사용자-활성화/비활성화 | 선택된 사용자 그룹 내 비관리자 사용자를 활성화하거나 비활성화합니다. | +| 사용자-이메일 편집 | 선택된 사용자 그룹 내 비관리자 사용자의 이메일을 변경합니다. | +| 사용자-비밀번호 변경 | 선택된 사용자 그룹 내 비관리자 사용자의 비밀번호를 변경합니다. | +| 사용자-노트 편집 | 선택된 사용자 그룹 내 비관리자 사용자의 노트를 변경합니다. | +| 사용자-2FA 관리 | 선택된 사용자 그룹 내 비관리자 사용자의 로그인 인증을 관리합니다. 2FA 강제 활성화/비활성화, 2FA 구성 재설정, 이메일 로그인 인증 비활성화 포함됩니다. | +| 사용자-강제 로그아웃 | 선택된 사용자 그룹 내 비관리자 사용자를 모든 기기에서 강제로 로그아웃시킵니다. | +| 사용자-전략 업데이트 | 선택된 사용자 그룹 내 비관리자 사용자의 전략을 변경합니다. | +| 사용자-제어 역할 업데이트 | 선택된 사용자 그룹 내 비관리자 사용자의 제어 역할을 변경합니다. | +| 기기-보기 | 현재 역할이 관리하는 기기의 목록 정보를 읽습니다. | +| 기기-활성화/비활성화 | 현재 역할이 관리하는 기기를 활성화하거나 비활성화합니다. | +| 기기-삭제 | 현재 역할이 관리하는 기기를 삭제합니다. 기기는 삭제되기 전에 비활성화되어야 합니다. | +| 기기-정보 편집 | 현재 역할이 관리하는 기기의 이름, 기기 사용자 이름(기기의 시스템 사용자 이름, RustDesk 사용자가 아님), 그리고 노트를 편집합니다. | +| 기기-전략 업데이트 | 현재 역할이 관리하는 기기의 전략을 변경합니다. | \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/console/_index.ko.md b/content/self-host/rustdesk-server-pro/console/_index.ko.md new file mode 100644 index 00000000..9ee6bd9b --- /dev/null +++ b/content/self-host/rustdesk-server-pro/console/_index.ko.md @@ -0,0 +1,534 @@ +--- +title: 웹 콘솔 +weight: 10 +description: "RustDesk Server Pro 웹 콘솔을 사용하여 포트 21114에서 장치, 사용자, 권한, 로그 및 기타 관리 설정을 관리하십시오." +keywords: ["rustdesk web console", "rustdesk server pro console", "rustdesk port 21114", "rustdesk device management", "rustdesk admin console"] +--- + +RustDesk Server Pro 웹 콘솔은 디바이스, 사용자, 권한 및 로그를 관리하는 주요 관리 인터페이스입니다. + +웹 콘솔은 RustDesk 서버 Pro에 통합되어 있으며, `21114` 포트에서 서비스됩니다. + +## RustDesk Server Pro 웹 콘솔이란? + +웹 콘솔은 자체 호스팅된 RustDesk Server Pro 배포의 주요 제어 플레인입니다. 관리자는 여기서 사용자, 디바이스, 그룹, 권한, 정책, 릴레이 설정, SMTP, 토큰 및 사용자 지정 클라이언트를 관리합니다. + +## 첫 번째 관리자 체크리스트 + +1. `21114` 포트에서 웹 콘솔에 로그인하세요. +2. 기본 `admin` 비밀번호를 즉시 변경하세요. +3. 라이선스가 아직 활성화되지 않았다면 입력하세요. +4. 초대 및 이메일 인증을 원한다면 SMTP를 구성하세요. +5. 기본 계정에 의존하지 않고 추가 관리자 또는 위임 계정을 생성하세요. +6. 더 넓은 배포 전에 릴레이, 정책 및 클라이언트 설정을 구성하세요. + +## 웹 콘솔에서 할 수 있는 일은 무엇인가요? + +- 사용자, 사용자 그룹 및 관리자 접근권한 관리 +- 디바이스, 디바이스 그룹 및 할당 관리 +- 접근 규칙, 정책, 제어 역할 및 관리자 역할 구성 +- 로그 및 활성 세션 보기 +- SMTP, 릴레이, 토큰 및 기타 서버 설정 관리 +- 사용자 지정 클라이언트 빌드 및 구성 페이로드 생성 + +기능: + +- 장치 둘러보기 +- 사용자 및 사용자 그룹 추가/수정 +- 장치 액세스 권한 수정 +- 장치 연결 로그 및 기타 로그 둘러보기 +- 설정 업데이트 +- 클라이언트 설정 동기화 전략(Strategy) 관리 +- 공유 주소록 관리 +- 사용자 지정 클라이언트 빌드 생성 + +## 로그인 + +웹 콘솔의 기본 포트는 21114입니다. 다음 그림과 같이 브라우저에 `http://:21114`를 입력하여 콘솔 페이지로 들어가세요. 기본 관리자 사용자 이름/비밀번호는 `admin`/`test1234`입니다: + +![](/docs/en/self-host/rustdesk-server-pro/console/images/console-login.png) + +HTTPS 지원이 필요하다면 `Nginx`와 같은 웹 서버를 설치하거나 Windows용 `IIS`를 사용하십시오. + +로그인한 후 반드시 비밀번호를 변경하십시오. 오른쪽 상단의 계정 메뉴에서 `Settings`를 선택하여 비밀번호 변경 페이지로 이동하십시오. 아래 그림과 같습니다. 또한 다른 관리자 계정을 생성하고 현재 계정을 삭제할 수도 있습니다. 이메일 로그인 인증을 활성화하는 것이 좋습니다. + + +![](/docs/en/self-host/rustdesk-server-pro/console/images/console-home.png?v2) + +비관리자 사용자도 로그인하여 기기 및 로그를 둘러보고 사용자 설정을 변경할 수 있습니다. + +## 자동 구성 +`Windows EXE`를 클릭하면 자신의 RustDesk Server Pro용 구성 파일을 얻을 수 있으며, 이는 클라이언트를 구성하는 데 도움이 됩니다. + +Windows 클라이언트의 경우 사용자 지정 서버 구성은 생략하고 대신 `rustdesk.exe` 파일명에 구성 정보를 입력할 수 있습니다. 위와 같이 콘솔 환영 페이지로 이동한 후 `Windows EXE`를 클릭하십시오. **클라이언트 ≥ 1.1.9 필요합니다.** + +이 기능은 [client config](https://rustdesk.com/docs/en/self-host/client-configuration/) 및 [deployment scripts](https://rustdesk.com/docs/en/self-host/client-deployment/)와 함께 사용하여 클라이언트를 설정하는 데 활용할 수 있습니다. + +## 기본 `admin` 사용자 외에 새 사용자 생성하기 + +{{% notice note %}} +`Individual` 플랜에는 이 기능이 없습니다. +{{% /notice %}} + +1. 왼쪽 메뉴에서 `Users`를 클릭하세요. +2. `administrator`가 활성화된 다른 계정을 생성하세요. +3. 새 관리자 계정으로 로그인하세요. +4. `Users` 페이지에서 `admin`를 삭제하세요. + +## 새 사용자 생성 +1. 왼쪽 메뉴에서 `Users`를 클릭하세요. +2. 새 사용자를 생성하세요. +3. 그들이 속할 그룹을 선택하세요(새로운 그룹을 추가해야 하는 경우 계속 읽어주세요). + +## 새 그룹 추가 +1. 왼쪽 메뉴에서 `Groups`를 클릭하세요. +2. 새 그룹을 생성하세요. +3. 생성된 후 그룹 간에 서로 접근 권한을 부여할 수 있습니다. `Edit`를 클릭하세요. +4. 접근하고자 하는 관련 그룹을 선택하세요(해당 그룹에 자동으로 추가됩니다). + +## 여러 릴레이 서버 설정하기 +1. 왼쪽 메뉴에서 `Settings`로 이동하세요. +2. 하위 메뉴에서 `Relay`를 클릭하세요. +3. `Relay Servers` 옆에 있는 `+`를 클릭하세요. +4. 이제 표시되는 상자에 릴레이 서버의 DNS 주소 또는 IP 주소를 입력하고 Enter 키를 누르세요. +5. 릴레이 서버가 하나 이상인 경우 계속해서 `+`를 클릭하고 지리적 설정을 조정할 수 있습니다(다른 서버에도 키를 기억하고 복사해 두세요). + +## 라이선스 설정 또는 변경 +1. 왼쪽 메뉴에서 `Settings`로 이동하세요. +2. 하위 메뉴에서 `License`를 클릭하세요. +3. `Edit`를 클릭하고 라이선스 코드를 붙여넣으세요. +4. `OK`를 클릭하세요. + +## 로그 보기 +왼쪽에서 `Logs`를 클릭하세요. + +## 이메일 설정 +이 예제에서는 Gmail을 사용합니다. + +1. 왼쪽 메뉴에서 `Settings`로 이동하세요. +2. 하위 메뉴에서 `SMTP`를 클릭하세요. +3. SMTP 주소 `smtp.gmail.com`를 입력하세요. +4. `SMTP Port`에 포트 587을 입력하세요. +5. Gmail 계정, 즉 `myrustdeskserver@gmail.com`를 `Mail Account`에 입력하세요. +6. 비밀번호를 입력하세요(앱 비밀번호가 필요할 수 있습니다). +7. Gmail 계정, 즉 `myrustdeskserver@gmail.com`를 `From`에 입력하세요. +8. 저장하려면 `Check`를 클릭하세요. + +## 웹 콘솔을 통해 장치 사용자/전략/장치 그룹을 장치에 할당하기 + +사용자는 장치에서 로그인한 RustDesk 사용자이거나, 장치 옆의 **편집**을 클릭하여 장치에 할당된 사용자입니다. **사용자** 상자에서 클릭하고 드롭다운 메뉴를 열어 사용자를 선택하세요. +또한 **사용자 목록**에서 **더 보기 → 장치 할당**을 클릭하여 여러 장치를 한 번에 사용자에게 할당할 수도 있습니다. + +장치 그룹에 장치를 추가하려면, **장치 목록**에서 장치 옆의 **편집**을 클릭하고 **그룹**을 변경하거나, **장치 그룹** 목록으로 이동해 장치 그룹 이름을 클릭한 후 해당 그룹 내의 장치를 조정할 수 있습니다. + +장치에 전략을 할당하려면, **전략** 목록의 오른쪽을 마우스로 가리킨 후 메뉴에서 **장치 편집**, **사용자 편집**, 또는 **장치 그룹 편집**을 클릭해 선택된 전략에 해당 장치, 사용자 장치, 또는 장치 그룹 장치를 추가하세요. + +--- + +## API 토큰 + +먼저 **설정 → 토큰 → 생성**으로 이동해 필요한 권한을 가진 토큰을 생성해야 합니다: **장치, 감사 로그, 사용자, 그룹, 전략, 주소록**. + +토큰이 생성되면, 이를 **명령줄**이나 **파이썬 CLI**를 통해 해당 권한을 가진 작업을 수행하는 데 사용할 수 있습니다. + +### 명령줄에서 토큰을 통한 할당 + +RustDesk 실행 파일을 `--assign` 매개변수와 함께 사용해 할당 작업을 수행할 수도 있습니다. +이를 통해 명령줄에서 바로 사용자, 전략, 주소록, 또는 장치 그룹을 장치에 할당할 수 있습니다. + +**예시:** + +```bash +"C:\Program Files\RustDesk\rustdesk.exe" --assign --token --user_name +``` + +지원되는 매개변수 + +| 매개변수 | 설명 | RustDesk 서버 Pro | RustDesk 클라이언트 | +| --------------------------------------- | --------------------------------------- | ------------------- | --------------- | +| `--user_name ` | 사용자를 장치에 할당 | | | +| `--strategy_name ` | 장치에 전략을 할당 | | | +| `--address_book_name ` | 장치를 주소록에 할당 | | | +| `--address_book_tag ` | 주소록 태그로 할당 | | | +| `--address_book_alias ` | 주소록 별명으로 할당 | 1.5.8 | 1.4.1 | +| `--address_book_password ` | 주소록 항목의 비밀번호 설정 | 1.6.6 | 1.4.3 | +| `--address_book_note ` | 주소록 항목의 노트 설정 | 1.6.6 | 1.4.3 | +| `--device_group_name ` | 장치를 장치 그룹에 할당 | | | +| `--note ` | 장치에 노트 추가 | 1.6.6 | 1.4.3 | +| `--device_username ` | 장치의 사용자 이름 설정 | 1.6.6 | 1.4.3 | +| `--device_name ` | 장치의 이름 설정 | 1.6.6 | 1.4.3 | +| [`--deploy`](/docs/ko/self-host/client-deployment/#explicit-deployment-for-new-devices) | **새 장치 배포 필요**가 활성화된 경우 새 장치를 등록합니다. **장치** 권한이 **읽기 및 쓰기**로 설정된 API 토큰이 필요합니다. | 1.8.3 | 1.4.7 | + +Windows의 명령줄은 기본적으로 출력이 없습니다. 출력을 얻으려면 다음과 같이 실행하세요: `"C:\Program Files\RustDesk\rustdesk.exe" ... | more` 또는 `"C:\Program Files\RustDesk\rustdesk.exe" ... | Out-String`, [here](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952)를 참조하세요. + +### Python CLI 관리 도구 + +#### 사용자 관리 (`users.py`) + +**도움말 표시:** +`./users.py -h` + +**사용자 보기:** +`./users.py --url --token view [--name ] [--group_name ]` + +**필터:** +- `--name`: 사용자 이름(퍼지 검색) +- `--group_name`: 사용자 그룹(정확한 일치) + +**예제:** +`./users.py --url https://example.com --token view --group_name Default` + +**기본 작업:** + +- **사용자 비활성화:** + `./users.py --url --token disable --name testuser` + +- **사용자 활성화:** + `./users.py --url --token enable --name testuser` + +- **사용자 삭제:** + `./users.py --url --token delete --name testuser` + +**사용자 생성 및 초대:** + +- **새 사용자 생성:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "note"]` + + 필수: `--name`, `--password`, `--group_name` + 선택적: `--email`, `--note` + +- **이메일로 사용자 초대:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "note"]` + + 필수: `--email`, `--name`, `--group_name` + 선택적: `--note` + +**2FA 및 보안 작업:** + +- **2FA 시행 활성화:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + 필수: `--web-console-url` + +- **2FA 시행 비활성화:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + 선택적: `--web-console-url` + +- **2FA 재설정:** + `./users.py --url --token reset-2fa --name username` + +- **이메일 인증 비활성화:** + `./users.py --url --token disable-email-verification --name username` + +- **강제 로그아웃:** + `./users.py --url --token force-logout --name username` + +**참고:** +- 여러 사용자(필터로 매칭됨)를 작업할 때, 확인을 요청받게 됩니다. +- 필터에 맞는 사용자가 없으면 "사용자 0명 발견"이라고 표시됩니다. + +--- + +#### 사용자 그룹 관리 (`user_group.py`) + +**도움말 표시:** +`./user_group.py -h` + +**사용자 그룹 보기:** +`./user_group.py --url --token view [--name ]` + +**예제:** +`./user_group.py --url https://example.com --token view --name "Sales Team"` + +**그룹 작업:** + +- **사용자 그룹 생성:** + `./user_group.py --url --token add --name "GroupName" [--note "description"] [--accessed-from ''] [--access-to '']` + + 접근 제어 포함 예제: + `./user_group.py --url --token add --name "Engineering" --accessed-from '[{"type":0,"name":"Managers"}]' --access-to '[{"type":1,"name":"DevServers"}]'` + +- **사용자 그룹 업데이트:** + `./user_group.py --url --token update --name "GroupName" [--new-name "NewName"] [--note "new note"] [--accessed-from ''] [--access-to '']` + +- **사용자 그룹 삭제:** + `./user_group.py --url --token delete --name "GroupName"` + + 쉼표로 구분된 이름 지원: `--name "Group1,Group2,Group3"` + +**그룹 내 사용자 관리:** + +- **그룹의 사용자 보기:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + 필터: + - `--name`: 그룹 이름(정확한 일치, 선택 사항) + - `--user-name`: 사용자 이름(부분 일치 검색, 선택 사항) + + 예제: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **그룹에 사용자 추가:** + `./user_group.py --url --token add-users --name "GroupName" --users "user1,user2,user3"` + +**액세스 제어 매개변수:** + +- `--accessed-from`: 이 사용자 그룹에 액세스할 수 있는 사람을 정의하는 JSON 배열 + - 유형 0 = 사용자 그룹(예: `[{"type":0,"name":"Admins"}]`) + - 유형 2 = 사용자(예: `[{"type":2,"name":"john"}]`) + +- `--access-to`: 이 사용자 그룹이 액세스할 수 있는 내용을 정의하는 JSON 배열 + - 유형 0 = 사용자 그룹(예: `[{"type":0,"name":"Support"}]`) + - 유형 1 = 디바이스 그룹(예: `[{"type":1,"name":"Servers"}]`) + +**권한 요구 사항:** +- `view/add/update/delete/add-users` 명령은 **사용자 그룹 권한**이 필요합니다. +- `view-users` 명령은 **사용자 권한**이 필요합니다. + +--- + +#### 디바이스 그룹 관리 (`device_group.py`) + +**도움말 표시:** +`./device_group.py -h` + +**디바이스 그룹 보기:** +`./device_group.py --url --token view [--name ]` + +**예제:** +`./device_group.py --url https://example.com --token view` + +**그룹 작업:** + +- **디바이스 그룹 생성:** + `./device_group.py --url --token add --name "GroupName" [--note "description"] [--accessed-from '']` + + 예제: + `./device_group.py --url --token add --name "Production" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **기기 그룹 업데이트:** + `./device_group.py --url --token update --name "GroupName" [--new-name "NewName"] [--note "new note"] [--accessed-from '']` + +- **기기 그룹 삭제:** + `./device_group.py --url --token delete --name "GroupName"` + + 쉼표로 구분된 이름 지원: `--name "Group1,Group2,Group3"` + +**그룹별 기기 관리:** + +- **그룹의 장치 보기:** + `./device_group.py --url --token view-devices [filters]` + + 사용 가능한 필터: + - `--name`: 장치 그룹 이름(정확한 일치) + - `--id`: 장치 ID(부분 일치 검색) + - `--device-name`: 장치 이름(부분 일치 검색) + - `--user-name`: 사용자 이름/소유자(부분 일치 검색) + - `--device-username`: 장치에서 로그인한 사용자 이름(부분 일치 검색) + + 예시: + + ```bash + # View all devices in a group + ./device_group.py --url --token view-devices --name Production + + # Search by device name + ./device_group.py --url --token view-devices --device-name server + + # Combine filters + ./device_group.py --url --token view-devices --name Production --user-name john + ``` + +- **그룹에 장치 추가:** + `./device_group.py --url --token add-devices --name "GroupName" --ids "deviceid1,deviceid2"` + +- **그룹에서 장치 제거:** + `./device_group.py --url --token remove-devices --name "GroupName" --ids "deviceid1,deviceid2"` + +**액세스 제어 매개변수:** + +- `--accessed-from`: 이 장치 그룹에 접근할 수 있는 사람을 정의하는 JSON 배열 + - 유형 0 = 사용자 그룹(예: `[{"type":0,"name":"Engineers"}]`) + - 유형 2 = 사용자(예: `[{"type":2,"name":"admin"}]`) + +**권한 요구 사항:** +- `view/add/update/delete/add-devices/remove-devices` 명령은 **장치 그룹 권한**이 필요합니다. +- `view-devices` 명령은 **장치 권한**이 필요합니다. + +--- + +#### 장치 관리 (`devices.py`) + +**도움말 표시:** +`./devices.py -h` + +**장치 보기:** +`./devices.py --url --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_days ]` + +**필터:** +`--id`: 장치 ID +`--device_name`: 장치 이름 +`--user_name`: 할당된 사용자 +`--group_name`: 사용자 그룹 +`--device_group_name`: 장치 그룹 +`--offline_days`: 오프라인 일수 + +**예제:** +`./devices.py --url https://example.com --token view --user_name mike` + +**작업:** +view는 `enable`, `disable`, `delete` 또는 `assign`로 대체할 수 있습니다. + +**예제 (장치 할당):** +`./devices.py --url https://example.com --token assign --device_name PC01 --assign_to user_name=mike` + +--- + +#### 주소록 관리 (`ab.py`) + +**도움말 표시:** +`./ab.py -h` + +**공유된 주소록 보기:** +`./ab.py --url --token view-ab [--ab-name ]` + +**개인 주소록 GUID 받기:** +`./ab.py --url --token get-personal-ab` + +**공유 주소록 추가하기:** +`./ab.py --url --token add-ab --ab-name [--note ] [--password ]` + +**공유 주소록 업데이트 또는 삭제하기:** +`./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ]` +`./ab.py --url --token delete-ab --ab-guid ` + +**주소록에서 피어 보기:** +`./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ]` + +**피어 추가, 업데이트 또는 삭제:** +`./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2]` +`./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2]` +`./ab.py --url --token delete-peer --ab-guid --peer-id ` + +**태그 관리:** +`./ab.py --url --token view-tag --ab-guid ` +`./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00]` +`./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000` +`./ab.py --url --token delete-tag --ab-guid --tag-name ` + +**액세스 규칙 관리:** +`./ab.py --url --token view-rule --ab-guid ` +`./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full` +`./ab.py --url --token update-rule --rule-guid --rule-permission rw` +`./ab.py --url --token delete-rule --rule-guid ` + +**예제 (사용자 "mike"에 대한 읽기 전용 규칙 추가):** +`./ab.py --url https://example.com --token <토큰> add-rule --ab-guid --rule-user mike --rule-permission ro` + +--- + +#### 전략 관리(`strategies.py`) + +**도움말 표시:** +`./strategies.py -h` + +**모든 전략 목록 보기:** +`./strategies.py --url --token <토큰> list` + +**특정 전략 보기:** + +```bash +# By name +./strategies.py --url --token view --name "Default" + +# By GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**전략 활성화 또는 비활성화:** + +```bash +./strategies.py --url --token enable --name "StrategyName" +./strategies.py --url --token disable --name "StrategyName" +``` + +**장치, 사용자 또는 장치 그룹에 전략 할당:** + +```bash +# Assign to devices (by device ID) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Assign to users (by username) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Assign to device groups (by group name) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Mixed assignment +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**할당 해제 전략:** + +```bash +# Unassign from devices +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Unassign from users +./strategies.py --url --token unassign --users "admin" + +# Unassign from device groups +./strategies.py --url --token unassign --device-groups "device_group1" +``` + +**참고:** +- 스크립트는 사용자 및 장치 그룹에 대해 이름과 GUID 모두를 지원합니다. +- 장치 ID는 자동으로 GUID로 변환됩니다. +- 모든 할당/해제 작업은 한 번에 여러 리소스를 대상으로 할 수 있습니다. + +**권한 요구 사항:** +- `list/view/enable/disable/assign/unassign` 명령은 **전략 권한**이 필요합니다. +- `--peers`는 **장치 권한:r**이 필요합니다. (ID에서 GUID 조회용) +- `--users`는 **사용자 권한:r**이 필요합니다. (사용자 이름에서 GUID 조회용) +- `--device-groups`는 **장치 그룹 권한:r**이 필요합니다. (이름에서 GUID 조회용) + +--- + +#### 감사( `audits.py`) + +**도움말 표시:** +`./audits.py -h` + +**연결 감사 보기:** +`./audits.py --url --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ]` + +**파일 감사 보기:** +`./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ]` + +**알람 감사 보기:** +`./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ]` + +**콘솔 감사 보기:** +`./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ]` + +**필터:** +`--remote`: 피어 ID(연결 또는 파일 감사용) +`--conn-type`: 0=원격 데스크톱, 1=파일 전송, 2=포트 전송, 3=카메라 보기, 4=터미널 +`--device`: 장치 ID(알람 감사용) +`--operator`: 운영자 사용자 이름(콘솔 감사용) +`--created-at`: 로컬 시간 필터, 예: "2025-09-16 14:15:57" +`--days-ago`: 주어진 일수보다 새로운 기록 필터 +`--page-size` / `--current`: 페이징 + +**예제:** +`./audits.py --url https://example.com --token view-conn --remote 123456789 --days-ago 7` + +## 장치 검색 +1. 장치로 이동하세요. +2. 장치 이름 검색 필드에 이름을 입력하고 `Query`를 클릭하거나 Enter 키를 누르세요. +3. 와일드카드를 사용하려면 검색어의 시작, 끝 또는 양쪽에 `%`를 추가하세요. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/control-role/_index.ko.md b/content/self-host/rustdesk-server-pro/control-role/_index.ko.md new file mode 100644 index 00000000..9e086485 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/control-role/_index.ko.md @@ -0,0 +1,135 @@ +--- +title: 제어 역할 +weight: 18 +description: "RustDesk 서버 Pro에서 제어 역할을 구성하여 연결이 연결된 후 원격 운영자가 수행할 수 있는 작업을 정의하십시오. 제어 역할을 액세스 제어 및 전략(Strategy)과 비교하십시오." +keywords: ["rustdesk control role", "rustdesk remote permissions", "rustdesk server pro control role", "rustdesk access control vs strategy", "rustdesk remote control policy"] +--- + +RustDesk Server Pro에서 원격 세션 중에 사용자가 수행할 수 있는 작업을 정의하려면 제어 역할을 사용하세요. + +제어 역할을 통해 서로 다른 사용자에게 원격 제어 권한을 구성할 수 있습니다. 사용자가 다른 장치를 원격으로 제어할 때, 제어 역할은 연결이 설정된 후 제어하는 사용자가 수행할 수 있는 작업을 정의합니다. + +## 제어 역할은 언제 사용해야 하나요? + +원격 장치에 연결한 후 운영자가 수행할 수 있는 작업을 제한하고 싶을 때 제어 역할을 사용하세요. 이 기능은 운영자가 파일 전송, 클립보드 사용, 터미널 열기, 원격 장치 재시작 또는 원격 구성 수정 등을 할 수 있는지 여부와 같은 결정에 적합합니다. + +## 제어 역할에 대한 간단한 답변 + +- 제어 역할은 연결 설정 후 세션 내 작업에 영향을 미칩니다. +- 처음부터 연결이 허용되는지 여부를 결정하지 않습니다. +- 각 사용자는 단 한 개의 제어 역할만 가질 수 있습니다. +- 제어 역할 권한은 제어되는 장치의 로컬 권한 설정을 무시할 수 있습니다. +- 기본 제공되는 `Not Logged` 및 `Default` 역할은 사용자 지정 역할이 할당되지 않은 사용자를 포함합니다. + +{{% notice note %}} +**제어 역할 vs 접근 제어 vs 전략** + +- **제어 역할**: 연결 설정 후 제어하는 사용자가 수행할 수 있는 작업을 결정합니다. +- **접근 제어**: 제어 장치와 제어되는 장치 간에 연결을 설정할 수 있는지 여부를 결정합니다. +- **전략**: 제어되는 장치의 설정을 수정합니다. +{{% /notice %}} + +## 요구 사항 + +- 제어되는 장치: RustDesk **1.4.5** 이상 (Android 제어 장치는 아직 지원되지 않습니다) +- 제어하는 장치: 버전 요구 사항 없음 + +## 권한 계산 + +### 권한 작동 방식 + +간략히 말해: 제어 권한이 로컬 설정보다 우선합니다. + +권한 설정의 출처는 두 가지입니다: + +- **제어되는 쪽의 로컬 설정**: 제어되는 장치의 설정(설정 → 보안 → 권한) +- **제어 권한**: 제어하는 사용자의 제어 역할 권한(웹 콘솔에서 구성됨) + +각 권한에는 세 가지 상태가 있습니다: + +- **클라이언트 설정 사용**: 오버라이드 없음, 제어되는 장치의 로컬 설정을 사용함 +- **활성화**: 이 권한을 명시적으로 활성화함(로컬 설정을 무시함) +- **비활성화**: 이 권한을 명시적으로 비활성화함(로컬 설정을 무시함) + +권한은 세션 단위로 계산됩니다: + +| 제어 권한 | 로컬 설정 | 결과 | +|---|---|---| +| 활성화 | 활성화 | 활성화 | +| 활성화 | 비활성화 | **활성화** | +| 비활성화 | 활성화 | **비활성화** | +| 비활성화 | 비활성화 | 비활성화 | +| 클라이언트 설정 사용 | 활성화 | 활성화 | +| 클라이언트 설정 사용 | 비활성화 | 비활성화 | + +**특수 사례: 원격 구성 수정** + +여러 제어 사용자가 동일한 장치에 연결되어 있을 때, '원격 구성 수정' 권한은 모든 연결을 통합하여 계산됩니다: + +| 모든 연결의 제어 권한 | 결과 | +|---|---| +| 아무거나 비활성화 | **비활성화** | +| 비활성화 없음, 아무거나 활성화 | **활성화** | +| 모두 클라이언트 설정 사용 | 로컬 설정 사용 | + +### 적용되는 역할 + +각 사용자는 하나의 제어 역할만 할당받을 수 있습니다. 기본 제공 역할은 두 가지입니다: + +| 역할 | 설명 | +|------|-------------| +| **로그인하지 않음** | 로그인하지 않은 사용자를 제어하는 데 사용됩니다. 사용자에게 할당할 수 없습니다. | +| **기본값** | 제어 역할이 지정되지 않았거나 명시적으로 기본값 역할에 할당된 로그인한 제어 사용자에게 사용됩니다. | + +상태에 따라 적용되는 제어 역할은 제어 사용자의 로그인 상태와 역할 할당에 따라 다릅니다: + +| 사용자 상태 제어 | 할당된 역할 | 어떤 역할 / 역할 상태 | 적용된 제어 역할 | +|---|---|---|---| +| 로그인하지 않음 | - | 로그인 안 함 / 활성화됨 | 로그인 안 함 | +| 로그인하지 않음 | - | 로그인 안 함 / 비활성화됨 | - | +| 로그인함 | 할당된 역할 있음 | 할당된 역할 / 활성화됨 | 할당된 역할 | +| 로그인함 | 할당된 역할 있음 | 할당된 역할 / 비활성화됨 | - | +| 로그인함 | 할당된 역할 없음 | 기본값 / 활성화됨 | 기본값 | +| 로그인함 | 할당된 역할 없음 | 기본값 / 비활성화됨 | - | + +## 사용 가능한 권한 + +제어 가능한 12가지 권한은 제어 대상 기기의 설정 → 보안 → 권한에 해당합니다: + +- 키보드/마우스 +- 원격 프린터 +- 클립보드 +- 파일 전송 +- 오디오 +- 카메라 +- 터미널 +- TCP 터널 +- 원격 재시작 +- 녹화 세션 +- 사용자 입력 차단 +- 원격 구성 수정 + +## 콘솔 작업 + +### 역할 생성하기 + +1. **제어 역할** 페이지로 이동하여 **생성**을 클릭하세요. +2. 역할에 대한 **이름**을 입력하세요. +3. 부여할 **권한**을 선택하세요. + +![](/docs/en/self-host/rustdesk-server-pro/control-role/images/control-role-create-name.png) +![](/docs/en/self-host/rustdesk-server-pro/control-role/images/control-role-create-permission.png) + +### 역할 할당하기 + +사용자에게 제어 역할을 할당하는 방법은 두 가지가 있습니다: + +1. **사용자 페이지** → 사용자에서 **편집**을 클릭한 후, **제어 역할** 필드에서 역할을 선택하세요. +2. **제어 역할 페이지** → **사용자 수** 또는 **사용자 할당**을 클릭한 후, 역할에 사용자를 추가하거나 제거하세요. + +![](/docs/en/self-host/rustdesk-server-pro/control-role/images/control-role-assign-user-page.png) +![](/docs/en/self-host/rustdesk-server-pro/control-role/images/control-role-assign-role-page.png) + +{{% notice note %}} +"로그인하지 않음" 역할은 사용자에게 할당할 수 없습니다(로그인하지 않은 연결에만 적용됨). +{{% /notice %}} \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/faq/_index.ko.md b/content/self-host/rustdesk-server-pro/faq/_index.ko.md new file mode 100644 index 00000000..9e67bbab --- /dev/null +++ b/content/self-host/rustdesk-server-pro/faq/_index.ko.md @@ -0,0 +1,559 @@ +--- +title: FAQ +description: "RustDesk 서버 Pro 설치, 구성, 라이선스, 문제 해결 및 마이그레이션에 관한 자주 묻는 질문. 일반적인 설정 문제, SSL 구성, 데이터베이스 관리 및 업그레이드 절차에 대한 답변을 얻으세요." +keywords: ["rustdesk server pro faq", "rustdesk pro help", "rustdesk installation help", "rustdesk troubleshooting", "rustdesk server setup", "rustdesk license issues", "rustdesk ssl configuration", "rustdesk migration guide", "rustdesk pro support", "rustdesk server questions"] +weight: 600 +--- + +## RustDesk Server Pro 빠른 답변 + +이 FAQ는 가장 일반적인 RustDesk Server Pro 작업을 다룹니다: 설치, OSS에서의 변환, 업그레이드, 라이선스 마이그레이션, 로깅, SMTP 문제 및 디바이스 관리 문제입니다. 처음부터 시작하는 경우 [installation guide](/docs/ko/self-host/rustdesk-server-pro/installscript/)부터 시작하세요. 이미 실행 중인 서버가 있는 경우 가장 일반적인 후속 페이지는 [License](/docs/ko/self-host/rustdesk-server-pro/license/), [SMTP](/docs/ko/self-host/rustdesk-server-pro/smtp/) 및 [Client Deployment](/docs/ko/self-host/client-deployment/)입니다. + +## 각 일반 작업에 어떤 페이지를 사용해야 하나요? + +| 작업 | 최적의 페이지 | +| --- | --- | +| 새 Pro 서버 설치하기 | [Installation](/docs/ko/self-host/rustdesk-server-pro/installscript/) | +| Docker로 Pro 설치하기 | [Docker install](/docs/ko/self-host/rustdesk-server-pro/installscript/docker/) | +| OSS에서 Pro로 변환하기 | [Installation](/docs/ko/self-host/rustdesk-server-pro/installscript/#convert-from-open-source) | +| 라이선스 구매 또는 이전하기 | [License](/docs/ko/self-host/rustdesk-server-pro/license/) | +| 이메일 알림 설정하기 | [SMTP](/docs/ko/self-host/rustdesk-server-pro/smtp/) | +| SSO 또는 ID 로그인 구성하기 | [OIDC](/docs/ko/self-host/rustdesk-server-pro/oidc/) 또는 [LDAP](/docs/ko/self-host/rustdesk-server-pro/ldap/) | +| 대규모 클라이언트 배포하기 | [Client Deployment](/docs/ko/self-host/client-deployment/) | + +## 간편 설치 스크립트로 설치하려면 어떻게 해야 하나요? +1. [https://rustdesk.com/pricing.html](https://rustdesk.com/pricing.html)로부터 라이선스를 받고, 자세한 내용은 [license](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/) 페이지를 확인하세요. +2. VPS, 베어 메탈 또는 Linux VM을 생성하세요. +3. DNS와 SSL을 사용하려면 DNS 이름, 예를 들어 `rustdesk.yourdomain.com`를 생성하세요. +4. [This page](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/#install)를 실행하세요. +5. 명령어를 복사하여 Linux 터미널에 붙여넣으세요. +6. 안내에 따라 설치를 진행하세요. +7. 설치가 완료되면 `https://rustdesk.yourdomain.com` 또는 `http://youripaddress:21114`를 실행하세요. +8. 사용자 이름 `admin`와 비밀번호 `test1234`로 로그인하세요. +9. 1단계에서 구매한 라이선스 코드를 입력하세요. + +## RustDesk 서버 오픈소스에서 RustDesk 서버 프로로 어떻게 변환할 수 있나요? +1. [https://rustdesk.com/pricing.html](https://rustdesk.com/pricing.html)로부터 라이선스를 받고, 자세한 내용은 [license](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/) 페이지를 확인하세요. +2. TCP 포트 21114를 열어주세요. +3. 귀하의 RustDesk 서버에 로그인하세요. +4. 이미 DNS를 사용하지 않았고 SSL을 사용하고 싶다면 DNS 이름을 생성하세요. 예: `rustdesk.yourdomain.com`. +5. [This page](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/#convert-from-open-source). +6. 명령어를 복사하여 Linux 터미널에 붙여넣으세요. +7. 설치 과정 중 안내에 따라 진행하세요. +8. 설치가 완료되면 `https://rustdesk.yourdomain.com` 또는 `http://youripaddress:21114`로 이동하세요. +9. 사용자 이름 `admin`와 비밀번호 `test1234`로 로그인하세요. +10. 1단계에서 구매한 라이선스 코드를 입력하세요. + +## RustDesk Server Pro의 새 버전이 출시되었습니다. 어떻게 업그레이드할 수 있나요? +먼저 데이터 파일(sqlite3 파일 등)을 백업하는 것이 좋습니다. https://github.com/rustdesk/rustdesk-server-pro/discussions/184#discussioncomment-8013375. +- ### 스크립트(`install.sh`)로 설치한 경우 +[update.sh](/docs/ko/self-host/rustdesk-server-pro/installscript/script/#upgrade)를 실행해주세요. +- ### Docker Compose + +``` +sudo docker compose down +sudo docker compose pull +sudo docker compose up -d +``` + +하지만 이는 귀하의 Docker 버전에 따라 달라지며, 더 자세한 내용은 [this](https://stackoverflow.com/questions/37685581/how-to-get-docker-compose-to-use-the-latest-image-from-repository)를 확인하십시오. +- ### Docker + +``` +sudo docker ps +## you can also use , e.g. `hbbs` and `hbbr` if you follow our manual. +sudo docker stop +sudo docker rm +sudo docker rmi +sudo docker run ..... # same as you installed it before +``` + +예: + +``` +root@hz:~# sudo docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +30822972c220 rustdesk/rustdesk-server-pro "hbbr" 10 seconds ago Restarting (1) 2 seconds ago hbbr +0f3a6f185be3 rustdesk/rustdesk-server-pro "hbbs" 15 seconds ago Up 14 seconds hbbs +root@hz:~# sudo docker kill hbbr hbbs +hbbr +hbbs +root@hz:~# sudo docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +root@hz:~# sudo docker rm hbbr hbbs +hbbr +hbbs +root@hz:~# sudo docker rmi rustdesk/rustdesk-server-pro +Untagged: rustdesk/rustdesk-server-pro:latest +Untagged: rustdesk/rustdesk-server-pro@sha256:401b8344323addf777622d0463bd7b964dd18a01599e42e20d8b3818dae71ad2 +Deleted: sha256:a3d9d43a3d1dd84b10c39fe0abf7767b18a87819ff0981443ce9e9a52604c889 +Deleted: sha256:65ae79ecc0f8b1c8a21085d04af7c8d8f368dd5ad844982d4c7b3ac1f38ba33a +Deleted: sha256:9274a824aef10f2ef106d8f85fbd1905037169cf610951f63dc5109dae4b0825 +Deleted: sha256:aa89ac8b57a49f49f041c01b9c0f016060e611cf282e3fda281bc6bebbabaf3f +Deleted: sha256:4af9839016f72586a46f915cae8a5ccf3380ba88a2f79532692d3b1d7020387e +Deleted: sha256:e900a7ffc2fc14fa432cc04823740dcbb78c0aa3508abbbe287ce8b274541ada +Deleted: sha256:503eeab76c11e8316a2a450ef0790d31c5af203309e9c5b44d1bf8a601e6e587 +Deleted: sha256:825683356e7dbfcbaabcbf469c9aeb34d36ebeab0308170432b9553e28203116 +Deleted: sha256:24a48d4af45bab05d8712fe22abec5761a7781283500e32e34bdff5798c09399 +root@hz:~# sudo docker images +REPOSITORY TAG IMAGE ID CREATED SIZE +rustdesk/makepkg latest 86a981e2e18f 2 months ago 2.23GB +root@hz:~# sudo docker run --name hbbs -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server-pro hbbs +Unable to find image 'rustdesk/rustdesk-server-pro:latest' locally +latest: Pulling from rustdesk/rustdesk-server-pro +4ce000a43472: Pull complete +1543f88421d3: Pull complete +9b209c1f5a8d: Pull complete +d717f548a400: Pull complete +1e60b98f5660: Pull complete +a86960d9bced: Pull complete +acb361c4bbf6: Pull complete +4f4fb700ef54: Pull complete +Digest: sha256:401b8344323addf777622d0463bd7b964dd18a01599e42e20d8b3818dae71ad2 +Status: Downloaded newer image for rustdesk/rustdesk-server-pro:latest +0cc5387efa8d2099c0d8bc657b10ed153a6b642cd7bbcc56a6c82790a6e49b04 +root@hz:~# sudo docker run --name hbbr -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server-pro hbbr +4eb9da2dc460810547f6371a1c40a9294750960ef2dbd84168079e267e8f371a +root@hz:~# sudo docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +4eb9da2dc460 rustdesk/rustdesk-server-pro "hbbr" 5 seconds ago Restarting (1) Less than a second ago hbbr +0cc5387efa8d rustdesk/rustdesk-server-pro "hbbs" 8 seconds ago Up 7 seconds hbbs +root@hz:~# sudo docker images +REPOSITORY TAG IMAGE ID CREATED SIZE +rustdesk/rustdesk-server-pro latest a3d9d43a3d1d 5 days ago 193MB +rustdesk/makepkg latest 86a981e2e18f 2 months ago 2.23GB +``` + +자세한 내용은 [this](https://www.cherryservers.com/blog/how-to-update-docker-image)를 참조하세요. + +## 스크립트로 설치했는데, 서비스를 시작하고 중지하려면 어떻게 해야 하나요? +서비스는 systemd를 사용하므로 `sudo systemctl stop|start|restart rustdesk-hbbs|rustdesk-hbbr`를 이용해 시작하고 중지할 수 있습니다. 예: `sudo systemctl restart rustdesk-hbbs`. + +## 스크립트로 설치했는데, Linux 로그를 어떻게 볼 수 있나요? +로그는 `/var/log/rustdesk-server`에 저장되어 있으며, `tail /var/log/rustdesk-server/hbbs.log` 또는 `tail /var/log/rustdesk-server/hbbs.error`를 사용하여 확인할 수 있습니다. + +## 스크립트로 설치했는데 RustDesk 서비스의 상태를 어떻게 확인할 수 있나요? +`sudo systemctl status rustdesk-hbbs|rustdesk-hbbr`, 예를 들어 `sudo systemctl status rustdesk-hbbs`와 같은 상태를 확인하려면. + +## 관리자 비밀번호를 어떻게 변경할 수 있나요? +1. `https://rustdesk.yourdomain.com` 또는 `http://youripaddress:21114`. +2. 사용자 이름 `admin`와 비밀번호 `test1234`로 로그인하세요. +3. 오른쪽 상단 모서리에 있는 `admin`를 클릭하세요. +4. `Settings`를 클릭하세요. +5. 제공된 상자에 새 비밀번호를 입력하세요. + +## 라이선스를 새 서버로 이전하려면 어떻게 해야 하나요? +[here](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/#invoices-and-migration)를 참조하세요. + +## 내 VPS에서 이메일이 작동하지 않습니다 +많은 VPS 제공업체가 포트 465와 25를 차단합니다. + +간단한 확인 방법은 텔넷을 사용하는 것입니다. Linux 터미널에서 `telnet your.mailserver.com 25`를 입력하세요. Windows에서는 PowerShell을 사용하고 `Test-NetConnection -ComputerName your.mailserver.com -Port 25`를 입력하세요. + +귀하의 메일 서버가 포트 25를 사용하지 않을 수 있습니다. 올바른 포트를 사용하고 있는지 확인해 주세요. + +## PowerShell이나 유사한 도구를 사용해 RustDesk를 배포할 수 있나요? +네, 배포를 돕는 스크립트를 찾을 수 있습니다 [here](https://rustdesk.com/docs/en/self-host/client-deployment/). + +## 버그 보고서를 어떻게 제출할 수 있나요? +[GitHub](https://github.com/rustdesk/rustdesk-server-pro/issues)를 통해 제출해 주세요. + +## 자가 호스팅을 하는데도 왜 이 제품이 무료 오픈소스가 아닌가요? +1. RustDesk는 여러 사람에게 전업 직업이 되었으며, 그들은 각자 삶과 아내, 직장, 아이들이 있어 모두 관심과 비용이 필요합니다! +2. 우리는 앞으로도 계속 여기에 머물며 훌륭한 발전을 이루고 싶습니다. +3. 오픈소스 버전은 계속 오픈소스로 유지될 것이며, 다른 사람들이 AGPL 라이선스에 맞춰 개발하도록 장려하겠습니다. + +## 서로 다른 그룹의 기기와 연결할 수 없는데, 이유가 무엇인가요? +이는 쉽게 해결할 수 있습니다. 그룹 간 접근 권한을 허용해야 합니다. +1. 새 그룹을 추가하세요. +2. `Edit`를 클릭하세요. +3. 접근하고자 하는 관련 그룹을 선택하세요(해당 그룹에 자동으로 추가됩니다). + +## 어떻게 자동으로 설정을 받을 수 있나요? +설정은 자동으로 생성됩니다. +1. [GitHub](https://github.com/rustdesk/rustdesk/releases/latest)에서 최신 클라이언트를 다운로드하세요. +2. 웹 콘솔의 메인 페이지에서 `Windows EXE`를 클릭하세요. +3. 호스트와 API를 입력하세요(설정과 다른 경우). +4. `Submit`를 클릭하세요. +5. Android에서 QR 코드를 스캔하고, 생성된 이름으로 exe 파일의 이름을 바꾸세요. + +## RustDesk Server Pro용 호스팅을 제공하시나요? +[sales](mailto://sales@rustdesk.com) 팀에 연락해 주세요. + +## 동영상 설정 가이드를 볼 수 있는 곳이 있나요? +네! [YouTube Channel](https://youtube.com/@RustDesk)가 있습니다. + +## 내 로그/장치 이름이 비어 있음은 왜 그런가요? +제어 중인 장치에서 API가 올바르게 설정되었는지 확인하세요. https://github.com/rustdesk/rustdesk-server-pro/issues/21#issuecomment-1637935750. + +## RustDesk Server Pro를 어떻게 설치 제거할 수 있나요? +다음 명령어를 실행하세요: + +```sh +sudo systemctl stop rustdesk-hbbs.service +sudo systemctl disable rustdesk-hbbs.service +sudo systemctl stop rustdesk-hbbr.service +sudo systemctl disable rustdesk-hbbr.service +sudo systemctl daemon-reload +sudo rm /etc/systemd/system/rustdesk-hbbs.service +sudo rm /etc/systemd/system/rustdesk-hbbr.service +sudo rm /usr/bin/hbbs +sudo rm /usr/bin/hbbr +sudo rm -rf /var/lib/rustdesk-server/ +sudo rm -rf /var/log/rustdesk-server/ +``` + +스크립트가 Nginx를 설치한 경우 다음을 사용하여 제거하십시오: + +```sh +sudo apt remove nginx +``` + +## 웹 콘솔의 장치 목록에서 장치를 제거하려면 어떻게 해야 하나요? +비활성화한 후 삭제하는 기능이 이제 사용 가능해졌습니다. + +## PowerShell을 사용하여 RustDesk를 업데이트하려면 어떻게 해야 하나요? + +```ps +$ErrorActionPreference= 'silentlycontinue' + +$rdver = ((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\RustDesk\").Version) + +if ($rdver -eq "1.2.6") +{ + Write-Output "RustDesk $rdver is the newest version." + Exit +} + +if (!(Test-Path C:\Temp)) +{ + New-Item -ItemType Directory -Force -Path C:\Temp > null +} + +cd C:\Temp + +Invoke-WebRequest "https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-x86_64.exe" -Outfile "rustdesk.exe" +Start-Process .\rustdesk.exe --silent-install -wait +``` + +## `Key mismatch` 오류 +클라이언트를 [correct key](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/relay/)로 구성해 주세요. + +## `Failed to connect to relay server` 오류 +`hbbr`가 실행되고 있는지 확인해 주세요. `hbbr`에 대한 자세한 정보는 [here](https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/install/)에서 확인할 수 있습니다. +귀하의 `hbbr`가 `hbbs`와 동일한 머신에서 실행되지 않거나, 여러 릴레이 서버를 사용하거나, 기본 포트인 `21117`에서 실행되지 않는 경우, 이를 `hbbs`에 명시적으로 알려야 합니다. [here](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/relay/)를 확인해 주세요. + +## 관리자 계정의 MFA 재설정 +https://github.com/rustdesk/rustdesk/discussions/6576 + +## 웹 콘솔용 HTTPS 수동 설정 + +### 1. 도메인 이름을 구매하고 이를 서버의 IP 주소로 해석하세요. +* GoDaddy, Namecheap 또는 Namesilo와 같은 도메인 등록기관에서 도메인 이름을 구매하세요. +* 다음 중 하나를 사용하여 도메인 이름을 서버의 IP 주소로 해석하세요: + - 도메인 등록기관의 제어판(권장) + - [DNS providers](https://en.wikipedia.org/wiki/List_of_managed_DNS_providers) + +예를 들어, `Namesilo`에서 도메인 이름 `example.com`를 구매하고 서버의 IP 주소가 `123.123.123.123`라면, `rustdesk.example.com` 하위 도메인을 HTTPS 웹 콘솔 주소로 사용하고 싶습니다. [link](https://www.namesilo.com/account_domains.php)를 열고 툴팁 `Manage dns for the domain`가 표시된 버튼을 클릭한 다음, 호스트명 `rustdesk`와 서버의 IP 주소를 사용해 `A` 레코드를 추가해야 합니다. +![](/docs/en/self-host/rustdesk-server-pro/faq/images/namesilo-dns-button.png) +![](/docs/en/self-host/rustdesk-server-pro/faq/images/namesilo-add-a-record.png) +![](/docs/en/self-host/rustdesk-server-pro/faq/images/namesilo-dns-table.png) +* DNS가 적용되는 데 시간이 소요되므로, https://www.whatsmydns.net를 방문하여 도메인이 서버의 IP 주소로 해석되었는지 확인하세요. 6단계는 올바른 해석 결과에 따라 달라집니다. 다음 단계에서는 `YOUR_DOMAIN`를 하위 도메인으로 교체하십시오. 예를 들어, `rustdesk.example.com`로 변경하세요. + +### 2. Nginx 설치하기 +* Debian/Ubuntu: `sudo apt-get install nginx` +* Fedora/CentOS: `sudo dnf install nginx` 또는 `sudo yum install nginx` +* Arch: `sudo pacman -S install nginx` +* openSUSE: `sudo zypper install nginx` +* Gentoo: `sudo emerge -av nginx` +* Appine: `sudo apk add --no-cache nginx` + +`nginx -h`를 실행하여 성공적으로 설치되었는지 확인하십시오. + +### 3. Certbot 설치하기 +* 방법 1: `snap`가 설치되어 있으면 `sudo snap install certbot --classic`를 실행하세요. +* 방법 2: 대신 `python3-certbot-nginx`를 사용하세요. 예를 들어 Ubuntu의 경우 `sudo apt-get install python3-certbot-nginx`를 사용하세요. +* 방법 3: 위 두 방법이 실패한 경우, `certbot-nginx`를 설치해 보세요. 예를 들어 CentOS 7의 경우 `sudo yum install certbot-nginx`를 사용하세요. + +`certbot -h`를 실행하여 성공적으로 설치되었는지 확인하십시오. + +### 4. Nginx 구성 +두 가지 방법이 있습니다: +* 디렉터리 `/etc/nginx/sites-available` 및 `/etc/nginx/sites-enabled`가 존재하는 경우, 다음 명령어의 `YOUR_DOMAIN`를 사용자의 도메인 이름으로 교체하고 실행하십시오. + +```sh +cat > /etc/nginx/sites-available/rustdesk.conf << EOF +server { + server_name YOUR_DOMAIN; + location / { + proxy_set_header X-Real-IP \$remote_addr; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + proxy_pass http://127.0.0.1:21114/; + } +} +EOF +``` + +그런 다음 `sudo ln -s /etc/nginx/sites-available/rustdesk.conf /etc/nginx/sites-enabled/rustdesk.conf`를 실행하십시오. + +`cat /etc/nginx/sites-available/rustdesk.conf`를 실행하여 내용이 올바른지 확인하십시오. + +* 디렉터리 `/etc/nginx/sites-available` 및 `/etc/nginx/sites-enabled`가 존재하지 않고 디렉터리 `/etc/nginx/conf.d`가 존재하는 경우, 다음 명령어의 `YOUR_DOMAIN`를 귀하의 도메인 이름으로 바꾸고 실행하십시오. + +```sh +cat > /etc/nginx/conf.d/rustdesk.conf << EOF +server { + server_name YOUR_DOMAIN; + location / { + proxy_set_header X-Real-IP \$remote_addr; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + proxy_pass http://127.0.0.1:21114/; + } +} +EOF +``` + +`cat /etc/nginx/conf.d/rustdesk.conf`를 실행하여 내용이 올바른지 확인하십시오. + +### 5. 도메인에 대한 방화벽 규칙 활성화 +다음 명령어를 실행하십시오: + +```sh +sudo ufw allow 80/tcp +sudo ufw allow 443/tcp +sudo ufw --force enable +sudo ufw --force reload +``` + +### 6. SSL 인증서 생성 +`$YOUR_DOMAIN`를 도메인 이름으로 바꾼 다음 실행하세요. +`sudo certbot --nginx --cert-name $YOUR_DOMAIN --key-type ecdsa --renew-by-default --no-eff-email --agree-tos --server https://acme-v02.api.letsencrypt.org/directory -d $YOUR_DOMAIN`. + +`Enter email address (used for urgent renewal and security notices)`가 표시되면 이메일 주소를 입력하세요. + +마지막으로, `rustdesk.conf`의 내용은 다음과 같아야 합니다: + +``` +server { + server_name YOUR_DOMAIN; + location / { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass http://127.0.0.1:21114/; + } + + listen 443 ssl; # managed by Certbot + ssl_certificate /etc/letsencrypt/live/YOUR_DOMAIN/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem; # managed by Certbot + include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot +} + +server { + if ($host = YOUR_DOMAIN) { + return 301 https://$host$request_uri; + } # managed by Certbot + + server_name YOUR_DOMAIN; + listen 80; + return 404; # managed by Certbot +} +``` + +다음은 일반적인 오류입니다: + +* 콘솔에 `Successfully deployed certificate for YOUR_DOMAIN to /etc/nginx/.../rustdesk.conf` 대신 `Successfully deployed certificate for YOUR_DOMAIN to /etc/nginx/.../default`가 출력됩니다. + +그 이유는 Certbot이 `rustdesk.conf` 파일을 찾지 못했기 때문일 수 있습니다. 다음 해결 방법 중 하나를 시도해 보세요: +- 5단계의 결과를 확인하고, `sudo service nginx restart`를 실행하세요. +- `YOUR_DOMAIN`가 포함된 서버 구성 `server{...}`를 `rustdesk.conf`로 복사한 후, `location{...}`를 아래 내용으로 변경하세요. + +```sh +location / { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass http://127.0.0.1:21114/; +} +``` + +* `too many certificates (5) already issued for this exact set of domains in the last 168 hours` + +해결 방법: DNS에 다른 도메인 이름을 추가하고 `YOUR_DOMAIN`를 해당 이름으로 변경하세요. 예를 들어 `rustdesk2.example.com`로 변경하세요. 그런 다음 1, 4, 6단계를 반복하세요. + +* `Error getting validation data` + +해결 방법: 방화벽이 원인일 수 있습니다. 자세한 내용은 https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#firewall을 참조하세요. + +알림: `rustdesk.conf`를 수동으로 변경한 경우 `sudo service nginx restart`를 실행하십시오. + +### 7. 웹 페이지에 로그인하기 +* 브라우저에서 `https://YOUR_DOMAIN`를 열고 기본 사용자 이름 "admin"과 비밀번호 "test1234"를 사용해 로그인한 다음, 비밀번호를 본인의 것으로 변경하십시오. + +### 8. id 서버와 릴레이 서버에 WebSocket Secure (WSS) 지원을 추가하여 모든 플랫폼에서 안전한 통신을 가능하게 하십시오. + +`/etc/nginx/.../rustdesk.conf` 파일의 첫 번째 `server` 섹션에 다음 구성 항목을 추가한 후 `Nginx` 서비스를 다시 시작하십시오. +웹 클라이언트는 `https://YOUR_DOMAIN/web`를 통해 접속할 수 있습니다. 사용자 지정 클라이언트는 고급 옵션에서 `allow-websocket=Y`를 설정하여 웹소켓을 사용할 수 있습니다. 웹소켓이 활성화된 사용자 지정 클라이언트를 사용하는 경우 TCP/UDP를 사용하지 않으며 릴레이를 통해서만 연결할 수 있습니다(직접 IP 연결 제외). 이 웹소켓 활성화 클라이언트만 사용하는 경우 서버는 21114~21119 포트를 닫고 443 포트만 열어둘 수 있습니다. + +``` + location /ws/id { + proxy_pass http://127.0.0.1:21118; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_read_timeout 120s; + } + + location /ws/relay { + proxy_pass http://127.0.0.1:21119; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_read_timeout 120s; + } +``` + +전체 구성은 다음과 같습니다. + +``` +server { + server_name YOUR_DOMAIN; + location / { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass http://127.0.0.1:21114/; + } + + location /ws/id { + proxy_pass http://127.0.0.1:21118; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_read_timeout 120s; + } + + location /ws/relay { + proxy_pass http://127.0.0.1:21119; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_read_timeout 120s; + } + + listen 443 ssl; # managed by Certbot + ssl_certificate /etc/letsencrypt/live/YOUR_DOMAIN/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem; # managed by Certbot + include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot +} + +server { + if ($host = YOUR_DOMAIN) { + return 301 https://$host$request_uri; + } # managed by Certbot + + server_name YOUR_DOMAIN; + listen 80; + return 404; # managed by Certbot +} +``` + +{{% notice note %}} +이전에 웹 클라이언트용으로 배포한 적이 있고 모든 플랫폼에서 사용하고자 한다면 `proxy_read_timeout`를 추가해야 합니다. +{{% /notice %}} + +### 9. RustDesk 공개 웹 클라이언트 `https://rustdesk.com/web`를 사용하는 경우 CORS 우회하기 + +브라우저의 CORS 제한을 우회하려면 `/etc/nginx/.../rustdesk.conf`의 `location /` 섹션에 아래 내용을 추가해야 합니다. 자체 웹 클라이언트를 사용하는 경우 이 단계는 건너뛰기 바랍니다. + +``` + if ($http_origin ~* (https?://(www\.)?rustdesk\.com)) { + add_header 'Access-Control-Allow-Origin' "$http_origin" always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH, OPTIONS' always; + add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + } + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' "$http_origin" always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH, OPTIONS' always; + add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + add_header 'Content-Length' 0; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + return 204; + } +``` + +## SELinux + +설치하기 시 `Waiting for RustDesk Relay service to become active...`가 나타나는 경우, 이는 SELinux로 인해 발생할 수 있습니다. 다음 명령어를 시도해 볼 수 있습니다: + +```sh +sudo semanage fcontext -a -t NetworkManager_dispatcher_exec_t 'hbbs' +sudo semanage fcontext -a -t NetworkManager_dispatcher_exec_t 'hbbr' +sudo restorecon -v '/usr/bin/hbbs' +sudo restorecon -v '/usr/bin/hbbr' +``` + +## 방화벽 + +### 클라우드의 방화벽 +AWS/Azure/Google/DigitalOcean 클라우드에서 실행하는 경우, 클라우드 벤더의 대시보드에서 UDP(21116) 및 TCP(21114-21119) 인바운드 포트를 열어주세요. + +- [AWS] https://docs.aws.amazon.com/network-firewall/latest/developerguide/getting-started.html +- [Azure] https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview +- [Google] https://cloud.google.com/firewall/docs/firewalls +- [DigitalOcean] https://docs.digitalocean.com/products/networking/firewalls/ + +### 온프레미스 서버의 방화벽 +RustDesk는 `ufw`로 방화벽을 설정합니다. CentOS 9와 같은 일부 배포판에서는 작동하지 않을 수 있으며, `firewall-cmd`로 시도해 볼 수 있습니다: + +```sh +sudo firewall-cmd --permanent --add-port=21115/tcp +sudo firewall-cmd --permanent --add-port=21116/tcp +sudo firewall-cmd --permanent --add-port=21117/tcp +sudo firewall-cmd --permanent --add-port=21118/tcp +sudo firewall-cmd --permanent --add-port=21119/tcp +sudo firewall-cmd --permanent --add-port=21116/udp +``` + +IP를 사용하는 경우: + +```sh +sudo firewall-cmd --permanent --add-port=21114/tcp +``` + +DNS/도메인을 사용하는 경우: + +```sh +sudo firewall-cmd --permanent --add-port=80/tcp +sudo firewall-cmd --permanent --add-port=443/tcp +``` + +위와 같이 한 후, `sudo firewall-cmd --reload`를 실행하여 방화벽을 다시 로드하십시오. + +## 웹 콘솔에서 관리자 비밀번호를 변경한 후 로그인할 수 없습니다. 비밀번호를 간단하게 재설정하는 방법이 있나요? +1. `rustdesk-utils`가 설치되어 있는지 확인하세요. 설치되지 않았다면 [here](https://github.com/rustdesk/rustdesk-server-pro)를 설치할 수 있습니다. 또한 데이터베이스가 있는 폴더, 즉 `/var/lib/rustdesk-server`에서 명령어를 실행해야 합니다. +2. 명령어는 `rustdesk-utils set_password username password`입니다. 정상적으로 작동하면 *완료*라고 표시됩니다. + +또한 `rustdesk-utils`와 함께 사용할 수 있는 다음과 같은 기타 명령어 `genkeypair`, `validatekeypair [public key] [secret key]`, `doctor [rustdesk-server]`, `reset_email_verification` 및 `reset_2fa_verification`가 있습니다. + +https://github.com/rustdesk/rustdesk-server-pro/discussions/183 + +## Docker 컨테이너에 루트 CA 인증서 추가하기 (SMTP, OIDC 등에서 TLS 실패 시) +https://github.com/rustdesk/rustdesk-server-pro/issues/99#issuecomment-2235014703 \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/installscript/Docker/_index.ko.md b/content/self-host/rustdesk-server-pro/installscript/Docker/_index.ko.md new file mode 100644 index 00000000..db35e07f --- /dev/null +++ b/content/self-host/rustdesk-server-pro/installscript/Docker/_index.ko.md @@ -0,0 +1,96 @@ +--- +title: Docker +weight: 3 +description: "호스트 네트워킹을 사용하여 Docker Compose를 통해 RustDesk 서버 프로를 설치하기. 이 안내서를 사용해 제공된 compose 파일로 hbbs, hbbr 및 Pro 웹 콘솔을 배포하세요." +keywords: ["rustdesk server pro docker", "rustdesk pro docker compose", "rustdesk pro host network", "rustdesk hbbs hbbr docker", "rustdesk self-host pro docker"] +--- + +이 안내서를 사용하여 Docker Compose와 필요한 호스트 네트워킹 구성으로 RustDesk Server Pro를 설치하기 바랍니다. + +## RustDesk Server Pro의 권장 Docker 설정은 무엇인가요? + +`network_mode: "host"`를 사용한 Docker Compose는 대부분의 Linux 기반 RustDesk Server Pro 배포에 권장되는 설정입니다. 이 방법은 `hbbs`와 `hbbr`를 하나의 재현 가능한 구성으로 함께 유지하며, 호스트 네트워킹을 사용하지 않을 경우 발생할 수 있는 라이선스 문제를 피할 수 있습니다. + +## RustDesk Server Pro Docker 체크리스트 + +1. Docker를 설치하기. +2. 키 및 데이터베이스와 같은 RustDesk 파일을 위한 영구 `data` 디렉터리를 생성하세요. +3. Docker Compose로 `hbbs`와 `hbbr`를 시작하세요. +4. 필요한 RustDesk 포트를 열어주세요. 특히 웹 콘솔을 직접 사용하는 경우 `21114` 포트를 열어야 합니다. +5. 도메인 뒤에 웹 콘솔을 원한다면 HTTPS를 별도로 추가하세요. + +## 언제 원시 `docker run` 대신 Compose를 사용해야 하나요? + +장기적인 프로덕션 배포 및 업그레이드에는 Docker Compose를 사용하세요. 원시 `docker run` 명령어는 주로 테스트, 디버깅 또는 각 컨테이너에 대한 완전한 수동 제어가 필요한 환경에서 사용하세요. + +## Docker Compose(권장) + +Docker Compose를 사용하려면 라이선스가 작동하도록 `network_mode: "host"`를 반드시 사용해야 합니다. 이 [guide](https://docs.docker.com/engine/install)를 사용해 Docker를 설치하여 최신 버전을 보장하세요! + +아래 내용을 `compose.yml`에 복사하세요. + +```yaml +services: + hbbs: + container_name: hbbs + image: docker.io/rustdesk/rustdesk-server-pro:latest + command: hbbs + volumes: + - ./data:/root + network_mode: "host" + + depends_on: + - hbbr + restart: unless-stopped + + hbbr: + container_name: hbbr + image: docker.io/rustdesk/rustdesk-server-pro:latest + command: hbbr + volumes: + - ./data:/root + network_mode: "host" + restart: unless-stopped +``` + +그런 다음 `sudo docker compose up -d` 또는 `podman-compose up -d`를 실행하십시오. + +> `podman-compose` 설치용 `sudo apt install podman-compose` + +{{% notice note %}} +[Set up HTTPS for web console manually](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#set-up-https-for-web-console-manually)를 사용하는 방법. +{{% /notice %}} + +## Docker 명령어 + +이 [guide](https://docs.docker.com/engine/install)를 사용해 Docker를 설치하면 가장 최신 버전을 보장할 수 있습니다! + +또는 이 단일 명령어로 Docker를 설치할 수도 있습니다. + +``` +bash <(wget -qO- https://get.docker.com) +``` + +다음 명령어를 실행하십시오(s6 이미지에는 `./data:/root` 대신 `./data:/data`가 필요할 수 있음): + +```sh +sudo docker image pull rustdesk/rustdesk-server-pro +sudo docker run --name hbbs -v ./data:/root -td --net=host --restart unless-stopped docker.io/rustdesk/rustdesk-server-pro hbbs +sudo docker run --name hbbr -v ./data:/root -td --net=host --restart unless-stopped docker.io/rustdesk/rustdesk-server-pro hbbr +``` + +{{% notice note %}} +위의 예제에서는 `sudo`와 `--net=host`를 사용합니다. 이는 Windows에서 작동하지 않으니 해당 명령어를 제거해 주세요. 만약 `--net=host`를 제거하신다면 아래를 확인해 주세요. +{{% /notice %}} + +```sh +macaddrhbbs=$(echo -n A0-62-2F; dd bs=1 count=3 if=/dev/random 2>/dev/null |hexdump -v -e '/1 "-%02X"') +sudo docker run --name hbbs -p 21114:21114 -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v ./data:/root -td --mac-address="$macaddrhbbs" --restart unless-stopped docker.io/rustdesk/rustdesk-server-pro hbbs +sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v ./data:/root -td --restart unless-stopped docker.io/rustdesk/rustdesk-server-pro hbbr +``` + +{{% notice note %}} +[Set up HTTPS for web console manually](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#set-up-https-for-web-console-manually) 사용 방법. +{{% /notice %}} + +> Fedora에서 SELinux로 문제가 발생하면 이 [issue](https://github.com/rustdesk/rustdesk-server/issues/230)를 확인해 보세요. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/installscript/Script/_index.ko.md b/content/self-host/rustdesk-server-pro/installscript/Script/_index.ko.md new file mode 100644 index 00000000..68a954fd --- /dev/null +++ b/content/self-host/rustdesk-server-pro/installscript/Script/_index.ko.md @@ -0,0 +1,102 @@ +--- +title: install.sh +weight: 4 +description: "라이선스를 받은 후 install.sh 스크립트를 사용하여 Linux에 RustDesk 서버 Pro를 설치하기 바랍니다. 이 방법은 Pro 서버 구성 요소의 간단한 스크립트 설정에 사용됩니다." +keywords: ["rustdesk server pro install.sh", "rustdesk pro linux install", "rustdesk pro script install", "rustdesk self-host pro linux", "rustdesk server pro setup"] +--- + +자신만의 서비스 설정을 처음부터 작성하지 않고 간단한 Linux 기반 RustDesk Server Pro 설치를 원할 때는 `install.sh` 방법을 사용하세요. + +{{% notice note %}} +[https://rustdesk.com/pricing/](https://rustdesk.com/pricing/)에서 라이선스를 받는 것을 잊지 마세요. 더 자세한 내용은 [license](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/) 페이지를 확인해 주세요. + +이 간단한 설치를 하기 전에 먼저 [OSS installation](https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/install/)를 읽어보시기 바랍니다. 여기서 더 깊이 있는 세부 정보를 알 수 있습니다. +{{% /notice %}} + +## install.sh는 언제 사용해야 하나요? + +`systemd`가 있는 Linux 호스트에 RustDesk Server Pro를 가장 빠르게 배포하려면 `install.sh`를 사용하세요. 스크립트가 종속성 설치, 바이너리 배치, 서비스 생성을 수행하고, 선택적으로 웹 콘솔용 HTTPS를 준비하기를 원하는 간단한 단일 서버 설정에 가장 적합합니다. + +## install.sh 빠른 답변 + +- `systemd`를 사용한 간단한 Linux 배포에는 이 방법을 사용하십시오. +- 더 쉬운 업그레이드, 롤백 및 컨테이너 기반 운영을 원하시면 대신 [Docker](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/docker/#docker-compose)를 사용하십시오. +- 시작하기 전에 Pro 라이선스를 준비해 두십시오. +- 도메인을 사용하는 경우 스크립트가 HTTPS를 위해 `nginx`와 `certbot`도 설정할 수 있습니다. +- 첫 번째 설치 후 업그레이드에는 `update.sh`를 사용하십시오. + +## 설치하기 + +위의 명령어를 복사하여 Linux 터미널에 붙여넣어 RustDesk 서버 프로를 설치하세요. + +`wget -qO- https://raw.githubusercontent.com/rustdesk/rustdesk-server-pro/main/install.sh | bash` + +{{% notice note %}} +[the Docker image](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/docker/#docker-compose) 사용을 권장합니다. 솔루션 배포와 업데이트 과정이 크게 간소화됩니다. 리소스 소비량도 매우 낮습니다. + +또한, 위의 명령어는 쓰기 권한이 없는 디렉터리가 아닌 홈 디렉터리에서 실행해 주세요. +{{% /notice %}} + +이것이 하는 일: + +- 일부 종속성 설치하기 +- 사용 가능한 경우 UFW 방화벽 설정하기 +- 작업 디렉터리 `/var/lib/rustdesk-server`와 로그 디렉터리 `/var/log/rustdesk-server` 생성하기 +- 실행 파일을 `/usr/bin`에 설치하기 +- RustDesk Pro 서비스를 다운로드하고 위 폴더에 압축 해제하기 +- hbbs 및 hbbr용 systemd 서비스 생성하기(서비스 이름은 `rustdesk-hbbs.service` 및 `rustdesk-hbbr.service`) +- 도메인을 선택하면 Nginx와 Certbot이 설치되어 API가 포트 `443`(HTTP)에서 이용 가능하며, 포트 `80`를 통해 SSL 인증서를 받게 됩니다. 이 인증서는 자동으로 갱신됩니다. HTTPS가 준비되면, `https://yourdomain.com:21114` 대신 `https://yourdomain.com`로 접속해 주세요. + +{{% notice note %}} +[Set up HTTPS for web console manually](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#set-up-https-for-web-console-manually)를 사용하는 방법. +{{% /notice %}} + +{{% notice note %}} +systemd 서비스가 시작되지 않으면, 아마도 SELinux와 관련이 있을 수 있으니 [this](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#selinux)를 확인해 보세요. +{{% /notice %}} + +{{% notice note %}} +클라이언트가 서버에 연결되지 않거나 웹 콘솔에 접근할 수 없는 경우, [this](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#firewall)를 확인해 보세요. +{{% /notice %}} + +## 업그레이드 + +위의 명령어를 복사하여 Linux 터미널에 붙여넣어 기존 RustDesk Server Pro 설치를 업그레이드하세요. 이 명령어는 로컬에 저장하여 cron으로 예약할 수도 있습니다. + +`wget -qO- https://raw.githubusercontent.com/rustdesk/rustdesk-server-pro/main/update.sh | bash` + +{{% notice note %}} +이 스크립트에서 문제가 발생하면, 스크립트를 하나씩 직접 실행해 보시기를 권장합니다. + +또한 홈 디렉터리에서 위 명령어를 실행해 주세요. 쓰기 권한이 없는 디렉터리에서는 실행하지 마세요. +{{% /notice %}} + +이것이 하는 일: + +- RustDesk Server Pro의 새로운 버전을 확인합니다. +- 새로운 버전이 발견되면 API 파일을 제거하고 새 실행파일과 API 파일을 다운로드합니다. + +## 오픈소스에서 변환하기 + +위의 명령어를 복사하여 Linux 터미널에 붙여넣어 RustDesk Server를 RustDesk Server Pro로 변환하세요. + +`wget -qO- https://raw.githubusercontent.com/rustdesk/rustdesk-server-pro/main/convertfromos.sh | bash` + +{{% notice note %}} +방화벽에 `21114` TCP 포트를 추가해 주세요. 이는 RustDesk 클라이언트의 웹 콘솔 및 사용자 로그인을 위한 추가 포트입니다. +{{% /notice %}} + +{{% notice note %}} +이 스크립트와 관련된 문제가 발생하면 Docker 설치로 전환하는 것을 권장합니다. 또는 스크립트를 직접 살펴보고 단계별로 수동으로 실행할 수도 있습니다. +{{% /notice %}} + +기능: + +- 이전 서비스를 비활성화하고 제거합니다. +- 일부 종속성을 설치합니다. +- 사용 가능한 경우 UFW 방화벽을 설정합니다. +- `/var/lib/rustdesk-server` 폴더를 생성하고 여기에 인증서를 복사합니다. +- `/var/log/rustdesk`를 삭제하고 `/var/log/rustdesk-server`를 생성합니다. +- RustDesk Pro 서비스를 다운로드하여 위 폴더에 압축 해제합니다. +- hbbs 및 hbbr용 systemd 서비스를 생성합니다(서비스 이름은 rustdesk-hbbs.service 및 rustdesk-hbbr.service입니다). +- 도메인을 선택하면 Nginx와 Certbot이 설치되어 API가 포트 443(HTTP)에서 이용 가능하며, 포트 80을 통해 SSL 인증서를 받고 자동으로 갱신됩니다. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/installscript/_index.ko.md b/content/self-host/rustdesk-server-pro/installscript/_index.ko.md new file mode 100644 index 00000000..0b4ebb6a --- /dev/null +++ b/content/self-host/rustdesk-server-pro/installscript/_index.ko.md @@ -0,0 +1,53 @@ +--- +title: 설치 +weight: 2 +description: "Docker, Linux 설치 스크립트 또는 이전 Windows 방법을 사용해 RustDesk 서버 Pro를 설치하기. 여기에서 시작하여 환경에 맞는 올바른 배포 경로를 선택하세요." +keywords: ["rustdesk server pro install", "rustdesk self-host pro", "rustdesk pro docker", "rustdesk pro linux install", "rustdesk pro windows install"] +--- + +환경에 가장 적합한 RustDesk Server Pro 설치 방법을 선택하려면 여기에서 시작하세요. 권장 옵션은 Docker입니다. + +## RustDesk Server Pro를 설치하는 가장 좋은 방법은 무엇인가요? + +대부분의 팀에서는 Docker가 RustDesk Server Pro를 설치하는 가장 좋은 방법입니다. 업데이트가 간편하고 배포 과정이 재현하기 쉽기 때문입니다. `install.sh` 경로는 Linux에서 네이티브 systemd 서비스를 원할 때 유용합니다. 이미 RustDesk 서버를 운영 중이고 Pro로 계속 이동하고자 한다면 OSS에서 변환하는 것이 적합한 경로입니다. + +## 시작하기 전에 무엇이 필요하나요? + +- RustDesk Server Pro 라이선스 +- Linux 서버 또는 VM, 또는 이미 Docker가 설치된 호스트 +- 방화벽에서 필요한 RustDesk 포트가 열려 있어야 하며, 웹 콘솔과 API가 필요하다면 `21114` 또는 `443`도 열려 있어야 합니다. +- 도메인에 HTTPS를 적용하려면 선택적 DNS 이름이 필요합니다. + +## 어떤 설치 방법을 선택해야 하나요? + +| 방법 | 최적의 사용처 | 사용하는 이유 | +| --- | --- | --- | +| Docker | 대부분의 새로운 Pro 배포 | 가장 쉬운 업그레이드, 간편한 롤백 및 일관된 설정 | +| `install.sh` | 기본 서비스를 원하는 Linux 관리자 | systemd 서비스를 생성하고 선택적으로 Nginx와 Certbot을 설정할 수 있음 | +| 오픈소스에서 변환 | 기존 OSS 배포 | 기존 RustDesk 서버 설치를 제로부터 시작하지 않고 Pro로 이동함 | + +## 방법 1: Docker (권장) + +``` +bash <(wget -qO- https://get.docker.com) +wget rustdesk.com/pro.yml -O compose.yml +sudo docker compose up -d +``` + +자세한 내용은 [Docker](/docs/ko/self-host/rustdesk-server-pro/installscript/docker/)를 확인하십시오. + +## 방법 2: install.sh + +Linux에 능숙하다면 아래 스크립트를 사용하십시오. 그렇지 않으면 실패할 경우 심각한 문제가 발생할 수 있으며, 왜 작동하지 않는지 파악하기 어려울 수 있습니다. + +`bash <(wget -qO- https://raw.githubusercontent.com/rustdesk/rustdesk-server-pro/main/install.sh)` + +자세한 내용은 [install.sh](/docs/ko/self-host/rustdesk-server-pro/installscript/script/)를 확인하십시오. + +## 오픈소스에서 변환하기 + +### Docker +Docker를 사용해 오픈소스 버전을 설치한 경우, 이를 직접 변환할 수 있는 방법은 없습니다. 대신 Pro 이미지로 새 컨테이너를 실행해야 합니다. 이를 수행하기 전에 개인 키(파일명 `id_ed25519`, `id_ed25519.pub`가 아님)를 백업해 두십시오. 새 컨테이너가 설정되면 기존의 `id_ed25519` 개인 키 파일을 새 컨테이너의 작업 디렉터리로 복사한 다음, 컨테이너를 다시 시작하십시오. + +### install.sh +install.sh를 사용해 오픈소스 버전을 설치한 경우, [this](/docs/ko/self-host/rustdesk-server-pro/installscript/script/#convert-from-open-source)를 따르십시오. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/installscript/windows/_index.ko.md b/content/self-host/rustdesk-server-pro/installscript/windows/_index.ko.md new file mode 100644 index 00000000..fe9004af --- /dev/null +++ b/content/self-host/rustdesk-server-pro/installscript/windows/_index.ko.md @@ -0,0 +1,77 @@ +--- +title: Windows 설치(사용 중단됨) +weight: 5 +description: "Windows에서 RustDesk Server Pro를 설치하는 레거시 가이드입니다. 사전 요구사항, 라이선스 설정 및 다운로드 단계가 포함되어 있지만, 대신 Linux 또는 Docker를 사용하는 것이 좋습니다." +keywords: ["rustdesk server pro windows", "rustdesk pro windows install", "rustdesk self-host pro windows", "rustdesk windows install deprecated", "rustdesk pro license windows"] +--- + +이것은 RustDesk Server Pro의 레거시 Windows 설치 경로입니다. 가능하면 대신 Linux 또는 Docker를 사용하십시오. + +{{% notice note %}} +Windows 보안 정책은 까다롭습니다. 이 튜토리얼이 작동하지 않거나 불안정한 연결을 경험한다면, Linux 서버로 마이그레이션해 주세요. +{{% /notice %}} + +{{% notice note %}} +GUI 버전인 `RustDeskServer.setup.exe`는 더 이상 유지보수가 되지 않으므로 권장하지 않습니다. +{{% /notice %}} + +## Windows 설치 경로를 사용해야 하나요? + +이 가이드는 RustDesk Server Pro 호스트가 반드시 Windows에 있어야 할 때만 사용하십시오. 새로운 자체 호스팅 배포의 경우, Linux나 Docker가 더 나은 기본 옵션입니다. 자동화, 업데이트 및 안정적인 운영이 더 쉽기 때문입니다. + +## Windows 설치 빠른 답변 + +- 이 경로는 레거시 경로로 간주하며, 선호하는 배포 방식은 아닙니다. +- 시작하기 전에 Microsoft Visual C++ 재배포 가능 패키지를 설치하세요. +- 오래된 GUI 설치 프로그램은 더 이상 유지보수가 되지 않습니다. +- 장기적으로 안정적인 배포가 필요하다면, Linux나 Docker로 이동하세요. +- Windows에 계속 머무를 경우, 서비스를 어떻게 실행하고 웹 콘솔을 어떻게 프록시할지 계획하세요. + +## 설치 + +Windows에서 rustdesk를 실행하려면 Microsoft Visual C++ 재배포 가능 패키지가 필요합니다. 이를 [here](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist)에서 다운로드할 수 있습니다. + +1. [https://rustdesk.com/pricing.html](https://rustdesk.com/pricing.html)에서 라이선스를 받고, 자세한 내용은 [license](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/) 페이지를 확인하세요. +2. [GitHub](https://github.com/rustdesk/rustdesk-server-pro/releases/latest)에서 Windows 설치 프로그램을 다운로드하세요. +3. Windows 설치 프로그램을 압축 해제하세요. +4. 설치 프로그램을 실행하고 화면에 표시된 단계를 따르세요. 또는 [PM2 or NSSM](https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/windows/)를 사용해 수동으로 설치하세요. +5. 설치가 완료되면 RustDesk 서버를 엽니다. +6. 안내에 따라 설치를 진행하세요. +7. `Services`를 클릭한 다음 `Start`를 클릭하세요. +8. 설치가 완료되면 `http://youripaddress:21114`로 이동하세요. +9. 사용자 이름 `admin`와 비밀번호 `test1234`로 로그인하세요. +10. 1단계에서 구매한 라이선스 코드를 입력하세요. + +## IIS를 프록시로 사용하기 + +`Dynamic Content Compression`가 설치되어 있는지 확인하세요(이는 서버 역할과 함께 설치할 수 있는 IIS 기능입니다). +1. IIS를 열거나 설치하세요. +2. RustDesk용 새 웹사이트를 생성하고 바인딩(이상적으로 443)과 관련 인증서를 설정하세요. 기본 설정은 이 웹사이트를 빈 폴더로 지정해야 합니다. (기본 사이트를 사용하는 경우, 해당 폴더에 다른 파일이 없도록 하세요). +3. IIS에서 [Application Request Routing](https://www.iis.net/downloads/microsoft/application-request-routing)와 [URL Rewrite](https://learn.microsoft.com/en-us/iis/extensions/url-rewrite-module/using-the-url-rewrite-module)를 설치하세요. + +## 애플리케이션 요청 라우팅 + +1. IIS 서버 호스트 아래에서 애플리케이션 요청 라우팅을 엽니다. +2. 서버 프록시 설정으로 이동하세요. +3. 프록시를 활성화하면 모든 설정이 표시되며, 기본값으로 두어도 됩니다. +4. 설정을 저장한 후 다음 단계인 URL 다시쓰기로 넘어갈 수 있습니다. + +## URL 다시쓰기 + +1. 왼쪽 창에서 IIS의 사이트를 열고 URL 다시 쓰기를 두 번 클릭하세요. +2. `Add rules`를 클릭하세요. +3. 새 리버스 프록시 규칙을 설정하세요. +4. 로컬 주소(21114 주소)를 설정하세요. +인바운드 규칙 – RustDesk 내부 21114 주소 +아웃바운드 규칙 – `From`는 RustDesk 내부 21114 주소이고, `To`는 외부 주소입니다. +노트: 주소 앞에 http/https를 붙이지 마세요 – 자동으로 처리됩니다. 또한 모든 주소가 내부와 외부에서 모두 접근 가능하도록 확인하세요. + +## 압축 + +1. `Dynamic Content Compression`를 비활성화하세요. + +## 문제 해결 + +오류 500.52가 발생한 경우, 언급된 변수를 추가하세요: [IIS acting as reverse proxy: Where the problems start](https://techcommunity.microsoft.com/t5/iis-support-blog/iis-acting-as-reverse-proxy-where-the-problems-start/ba-p/846259). + +SSL 설정을 'SSL 필요 → 무시'로 변경해야 할 수 있습니다. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/ldap/_index.ko.md b/content/self-host/rustdesk-server-pro/ldap/_index.ko.md new file mode 100644 index 00000000..e8faa851 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/ldap/_index.ko.md @@ -0,0 +1,60 @@ +--- +title: LDAP +weight: 17 +description: "RustDesk 서버 프로에서 LDAP 인증을 구성하려면 서버 호스트, 포트, 기본 DN, 범위 및 관련 디렉터리 매핑 옵션을 설정하세요." +keywords: ["rustdesk ldap", "rustdesk server pro ldap", "rustdesk ldap authentication", "rustdesk base dn", "rustdesk ldaps"] +--- + +이 안내서를 사용하여 RustDesk Server Pro를 LDAP 디렉터리에 연결하여 중앙 집중식 인증 및 사용자 조회를 수행하십시오. + +## RustDesk Server Pro에서 LDAP는 어떤 역할을 하나요? + +LDAP를 사용하면 RustDesk Server Pro가 각 계정의 별도 로컬 자격 증명을 관리하는 대신 디렉터리 서비스를 기반으로 사용자를 인증할 수 있습니다. 첫 번째 성공적인 로그인 시, RustDesk는 LDAP 신원을 기반으로 사용자를 자동으로 생성합니다. + +## LDAP 설정 체크리스트 + +1. LDAP 호스트, 포트 및 암호화 모드(`389`, `636` 또는 StartTLS)를 확인하십시오. +2. 유효한 바인딩 DN과 비밀번호를 가진 서비스 계정을 선택하십시오. +3. 올바른 기본 DN, 범위 및 사용자 필터를 설정하십시오. +4. 올바른 사용자 이름 속성을 설정하십시오. 예: `uid` 또는 `sAMAccountName`. +5. 배포하기 전에 RustDesk 웹 콘솔에서 구성 내용을 테스트하십시오. + +## LDAP 빠른 답변 + +- RustDesk는 첫 번째 성공적인 LDAP 로그인 시 사용자를 생성합니다. +- 콘솔은 구성 내용을 제출할 때 LDAP 연결을 검증합니다. +- 현재 로컬 사용자를 LDAP 사용자로 변환하는 것은 지원되지 않습니다. +- LDAP 그룹은 아직 지원되지 않습니다. + +## 구성 +아래와 같이 `LDAP` 설정 페이지로 이동하십시오. + +![](/docs/en/self-host/rustdesk-server-pro/ldap/images/ldap.png) + +- **LDAP 호스트:** 이는 LDAP 서버의 호스트명 또는 IP 주소입니다. 예를 들어, `ldap.example.com` 또는 `192.0.2.1`입니다. + +- **LDAP 포트:** 이는 LDAP 서버가 수신 대기하는 포트 번호입니다. LDAP의 기본 포트는 `389`이며, LDAPS(SSL을 통한 LDAP)의 경우 `636`입니다. + +- **기본 DN:** 이는 LDAP 검색의 시작 지점입니다. 예를 들어, dc=example,dc=com입니다. + +- **범위:** 이는 LDAP 디렉터리에서 검색의 범위를 결정합니다. 하나(기본 DN 바로 아래의 항목들) 또는 하위(기본 DN 바로 아래의 항목들)로 설정할 수 있습니다. + +- **바인딩 DN / 비밀번호:** 서비스 계정의 관리자 사용자 이름과 비밀번호입니다. 이 계정은 다른 사용자를 인증하기 위해 LDAP에 바인딩하는 데 사용됩니다. 일반적으로 `cn=admin,dc=example,dc=com`와 같은 사용자 DN입니다. + +- **필터:** 이는 LDAP 쿼리의 검색 필터입니다. 예를 들어, `(objectClass=person)` 또는 `(&(age=28)(!(name=Bob)))`입니다. + +- **사용자 이름 속성:** 이는 사용자 이름이 포함된 속성입니다. 예를 들어 `uid` 또는 `sAMAccountName`입니다. 기본적으로 `uid`와 `cn`를 사용합니다. 여기에 이에 대한 [discussion](https://github.com/rustdesk/rustdesk-server-pro/issues/140#issuecomment-1916804393)가 있습니다. + +- **StartTLS:** 이는 연결을 보안 연결로 업그레이드하기 위해 StartTLS를 사용할지 여부를 결정합니다. + +- **NoTLSVerify:** 이는 TLS 인증서 확인을 건너뛸지 여부를 결정합니다. 확실히 알고 있는 경우가 아니라면 이 설정을 false(즉, 인증서 확인 수행)로 유지하는 것이 좋습니다. + +## 작동 방식은 어떻게 되나요? +- LDAP 로그인은 어떻게 작동하나요? 예를 들어, 먼저 새 사용자를 생성해야 하나요? RustDesk가 첫 로그인 시 사용자를 생성하나요 등등? + > RustDesk는 첫 로그인 시 사용자를 생성합니다. +- LDAP가 제대로 작동하는지 확인하려면 어떻게 해야 하나요(이상적으로는 RustDesk에 전달해 발견된 사용자를 반환하도록 할 수 있는 명령어가 있으면 좋겠네요)? + > 구성 정보를 제출하면, 입력한 binddn과 비밀번호로 LDAP 서버에 연결하고 작동 여부를 확인합니다. +- 로컬 사용자를 LDAP 사용자로 변경하려면 어떻게 해야 하나요? + > 아직 지원되지 않습니다. +- LDAP 그룹을 지원하나요? + > 아직 지원되지 않습니다. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/license/_index.ko.md b/content/self-host/rustdesk-server-pro/license/_index.ko.md new file mode 100644 index 00000000..f9fa08f0 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/license/_index.ko.md @@ -0,0 +1,62 @@ +--- +title: 라이선스 +weight: 15 +description: "웹 콘솔에서 RustDesk 서버 프로 라이선스를 구매하고, 입력하고 관리하십시오. 라이선스를 어디서 얻을 수 있는지, 구매 후 어떻게 활성화하거나 변경할 수 있는지 알아보십시오." +keywords: ["rustdesk pro license", "rustdesk server pro activate", "rustdesk pricing license", "rustdesk change license", "rustdesk web console license"] +--- + +이 페이지를 사용하여 RustDesk Server Pro 라이선스를 구매하고 활성화하며 업데이트하는 방법을 이해하십시오. + +## RustDesk Server Pro 라이선스는 어떻게 작동하나요? + +RustDesk Server Pro 라이선스는 모든 릴레이 노드가 아닌 `hbbs` 서버에 연결됩니다. 가격 페이지를 통해 라이선스를 구매한 후 웹 콘솔에 입력하고, 셀프서비스 라이선스 포털을 통해 갱신, 업그레이드, 청구서 및 마이그레이션을 관리하십시오. + +## 라이선스에 대한 간단한 답변 + +- 한 번에 하나의 라이선스는 하나의 `hbbs` 머신에 할당됩니다. +- `hbbr` 릴레이 서버는 별도의 라이선스가 필요하지 않습니다. +- 갱신과 업그레이드는 셀프서비스 포털에서 처리한 후 웹 콘솔에서 라이선스를 새로 고침하여 활성화합니다. +- 마이그레이션은 기존 머신의 바인딩 해제와 새 서버에 라이선스 설정으로 이루어집니다. +- 서버가 인터넷에 직접 접속할 수 없는 경우, 라이선스 확인을 위해 프록시를 구성할 수 있습니다. + +## 라이선스 구매 + +[https://rustdesk.com/pricing.html](https://rustdesk.com/pricing.html)에서 라이선스를 받으시고 Stripe 결제 페이지에 유효한 이메일 주소를 입력해 주세요. 결제가 성공적으로 완료되면 라이선스(및 별도의 메일로 청구서)가 이메일로 전송됩니다. + +![](/docs/en/self-host/rustdesk-server-pro/license/images/stripe.jpg) + +## 라이선스 설정 + +웹 콘솔(`http://:21114`)에서 라이선스를 입력하거나 나중에 라이선스를 변경해야 합니다. + +| 라이선스 설정 | 라이선스 변경 | +| --- | --- | +| ![](/docs/en/self-host/rustdesk-server-pro/license/images/set.png) | ![](/docs/en/self-host/rustdesk-server-pro/license/images/change.png) | + +## 라이선스 갱신/업그레이드 + +라이선스 갱신/업그레이드는 아래와 같이 [self-service license portal](https://rustdesk.com/self-host/account/)를 통해 확인할 수 있으며, 위 그림과 같이 라이선스 구매 시 사용한 이메일로 로그인하십시오. + +| 갱신/업그레이드 작업이 포함된 라이선스 페이지 | 업그레이드 창 | +| --- | --- | +| ![](/docs/en/self-host/rustdesk-server-pro/license/images/renew.jpg?v2) | ![](/docs/en/self-host/rustdesk-server-pro/license/images/upgrade.png) | + +결제 후, 라이선스 [as below](/docs/ko/self-host/rustdesk-server-pro/license/#refresh-license)를 새로 고침하여 활성화해 주세요. + +### 라이선스 새로 고침 +결제 후, 아래와 같이 웹 콘솔로 이동하여 수동으로 활성화해야 합니다. `Edit`를 클릭한 다음 `OK`를 클릭하면 되며, 아무것도 수정할 필요가 없습니다. 라이선스 키는 그대로 유지되기 때문입니다. + +![](/docs/en/self-host/rustdesk-server-pro/license/images/updatelic.jpg) + +## 청구서, 라이선스 검색 및 마이그레이션 + +라이선스는 한 대의 컴퓨터에서만 사용할 수 있습니다(단, hbbs용이며, hbbr는 라이선스가 필요하지 않습니다). 다른 컴퓨터로 이전하거나 라이선스를 다시 받거나 청구서를 다운로드하려면 [https://rustdesk.com/self-host/account/](https://rustdesk.com/self-host/account/)로 이동하세요. Stripe 결제에 사용한 이메일 주소로 로그인한 후, 아래와 같이 이전하려는 기존 컴퓨터의 연결을 해제하세요. 새 서버 웹 콘솔에서 라이선스를 설정하면 라이선스가 할당되고 콘솔에 자동으로 등록됩니다. + +![](/docs/en/self-host/rustdesk-server-pro/license/images/unbind.jpg) + +## 프록시 +서버가 인터넷에 접속해 라이선스를 직접 확인할 수 없는 경우, 예를 들어 `proxy=http://username:password@example.com:8080 ./hbbs`와 같은 프록시를 추가할 수 있습니다. + +또는 작업 디렉터리(여기서 `id_ed25519` / `db.sqlite3` 파일이 저장됨)의 `.env` 파일에 `proxy=http://username:password@example.com:8080`를 추가할 수 있습니다. + +`http`는 `https` 또는 `socks5`로 대체할 수 있습니다. `username` / `password` / `port`가 없는 경우, `proxy=http://example.com`로 대체할 수 있습니다. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/oidc/_index.ko.md b/content/self-host/rustdesk-server-pro/oidc/_index.ko.md new file mode 100644 index 00000000..6358e72c --- /dev/null +++ b/content/self-host/rustdesk-server-pro/oidc/_index.ko.md @@ -0,0 +1,32 @@ +--- +title: OIDC +weight: 16 +description: "RustDesk Server Pro에서 OpenID Connect를 구성하여 사용자가 Google, Okta, Azure, GitHub, GitLab 등과 같은 ID 제공업체로 로그인할 수 있도록 하세요." +keywords: ["rustdesk oidc", "rustdesk openid connect", "rustdesk sso", "rustdesk azure login", "rustdesk okta login", "rustdesk github login"] +--- + +RustDesk Server Pro에서 OpenID Connect를 사용하여 사용자가 별도의 로컬 자격 증명 대신 기존 ID 제공자로 로그인하도록 하세요. + +- 기존의 `Google`, `Okta`, `Facebook`, `Azure`, `GitHub`, `GitLab` 등의 계정을 사용하여 손쉽게 `RustDesk Pro` 계정을 생성하고 로그인하세요. +- 사양에 대해서는 [OpenID Connect Core 1.0 incorporating errata set 1](https://openid.net/specs/openid-connect-core-1_0.html)을 참조하십시오. + +## RustDesk Server Pro에서 OIDC란 무엇인가요? + +OIDC를 사용하면 RustDesk Server Pro가 로그인을 외부 ID 제공자에게 위임할 수 있습니다. 별도의 RustDesk 비밀번호를 관리하는 대신, 사용자는 이미 신원 확인, 접근 제어 및 계정 라이프사이클에 사용하고 있는 제공자와 인증됩니다. + +## 로컬 계정 대신 OIDC를 사용해야 하는 경우는 언제인가요? + +- 이미 Azure, Okta, GitHub, GitLab, Google 또는 다른 OIDC 지원 제공자를 사용하고 있음 +- 중앙 집중식 비밀번호 정책과 싱글 사인온을 원함 +- 하나의 ID 시스템에서 사용자의 접근 권한을 비활성화하거나 해지하고 싶음 +- RustDesk 계정 생성 및 로그인이 기존 조직의 신원과 연계되기를 원함 + +## OIDC 설정 체크리스트 + +1. ID 제공자에서 애플리케이션을 생성하세요. +2. 클라이언트 ID, 클라이언트 비밀번호, 발급자 URL 및 제공자별 특정 엔드포인트를 수집하세요. +3. 제공자 설정을 RustDesk Server Pro에 추가하세요. +4. 광범위하게 배포하기 전에 비관리자 계정으로 로그인을 테스트하세요. + +## 제공자 예시 +{{% children depth="4" showhidden="true" %}} \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/oidc/azure/_index.ko.md b/content/self-host/rustdesk-server-pro/oidc/azure/_index.ko.md new file mode 100644 index 00000000..ee2b1478 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/oidc/azure/_index.ko.md @@ -0,0 +1,68 @@ +--- +title: Azure +weight: 16 +description: "RustDesk 서버 프로용 OpenID Connect 제공자로 Microsoft Entra ID(Azure)를 구성하십시오. Azure Portal에서 앱 등록 및 OIDC 설정 단계를 따르십시오." +keywords: ["rustdesk azure oidc", "rustdesk entra id", "rustdesk azure sso", "rustdesk oidc azure", "rustdesk server pro azure"] +--- + +이 안내서를 사용하여 RustDesk Server Pro를 OpenID Connect로 Microsoft Entra ID에 연결하십시오. + +## Azure OIDC 설정은 무엇을 하나요? + +이 설정을 통해 사용자는 OpenID Connect를 이용해 Microsoft Entra ID 계정으로 RustDesk Server Pro에 로그인할 수 있습니다. 실제로는 Azure에서 RustDesk를 애플리케이션으로 등록하고, 클라이언트 자격 증명을 RustDesk Pro에 복사한 다음, RustDesk Pro를 Entra 테넌트 발급자 URL로 지정하면 됩니다. + +## Azure OIDC 체크리스트 + +- 사용하려는 최종 콜백 원점을 통해 RustDesk Pro 웹 콘솔을 엽니다. +- Microsoft Entra ID에서 앱 등록을 생성합니다. +- Azure에서 `Client ID`를 RustDesk Pro로 복사합니다. +- 클라이언트 시크릿을 생성하고 즉시 시크릿 값을 저장하세요. +- 귀하의 `Directory (tenant) ID`를 사용해 발급자 URL을 구성하세요. +- Azure 인증 설정에서 `ID tokens`를 활성화하세요. + +## RustDesk Pro에 입력해야 하는 Azure 값은 무엇인가요? + +| RustDesk Pro 필드 | Azure 소스 | +| --- | --- | +| 콜백 URL | RustDesk Pro OIDC 설정 페이지에서 복사 | +| 클라이언트 ID | Azure 앱 개요의 `Application (client) ID` | +| 클라이언트 비밀번호 | `Certificates & secrets` 아래에 생성된 Secret `Value` | +| 발급자 | `https://login.microsoftonline.com//v2.0` | + +## 동영상 자습서 + +[https://www.youtube.com/watch?v=izGxSmifURI](https://www.youtube.com/watch?v=izGxSmifURI) + +## 구성 + +1. [Azure portal](https://portal.azure.com)에 로그인하세요. +2. **Microsoft Entra ID**를 검색하고 선택하세요. +3. 왼쪽 메뉴에서 [**App registrations**](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps)를 선택하고, **새로운 등록**을 클릭하세요. +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/1-Azure-NewRegistration.png) +4. RustDesk Pro 콘솔을 열고, **설정** 페이지에서 **OIDC** 모듈을 클릭하세요. 그런 다음 **콜백 URL**을 복사하세요. **노트**: **콜백 URL**은 수정할 수 없으며, `Path` 부분은 `api/oidc/callback`로 고정되어 있고, `Protocol://Host:Port` 부분은 현재 웹페이지의 원본입니다. 만약 `http://localhost:8000/` 주소를 통해 열면, **콜백 URL**은 `http://localhost:8000/api/oidc/callback`가 됩니다. 만약 `https://192.168.0.1:8000/` 주소를 통해 열면, **콜백 URL**은 `https://192.168.0.1:8000/api/oidc/callback`가 됩니다. Azure는 반드시 `https://` 또는 `http://localhost`를 사용해야 하므로, 적절한 주소를 선택하여 RustDesk Pro 콘솔을 열어주세요. +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/12-RustDesk-Callback.png) +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/2-Azure-Register-RecirectURIs-Restrictions.png) +5. **이름**을 입력하고, **지원되는 계정 유형**을 선택한 후, RustDesk Pro에서 **리디렉션 URI**를 붙여넣으세요. +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/2-Azure-Register.png) +6. RustDesk Pro에서 **새 인증 제공자**를 클릭하세요. +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/3-RustDesk-NewAuthProvider.png) +7. Azure에서 사용하려는 애플리케이션을 선택하고, **개요**를 클릭한 후, **애플리케이션(클라이언트) ID**를 복사하세요. +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/4-Azure-ClientID.png) +8. RustDesk Pro에서 **클라이언트 ID**를 붙여넣으세요. +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/5-RustDesk-ClientID.png) +9. Azure에서 **인증서 및 비밀번호**, 새 비밀번호를 생성하거나 기존 비밀번호를 선택하세요. 보통 새 비밀번호를 생성합니다. +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/6-Azure-NewOrSelectClientSecret.png) +10. Azure에서 클라이언트 비밀번호의 값을 복사하세요. **노트**: 이 값은 처음 등록할 때만 보입니다. 페이지를 떠나면 더 이상 보이지 않습니다. 이 값을 잘 보관해 주세요. +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/7-Azure-CopySecretValue.png) +11. RustDesk Pro에서 클라이언트 비밀번호의 값을 붙여넣으세요. +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/8-RustDesk-FillClientSecret.png) +12. RustDesk Pro에서 **발급자** 필드에 `https://login.microsoftonline.com//v2.0`를 입력하세요. `Directory (tenant) ID`를 귀하의 **디렉터리(테넌트) ID**로 바꿔주세요. **디렉터리(테넌트) ID**는 Azure의 애플리케이션 **개요** 패널에 있습니다. +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/9-RustDesk-Issuer.png) +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/10-Azure-TenantID.png) +13. Azure에서 **인증** 메뉴를 선택하세요. 그런 다음 **ID 토큰(암시적 및 하이브리드 플로우에 사용)**을 선택하여 권한 부여를 설정하세요. +![](/docs/en/self-host/rustdesk-server-pro/oidc/azure/images/11-Azure-Auth.png) + +## 참고문헌 + +- [Set up an OpenID Connect provider with Azure AD](https://learn.microsoft.com/en-us/power-pages/security/authentication/openid-settings) +- [OpenID Connect on the Microsoft identity platform](https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-protocols-oidc) \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/permissions/_index.ko.md b/content/self-host/rustdesk-server-pro/permissions/_index.ko.md new file mode 100644 index 00000000..4a014087 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/permissions/_index.ko.md @@ -0,0 +1,73 @@ +--- +title: 접근 제어 +weight: 16 +description: "RustDesk 서버 프로에서 장치 액세스 제어를 구성하려면 장치를 사용자 또는 그룹에 할당하고, 어떤 관리 대상 장치에 누가 접근할 수 있는지 정의하세요." +keywords: ["rustdesk access control", "rustdesk device permissions", "rustdesk user group access", "rustdesk server pro permissions", "rustdesk device assignment"] +--- + +RustDesk Server Pro에서 어떤 사용자나 그룹이 어떤 장치에 연결할 수 있는지 결정하려면 접근 제어를 사용하세요. + +## RustDesk Server Pro의 접근 제어란 무엇인가요? + +접근 제어는 사용자나 그룹이 특정 장치에 접속할 수 있는지를 결정합니다. 이는 연결 시작 후 운영자가 할 수 있는 작업과는 관련이 없습니다. 세션 내 권한 설정을 위해서는 [Control Role](/docs/ko/self-host/rustdesk-server-pro/control-role/)를 사용하세요. + +## 접근 제어에 대한 간단한 답변 + +- 접근 제어는 누가 어떤 장치에 연결할 수 있는지 결정합니다. +- 사용자 할당, 장치 그룹 및 그룹 간 접근 설정을 통해 작동합니다. +- 한 장치는 한 사용자, 한 장치 그룹 또는 둘 다에 할당될 수 있습니다. +- 비활성화된 사용자와 비활성화된 장치에는 접근할 수 없습니다. +- 장치 그룹 권한과 사용자 그룹 권한을 조합하여 접근을 허용할 수 있습니다. + +## 가장 먼저 구성해야 할 사항은 무엇인가요? + +1. 장치를 어떻게 할당할지 결정하세요: 직접 사용자에게 할당하거나, 장치 그룹에 할당하거나, 둘 다 할당할지 선택하세요. +2. 사용자가 자신의 그룹 외부의 장치에 접속해야 하는 경우 사용자 그룹 간 교차 규칙을 설정하세요. +3. 사용자별 할당보다 그룹 기반 장치 접근 관리가 더 쉬운 경우 장치 그룹 규칙을 추가하세요. + +## 장치 접근 권한 + +장치는 단일 사용자, 단일 장치 그룹 또는 둘 다에 할당될 수 있습니다. + +장치가 사용자에게 할당되면 해당 사용자, 사용자 그룹 또는 적절한 교차 사용자 그룹 설정을 통해 접근할 수 있습니다. + +장치가 장치 그룹에 할당되면 적절한 교차 사용자-장치 그룹 설정을 통해 접근할 수 있습니다. + +사용자에게 장치를 할당하는 방법은 세 가지가 있습니다: +- 콘솔 장치 페이지를 통해 +- 클라이언트 측에서 지정된 사용자 계정에 로그인하여 +- 명령줄을 통해 할당 + +장치를 장치 그룹에 할당하는 방법은 두 가지가 있습니다: +- 콘솔 장치 페이지를 통해 +- 명령줄을 통해 할당 + +다음 두 가지 상황에서는 장치에 접근할 수 없게 됩니다: +- 콘솔 장치 페이지에서 장치 `disable`로 설정 +- 콘솔 사용자 페이지에서 사용자 `disable`로 설정 + +## 사용자 그룹 접근 설정 + +웹 콘솔의 그룹 페이지로 이동하여, 아래와 같이 `Edit`를 클릭해 교차 그룹 설정을 편집하십시오. + +`Access with other groups`에 대한 귀하의 수정 사항은 `OK` 버튼을 클릭할 필요 없이 즉시 적용됩니다. + +`Can access to`와 `Can be accessed from`는 거의 동일한 기능을 수행하며, 편의를 위해 두 옵션을 모두 제공합니다. 그러나 이로 인해 약간의 혼란이 발생할 수 있습니다. + +{{% notice note %}} +제어 측에 할당된 사용자와 그룹은 웹 콘솔에서 할당된 사용자가 아니라 로그인한 사용자에 의해 결정됩니다. 특정 제어 측에는 iOS 클라이언트 및 웹 클라이언트와 같이 디바이스 ID가 없는 경우가 있기 때문에 이렇게 설계했습니다. +{{% /notice %}} + +![](/docs/en/self-host/rustdesk-server-pro/permissions/images/crossgrp.png) + +## 디바이스 그룹 액세스 설정 + +디바이스 그룹은 액세스 권한을 관리하는 또 다른 방법을 제공합니다. 주요 규칙은 다음과 같습니다: + +1. 하나의 디바이스는 오직 하나의 디바이스 그룹에만 추가될 수 있습니다. +2. 사용자 또는 사용자 그룹에 대해 디바이스 그룹의 액세스 권한을 설정할 수 있습니다. 이러한 권한은 사용자 그룹의 액세스 권한과 누적됩니다—즉, 사용자 그룹 권한이나 디바이스 그룹 권한 둘 중 하나라도 허용한다면 액세스가 부여됩니다. +3. 할당되지 않은 디바이스를 디바이스 그룹에 추가하면 더 이상 "할당되지 않음" 상태로 간주되지 않습니다. + +{{% notice note %}} +디바이스 그룹 기능을 사용하려면 RustDesk 클라이언트 버전 1.3.8 이상 및 RustDesk 서버 프로 버전 1.5.0 이상이 필요합니다. +{{% /notice %}} \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/relay/_index.ko.md b/content/self-host/rustdesk-server-pro/relay/_index.ko.md new file mode 100644 index 00000000..c51a5045 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/relay/_index.ko.md @@ -0,0 +1,166 @@ +--- +title: 릴레이 서버 구성 +weight: 17 +description: "서버 프로 배포에 추가 RustDesk 릴레이 서버를 추가하고 지리적 위치를 사용하여 가장 가까운 사용 가능한 hbbr 인스턴스를 통해 연결을 라우팅하십시오." +keywords: ["rustdesk relay server", "rustdesk hbbr", "rustdesk geolocation relay", "rustdesk additional relay", "rustdesk server pro relay"] +--- + +이 가이드를 사용하여 RustDesk Server Pro에 추가 릴레이 서버를 추가하고 지리적 위치 인식 라우팅을 통해 지역별 성능을 향상시키세요. + +## 언제 추가 릴레이 서버가 필요합니까? + +사용자가 서로 다른 지역 간에 연결되고 직접 홀 펀칭이 항상 가능하지 않을 때 추가 릴레이 서버가 필요합니다. 추가 `hbbr` 노드를 통해 RustDesk는 보다 가까운 지역을 통해 릴레이 트래픽을 라우팅할 수 있으며, 이는 릴레이가 필요한 경우 지연 시간을 줄이고 세션 품질을 개선할 수 있습니다. + +## 릴레이 설정 체크리스트 + +1. 대상 지역에 추가 `hbbr` 릴레이 서버를 배포합니다. +2. `id_ed25519` 및 `id_ed25519.pub` 키 쌍을 해당 릴레이 서버로 복사합니다. +3. TCP 포트 `21117`와 `21119`를 열어줍니다. +4. RustDesk Pro 웹 콘솔에 새로운 릴레이 호스트명 또는 IP 주소를 추가합니다. +5. `hbbs`에 MaxMind GeoLite2 City 데이터베이스를 설치합니다. +6. 지오 설정을 다시 로드하고, 새 릴레이가 로그에 나타나는지 확인합니다. + +## Docker를 사용한 추가 릴레이 서버 설치 방법 + +{{% notice note %}} +[The simple install](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/)는 동일한 머신에서 암묵적으로 릴레이 서버(`hbbr` 프로세스)를 생성하므로, 릴레이 서버를 명시적으로 지정할 필요가 없습니다. + +다른 컴퓨터에 추가 릴레이 서버를 명시적으로 생성하려면 [OSS installation](https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/install/)를 따라 `hbbr`를 실행하세요. `hbbr`는 `rustdesk-server-linux-amd64.tar.gz`, `rustdesk-server-hbbr_-.deb`, `rustdesk-server-windows-x86_64.tar.gz` 또는 `docker`(`sudo docker run ... rustdesk/rustdesk-server-pro hbbr`)에서 찾을 수 있습니다. + +`hbbr`는 라이선스가 필요하지 않으며 오픈소스 버전과 동일합니다. +{{% /notice %}} + +여러 개의 릴레이 서버를 전 세계에 걸쳐 실행하고 지리적 위치를 자동으로 활용해 가장 가까운 릴레이 서버를 사용할 수 있어 원격 컴퓨터에 연결할 때 더 빠른 경험을 제공합니다. `hbbs`는 이러한 릴레이 서버들이 몇 초마다 온라인 상태인지 자동으로 확인하며, 온라인 상태인 릴레이 서버만 선택합니다. + +{{% notice note %}} +알려진 문제: https://github.com/rustdesk/rustdesk/discussions/7934 +{{% /notice %}} + +> 개인 키 쌍 `id_ed25519`와 `id_ed25519.pub`가 필요합니다. + +1 - 이미 Docker가 설치되어 있다면 SSH를 통해 서버에 연결하고 hbbr용 볼륨을 생성하세요. + +``` +# docker volume create hbbr +``` + +볼륨 hbbr는 `/var/lib/docker/volumes/hbbr/_data`에 위치해야 합니다. + +2 - 개인 키 쌍을 볼륨 위치로 복사합니다. 이 경우 SCP를 사용해 파일을 복사하겠습니다. + +명령어 구문은 `scp username@server:`입니다. + +``` +# scp id_ed25519 root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data +# scp id_ed25519.pub root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data +``` + +3 - 이전에 생성한 볼륨을 사용하여 hbbr 컨테이너를 배포하십시오. 이 볼륨에는 개인 릴레이 서버를 실행하는 데 필요한 개인 키 쌍이 있습니다. + +``` +# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server hbbr -k _ +``` + +4 - 실행 로그를 확인하여 키 쌍을 사용해 hbbr가 실행 중인지 확인하십시오. + +``` +# docker logs hbbr + +INFO [src/common.rs:121] **Private key comes from id_ed25519** +NFO [src/relay_server.rs:581] Key: XXXXXXXXXXXXXXXXXXXXX +INFO [src/relay_server.rs:60] #blacklist(blacklist.txt): 0 +INFO [src/relay_server.rs:75] #blocklist(blocklist.txt): 0 +INFO [src/relay_server.rs:81] Listening on tcp :21117 +``` + +운영체제에 따라 방화벽을 사용해 IP를 차단하거나 허용하고 싶을 수 있습니다. + +우리의 경우 Ubuntu를 실행하며 21117과 21119 포트로의 모든 TCP 연결을 허용하고자 합니다. + +``` +# sudo ufw allow proto tcp from any to any port 21117,21119 +``` + +**방화벽 활성화** + +``` +# sudo ufw enable +``` + +**상태 확인** + +``` +# ufw status + +Status: active + +To Action From +-- ------ ---- +21117,21119/tcp ALLOW Anywhere +21117,21119/tcp (v6) ALLOW Anywhere (v6) +``` + +## 웹 콘솔에서 지리적 위치를 구성하는 방법 + +### GeoLite2 City 데이터베이스 파일 등록 및 다운로드 + +지리적 위치 기능을 사용하려면 hbbs가 MaxMind GeoLite2 City 데이터베이스에 접근해야 합니다. 이 데이터베이스는 무료이며, 회원가입 후 파일을 다운로드하고 API 키를 받을 수 있습니다. + +먼저 [website](https://www.maxmind.com/en/account/login)로 이동하여 계정을 생성하세요(아직 계정이 없다면). `Download Databases`로 이동해 GeoLite2 City를 다운로드한 다음, gzip 파일을 선택하면 압축을 풀 때 `mmdb` 파일을 얻게 됩니다. + +image + +Linux 머신에서 설치 스크립트를 사용해 RustDesk Pro를 설치한 경우, `mmdb` 파일을 `/var/lib/rustdesk-server/`로 이동해야 합니다. + +Docker 설치의 경우, 해당 파일은 컨테이너를 배포할 때 매핑한 볼륨에 있어야 하며, 이는 `/root`에 매핑됩니다. + +### 프로세스를 자동화하려면 API 키 얻기 - Linux 서버 + +이 파일을 정기적으로 업데이트해야 하며, cronjob을 사용해 이를 수행할 수 있습니다. 무료인 다운로드 링크에 접근하려면 API 키가 필요합니다. + +`Manage License Keys`로 이동해 새 라이선스 키를 생성하세요.
+image +
+image + +몇 가지 방법으로 [download process](https://dev.maxmind.com/geoip/updating-databases)를 자동화할 수 있지만, 이전 단계에서 얻은 API 키로 {Your Access Key}를 교체하여 다음 명령을 크론탭에 추가하세요. + +``` +/usr/bin/curl -L --silent 'https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key={Your Access Key}&suffix=tar.gz' | /bin/tar -C '/var/lib/rustdesk-server/' -xvz --keep-newer-files --strip-components=1 --wildcards '*GeoLite2-City.mmdb' +``` + +### RustDesk Pro 웹 콘솔에서 설정 변경 + +`Relay Servers`에 릴레이 서버의 IP 주소 또는 DNS 이름을 추가하세요. (DNS는 버전 1.1.11부터 지원됩니다.) **포트는 필요하지 않으며, `21117` 포트가 명시적으로 사용됩니다.**
+image + +Geo 오버라이드를 추가하되, 서버 IP 주소와 서버가 위치한 좌표를 함께 추가하세요.
+image + +`Reload Geo`를 클릭하면 목록이 이와 비슷하게 보일 것입니다.
+image + +결과를 확인하려면 `Reload Geo`를 클릭할 때 hbbs 로그를 확인하세요. 릴레이 서버의 IP 주소와 그 좌표가 표시된 메시지를 볼 수 있어야 합니다. + +> Linux 머신에서 RustDesk Pro를 실행 중인 경우 `RUST_LOG=debug ./hbbs` 명령어를 사용해 로그를 확인하십시오. Docker 컨테이너에서 실행 중인 경우 `docker logs hbbs`를 사용하십시오. + +``` +RUST_LOG=debug ./hbbs + +INFO [src/common.rs:130] GEOIP_FILE: ./GeoLite2-City.mmdb +INFO [src/common.rs:159] override 1xx.xxx.xxx.x7: -1.xx 5x.xxx +[src/common.rs:159] override 1xx.xxx.xxx.xx8: -3.xxx 5x.xxxx +[src/common.rs:159] override 7xx.xxx.xxxx.xx1: 6.xxx 5x.xxxx +GEOIP_FILE loaded, #overrides 3 +INFO [src/common.rs:119] relay-servers=["1xx.xxx.xxx.x7", "1xx.xxx.xxx.xx8", "7xx.xxx.xxx.xx1"] +NFO [src/rendezvous_server.rs:1467] parsed relay servers: [("1xx.xxxx.xxx.xx7", Some((-1x, xxx))), ("1xx.xxx.xxx.xx8", Some((-3x, xxx))), ("7xx.xxx.xxx.xx1", Some((6x, xxx)))] +``` + +또한, hbbr 인스턴스에서 릴레이 요청을 직접 확인할 수 있으며, 컨테이너 로그를 확인하기만 하면 됩니다. + +``` +# docker logs hbbr + +INFO [src/relay_server.rs:436] Relayrequest 0593e64e-4fe8-4a59-a94f-b3420ab043eb from [::ffff:100.100.123.233]:52038 got paired +INFO [src/relay_server.rs:442] Both are raw +``` \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/smtp/_index.ko.md b/content/self-host/rustdesk-server-pro/smtp/_index.ko.md new file mode 100644 index 00000000..3d8cdc09 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/smtp/_index.ko.md @@ -0,0 +1,32 @@ +--- +title: SMTP +weight: 16 +description: "RustDesk Server Pro에서 SMTP를 구성하여 자체 호스팅 서버에서 초대장, 로그인 인증 이메일 및 연결 알람을 보내세요." +keywords: ["rustdesk smtp", "rustdesk email notifications", "rustdesk login verification email", "rustdesk invitation email", "rustdesk server pro smtp"] +--- + +이 안내서를 사용하여 SMTP를 통해 RustDesk Server Pro의 발신 이메일을 구성하십시오. + +SMTP 설정은 사용자 초대, 로그인 인증, 연결 알람과 같은 이메일 알림을 서버에서 보내도록 합니다. + +## RustDesk Server Pro에서 SMTP는 어떤 용도로 사용되나요? + +SMTP는 RustDesk Server Pro 배포에서 발신 이메일에 사용됩니다. 실제로 이는 일반적으로 초대 이메일, 로그인 인증 코드 및 연결 알람 알림을 의미합니다. + +## SMTP 설정 체크리스트 + +1. 호스팅 환경에서 발신 메일을 허용하는 SMTP 서버를 선택하세요. +2. 호스트, 포트, 사용자 이름, 비밀번호 및 보낸 사람 주소를 수집하세요. +3. 이러한 설정을 RustDesk Server Pro 웹 콘솔에 추가하세요. +4. 사용자에게 이메일 기반 흐름을 활성화하기 전에 콘솔에서 테스트를 실행하세요. + +## 이메일이 작동하지 않는 경우 가장 먼저 확인해야 할 사항은 무엇인가요? + +- VPS 제공업체가 `25`, `465` 또는 `587`와 같은 포트를 차단하고 있는지 여부 +- 메일 제공업체가 앱 비밀번호 또는 릴레이 전용 자격 증명을 요구하는지 여부 +- `From` 주소가 메일 제공업체에서 허용되는지 여부 +- TLS와 선택된 SMTP 포트가 메일 제공업체의 요구사항과 일치하는지 여부 + +Microsoft 365 OAuth2 설정에 대해서는 [Microsoft 365](microsoft-365/)를 참조하십시오. + +[Video Tutorial](https://youtu.be/0LyQY1JS4Uc) \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/smtp/microsoft-365/_index.ko.md b/content/self-host/rustdesk-server-pro/smtp/microsoft-365/_index.ko.md new file mode 100644 index 00000000..945151a1 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/smtp/microsoft-365/_index.ko.md @@ -0,0 +1,231 @@ +--- +title: Microsoft 365 +weight: 16 +description: "RustDesk 서버 Pro에서 SMTP OAuth2(Microsoft 365)를 구성하여 Exchange Online을 통해 이메일을 보내기 바랍니다." +keywords: ["rustdesk smtp oauth2", "rustdesk smtp microsoft 365", "rustdesk smtp m365", "rustdesk smtp oauth2 microsoft 365", "rustdesk smtp oauth2 m365", "rustdesk server pro smtp oauth2", "rustdesk server pro microsoft 365", "rustdesk server pro m365", "rustdesk server pro smtp oauth2 microsoft 365", "rustdesk server pro smtp oauth2 m365"] +--- + +이 가이드를 사용하여 RustDesk Server Pro가 OAuth2를 통해 Microsoft 365 Exchange Online를 통해 이메일을 보내도록 구성하십시오. + +이 설정은 초대 이메일, 로그인 인증 이메일 및 연결 알람 알림에 적합합니다. + +일반 SMTP 설정에 대해서는 [SMTP](../)를 참조하십시오. + +## 어떤 값들이 RustDesk Pro에 들어가나요? + +| RustDesk Pro 필드 | 입력할 내용 | +| --- | --- | +| 보낸 사람 | 발신 메일에 표시되는 발신자 주소입니다. | +| 메일 계정 | RustDesk가 XOAUTH2 SMTP 사용자 이름으로 사용하는 사서함 주소입니다. | +| OAuth2 테넌트 ID | 앱 개요에서 `Directory (tenant) ID` | +| OAuth2 클라이언트 ID | 앱 개요에서 `Application (client) ID` | +| OAuth2 클라이언트 비밀번호 | `Certificates & secrets` 아래에서 생성된 비밀번호 `Value` | + +이 스크린샷은 이러한 값들이 RustDesk에서 어디에 입력되는지 보여줍니다: +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/21-RustDesk-SMTP-OAuth2-2.png) + +## 구성 + +이 구성 작업을 시작하기 전에 다음 사항을 확인하세요: + +- RustDesk Server Pro `1.8.1` 이상 +- 기존의 Microsoft 365 사서함 또는 메일을 보내기 위해 생성할 계획인 사서함, 예를 들어 `no-reply@contoso.com` +- Microsoft Entra에서 관리자 동의를 부여하고 Exchange Online 서비스 원칙을 관리할 수 있는 Microsoft 365 관리자 계정 + +이 구성에는 세 가지 부분이 있습니다: + +- Azure에서 앱 등록, 클라이언트 시크릿, API 권한 및 관리자 동의를 구성하기 +- PowerShell에서 Exchange Online 서비스 원칙, 사서함 및 권한을 구성하기 +- RustDesk에서 SMTP OAuth2를 구성하고 테스트 이메일을 보내기 + +### 1. Azure에서 구성하기 + +1. [Azure portal](https://portal.azure.com)에 로그인하세요. +1. **앱 등록**을 검색하고 선택하세요. +1. 왼쪽 메뉴에서 [**App registrations**](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps)를 선택한 다음, **새로운 등록**을 클릭하세요. +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/1-Azure-AppRegistrations.png) +1. 앱 등록을 생성하세요. +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/2-Azure-NewRegistration.png) +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/3-Azure-RegisterAnApp.png) +1. `Directory (tenant) ID`와 `Application (client) ID`를 기록해 두세요. 나중에 RustDesk에서 이 값을 입력하게 됩니다. +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/4-Azure-NewApp-Overview.png) +1. **인증서 및 비밀번호**를 열고 새 클라이언트 비밀번호를 생성하세요. +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/5-Azure-NewClientSecret.png) +1. 클라이언트 비밀번호 `Value`를 즉시 복사하세요. Microsoft는 이 값을 한 번만 표시합니다. +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/6-Azure-Secret.png) +1. **API 권한**을 열고 Microsoft 365 Exchange Online SMTP 애플리케이션 권한을 추가하세요. +1. **권한 추가**를 선택하세요. +1. **내 조직에서 사용하는 API**를 선택하고 **Office 365 Exchange Online**을 검색하세요. +1. **애플리케이션 권한**을 선택하세요. +1. **SMTP.SendAsApp**을 선택하고 변경 사항을 저장하세요. +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/7-Azure-AddPerms.png) +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/8-Azure-Office365ExchangeOnline.png) +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/9-Azure-SMTP-Send.png) +1. 방금 추가한 권한에 대해 관리자 동의를 부여하세요. +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/10-Azure-Grant-Admin-Constant.png) +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/11-Azure-ApiPermissions.png) +### 2. PowerShell에서 구성하기 + +이 부분에서는 Exchange Online에 연결하고, 서비스 주체를 생성하며, 사서함을 준비하고, 권한을 부여합니다. + +1. 로컬 관리자로 PowerShell을 엽니다. +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/12-Powershell-RunAsAdmin.png) +1. Exchange Online 모듈을 설치하고 테넌트 관리자 계정으로 연결하세요. + +```powershell +Install-Module -Name ExchangeOnlineManagement +Import-Module ExchangeOnlineManagement +Connect-ExchangeOnline +``` + +관리자 계정을 명시적으로 지정하려면 다음을 사용할 수도 있습니다: + +```powershell +Connect-ExchangeOnline -UserPrincipalName admin@contoso.com +``` + +1. Microsoft Entra **기업용 애플리케이션**에서 앱을 찾아 해당 `Object ID`를 기록해 두세요. Exchange Online 서비스 원칙을 생성할 때 필요합니다. + +{{% notice note %}} +여기서 `OBJECT_ID`는 **기업용 애플리케이션**에 있는 앱의 객체 ID여야 하며, **앱 등록** 개요 페이지에 표시된 객체 ID가 아닙니다. +{{% /notice %}} + +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/15-Powershell-Get-ObjectId.png) + +1. 이 명령을 실행하여 앱 등록에 대한 Exchange Online 서비스 원칙을 생성하세요. Microsoft는 이 단계를 Exchange Online에서 Microsoft Entra 애플리케이션의 서비스 원칙을 등록하는 과정이라고 설명합니다. + +```powershell +New-ServicePrincipal -AppId -ObjectId +``` + +이 명령어가 Exchange 연결은 성공했음에도 불구하고 실패하는 경우, 관리자 계정에 Exchange Online 서비스 원칙을 관리할 수 있는 권한이 있는지 확인하십시오. +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/16-Powershell-New-ServicePrincipal.png) + +1. Exchange가 서비스 원칙을 생성했는지 확인하고 다음 단계를 위해 해당 `Identity` 값을 기록해 두십시오. + +```powershell +Get-ServicePrincipal | Format-Table DisplayName,AppId,ObjectId,Identity +``` + +여기서 반환된 `Identity` 값을 다음 두 권한 명령에서 ``로 사용하십시오. + +1. 보낼 메일함이 아직 존재하지 않는 경우, 먼저 공유 메일함을 생성할 수 있습니다. 예를 들어: + +```powershell +New-Mailbox -Shared -Name "No Reply" -Alias no-reply -DisplayName "No Reply" -PrimarySmtpAddress no-reply@contoso.com +``` + +이미 메일을 보내는 사서함이 있는 경우 이 단계를 건너뛸 수 있습니다. +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/17-Powershell-New-Mailbox.png) + +1. 테넌트와 발송 사서함에 대해 `Authenticated SMTP`가 활성화되었는지 확인하십시오. + +```powershell +Get-TransportConfig | Format-List SmtpClientAuthenticationDisabled +Get-CASMailbox -Identity "no-reply@contoso.com" | Format-List SmtpClientAuthenticationDisabled +``` + + +활성화되지 않은 경우, 테스트 이메일이 이 오류와 함께 실패할 수 있습니다: + +```text +permanent error (535): 5.7.139 Authentication unsuccessful, SmtpClientAuthentication is disabled for the Tenant. Visit https://aka.ms/smtp_auth_disabled for more information. +``` + +사서함 수준 설정을 위해 필요할 경우 다음을 실행하십시오: + +```powershell +Set-CASMailbox -Identity "no-reply@contoso.com" -SmtpClientAuthenticationDisabled $false +``` + +세입자 수준 설정이 `True`를 반환하는 경우, 귀하의 조직 정책에 따라 실행 여부를 결정하십시오: + +```powershell +Set-TransportConfig -SmtpClientAuthenticationDisabled $false +``` + + +위의 두 설정이 모두 올바르게 보이지만 동일한 `535 5.7.139` 오류가 계속 발생하는 경우, 테넌트가 Microsoft Entra `Security defaults`를 사용하는지 확인하십시오. Microsoft Learn에 따르면 `Security defaults`가 활성화된 경우 Exchange Online에서 SMTP AUTH가 비활성화됩니다. + +명령어 세부 정보는 Microsoft Learn: [Enable or disable authenticated client SMTP submission (SMTP AUTH) in Exchange Online](https://learn.microsoft.com/en-us/Exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission)를 참조하십시오. + +1. RustDesk가 메일을 보내는 데 사용할 메일함에 Exchange 서비스 주체 `FullAccess`를 부여합니다. + +```powershell +Add-MailboxPermission -Identity "no-reply@contoso.com" -User -AccessRights FullAccess +``` + +RustDesk `Mail Account`에 입력하려는 사서함을 사용하세요. + +이 명령어가 다음과 같은 오류를 반환한다면: + +```text +Write-ErrorMessage : ||The operation couldn't be performed because object 'no-reply@xxx.com' couldn't be found on 'xxx.xxx.PROD.OUTLOOK.COM'. +``` + +`-Identity`에 전달된 값이 Exchange Online의 실제 사서함 객체로 해결되지 않았습니다. + +먼저 사서함이 실제로 Exchange Online에 존재하는지 확인하십시오: + +```powershell +Get-EXOMailbox -Identity "no-reply@xxx.com" | Format-List DisplayName,PrimarySmtpAddress,RecipientTypeDetails +``` + +사서함이 반환되지 않으면 먼저 사서함을 생성하거나 확인하십시오. `no-reply` 발신자 주소의 경우, 예를 들어 공유 사서함을 생성할 수 있습니다: + +```powershell +New-Mailbox -Shared -Name "No Reply" -Alias no-reply -DisplayName "No Reply" -PrimarySmtpAddress no-reply@xxx.com +``` + +이미 존재합니다 +서비스 +서버 +별명 + + + +사서함이 이미 존재하는 경우, `Add-MailboxPermission -Identity ...`에서 사용하는 값이 사서함의 실제 주소, 별명 또는 다른 해결 가능한 사서함 식별자인지 확인하십시오. +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/18-Powershell-Add-MailboxPermission.png) + +1. 동일한 서비스 원칙에 SendAs 권한을 부여하십시오. + +```powershell +Add-RecipientPermission -Identity "no-reply@contoso.com" -Trustee -AccessRights SendAs -Confirm:$false +``` + +이 단계는 Microsoft의 공식 앱 전용 SMTP 구성의 일부이기도 합니다. + +### 3. RustDesk에서 구성 + +이 시점에서 이미 다음을 보유하고 있어야 합니다: + +- `From`에서 사용할 발신자 주소 +- `Mail Account`에서 사용할 사서함 주소 +- `Directory (tenant) ID` +- `Application (client) ID` +- 클라이언트 시크릿 `Value` +- 이미 확인된 Exchange Online 서비스 원칙으로, `Mail Account`에 사용된 사서함에 `FullAccess`와 `SendAs`가 이미 설정되어 있습니다 + +RustDesk는 Exchange 서비스 주체 `Identity`를 요청하지 않지만, 이메일을 테스트하기 전에 위의 권한 단계가 이미 완료되어야 합니다. + +1. RustDesk [web console](../../console/)에서 **설정** -> **SMTP**로 이동하세요. +1. OAuth2를 활성화하고 제공자로 **Microsoft 365**를 선택하세요. +1. 다음 필드를 입력하세요: + + - `From` + - `Mail Account` + - `OAuth2 Tenant ID` + - `OAuth2 Client ID` + - `OAuth2 Client secret` + +1. **확인**을 클릭하여 구성 내용을 저장하고 테스트 이메일을 보내기 바랍니다. +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/20-RustDesk-SMTP-OAuth2-1.png) +![](/docs/en/self-host/rustdesk-server-pro/smtp/microsoft-365/images/21-RustDesk-SMTP-OAuth2-2.png) + +테스트 이메일이 여전히 실패하는 경우, PowerShell 섹션으로 돌아가서 Exchange Online 서비스 주체, `Authenticated SMTP` 및 `Mail Account`에 사용된 사서함의 사서함 권한을 다시 확인하십시오. + +## 참고 자료 + +- Microsoft Learn: [Authenticate an IMAP, POP or SMTP connection using OAuth](https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth). Exchange Online 앱 권한 및 서비스 주체 단계에 사용됩니다. +- Microsoft Learn: [Enable or disable authenticated client SMTP submission (SMTP AUTH) in Exchange Online](https://learn.microsoft.com/en-us/Exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission). `Authenticated SMTP` 확인 및 활성화에 사용됩니다. +- Microsoft Learn: [Create shared mailboxes in the Exchange admin center](https://learn.microsoft.com/en-us/exchange/collaboration/shared-mailboxes/create-shared-mailboxes). 공유 사서함을 생성하는 데 사용됩니다. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/strategy/_index.ko.md b/content/self-host/rustdesk-server-pro/strategy/_index.ko.md new file mode 100644 index 00000000..72cf52e3 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/strategy/_index.ko.md @@ -0,0 +1,90 @@ +--- +title: 전략(Strategy) +weight: 200 +description: "RustDesk 서버 프로에서 전략을 사용하여 클라이언트 보안 및 설정 정책을 장치, 사용자 및 장치 그룹 전체에 일괄 적용하십시오." +keywords: ["rustdesk strategy", "rustdesk policy management", "rustdesk bulk settings", "rustdesk device strategy", "rustdesk server pro strategy"] +--- + +전략을 사용하여 여러 RustDesk 장치에 대해 클라이언트 정책 및 보안 설정 변경 사항을 한 번에 배포하십시오. + +전략은 RustDesk 관리자가 클라이언트 설정 페이지의 보안 옵션을 일괄적으로 업데이트할 수 있는 도구입니다. 관리자는 서로 다른 전략을 생성하고 이를 다양한 장치에 적용할 수 있습니다. + +## RustDesk Server Pro에서 전략이란 무엇인가요? + +전략은 RustDesk Server Pro에서 클라이언트 설정에 대한 일괄 정책 레이어입니다. 모든 클라이언트를 수동으로 변경하지 않고도 많은 장치나 사용자 간에 보안 또는 동작 설정을 표준화하려는 경우에 사용하십시오. + +## 전략에 대한 간단한 답변 + +- 전략은 클라이언트 구성의 일괄 관리를 위한 것입니다. +- 한 장치는 동시에 하나의 유효한 전략만 적용받을 수 있습니다. +- 장치 전략이 가장 높은 우선순위를 가집니다. +- 사용자 전략은 장치 그룹 전략을 덮어씁니다. +- 전략이 비활성화되면, 해당 전략에 할당된 장치는 더 이상 해당 전략에 의해 관리되지 않습니다. + +## 어떤 전략 할당이 우선순위를 갖나요? + +| 전략 유형 | 우선순위 | +| --- | --- | +| 장치 전략 | 최고 | +| 사용자 전략 | 중간 | +| 장치 그룹 전략 | 가장 낮음 | + +## 전략 생성 + +`+` 버튼을 클릭하여 새 전략을 생성할 수 있으며, 전략 위에 마우스를 올리고 메뉴를 클릭하여 다양한 작업을 수행할 수 있습니다. + +팝업 메뉴에서 전략을 `Enable`, `Disable`, `Rename`, `Duplicate` 또는 `Delete`로 선택할 수 있습니다. 또한 `Edit Devices`를 클릭하여 해당 전략에 적용된 장치를 수정하거나 `Edit Users`를 클릭하여 해당 전략에 적용된 사용자를 수정할 수 있습니다. + +전략 메뉴의 오른쪽에는 전략의 우선순위를 고려해 실제로 전략에 적용된 디바이스 수가 표시됩니다. + +![](/docs/en/self-host/rustdesk-server-pro/strategy/images/strategy_menu.png) + +## 디바이스 전략, 사용자 전략 및 디바이스 그룹 전략 + +전략은 다음의 우선순위 순서에 따라 적용됩니다: +1. 디바이스 전략 (최고 우선순위) +2. 사용자 전략 +3. 디바이스 그룹 전략 (최저 우선순위) + +각 디바이스는 한 번에 하나의 전략만 관리할 수 있습니다. 우선순위 시스템은 다음과 같이 작동합니다: +- 디바이스 전략은 사용자 전략과 디바이스 그룹 전략 모두보다 우선합니다. +- 사용자 전략은 디바이스 그룹 전략보다 우선합니다. +- 디바이스 그룹 전략은 디바이스 그룹 내에서 디바이스 전략이나 사용자 전략이 지정되지 않은 모든 디바이스에 적용됩니다. + +## 디바이스 편집 + +`Edit Devices` 메뉴를 클릭하면 모든 디바이스가 표시되는 편집 대화상자가 열립니다. 체크박스의 선택 상태를 변경한 후 `Save` 버튼을 클릭하여 현재 페이지에서 이루어진 디바이스 변경 사항을 적용할 수 있습니다. 다른 페이지의 디바이스를 수정해야 하는 경우 해당 페이지로 이동해 주세요. 또한 오른쪽 상단의 드롭다운 메뉴를 사용해 디바이스를 필터링할 수도 있습니다. + +전략 열 형식: 디바이스 전략/사용자 전략/디바이스 그룹 전략, 또는 기본 전략인 경우 '-'입니다. + +다음은 "demo1" 메뉴에서 `Edit Devices`를 클릭하면 나타나는 대화상자의 예시입니다. 이 예시에서는 장치 "1981241962"가 "demo3" 전략에 적용되고, 장치 "1279471875"가 "demo2" 전략에 적용되며, 장치 "a123456"가 "demo1" 전략에 적용되고, 장치 "1227624460"가 기본 전략에 적용됩니다. + +![](/docs/en/self-host/rustdesk-server-pro/strategy/images/edit_devices.png) + +## 사용자 편집 + +`Edit Users` 메뉴를 클릭하면 모든 사용자를 표시하는 편집 대화상자가 열립니다. 체크박스의 선택 상태를 변경한 후 `Save` 버튼을 클릭하여 현재 페이지에서 이루어진 사용자 변경 사항을 적용할 수 있습니다. 다른 페이지의 사용자를 수정해야 하는 경우 해당 페이지로 이동해 주세요. 또한 오른쪽 상단의 드롭다운 메뉴를 사용해 사용자를 필터링할 수도 있습니다. + +다음은 "demo2" 메뉴에서 `Edit Users`를 클릭했을 때 나타나는 대화 상자의 예시입니다. 이 예시에서는 사용자 "admin"이 "기본" 전략에 적용되고, 사용자 "user1"이 "demo2" 전략에 적용되며, 사용자 "user2"가 "demo3" 전략에 적용됩니다. + +![](/docs/en/self-host/rustdesk-server-pro/strategy/images/edit_users.png) + +## 장치 그룹 편집 + +`Edit Device Group` 메뉴를 클릭하면 모든 장치 그룹이 표시되는 편집 대화 상자가 열립니다. 체크박스의 선택 상태를 변경한 다음, `Save` 버튼을 클릭하여 현재 페이지에서 수행한 장치 그룹 변경 사항을 적용할 수 있습니다. 다른 페이지의 장치 그룹을 수정해야 하는 경우 해당 페이지로 이동해 주세요. 또한 오른쪽 상단의 드롭다운 메뉴를 사용해 장치 그룹을 필터링할 수도 있습니다. + +다음은 "demo1" 메뉴에서 `Edit Device Group`를 클릭할 때 나타나는 대화 상자의 예시입니다. 이 예시에서는 장치 그룹 "device_group1"이 "demo1" 전략에 적용되고, 장치 그룹 "group2"가 "demo2" 전략에 적용되며, 장치 그룹 "group3"이 "기본" 전략에 적용됩니다. + +![](/docs/en/self-host/rustdesk-server-pro/strategy/images/edit_device_groups.png) + +## 전략 동기화 + +각 장치는 하나의 전략으로만 관리될 수 있으며, 해당 전략이 비활성화되면 장치는 어떤 전략으로도 관리되지 않습니다. 전략을 동기화할 때 RustDesk는 로컬 및 서버 전략의 타임스탬프를 기록하여 동기화가 필요한지 여부를 판단합니다. 즉, 전략 동기화가 완료된 후: + +* 사용자가 일부 옵션을 변경하면 클라이언트는 사용자의 옵션을 사용합니다. +* 관리자가 전략 내용을 변경하면 클라이언트의 옵션이 동기화됩니다. +* 관리자가 장치가 속한 전략을 변경하면 클라이언트의 옵션이 동기화됩니다. + +## 전략 편집 + +전략 하단에서 `Edit`를 클릭하고 수정한 후 `Submit`를 클릭하세요. 전략은 30초 이내에 장치들에 동기화됩니다. \ No newline at end of file