웹사이트 검색

Ubuntu에서 원격 Linux/Windows 액세스를 위해 Guacamole 설치


시스템 관리자로서 귀하는 (현재 또는 미래에) WindowsLinux가 공존하는 환경에서 작업하게 될 수도 있습니다.

일부 대기업이 일부 프로덕션 서비스를 Windows 상자에서 실행하고 다른 일부는 Linux 서버에서 실행하는 것을 선호(또는 그래야만)한다는 것은 비밀이 아닙니다.

만약 그렇다면, 이 가이드를 두 팔 벌려 환영할 것입니다(그렇지 않다면 최소한 북마크에 추가하세요).

이 기사에서는 중앙 서버에만 설치하면 되는 Tomcat 기반의 원격 데스크톱 게이트웨이인 guacamole를 소개합니다.

과카몰리는 동일한 웹 브라우저 창 내에서 한 컴퓨터에서 다른 컴퓨터로 빠르게 전환할 수 있는 웹 기반 제어판을 제공합니다.

테스트 환경

이 기사에서는 다음 기계를 사용했습니다. Ubuntu 상자에 과카몰리를 설치하고 이를 사용하여 원격 데스크톱 프로토콜을 통해 Windows 10 상자에 액세스합니다( RDP) 및 SSH 네트워크 프로토콜을 사용하는 RHEL 상자:

Guacamole server: Ubuntu 20.04 - IP 192.168.0.100
Remote SSH box: RHEL 8 – IP 192.168.0.18
Remote desktop box: Windows 10 – IP 192.168.0.19

이제 시작하겠습니다.

Ubuntu에 Guacamole 서버 설치

1. 과카몰리를 설치하기 전에 먼저 종속성을 처리해야 합니다.

sudo apt update
sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev freerdp2-dev libwebsockets-dev \
libssl-dev libvorbis-dev libwebp-dev tomcat9 tomcat9-admin tomcat9-user

2. 타르볼을 다운로드하고 추출합니다. 2021년 2월 초 현재 과카몰리의 최신 버전은 1.3.0입니다. Guacamole 다운로드 페이지를 참조하여 특정 시점의 최신 버전을 확인할 수 있습니다.

wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz 
tar zxf guacamole-server-1.3.0.tar.gz  

3. 소프트웨어를 컴파일합니다.

cd guacamole-server-1.3.0/
./configure

예상한 대로 configure는 시스템에 필요한 종속성이 있는지와 지원되는 통신 프로토콜이 있는지 확인합니다(강조 표시된 사각형에서 볼 수 있듯이 원격 데스크톱 프로토콜 ). (RDP) 및 SSH는 이전에 설치된 종속 항목에서 지원됩니다.

모든 것이 예상대로 진행되면 완료 시 다음이 표시됩니다(그렇지 않으면 필요한 모든 종속성을 설치했는지 확인하세요).

위 이미지의 마지막 줄에서 알 수 있듯이 makemake install을 실행하여 프로그램을 컴파일합니다.

make 
sudo make install

4. 설치된 라이브러리의 캐시를 업데이트합니다.

sudo ldconfig 

Enter를 누르세요.

Ubuntu에 Guacamole 클라이언트 설치

위 단계를 완료하면 과카몰리 서버가 설치됩니다. 다음 지침은 이제 guacd(Javascript를 RDP 또는 SSH와 같은 통신 프로토콜과 통합하는 프록시 데몬) 및 guacamole.war(클라이언트)을 설정하는 데 도움이 됩니다. 여러분에게 제공될 최종 HTML5 애플리케이션을 구성하는 구성 요소입니다.

두 구성요소(과카몰리 서버클라이언트)를 동일한 시스템에 설치해야 합니다. 즉, 원하는 시스템에 소위 클라이언트를 설치할 필요가 없습니다. )에 연결합니다.

클라이언트를 다운로드하려면 다음 단계를 따르세요.

5. 웹 애플리케이션 아카이브를 다운로드하고 이름을 guacamole.war로 변경합니다.

참고: 배포판에 따라 Tomcat 라이브러리 디렉터리는 /var/lib/tomcat에 있을 수 있습니다.

cd /var/lib/tomcat9/
sudo wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
sudo mv guacamole-1.3.0.war webapps/guacamole.war

6. 구성 파일(/etc/guacamole/guacamole.properties)을 만듭니다. 이 파일에는 Guacamole이 guacd에 연결하는 지침이 포함되어 있습니다.

sudo mkdir /etc/guacamole
sudo mkdir /usr/share/tomcat9/.guacamole
sudo nano /etc/guacamole/guacamole.properties

/etc/guacamole/guacamole.properties에 다음 내용을 삽입합니다. 다음 단계에서 생성할 파일(/etc/guacamole/user-mapping.xml)을 참조하고 있습니다.

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml
auth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping:    /etc/guacamole/user-mapping.xml

그리고 Tomcat이 파일을 읽을 수 있도록 심볼릭 링크를 만듭니다.

sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/

7. Guacamole은 user-mapping.xml을 사용합니다. 이 파일을 생성하여 Guacamole 웹 인터페이스에 인증할 수 있는 사용자를 정의합니다(<authorize> 태그) 및 사용할 수 있는 연결(<connection> 태그 사이):

sudo nano /etc/guacamole/user-mapping.xml

다음 사용자 매핑은 비밀번호가 tecmint01인 사용자 tecmint에게 Guacamole 웹 인터페이스에 대한 액세스 권한을 부여합니다. 그런 다음 SSH 연결 내에서 RHEL 상자에 로그인하기 위한 유효한 사용자 이름을 입력해야 합니다(Guacamole이 연결을 시작할 때 해당 비밀번호를 입력하라는 메시지가 표시됩니다).

Windows 10 상자의 경우 RDP를 통해 로그인 화면이 표시되므로 그렇게 할 필요가 없습니다.

비밀번호 tecmint01의 md5 해시를 얻으려면 다음 명령을 입력하십시오.

printf '%s' "tecmint01" | md5sum

그런 다음 <authorize> 태그 내부의 비밀번호 필드에 명령 출력을 삽입합니다.

<user-mapping>
        <authorize 
                username="tecmint" 
                password="8383339b9c90775ac14693d8e620981f" 
                encoding="md5">
                <connection name="RHEL 8">
                        <protocol>ssh</protocol>
                        <param name="hostname">192.168.0.18</param>
                        <param name="port">22</param>
                        <param name="username">gacanepa</param>
                </connection>
                <connection name="Windows 10">
                        <protocol>rdp</protocol>
                        <param name="hostname">192.168.0.19</param>
                        <param name="port">3389</param>
                </connection>
        </authorize>
</user-mapping>

중요한 정보가 포함된 모든 파일의 경우와 마찬가지로 user-mapping.xml 파일의 권한을 제한하고 소유권을 변경하는 것이 중요합니다.

sudo chmod 600 /etc/guacamole/user-mapping.xml
sudo chown tomcat:tomcat /etc/guacamole/user-mapping.xml

Tomcat과 guacd를 시작합니다.

sudo service tomcat9 start
sudo /usr/local/sbin/guacd &

Guacamole 웹 인터페이스 실행

8. Guacamole 웹 인터페이스에 액세스하려면 브라우저를 실행하고 http://server:8080/guacamole를 지정하십시오. 여기서 서버는 귀하의 호스트 이름 또는 IP 주소입니다. 서버(이 경우 http://192.168.0.100:8080/guacamole)를 실행하고 앞서 제공된 자격 증명(사용자 이름: tecmint, 비밀번호: tecmint01):

9. 로그인을 클릭하면 tecmint 사용자가 user-에 따라 액세스할 수 있는 연결 목록을 볼 수 있는 관리 인터페이스로 이동하게 됩니다. 매핑.xml:

10. RHEL 8 상자를 클릭하여 gacanepa(연결 정의에 지정된 사용자 이름)로 로그인합니다.

웹 인터페이스를 여는 데 사용하는 컴퓨터의 IP 주소에 관계없이 연결 소스가 192.168.0.100(과카몰리 서버의 IP)으로 설정되는 방법에 유의하세요.

11. 연결을 종료하려면 exit를 입력하고 Enter를 누르세요. 기본 인터페이스 (홈)으로 돌아가거나 과카몰리에서 다시 연결하거나 로그아웃하라는 메시지가 표시됩니다.

12. 이제 Windows 10에 대한 원격 데스크톱 연결을 시도해 볼 차례입니다.

축하해요! 이제 웹 브라우저 내에서 Windows 10 시스템과 RHEL 8 서버에 액세스할 수 있습니다.

요약

이 기사에서는 RDP 및 SSH를 통해 원격 시스템에 액세스할 수 있도록 Guacamole을 설치하고 구성하는 방법을 설명했습니다. 공식 웹사이트는 VNC와 같은 다른 프로토콜과 DB 기반 인증 메커니즘과 같은 기타 인증 메커니즘을 사용하여 액세스를 설정하는 데 도움이 되는 광범위한 문서를 제공합니다.

언제나 그렇듯, 이 기사에 대한 질문이나 제안 사항이 있으면 주저하지 말고 알려 주시기 바랍니다. 우리는 또한 귀하의 성공 사례를 듣기를 기대합니다.