SSH, RDP, VNC 등 시중에 나와 있는 모든 원격 액세스 프로토콜을 사용해 보았고, 각각의 용도가 분명히 있습니다. 문제는 이러한 프로토콜과 플랫폼이 유용한 이유가 곧 가장 큰 단점이기도 하다는 점입니다. 집에서 원격 머신에 연결할 때 저는 전체 PC와 데스크톱에 액세스하게 되는데, 이는 외부 네트워크에서 접근이 가능하기 때문에 지속적인 유지 관리와 보안이 필요합니다.

제가 정말 필요했던 것은 어디서든 브라우저 안에서 원격으로 게시된 데스크톱과 앱을 실행할 수 있는 개인용 웹 포털이었습니다. 그래서 찾게 된 것이 제 서버에 직접 설치할 수 있는 브라우저 기반 데스크톱인 KASM Workspaces였습니다. 이를 통해 일회성 및 영구 데스크톱이나 개별 앱을 어디서든 무료로 실행할 수 있게 되었습니다.

관련 글

Microsoft Remote Desktop: Mac에서 Windows에 액세스하는 방법

Microsoft의 무료 Remote Desktop 앱을 사용하여 Mac에서 Windows PC로 원격 액세스하세요.

RDP와 VNC보다 더 나은 것이 필요했습니다

원격 액세스는 작동하지만 너무 투박합니다

RDP와 VNC는 여전히 매우 유용한 원격 액세스 도구이지만, 시대에 뒤떨어진 가정에 기반을 두고 있습니다. 원격 컴퓨터에 연결하면 그 컴퓨터가 현재 어떤 상태든 그 상태 그대로 작업해야 합니다. 데스크톱이 지저분하면 그대로 써야 하고, 원격 머신과의 연결 상태가 좋지 않으면 세션이 느려져 생산성이 떨어집니다. 예를 들어 Slack이나 Discord만 실행하고 싶어도, 기본 데스크톱의 스케일링 설정을 포함한 전체 환경을 그대로 물려받게 됩니다.

그렇다면 SSH와 X11을 통해 앱을 관리하는 것은 어떨까요? 네, 그런 복잡함은 피할 수 있지만 모바일에서는 사용 경험이 매우 좋지 않습니다. VPN도 도움이 될 수 있지만, 여전히 원격 데스크톱 자체에 묶여 있다는 점은 같습니다.

KASM은 Citrix나 Neverinstall과 유사한 원격 앱 게시 플랫폼이기 때문에 다릅니다. KASM을 사용하면 집에 있는 지저분한 PC에 원격으로 접속하는 대신, 깔끔한 웹 포털에 로그인하여 필요한 것만 실행할 수 있습니다. 때로는 전체 데스크톱이 될 수도 있고, 터미널이나 일회성 테스트 워크스페이스가 될 수도 있습니다. KASM은 원격 데스크톱 연결이라기보다 저만의 개인용 런처처럼 느껴졌습니다. 무엇보다 개인용으로 완전히 무료라는 점이 가장 좋습니다.

이 글도 확인해 보세요:  5가지 클라우드 배포 모델 유형 및 사용 방법

KASM 서버를 위해 사용한 것

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

저는 이미 소유하고 있는 도메인에 연결된 공개 하위 도메인 호스트네임을 가진 Ubuntu 24.04 LTS 최소 설치 VM을 사용했습니다. 설정이 실제 서비스처럼 느껴지길 원했기 때문에 IP 주소나 보기 흉한 자체 서명 인증서 경고 대신 Cloudflare에서 무료로 호스팅되는 정식 도메인을 사용했습니다. 덕분에 나중에 신뢰할 수 있는 Let’s Encrypt 인증서를 추가하기도 훨씬 쉬워졌습니다.

KASM을 위해 괴물 같은 서버가 필요한 것은 아니지만, 워크스페이스가 실행되는 공간인 만큼 RAM이 가장 중요한 요소일 것입니다.

요구 사항 최소 권장
CPU 2 코어/2 vCPU 4 코어/4 vCPU
RAM 8GB 32GB 이상
스토리지 OS + 50GB OS + 200GB 이상
네트워크 로컬 또는 공용 액세스 (CGNAT 제외) VPS
OS Ubuntu Server 24/Debian 12 Ubuntu Server 24/Debian 12
오픈 포트 443 (HTTPS) 22 (SSH), 80 (HTTP), 443 (HTTPS)

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

설정은 쉬운 부분이었습니다

설치는 훨씬 더 쉬웠습니다

저는 새로 설치한 최소 사양의 Ubuntu 서버에서 시작하여 기본적인 설정을 먼저 진행했습니다. 새 사용자를 생성하고 sudoers에 추가한 뒤, Linux에서 root SSH 로그인을 비활성화하는 등 SSH 보안을 위한 기본적인 단계를 밟았습니다. 그 후 서버를 업데이트하고 UFW 방화벽을 활성화하여 필요한 포트를 열었습니다.

sudo apt update && sudo apt upgrade -y``sudo apt install curl ufw -y``sudo ufw allow OpenSSH``sudo ufw allow 80/tcp``sudo ufw allow 443/tcp``sudo ufw enable 그 후 KASM의 단일 서버 설치 단계를 따랐습니다.

cd /tmp``curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.18.1.tar.gz``tar -xf kasm_release_1.18.1.tar.gz``sudo bash kasm_release/install.sh KASM 설치 프로그램은 간단하고 쉬우며, 인터페이스, 웹 포털, 워크스페이스 및 컨테이너 설정을 알아서 처리합니다.

여기서 유일한 주의점은 설치 프로그램이 [email protected][email protected] 자격 증명을 생성한다는 것입니다. 로그인할 때 필요하므로 즉시 복사해 두는 것이 좋습니다. 설치 스크립트가 완료되자마자 KASM 웹 인터페이스가 실행되었고, 브라우저에서 공용 호스트네임을 열기만 하면 액세스할 수 있었습니다.

이 글도 확인해 보세요:  우분투에서 설치된 패키지를 제거하는 5가지 방법

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

Let’s Encrypt로 공식화했습니다

보기 흉한 자체 서명 인증서를 제거하세요

자체 서명 인증서를 보고 제 플랫폼에 액세스할 때마다 브라우저 경고를 클릭해야 하는 것만큼 짜증 저는 일은 없습니다. 서버를 가리키는 하위 도메인이 이미 있었기 때문에, 다음 단계는 무료 Let’s Encrypt TLS 인증서로 깔끔하게 마무리하는 것이었습니다.

이를 위해서는 KASM을 중지하고 Certbot을 설치한 뒤 도메인에 대한 새 인증서를 요청해야 했습니다.

sudo /opt/kasm/1.18.1/bin/stop``sudo apt install certbot -y``sudo 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을 플레이할 수 있습니다.

브라우저 안에서 데스크톱을 실행하는 것이 처음에는 낯설었지만 곧 자연스러워졌습니다. 데스크톱이나 앱이 열리면 로그아웃하거나 삭제하도록 선택할 수 있습니다. 세션을 삭제하면 모든 설정과 파일이 제거되는데, 이는 테스트에는 편리하지만 상시 사용에는 적합하지 않습니다.

이를 해결하기 위해 영구 프로필(Persistent profiles)을 사용했습니다. 이는 KASM 내에서 기능을 활성화하고 Ubuntu 서버 내에 일반적으로 /mnt/kasm_profiles/와 같은 폴더 구조를 만드는 것을 의미합니다. 그런 다음 /mnt/kasm_profiles/{user_id} 경로를 사용하여 개별 워크스페이스에 해당 경로를 할당하기만 하면 됩니다.

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

이 글도 확인해 보세요:  Linux에서 루트란 무엇이며 어떻게 작동하나요?

KASM에서 프로필은 백업이 아닙니다. 중요한 파일을 잃어버리지 않도록 KASM 영구 프로필 경로를 정기적으로 백업하는 것을 잊지 마세요.

매일 사용하기 전 보안 강화 설정

원격 데스크톱을 다루듯 취급하세요

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

저는 새 관리자 계정을 만들고 기본 계정을 비활성화했습니다. 또한 관리자 및 사용자 계정 모두에 다중 인증(MFA)을 활성화했습니다. 서버 측에서는 Ubuntu와 KASM을 최신 상태로 유지하고 있으며, 워크스페이스 자체의 레지스트리도 업데이트하고 있습니다.

제가 빠르게 배운 또 다른 교훈은 워크스페이스를 사용할수록 용량이 상당히 커지며, 디스크 공간이 부족해질 위험이 있다는 것입니다. 예를 들어 Linux 터미널은 모든 사용자가 공유하면 2.1GB를 차지합니다. 데스크톱과 더 큰 애플리케이션은 쉽게 10~20GB 이상으로 커질 수 있습니다. 따라서 KASM을 사용해 볼 계획이라면 스토리지를 잘 관리하세요. 스토리지가 가득 차면 서버가 스스로를 실행할 수조차 없는 상황이 올 수 있습니다.

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

메인 PC를 대체할 수는 없지만, RDP를 끌 수 있게 되었습니다

저는 KASM 실험을 시작할 때 깔끔한 브라우저 기반 원격 데스크톱 장난감을 얻을 것이라고 생각했습니다. 하지만 결국 제가 얻은 것은 어디서나 거의 모든 기기에서 액세스할 수 있는 일상적인 개인용 클라우드였습니다. HTTPS 덕분에 전문적이고 세련된 느낌이 들었고, 워크스페이스를 통해 제 가정용 IP 주소를 사용하여 인터넷을 실행하고 액세스할 수 있었으며, 영구 프로필 덕분에 안심하고 계속 사용할 수 있는 도구가 되었습니다.

집에 있는 SSH 터미널만 필요한 경우라면 KASM은 확실히 과잉이며, 제 메인 PC나 VPN을 조만간 대체하지는 못할 것입니다. 하지만 격리된 브라우징을 원하고 홈랩 서버를 RDP 및 VNC 포트 스캔에 노출하지 않으려는 경우, KASM은 제가 시도해 본 셀프 호스팅 생산성 프로젝트 중 단연코 가장 유용합니다.

관련 글

By 박준영

업계에서 7년간 경력을 쌓은 숙련된 iOS 개발자인 박준영님은 원활하고 매끄러운 사용자 경험을 만드는 데 전념하고 있습니다. 애플(Apple) 생태계에 능숙한 준영님은 획기적인 솔루션을 통해 지속적으로 기술 혁신의 한계를 뛰어넘고 있습니다. 소프트웨어 엔지니어링에 대한 탄탄한 지식과 세심한 접근 방식은 독자에게 실용적이면서도 세련된 콘텐츠를 제공하는 데 기여합니다.