How I searched for a normal RDP client and found as many as three





Remote Desktop Protocol is one of the most widely used remote control protocols because it is used to work with Windows operating systems, which are often indispensable in a corporate environment. Naturally, the most common way to connect to a remote system is to use the tools built into the system itself, but it is not the only one and, moreover, completely inapplicable if you use another OS or very outdated Windows.



In this article, I will talk about several alternative solutions that differ from those built into the distributions of operating systems: the MobaXterm program and two services that do not require the user to install applications and work in a regular browser.



MobaXterm



This program is for Windows. It's a bit wrong to call MobaXterm an RDP client, because it's a whole combine. The list of supported protocols is impressive: SSH, Telnet, Rlogin, RDP, VNC, XDMCP, FTP, SFTP, and Serial.



Why do I recommend this client? I am not happy with Putty for a long time. A cumbersome and confusing interface from the times of the W95, which does not cause nostalgia if you have to work with it often, poor support for high-resolution screens, its own key format, lack of support for tabs, and so on. MobaXterm is free of all these drawbacks, it is a convenient and modern program. The portable version consists of one single exe's and a configuration file, the interface is intuitive, and if you need help, then, unlike Putty, the program itself has comprehensive documentation.



In addition to connecting through the listed protocols, you can locally raise some services for remote access, such as: FTP, SSH / SFTP, HTTP and others. If you don't like console nano and vi, then the program has a text editor with a convenient graphical interface. The terminal has custom syntax highlighting and auto-completion.

Immediately after launch, the program found the connections I had previously used, imported the settings from Putty and found the WSL-Ubuntu installed in the system:







It makes no sense to list all the application's features, they are very numerous, there are even tools for testing networks. The application is paid, but the portable free version is enough for the eyes for the vast majority of system administrator tasks.



Apache Guacamole







Modern DevOps trends involve moving the development environment from a local machine to a company's server or to a cloud provider. One of the simple examples was previously described in the article: Installing Visual Studio Code in the cloud , applications for remote connection did not escape this either.



Apache Guacamole , an HTML5 client-side gateway for remote connections, allows you to use VNC, Telnet, RDP, Kubernetes and SSH / SFTP protocols via a web interface. There is no need to install any programs, subscriptions to third-party services, everything works right in the browser, regardless of which operating system the developer uses. All that is required is to install and configure services on the server. In fact, this is a web interface for FreeRDP is a free, open source implementation of the RDP protocol.



The scenario for working with this service is typical of the latest trends in remote work and workplace optimization. Developers connect to their environment from anywhere in the world. They do not need to keep a powerful desktop at home or carry a high-performance laptop with them, this is transferred to the company's servers, and the employee only needs an Internet connection and any laptop on which the browser will not lag.



Service configuration is documented in great detail , the manual is impressive in its size. Installation is possible in several ways: from the repositories, compiling the sources, and deploying the Docker image. Fortunately, as is often the case, one well-trained DevOps engineer decided to automate the installation process with the most typical settings and posted the finished script on github: guac-install . It is easy to understand from his code that he followed the path of installing a Docker image, and all the actions boil down to entering just a few commands.



Let's start by configuring a virtual server to install AG. Its characteristics will depend on the number of users, but the developers recommend at least 2 gigabytes of RAM. We will choose the server location in Moscow for minimum ping, which is critical for working with remote computers.







As a test machine, I chose the following VPS parameters :







After the virtual machine is created, connect to it (using MobaXterm, of course). Now you can get to work.



First you need to download the installation script:



wget https://git.io/fxZq5 -O guac-install.sh
      
      





Give him permission to execute:



chmod +x guac-install.sh
      
      





And run:



./guac-install.sh
      
      





In the course of work, the necessary images will be installed and several questions will be asked about setting up passwords for MySQL. At the end, the script will display a message stating that the installation is complete, write the address to connect to the service and provide a password / login, which it will strongly recommend to change later:



Installation Complete
- Visit: http://localhost:8080/guacamole/
- Default login (username/password): guacadmin/guacadmin
***Be sure to change the password***.
      
      





Everything is ready, you just need to replace localhost with the external IP address of our server and enter a login / password pair into the login form on the site:







After authorization, access to a rather austere administration panel opens, where you can manage user privileges and connections to various systems available to them.



At the first login, the system will ask you to set up two-factor authorization, a QR code will appear on the screen, which will need to be scanned using any convenient application. I used Google Authenticator on my smartphone for this . After scanning, the application will generate a six-digit code that you need to enter in the field on the site.



As an example, let's connect to a server running Windows using the RDP protocol. To do this, go to “Settings” and select the “Connections” option. The interface has been translated into several languages, and no one will have any difficulties when working with it.







Then you need to fill in the following fields (I will list the minimum required):

In the "EDITING CONNECTION" section, fill in the "Name" field and select "RDP" in the "Protocol" field.



In the section “SHARING” put the required numbers in the fields “Maximum number of connections” and “Maximum number of connections per user”. Anything you need, but not less than 1.



In the “SETTINGS” section and the “Network” subsection, enter the IP address of the remote server running Windows and “Port”: 3389.



Then fill in the “Username” and “Password” fields. In my case, I also needed to check the “Ignore server certificate” option.



The rest of the settings are filled in as needed, depending on the specifics of the servers to which you want to connect.



As a result, it looks something like this:







At the very bottom of the page, we press the "SAVE" button and you can connect from the main page of the control panel:







Everything works, we see the desktop of our virtual server:







Myrtille



One more project is being developed on the basis of FreeRDP: Myrtille , similar to Apache Guacamole, but running on Windows. Its installation is the traditional Windows way, you just need to download the installer file from GitHub and run it. The application supports two-factor authentication and allows you to configure it during the installation process:







In the following dialog box, you can configure the work with Active Directory:







And then the ports for connection:







Next, there is a dialog with a choice of options for installing a certificate, a driver for a PDF printer and allowing multiple connections:







Then the directory is selected where the program will be installed and the installation process starts. That's all, the service can be used by clicking on the link: https: // ip-address / Myrtille / , where instead of ip-address you need to substitute the server address and the web client is ready to connect:







It should be noted that it does not allow you to manage user groups and connections like AG and rather ascetic in the settings. The service menu, although it does not shine with beauty, is quite functional: In







this way, you can abandon another local tool for work and use a regular browser that is on any computer.






All Articles