HOME

TheInfoList



OR:

Apache Guacamole is a clientless remote desktop gateway allowing users to control remote computers or
virtual machines In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
via a
web browser A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
, and allows administrators to dictate how and whether users can connect using an extensible
authentication Authentication (from ''authentikos'', "real, genuine", from αὐθέντης ''authentes'', "author") is the act of proving an Logical assertion, assertion, such as the Digital identity, identity of a computer system user. In contrast with iden ...
and
authorization Authorization or authorisation (see American and British English spelling differences#-ise, -ize (-isation, -ization), spelling differences), in information security, computer security and identity management, IAM (Identity and Access Managemen ...
system. Destination machines can be kept isolated behind Guacamole and need not be reachable over the
internet The Internet (or internet) is the Global network, global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a internetworking, network of networks ...
. It is published under the
Apache License 2.0 The Apache License is a permissive free software license written by the Apache Software Foundation (ASF). It allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software u ...
, available for multiple platforms and maintained by the
Apache Software Foundation The Apache Software Foundation ( ; ASF) is an American nonprofit corporation (classified as a 501(c)(3) organization in the United States) to support a number of open-source software projects. The ASF was formed from a group of developers of the ...
. Remote access is performed via the guacd component, which uses the
RDP RDP may refer to: Computing * Ramer–Douglas–Peucker algorithm, an algorithm for polygonal simplification * Recombination detection program, for analysing genetic recombination * Recursive descent parser, a type of top-down parser * Remote Desk ...
,
VNC VNC (Virtual Network Computing) 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 g ...
or
SSH The Secure Shell Protocol (SSH Protocol) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution. SSH was designed for Un ...
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.


Components

Guacamole is made up of multiple components: a
web application A web application (or web app) is application software that is created with web technologies and runs via a web browser. Web applications emerged during the late 1990s and allowed for the server to dynamically build a response to the request, ...
that is served to users, and a backend service ("guacd") that dynamically translates and optimizes native protocols into the Guacamole protocol. The part of Guacamole that a user interacts with is the web application.


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 Server may refer to: Computing *Server (computing), a computer program or a device that provides requested information for other programs or devices, called clients. Role * Waiting staff, those who work at a restaurant or a bar attending custome ...
of the web application is written in
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
and runs beneath a servlet container like
Apache Tomcat Apache Tomcat (called "Tomcat" for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies. It provides a "pure Java" HTTP web server environment in which Java code can also ...
or
Jetty A jetty is a man-made structure that protrudes from land out into water. A jetty may serve as a breakwater (structure), breakwater, as a walkway, or both; or, in pairs, as a means of constricting a channel. The term derives from the French la ...
. The
client side Client(s) or The Client may refer to: * Client (business) * Client (computing), hardware or software that accesses a remote service on another computer * Customer or client, a recipient of goods or services in return for monetary or other valuable ...
of the web application is written in
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
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 as an HTML5 VNC client leveraging components of a browser-based telnet client called "RealMint". The company Glyptodon LLC formed to support and develop the project, 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. As an Apache Software Foundation project, Guacamole is licensed under the
Apache License The Apache License is a permissive free software license written by the Apache Software Foundation (ASF). It allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software ...
and is developed by a community of contributors. Development discussions and support take place on the project's mailing lists, and contributions are made through opening pull requests against the project's
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
repositories. The project follows
responsible disclosure In computer security, coordinated vulnerability disclosure (CVD, sometimes known as responsible disclosure) is a vulnerability disclosure model in which a vulnerability or an issue is disclosed to the public only after the responsible parties hav ...
practices and provides a private list for reporting and addressing issues with security implications.


Timeline


Literature

* Kalyan Ram, S. Arun Kumar, S. Prathap, B. Mahesh & B. Mallikarjuna Sarma
''Remote Laboratories: For Real Time Access to Experiment Setups with Online Session Booking, Utilizing a Database and Online Interface with Live Streaming''
in: Engineering & Internet of Things, Conference paper, p. 190—204


References

{{Apache Software Foundation Cross-platform free software Free software programmed in C Software using the Apache license Unix network-related software Free software programmed in Java (programming language) Free software programmed in JavaScript