웹사이트 검색

저는 집에 개인 클라우드 작업 공간을 만들었는데, 생각보다 더 쉬웠어요


SSH, RDP, 그리고 VNC, 저는 존재하는 모든 원격 접속 프로토콜을 사용해봤고, 이들 모두 나름의 역할이 있습니다. 문제는, 이러한 프로토콜과 플랫폼이 유용한 이유가 동시에 가장 큰 문제이기도 하다는 점입니다. 집에서 원격 컴퓨터에 접속할 때, 저는 외부 네트워크에서 접근할 수 있기 때문에 지속적인 유지 관리와 보안이 필요한 전체 PC와 데스크탑에 접근하는 것입니다.

내가 정말로 필요했던 것은 어디서나 브라우저 안에서 원격으로 배포된 데스크톱과 앱을 실행할 수 있는 개인 웹 포털이었습니다. 그것이 저를 KASM 워크스페이스로 이끌었는데, 이는 제가 직접 서버에 설치할 수 있는 브라우저 기반 데스크톱이었습니다. 이를 통해 어디서나 무료로 일회용 및 지속형 데스크톱이나 개별 앱을 실행할 수 있었습니다.

나는 RDP와 VNC보다 나은 것이 필요했다

원격 접속은 작동하지만 너무 불편하다






RDP와 VNC는 여전히 매우 유용한 원격 접속 도구이지만, 오래된 가정에 기반하고 있습니다. 원격 컴퓨터에 연결한 후에는 해당 컴퓨터가 어떤 상태에 있든 그 상태에서 작업해야 합니다. 데스크톱이 어지럽혀져 있으면 그대로 사용해야 하고, 원격 컴퓨터와의 연결이 불안정하면 세션이 지연되고 비생산적이 됩니다. 예를 들어 Slack이나 Discord를 실행하고 싶다면, 원래 데스크톱이 실행 중인 스케일링을 포함한 전체 환경을 그대로 이어받게 됩니다.

하지만 SSH와 X11을 통해 앱을 관리하는 것은 어떻게 할까요? 물론 그것도 복잡함을 피할 수 있지만, 모바일에서는 끔찍한 경험이기도 합니다. VPN이 도움이 될 수는 있지만, 여전히 원격 데스크톱 자체에 묶이게 됩니다.

KASM은 Citrix나 Neverinstall과 비슷한 원격 앱 게시 플랫폼이기 때문에 다릅니다. KASM을 사용하면 집에 있는 지저분한 컴퓨터에 원격 접속하는 대신, 깔끔한 웹 포털에 로그인하여 필요한 것을 실행할 수 있습니다. 때로는 전체 데스크톱, 터미널, 혹은 일회용 테스트 작업 공간을 사용하기도 했습니다. KASM은 원격 데스크톱 연결보다는 제 개인용 런처처럼 느껴졌습니다. 무엇보다 개인 용도로는 완전히 무료입니다.

내가 KASM 서버에 사용한 것

슈퍼컴퓨터일 필요는 없습니다

저는 이미 소유하고 있는 도메인에 연결된 공개 서브도메인 호스트명을 가진 Ubuntu 24.04 LTS 최소 설치 VM을 사용했습니다. 제 설정이 실제 서비스처럼 느껴지길 원해서, IP 주소와 보기 흉한 자체 서명 인증서 경고 대신에 Cloudflare에서 무료로 호스팅되는 적절한 도메인을 사용했습니다. 이는 또한 나중에 신뢰할 수 있는 Let’s Encrypt 인증서를 추가하는 것을 훨씬 쉽게 만들었습니다.

KASM에는 엄청난 서버가 필요하지 않지만, 워크스페이스가 실행될 곳이기 때문에 설정을 선택할 때 RAM이 아마 가장 중요한 요소일 것입니다.

요구 사항

최소

추천

중앙 처리 장치

2코어/2가상CPU

4코어/4vCPU

램

8GB

32GB+

저장

운영체제 + 50GB

OS + 200GB+

네트워크

로컬 또는 공용 접근(비 CGNAT)

VPS

운영 체제

우분투 서버 24/데비안 12

우분투 서버 24/데비안 12

열린 포트

443 (HTTPS)

22 (SSH), 80 (HTTP), 그리고 443 (HTTPS)

제 설정에서는 SSH를 위해 22번 포트, Let’s Encrypt를 위해 80번 포트, 그리고 KASM 웹 프런트엔드 자체를 위해 443번 포트를 열었습니다.

설정하는 것은 쉬운 부분이었다

설치가 훨씬 더 쉬워졌습니다

저는 새롭고 최소한의 Ubuntu 서버로 시작하여 먼저 일반적인 설정을 했습니다. 새로운 사용자를 생성하고, 해당 사용자를 sudoers에 추가하고, 루트 SSH 로그인 비활성화와 같은 Linux에서 SSH를 보호하기 위한 기본적인 조치를 취했습니다. 그런 다음 서버를 업데이트하고 UFW 방화벽을 활성화하여 필요한 포트를 열었습니다:

sudo apt update && sudo apt upgrade -ysudo apt install curl ufw -ysudo ufw allow OpenSSHsudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw enable 그 후, 저는 KASM의 단일 서버 설치 단계를 따라갔습니다:

cd /tmpcurl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.18.1.tar.gztar -xf kasm_release_1.18.1.tar.gzsudo bash kasm_release/install.sh KASM 설치 프로그램은 간단하고 사용하기 쉬우며, 인터페이스, 웹 포털, 작업 공간 및 컨테이너 설정을 자동으로 처리합니다.

여기서 유일한 주의사항은 설치 프로그램이 admin@kasm.local 및 user@kasm.local 자격 증명을 생성한다는 것입니다. 로그인할 때 필요하므로 이를 즉시 복사해 두는 것이 가장 좋습니다. 설치 스크립트가 완료되자마자 KASM 웹 인터페이스가 작동하기 시작했으며, 접근하려면 단순히 브라우저에서 공개 호스트 이름을 여는 것만 하면 되었습니다.

첫 로그인은 바로 성공했지만, 자체 서명된 인증서 경고 때문에 전체적으로 미완성된 느낌이 들었다.

저는 Let’s Encrypt로 공식화를 완료했습니다

못생긴 자체 서명 인증서를 제거하세요

내 플랫폼에 접근할 때마다 자체 서명된 인증서를 보고 브라우저 경고를 클릭해야 하는 것보다 더 짜증 나는 일은 없다. 이미 서버를 가리키는 하위 도메인이 있었기 때문에, 다음으로 당연한 단계는 무료 Let’s Encrypt TLS 인증서를 사용하여 모든 것을 깔끔하고 정리된 상태로 만드는 것이었다.

이는 KASM을 중지하고, Certbot을 설치하며, 도메인에 대한 새 인증서를 요청하는 것을 의미했습니다:

sudo /opt/kasm/1.18.1/bin/stopsudo apt install certbot -ysudo certbot certonly -standalone -d kasm.ggcontentlabs.com 그 후에, 저는 단지 KASM의 기본 인증서 파일을 새 Let’s Encrypt 인증서로 교체하고 KASM을 재시작했습니다:

sudo /opt/kasm/1.18.1/bin/start 페이지를 잠시 새로 고친 후, 보기 흉한 브라우저 경고가 사라졌습니다. 이제 제 KASM 작업 공간은 조금 덜 '실험실 테스트' 같고 더 '프로덕션 준비된' 느낌이 듭니다.

워크스페이스와 영구 프로필 덕분에 그것을 유용한 것으로 만들었다

일회용 데스크톱은 재미있지만, 내 설정을 되찾고 싶었다

일단 로그인하고 새 관리자 계정을 만든 후, 몇몇 워크스페이스를 게시하기 시작했습니다. 먼저 전체 Debian Trixie 데스크탑을 추가하고, 그 다음에는 Chrome 브라우저, 터미널, 마지막으로 제가 외출 중이거나 휴일, 또는 직장에서 항상 사용하는 몇 가지 도구들을 추가했습니다. 혹시 궁금해하시는 분이 있을까 봐 말씀드리면, 네, KASM에서 Doom을 플레이할 수 있습니다.

브라우저 안에서 데스크톱을 실행하는 것은 처음에는 이상하게 느껴졌지만 곧 자연스러워졌습니다. 데스크톱이나 앱이 열리면 로그아웃을 하거나 이를 삭제할 수 있습니다. 세션을 삭제하면 모든 설정과 파일이 제거되며, 이는 테스트에는 편리하지만 장기적으로 사용하는 데는 이상적이지 않습니다.

지속적인 프로필은 제가 이 문제를 해결하기 위해 사용한 것입니다. 이는 KASM 안에서 기능을 활성화하고, 일반적으로 /mnt/kasm_profiles/ 위치에 Ubuntu 서버 내에 폴더 구조를 만드는 것을 의미합니다. 그런 다음에는 단순히 해당 경로를 개별 작업 공간에 /mnt/kasm_profiles/{user_id} 경로를 사용하여 지정하는 문제입니다.

지속적인 프로필 경로가 워크스페이스에 추가되면 모든 앱과 데스크톱이 해당 경로에 접근할 수 있습니다. 데스크톱 내에서 생성된 파일, 폴더 또는 설정은 워크스페이스나 앱이 삭제되더라도 유지됩니다. 여전히 데스크톱이나 앱을 일회용 워크스페이스로 실행할 수 있습니다. 처음 실행 시 지속 프로필 옵션의 선택을 해제하기만 하면 됩니다.

프로필은 KASM에서 백업이 아닙니다. 중요한 파일을 절대 잃지 않도록 KASM 지속 프로필 경로를 정기적으로 백업하는 것을 기억하세요.

일상적으로 사용하기 전에 조정할 몇 가지 설정

원격 데스크톱을 다루듯이 다루세요

완전히 작동하는 데스크톱과 원격으로 실행할 수 있는 앱을 갖추는 것은 편리하지만, 여전히 자신의 서버에 원격으로 접속하고 있다는 점을 기억하는 것이 중요합니다. 인터넷에 노출된 모든 것은 신중한 보안 습관을 필요로 합니다.

새 관리자 계정을 만들고 기본 계정을 비활성화했습니다. 또한 관리자 및 사용자 계정 모두에 대해 다단계 인증을 활성화했습니다. 서버 측에서는 Ubuntu와 KASM을 업데이트 상태로 유지하며, 워크스페이스 자체의 레지스트리도 포함합니다.

제가 빨리 배우게 된 또 다른 교훈은 작업 공간은 사용함에 따라 상당히 커진다는 것이며, 디스크 공간이 부족해질 실제 위험이 있다는 것입니다. 예를 들어, Linux 터미널은 모든 사용자에게 공유되면 2.1GB를 차지합니다. 데스크톱과 더 큰 애플리케이션은 쉽게 10~20GB 이상으로 커질 수 있습니다. 따라서 KASM을 사용해볼 계획이라면 저장 공간을 주의하세요. 저장 공간이 가득 차면 서버 자체조차 실행할 수 없는 상태가 될 수 있습니다.

RDP와 VNC는 잊어버리세요, KASM이 훨씬 더 유용합니다

내 메인 PC를 대체하지는 않겠지만, RDP를 끌 수 있다는 의미입니다

저는 KASM 실험을 시작하면서 깔끔한 브라우저 기반 원격 데스크톱 장난감을 얻게 될 것이라고 생각했습니다. 하지만 실제로는 거의 모든 장치에서 어디서든 접근할 수 있는 일상적인 개인 클라우드로 발전했습니다. HTTPS 덕분에 전문적이고 세련된 느낌이 들었고, 워크스페이스 덕분에 제 거주지 IP 주소를 사용하여 인터넷을 실행하고 접근할 수 있었으며, 지속적인 프로필 덕분에 계속해서 자신 있게 사용할 수 있는 무언가가 되었습니다.

만약 단순히 집에서 SSH 터미널만 필요하다면, KASM은 확실히 과도한 선택이며, 당분간 내 메인 PC나 VPN을 대체하지는 못할 것입니다. 하지만 격리된 브라우징과 홈랩 서버를 RDP 및 VNC 포트 스캔에 노출되지 않게 하는 용도로는, KASM은 내가 사용해본 자가 호스팅 생산성 프로젝트 중 단연 가장 유용한 프로젝트입니다.

관련기사