Apache Guacamole

Last updated
Apache Guacamole
Developer(s) Apache Software Foundation
Initial releaseMarch 17, 2010;13 years ago (2010-03-17)
Stable release
1.5.4 / December 7, 2023;19 days ago (2023-12-07) [1]
Repository
Written in C and Java (server), JavaScript (client)
Operating system
  • Server: Linux / UNIX
  • Client: Web browsers that support HTML5
Type Remote Desktop Gateway
License Apache License 2.0
Website Official Website

Apache Guacamole is a free and open-source, cross-platform, clientless remote desktop gateway maintained by the Apache Software Foundation. It allows users to control remote computers or virtual machines via a web browser, and allows administrators to dictate how and whether users can connect using an extensible authentication and authorization system. Destination machines can be kept isolated behind Guacamole and need not be reachable over the internet.

Contents

Remote access is performed via the guacd component, which uses the RDP, VNC or SSH remote protocols to access resources. Guacamole is clientless and doesn't require an agent to be installed on the resources being accessed. The fact that the client runs on web browsers allows users to connect to their remote desktops without installing a remote desktop client. [2]

Components

Architecture of Apache Guacamole Architecture of Apache Guacamole.png
Architecture of Apache Guacamole

Guacamole is made up of multiple components: a web application that is served to users, and a backend service ("guacd") that dynamically translates and optimizes [3] native protocols into the Guacamole protocol. The part of Guacamole that a user interacts with is the web application. [4]

Web Application

The web application provides the user interface, authentication, and authorization system. It does not implement any remote desktop protocol, but instead relies on guacd to translate remote desktop protocols into the Guacamole protocol. The server side of the web application is written in Java and runs beneath a servlet container like Apache Tomcat or Jetty. The client side of the web application is written in JavaScript and runs within the web browser.

guacd

guacd services requests to connect to remote desktops from the web application. It dynamically loads support for remote desktop protocols so that neither guacd nor the web application need to understand the specifics of any one remote desktop protocol. guacd and all client plugins use a shared library, libguac, to abstract away the Guacamole protocol and communication with the web application.

History

Guacamole was created in 2010 by Michael Jumper [5] as an HTML5 VNC client leveraging components of a browser-based telnet client called "RealMint". [6] The company Glyptodon LLC formed to support and develop the project, [7] and donated the project to the Apache Software Foundation in 2016 where it entered incubation. In 2017, Guacamole completed incubation and became the Apache Guacamole top-level project. [8]

As an Apache Software Foundation project, Guacamole is licensed under the Apache License and is developed by a community of contributors. [9] [10] Development discussions and support take place on the project's mailing lists, [11] and contributions are made through opening pull requests against the project's GitHub repositories. The project follows responsible disclosure practices and provides a private list for reporting and addressing issues with security implications. [12]

Timeline

Version [13] Release date
Current stable version:1.5.42023-12-07
Old version, no longer maintained: 1.5.32023-07-31
Old version, no longer maintained: 1.5.22023-05-25
Old version, no longer maintained: 1.5.12023-04-13
Old version, no longer maintained: 1.5.02023-02-18
Old version, no longer maintained: 1.4.02022-01-01
Old version, no longer maintained: 1.3.02021-01-01
Old version, no longer maintained: 1.2.02020-06-28
Old version, no longer maintained: 1.1.02020-01-29
Old version, no longer maintained: 1.0.02019-01-08
Old version, no longer maintained: 0.9.142018-01-18
Old version, no longer maintained: 0.9.13-incubating2017-07-30
Old version, no longer maintained: 0.9.12-incubating2017-04-01
Old version, no longer maintained: 0.9.11-incubating2017-02-02
Old version, no longer maintained: 0.9.10-incubating2016-12-29
Old version, no longer maintained: 0.9.92015-12-18
Old version, no longer maintained: 0.9.82015-09-09
Old version, no longer maintained: 0.9.72015-06-10
Old version, no longer maintained: 0.9.62015-03-30
Old version, no longer maintained: 0.9.52015-02-16
Old version, no longer maintained: 0.9.42015-01-06
Old version, no longer maintained: 0.9.32014-09-30
Old version, no longer maintained: 0.9.22014-07-21
Old version, no longer maintained: 0.9.12014-05-23
Old version, no longer maintained: 0.8.42014-05-23
Old version, no longer maintained: 0.9.02014-03-28
Old version, no longer maintained: 0.8.32013-08-28
Old version, no longer maintained: 0.8.22013-07-15
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release

Literature

Related Research Articles

<span class="mw-page-title-main">Virtual Network Computing</span> Graphical desktop-sharing system

Virtual Network Computing (VNC) is a graphical desktop-sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse input from one computer to another, relaying the graphical-screen updates, over a network.

RealVNC is a company that provides remote access software. Their VNC Connect software consists of a server and client application, which exchange data over the RFB protocol to allow the Viewer to control the Server's screen remotely. The application is used, for example, by IT support engineers to provide helpdesk services to remote users.

RFB is an open simple protocol for remote access to graphical user interfaces. Because it works at the framebuffer level it is applicable to all windowing systems and applications, including Microsoft Windows, macOS, the X Window System and Wayland. RFB is the protocol used in Virtual Network Computing (VNC) and its derivatives.

The Central Authentication Service (CAS) is a single sign-on protocol for the web. Its purpose is to permit a user to access multiple applications while providing their credentials only once. It also allows web applications to authenticate users without gaining access to a user's security credentials, such as a password. The name CAS also refers to a software package that implements this protocol.

<span class="mw-page-title-main">UltraVNC</span> Remote desktop software

UltraVNC is an open-source remote-administration/remote-desktop-software utility. The client supports Microsoft Windows and Linux but the server only supports Windows. It uses the VNC protocol to allow a computer to access and control another one remotely over a network connection.

Desktop sharing is a common name for technologies and products that allow remote access and remote collaboration on a person's computer desktop through a graphical terminal emulator.

A home server is a computing server located in a private computing residence providing services to other devices inside or outside the household through a home network or the Internet. Such services may include file and printer serving, media center serving, home automation control, web serving, web caching, file sharing and synchronization, video surveillance and digital video recorder, calendar and contact sharing and synchronization, account authentication, and backup services.

Oracle Secure Global Desktop (SGD) software provides secure access to both published applications and published desktops running on Microsoft Windows, Unix, mainframe and IBM i systems via a variety of clients ranging from fat PCs to thin clients such as Sun Rays.

In computing, the term remote desktop refers to a software- or operating system feature that allows a personal computer's desktop environment to be run remotely from one system, while being displayed on a separate client device. Remote desktop applications have varying features. Some allow attaching to an existing user's session and "remote controlling", either displaying the remote control session or blanking the screen. Taking over a desktop remotely is a form of remote administration.

This page is a comparison of notable remote desktop software available for various platforms.

Ericom Software, Inc. is a Closter, New Jersey-based company that provides web isolation and remote application access software to businesses.

EGroupware is free open-source groupware software intended for businesses from small to enterprises. Its primary functions allow users to manage contacts, appointments, projects and to-do lists. The project releases its software under the terms of GNU General Public License (GPL).

<span class="mw-page-title-main">ThinLinc</span>

ThinLinc is a cross-platform remote desktop server developed by Cendio AB. The server software and the users' main desktops run on Linux. Clients are available for Linux, Windows, macOS, and a number of thin clients. A browser client using HTML5 technologies is also available.

Remote Desktop Services (RDS), known as Terminal Services in Windows Server 2008 and earlier, is one of the components of Microsoft Windows that allow a user to initiate and control an interactive session on a remote computer or virtual machine over a network connection. RDS was first released in 1998 as Terminal Server in Windows NT 4.0 Terminal Server Edition, a stand-alone edition of Windows NT 4.0 Server that allowed users to log in remotely. Starting with Windows 2000, it was integrated under the name of Terminal Services as an optional component in the server editions of the Windows NT family of operating systems, receiving updates and improvements with each version of Windows. Terminal Services were then renamed to Remote Desktop Services with Windows Server 2008 R2 in 2009.

<span class="mw-page-title-main">Google Wave</span> Software framework for real-time collaborative editing online

Google Wave, later known as Apache Wave, is a discontinued software framework for real-time collaborative online editing. Originally developed by Google and announced on May 28, 2009, it was renamed to Apache Wave when the project was adopted by the Apache Software Foundation as an incubator project in 2010.

<span class="mw-page-title-main">GraphOn</span> Application publishing software

GraphOn GO-Global is a multi-user remote access application for Windows. GO-Global is a product of GraphOn Corporation.

In computing, SPICE is a remote-display system built for virtual environments which allows users to view a computing "desktop" environment – not only on its computer-server machine, but also from anywhere on the Internet – using a wide variety of machine architectures.

<span class="mw-page-title-main">Chrome Remote Desktop</span> Remote desktop software tool

Chrome Remote Desktop is a remote desktop software tool, developed by Google, that allows a user to remotely control another computer's desktop through a proprietary protocol also developed by Google, internally called Chromoting. The protocol transmits the keyboard and mouse events from the client to the server, relaying the graphical screen updates back in the other direction over a computer network. This feature, therefore, consists of a server component for the host computer, and a client component on the computer accessing the remote server. Chrome Remote Desktop uses a unique protocol, as opposed to using the common Remote Desktop Protocol.

References

  1. Apache Guacamole™: 1.5.4 , retrieved 2023-12-19
  2. Kenlon, Seth (6 May 2020). "5 open source tools IT leaders should know about now". enterprisersproject.com. Archived from the original on 2020-05-07. Retrieved 2020-09-22.
  3. "Performance testing of Guacamole-Apache Mail Archives". lists.apache.org.
  4. "Implementation and architecture — Apache Guacamole Manual v1.5.0". guacamole.apache.org.
  5. "Apache Guacamole - SourceForge.net". SourceForge.net. Retrieved 2023-03-23.
  6. "Introduction - Apache Guacamole Manual v1.5.0". guacamole.apache.org.
  7. "Guacamole - HTML5 Clientless Remote Desktop". guac-dev.org. Archived from the original on 2016-04-05. Retrieved 2023-03-23.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  8. "Guacamole Incubation Status - Apache Incubator". incubator.apache.org.
  9. "Apache Guacamole™: Open Source". guacamole.apache.org.
  10. "Apache Phone Book - Guacamole". apache.org.
  11. "Apache Guacamole™: Help / Support". guacamole.apache.org.
  12. "Apache Guacamole™: Security Reports". guacamole.apache.org.
  13. "Apache Guacamole™: Release Archive". guacamole.apache.org.