Apache Guacamole

한 줄 요약

Guacamole은 브라우저만으로 VNC, SSH, RDP 원격 접속을 가능하게 해주는 오픈소스 게이트웨이다.


왜 Guacamole인가?

내 사용 사례

  • 컴퓨터 포맷을 자주 하는데, 로컬에 원격 접속 설정해놓으면 다 날아감
  • 외부에서 내부 컴퓨터를 급하게 사용해야 할 때가 있음
  • 공용 PC에서도 주소만 알면 바로 접속 가능

기존 원격 접속의 문제

방식문제점
TeamViewer상업 용도 감지, 세션 제한
AnyDesk무료 제한, 외부 서버 의존
RDP 직접 연결포트 개방 보안 위험
SSH 직접 연결포트 개방 필요

Guacamole의 해결책

  • 브라우저만 있으면 어디서든 접속
  • 단일 포트(HTTPS)로 모든 프로토콜 터널링
  • 중앙 집중식 접속 관리

Guacamole의 장점

1. 모든 OS에서 접속 가능

브라우저가 있는 모든 기기에서 사용 가능:

  • Windows, Mac, Linux
  • iOS, Android
  • 태블릿, 심지어 스마트TV까지

2. 다양한 프로토콜 지원

프로토콜용도
VNCMac, Linux 데스크톱
RDPWindows 원격 데스크톱
SSH서버 터미널 접속
Telnet레거시 장비

3. SSH + SFTP 지원

SSH 접속 시 파일 전송(SFTP)도 함께 지원

SSH 다중 접속

4. 다중 연결

최신 버전(1.3+)에서는 한 화면에 여러 PC 동시 제어 가능


Docker Compose로 설치하기

가장 간단한 올인원 이미지 사용:

docker-compose.yml

services:
  guacamole:
    image: jwetzell/guacamole
    container_name: guacamole
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - ./config:/config

실행

# 시작
docker compose up -d

# 접속
# http://서버IP:8080/guacamole
# 기본 계정: guacadmin / guacadmin

⚠️ 보안 주의: 첫 로그인 후 반드시 비밀번호 변경!


VNC 연결 설정

1. 대상 PC에 VNC 서버 설치

추천 VNC 서버 (Windows):

프로그램특징
TightVNC가볍고 빠름, 추천 ⭐
RealVNC안정적
UltraVNC기능 많음

2. Guacamole에서 연결 추가

  1. 설정 → 연결 → 새 연결
  2. 프로토콜: VNC 선택
  3. 네트워크 설정:
    • 호스트: VNC 서버 IP
    • 포트: 5900 (기본값)
  4. 인증:
    • 비밀번호: VNC에서 설정한 비밀번호

RDP 연결 설정 (Windows)

1. Windows에서 원격 데스크톱 활성화

  1. 설정 → 시스템 → 원격 데스크톱
  2. 원격 데스크톱 활성화 켜기

2. Guacamole에서 연결 추가

  1. 설정 → 연결 → 새 연결
  2. 프로토콜: RDP 선택
  3. 네트워크 설정:
    • 호스트: Windows PC IP
    • 포트: 3389 (기본값)
  4. 인증:
    • 사용자명: Windows 계정
    • 비밀번호: Windows 비밀번호
  5. 디스플레이:
    • 색 깊이: True color (32-bit) 추천
    • 해상도: 원하는 크기 또는 자동

RDP 팁

  • 보안 모드: NLA 사용 시 “NLA” 선택
  • 드라이브 활성화: 파일 전송 필요 시 체크
  • 오디오: 원격 소리 필요 시 활성화

SSH 연결 설정

1. Guacamole에서 연결 추가

  1. 설정 → 연결 → 새 연결
  2. 프로토콜: SSH 선택
  3. 네트워크 설정:
    • 호스트: 서버 IP
    • 포트: 22 (기본값)
  4. 인증 (택일):
    • 비밀번호 방식: 사용자명 + 비밀번호
    • 키 방식: 개인 키 붙여넣기

2. SFTP 활성화 (파일 전송)

SSH 연결 설정에서:

  • SFTP 활성화 체크
  • SFTP 루트 디렉토리: /home/사용자명

접속 후 Ctrl+Shift+Alt로 사이드바 열어서 파일 전송 가능


고급 설정

HTTPS 적용 (권장)

외부 접속 시 반드시 HTTPS 사용 권장:

# Nginx 리버스 프록시 예시
server {
    listen 443 ssl;
    server_name guac.example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://localhost:8080/guacamole/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

2단계 인증 (TOTP)

  1. 설정 → 사용자 → 본인 계정
  2. TOTP 탭에서 활성화
  3. Google Authenticator 등으로 등록

단점 및 해결책

단점해결책
브라우저 단축키 충돌설정에서 키 매핑 변경
모바일 입력 불편외부 키보드 연결 추천
초기 설정 복잡Docker 올인원 이미지 사용

추천 사용 시나리오

시나리오추천도
홈서버 원격 관리⭐⭐⭐⭐⭐
외부에서 집 PC 접속⭐⭐⭐⭐⭐
회사에서 집 NAS 접속⭐⭐⭐⭐
게임용 원격 접속⭐⭐ (지연 있음)

마무리

Guacamole은 **“브라우저 하나로 모든 원격 접속”**을 가능하게 해주는 강력한 도구다.

  • VPN 없이 안전한 접속
  • 클라이언트 설치 불필요
  • 중앙 집중식 관리

원격 접속이 필요하다면, Guacamole 강력 추천한다.