원격 데스크톱 · 7 min read · Nov 28, 2025

AlmaLinux 9에서 Apache Guacamole을 통한 원격 데스크톱 게이트웨이 생성 방법

Apache Guacamole은 SSH, RDP 및 VNC와 같은 다양한 프로토콜을 사용하여 컴퓨터/서버에 원격으로 연결할 수 있는 무료 오픈 소스 원격 데스크톱 게이트웨이입니다. Apache Guacamole은 Apache Software Foundation에서 유지 관리되며 Apache License 2.0으로 라이센스가 부여됩니다.

Apache Guacamole은 클라이언트가 필요 없는 원격 데스크톱 게이트웨이입니다. 언제 어디서나 웹 브라우저만으로 Apache Guacamole에 접근할 수 있습니다. Windows(RDP), Linux(VNC 및 SSH)와 같은 다양한 프로토콜을 사용하는 여러 원격 운영 체제가 있는 경우 Apache Guacamole을 사용하는 것이 좋습니다.

이 가이드에서는 AlmaLinux 9 머신에서 원격 데스크톱 게이트웨이 역할을 하는 Apache Guacamole의 설치 과정을 안내합니다. MariaDB 데이터베이스 서버와 함께 Apache Guacamole을 설치하고, Nginx를 리버스 프록시로 설정한 다음, Letsencrypt의 SSL로 설치를 보호합니다.

전제 조건

시작하기 전에 다음 사항을 확인하십시오:

  • AlmaLinux 9 서버 - 이 데모는 호스트 이름이 guacamole-alma9인 AlmaLinux 머신을 사용합니다.
  • sudo를 실행할 수 있는 권한이 있는 비루트 사용자.
  • 서버 IP 주소를 가리키는 도메인 이름.

리포지토리 설정

가장 먼저 해야 할 일은 AlmaLinux 서버에 추가 리포지토리를 설정하는 것입니다. EPEL 리포지토리를 추가하고, RHEL 8의 PowerTools를 대체하는 CRB(코드 준비 빌더) 리포지토리를 활성화한 다음 RPMFusion 리포지토리를 추가해야 합니다.

아래의 dnf 명령을 실행하여 시스템에 기본 종속성과 EPEL 리포지토리를 설치합니다. 설치를 확인하려면 y를 입력한 후 ENTER를 누릅니다.

sudo dnf install wget nano epel-release dnf-utils

install basic dependencies

이제 다음 명령을 실행하여 AlmaLinux CRB(코드 준비 빌더) 리포지토리를 활성화합니다. RHEL 8에서는 이 리포지토리를 PowerTools라고 하며, RHEL 9부터는 이름이 CRB로 변경되었습니다.

sudo dnf config-manager --set-enabled crb

다음으로, 다음 명령을 실행하여 AlmaLinux 시스템에 RPMFusion 리포지토리를 추가합니다. 이 리포지토리는 Apache Guacamole에 필요한 ffmpeg-devel 패키지를 제공합니다.

sudo dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm \  
https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm

설치를 확인하려면 y를 입력하고 ENTER를 눌러 진행합니다.

enable CRB repository and install RPMFusion

종속성 설치

리포지토리가 시스템에 추가되었으므로 이제 Apache Guacamole에 대한 패키지 종속성을 설치할 수 있습니다. 다음 패키지를 설치합니다:

  • guacd를 컴파일하고 설치하기 위한 기본 종속성.
  • Apache Guacamole 웹 애플리케이션을 실행하기 위한 Java 및 Apache Tomcat.
  • Apache Guacamole의 사용자 인증에 사용될 MariaDB 데이터베이스 서버.
  • Apache Guacamole 웹 애플리케이션을 위한 리버스 프록시로서의 Nginx 웹 서버.
  • Apache Guacamole에 대한 접근을 보호하기 위한 Certbot.

guacd 컴파일을 위한 종속성 설치

아래의 dnf 명령을 실행하여 guacd 컴파일에 사용될 패키지 종속성을 설치합니다. 설치를 확인하려면 y를 입력하고 ENTER를 누릅니다.

sudo dnf install cairo-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool libuuid-devel uuid-devel make cmake ffmpeg-devel freerdp-devel pango-devel libssh2-devel libtelnet-devel libvncserver-devel libwebsockets-devel pulseaudio-libs-devel openssl-devel compat-openssl11 libvorbis-devel libwebp-devel libgcrypt-devel

installing dependencies

또한, RPMFusion 및 EPEL 리포지토리의 GPG 키를 추가하려면 y를 입력합니다.

accept gpg key

Java 및 Apache Tomcat 설치

이제 아래 명령을 실행하여 AlmaLinux 서버에 Java 11 및 Apache Tomcat 9를 설치합니다. 두 패키지 버전은 Apache Guacamole에서 지원되므로 AlmaLinux 앱 스트림 리포지토리에서 두 패키지를 모두 설치할 수 있습니다.

sudo dnf install java-11-openjdk-devel tomcat

프롬프트가 표시되면 y를 입력한 후 ENTER를 누릅니다.

Java 및 Apache Tomcat이 설치된 후, 아래의 java 명령을 실행하여 Java 버전을 확인합니다. 시스템에 Java OpenJDK 11이 설치되어 있어야 합니다.

java --version

이제 다음 systemctl 명령을 실행하여 tomcat 서비스를 시작하고 활성화합니다.

sudo systemctl start tomcat  
sudo systemctl enable tomcat

그런 다음 tomcat 서비스가 실행 중인지 확인합니다.

sudo systemctl status tomcat

tomcat 서버가 실행 중이면 출력은 active (running)이어야 합니다.

verify tomcat status

MariaDB 서버 설치

Apache Guacamole은 데이터베이스 인증, LDAP 인증, Radius, SAML 및 OpenID를 포함한 여러 인증 방법을 지원합니다. 이 데모에서는 Apache Guacamole의 MariaDB 서버를 통해 데이터베이스 인증을 사용할 것입니다.

아래의 dnf 명령을 입력하여 MariaDB 서버를 설치합니다. 프롬프트가 표시되면 y를 입력하여 확인하고 ENTER를 누릅니다.

sudo dnf install mariadb-server

install mariadb

다음으로, 아래 명령을 실행하여 mariadb 서비스를 시작하고 활성화합니다.

sudo systemctl start mariadb  
sudo systemctl enable mariadb

그런 다음 mariadb 서비스가 실행 중인지 확인합니다.

sudo systemctl status mariadb

mariadb 상태가 실행 중이면 출력은 active (running)이어야 합니다.

verify mariadb

Nginx 및 Certbot 설치

이제 Apache Guacamole 클라이언트 애플리케이션의 리버스 프록시로 사용될 Nginx와 SSL 인증서를 생성하고 Apache Guacamole을 보호하기 위한 Certbot을 설치합니다.

아래의 dnf 명령을 실행하여 시스템에 Nginx 및 Certbot을 설치합니다.

sudo dnf install nginx certbot python3-certbot-nginx

설치를 확인하려면 y를 입력하고 ENTER를 누릅니다.

install nginx certbot

설치가 완료되면 아래의 systemctl 명령을 실행하여 Nginx 서비스를 시작하고 활성화합니다.

sudo systemctl start nginx  
sudo systemctl enable nginx

그런 다음 Nginx 서비스가 실행 중인지 확인합니다.

sudo systemctl status nginx

출력 active (running)은 Nginx가 실행 중임을 나타냅니다.

start enable verify nginx

Firewalld 구성

패키지 종속성이 설치되었으므로 다음 단계는 firewalld를 설정하고 HTTP 및 HTTPS 프로토콜을 열어주는 것입니다.

다음 명령을 실행하여 AlmaLinux 서버에서 HTTP 및 HTTPS 프로토콜을 엽니다. 그런 다음 firewalld를 다시 로드하여 변경 사항을 적용합니다.

sudo firewall-cmd --add-service={http,https} --permanent  
sudo firewall-cmd --reload

이제 아래의 firewall-cmd 명령을 실행하여 firewalld에서 활성화된 규칙 목록을 확인합니다.

sudo firewall-cmd --list-all

프로토콜 섹션에서 HTTP 및 HTTPS 프로토콜이 모두 활성화되어 있어야 합니다.

MariaDB 데이터베이스 설정

다음 섹션에서는 mariadb-secure-installation 유틸리티를 통해 MariaDB 서버 설치를 보호한 다음, Apache Guacamole을 위한 새로운 MariaDB 데이터베이스와 사용자를 생성합니다.

먼저, mariadb-secure-installation 유틸리티를 통해 MariaDB 서버를 보호합니다. 이를 실행하여 MariaDB 서버 설치를 보호합니다.

sudo mariadb-secure-installation

과정 중에 구성 적용을 위해 y를 입력하거나 n을 입력합니다. 아래는 설정할 MariaDB 구성입니다:

  • MariaDB 루트 인증을 unix_socket으로 전환하시겠습니까? n을 입력합니다.
  • MariaDB 루트 비밀번호를 설정하시겠습니까? y를 입력한 후 새 비밀번호를 입력하고 반복합니다.
  • 루트 사용자의 원격 로그인을 비활성화하시겠습니까? y를 입력합니다.
  • 기본 데이터베이스 테스트를 제거하시겠습니까? y를 다시 입력합니다.
  • 기본 익명 사용자를 제거하시겠습니까? y를 입력하여 확인합니다.
  • 변경 사항을 적용하기 위해 테이블 권한을 다시 로드하시겠습니까? y를 입력합니다.

다음으로, 아래의 mariadb 클라이언트 명령을 사용하여 루트 사용자로 MariaDB 서버에 로그인합니다. 비밀번호 프롬프트가 표시되면 MariaDB 루트 비밀번호를 입력하거나 ENTER를 누릅니다.

sudo mariadb -u root -p

로그인 후, Apache Guacamole을 위한 새로운 데이터베이스와 사용자를 생성하기 위해 다음 쿼리를 실행합니다. 이 데모에서는 새로운 데이터베이스 guacamoledb, 사용자 guacamole, 비밀번호 GuacamolePassword를 생성합니다.

CREATE DATABASE guacamoledb;  
CREATE USER 'guacamole'@'localhost' IDENTIFIED BY 'GuacamolePassword';  
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamoledb.* TO 'guacamole'@'localhost';  
FLUSH PRIVILEGES;

create database and user

다음으로, 아래 쿼리를 실행하여 사용자 guacamole의 권한을 확인합니다.

SHOW GRANTS FOR 'guacamole'@'localhost';  
quit

사용자 guacamole이 데이터베이스 guacamoledb에 대해 SELECT, INSERT, UPDATE, 및 DELETE를 수행할 수 있는지 확인합니다.

show user privileges

Apache Guacamole 서버 설치

Apache Guacamole은 두 가지 구성 요소로 구성됩니다:

  • guacd: RDP, SSH, VNC 등과 연결할 수 있는 임의의 원격 데스크톱 프로토콜.
  • Guacamole 웹 애플리케이션: Apache Tomcat 내에서 실행될 수 있는 Apache Guacamole의 프론트 엔드인 Java 서블릿 컨테이너.

다음 단계를 완료하여 guacd와 Guacamole Java 서블릿 애플리케이션을 모두 설치합니다.

guacd 컴파일 및 설치

작업 디렉토리를 /usr/src로 이동하고 wget을 사용하여 Apache Guacamole 서버 소스 코드를 다운로드합니다.

cd /usr/src  
wget https://dlcdn.apache.org/guacamole/1.5.2/source/guacamole-server-1.5.2.tar.gz

다운로드가 완료되면 guacamole-server-1.5.2.tar.gz 파일을 추출하고 새로운 디렉토리 guacamole-server-1.5.2가 생성됩니다. cd를 통해 해당 디렉토리로 이동합니다.

tar -xf guacamole-server-1.5.2.tar.gz  
cd guacamole-server-*/

이제 설치 구성을 위해 다음 명령을 실행합니다. 이 데모에서는 추가 매개변수 –with-systemd-dir=를 사용하여 guacd 서비스 파일을 자동으로 생성합니다.

./configure --with-systemd-dir=/etc/systemd/system/

configuring installation

구성 프로세스가 완료되면 라이브러리 상태, 프로토콜 지원 및 서비스/도구의 상태가 모두 yes인지 확인합니다.

modules configuration

다음으로, 아래 명령을 실행하여 Apache Guacamole 서버 guacd를 컴파일하고 설치합니다.

sudo make && sudo make install

compile and install guacd

설치가 완료되면 아래 명령을 실행하여 시스템 라이브러리의 데이터베이스 캐시를 다시 로드합니다.

sudo ldconfig

그런 다음 새로운 구성 디렉토리 /etc/guacamole를 생성하고 nano 편집기를 사용하여 guacd 구성 /etc/guacamole/guacd.conf를 생성합니다.

sudo mkdir -p /etc/guacamole/  
sudo nano /etc/guacamole/guacd.conf

다음 구성을 삽입하여 localhost에서 포트 4822로 guacd 서비스를 실행합니다.

[server]  
bind_host = 127.0.0.1  
bind_port = 4822

완료되면 파일을 저장하고 종료합니다.

다음으로, 아래의 systemctl 명령을 실행하여 systemd 관리자를 다시 로드합니다.

sudo systemctl daemon-reload

그런 다음 아래 명령을 사용하여 Apache Guacamole guacd 서비스를 시작하고 활성화합니다.

sudo systemctl start guacd  
sudo systemctl enable guacd

start enable guacd

마지막으로, 아래 명령을 실행하여 guacd 서비스를 확인하고 서비스가 실행 중인지 확인합니다.

sudo systemctl status guacd

성공적으로 설치되면 guacd 서비스의 상태가 active (running)으로 표시됩니다.

verify guacd service

또한, 시스템의 포트 4822에서 guacd 서비스가 실행 중인지 확인할 수 있습니다.

ss -tulpn | grep 4822

출력은 localhost에서 포트 4822로 실행 중인 guacd 서비스를 표시해야 합니다.

Apache Guacamole 웹 애플리케이션 설치

guacd가 설치되었으므로 이제 Java 서블릿 애플리케이션인 Apache Guacamole 웹 애플리케이션을 설치합니다.

Apache Guacamole 웹 애플리케이션은 소스에서 컴파일하거나 .war 패키지를 통해 설치할 수 있습니다. 이 데모에서는 .war 파일을 통해 Apache Guacamole 웹 애플리케이션을 설치합니다.

/usr/src 디렉토리로 이동하고 wget 명령을 사용하여 Apache Guacamole 웹 애플리케이션을 다운로드합니다.

cd /usr/src  
wget https://dlcdn.apache.org/guacamole/1.5.2/binary/guacamole-1.5.2.war

다운로드가 완료되면 아래 명령을 실행하여 다운로드한 파일 guacamole-1.5.2.war를 Apache Tomcat 웹앱 디렉토리 /var/lib/tomcat/webapps로 복사합니다. 이렇게 하면 URL 경로 /guacamole를 통해 Apache Guacamole 웹 애플리케이션에 접근할 수 있습니다.

sudo cp guacamole-1.5.2.war /var/lib/tomcat/webapps/guacamole.war

이제 아래 명령을 사용하여 tomcat 서비스를 재시작하여 변경 사항을 적용합니다.

sudo systemctl restart tomcat

MariaDB 인증으로 Apache Guacamole 구성

먼저, 아래 명령을 실행하여 /etc/guacamole/ 디렉토리 내에 추가 디렉토리 extensions 및 lib를 생성합니다. 그런 다음 Apache Tomcat 구성 /etc/sysconfig/tomcat에 환경 변수 GUACAMOLE_HOME을 생성합니다.

sudo mkdir -p /etc/guacamole/{extensions,lib}  
echo 
Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.