Education and the Cloud

September 7, 2016

Using Guacamole for a browser-only HTML5 Remote Desktop capability that will work with both Ubuntu and Windows servers!

Cloud in a Box (CIAB) Remote Desktop

Connect using only a Web Browser  to both Linux and Windows Servers to access and use a Remote Desktop

Aug 2016 – Brian Mullan (bmullan.mail@gmail.com)

 ciab1

Background

CIAB Remote Desktop (CIAB – Cloud-In-A-Box) was originally envisioned around 2008 after I had the funded opportunity from my employer to spend nearly 18 months on a Fellowship with a non-profit here in North Carolina that provides the networking connectivity to all of the schools in North Carolina.

At the time, cloud computing was just beginning and Amazon’s AWS was practically the only game in town.

Having used AWS myself quite a bit by that time I tried to investigate how “cloud” could be used by K-12 schools as a possible low cost solution to the may problems almost every school faced including:

  • lack of funds often prevent hiring top tech support or buying new equipment
  • local inexperienced technical support which often-times consisted of a librarian, teacher or volunteers
  • a hodge-podge of mixed old/new computers (desktop, laptops)
  • security & viruses were a constant threat because of Windows  usage.

Besides traditional use of Desktop and Laptop computers schools today also include mixes of Chromebooks, Tablets as well.

The above circumstances and combination of problems often created a frustrating experience for teachers, students and parents.

So in 2008 I first started thinking about how to bring together a Cloud based Remote Desktop solution that while not solving every problem, would try to adhere to the 80/20 rule of trying to solve 80% of the problems.

CIAB Remote Desktop only requires a working HTML5 web browser!    This means that all of the above school computing resources (Desktop, Laptop, Chromebook, Tablet and even a Smart Phone) can be used.

The power of the local computer would no longer matter.

The amount of memory, disk drive space, operating system on the local computers was no longer relevant as the real User “desktops” are remote and the “server” they run on can be scaled in the “cloud” to as large as needed in size or number based on availability.

The school would only need decent Network connectivity in regards to speed & reliability.

For example, on AWS EC2 the largest single Virtual Machine “server” you can spin up today is an “instance” called “d2.8xlarge”:

Instance Type      # vCPU                    Memory (GiB)                   Storage (GB)                   Network Speed               Physical Processor
d2.8xlarge           36                       244GBytes                     24 x 2TByte                    10 Gigabit                 Intel Xeon E5-2676 v3

Today there are lots of great IaaS (Infrastructure as a Service) Cloud providers including AWS, Digital Ocean and others.

If you were to install CIAB Remote Desktop on such an AWS server you would pay by the hour or month but as the above stats show you would be using a very powerful server to provide remote desktops to the students.

CIAB Remote Desktop Use-Case Benefits

Since any applications or databases used by the CIAB Remote Desktop users run on the remote server it doesn’t really matter much how old or slow your local computing device is!

  1. For an Admin… to upgrade/delete/add or configure an application only requires doing so in one place not on dozens or hundreds of local computers.3. Security. Regarding Security and/or viruses the remote desktop environments all are running on Linux.
  2. Security for School orient Remote Desktops is managed in perhaps just a few Cloud based servers versus dozens or hundreds of premises based servers spread all over every School District in every County in a State.     Viruses… I’m not sure that there are any that affect Linux.  Also, CIAB Remote Desktop uses HTTPS (SSL) so the Browser connection to the remote desktop is fully encrypted between the user and the Remote server providing the Desktop Environment
  3. For a school, students can access their CIAB Remote Desktop while at School or Home just using a web Browser.   They and the Teachers could access and do homework or grading at home or at school just using only a Web Browser!

 

ciab2

 

              Your remote desktop is always available to you from home or even while traveling !

              Beyond schools, CIAB Remote Desktop could be useful for many people or businesses.

              Besides the above benefits, if installed on one of your home computers you could access your Home Desktop from anywhere!

 

 

 

 

Over the past couple years I’ve gradually integrated a combination of software into a solution for CIAB that seems to work very well.

I’ve utilized the great work of the Apache Guacamole project.   Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.     Its called clientless because no plugins or client software are required to be installed.    Thanks to HTML5, once Guacamole is installed on a server, all you need to access your remote desktop is the web browser you or the students use already.

I integrated several other Open Source software projects with Guacamole to enhance the overall remote desktop solution including:

NGINX –  a free, open-source, high-performance HTTP server and reverse proxy

MySQL – the most popular Open Source SQL database management system

Tomcat – is an open-source web server developed by the Apache Software Foundation (ASF).

XRDP/X11RDP – these 2 components provide a fully functional Linux terminal server, capable of accepting RDP protocol connections from Linux based rdesktop & freerdp clients but also from Microsoft’s own Remote Desktop (re RDP protocol speaking) clients.    XRDP/X11RDP allow RDP Protocol speaking clients the ability to connect to a Linux Server Desktop environment and interact just as if they were logged into it directly and just like they are familiar doing with Windows Terminal Servers and their Windows Remote Desktops.

The combination of NGINX and Tomcat is implemented to support HTTPS web browsing so the end-to-end connection from the student’s web browser to the remote desktop is encrypted.

 

Installation should be Easy

My development of CIAB included creation of a set of Linux “bash” shell scripts that, for the most part, automatically install everything including the Ubuntu Mate Desktop Environment,  the Guacamole Web Proxy Server, Tomcat8, NGINX, MySQL, and XRDP/X11RDP software.

During execution of these scripts the installer/admin is only asked perhaps 7-8 times to input information and most of those are simply to enter Admin passwords for Guacamole, NGINX, MySQL or their own Linux/Ubuntu User Account.

I’ve created a fairly extensive README.PDF file which explains the installation process step by step and includes quite a few pictures of various entry forms/screens that the Installer will encounter.    PLEASE…. Take the time to thoroughly read & use the README.PDF file!

In that README.PDF guide I also talk about an example installation on Amazon’s AWS EC2 Cloud.     For that installation I also identify a recommended  AWS EC2 “server” identifier (called an AMI) to use if you want to experiment.

NOTE:   I have used these scripts to install this many times now on the AWS Cloud but also on Digital Ocean’s Cloud as well as on local Servers and even a local VM.

I’ve posted all of the scripts and associated files required by the scripts to install CIAB Remote Desktop on the GitHub repository site:    https://github.com/bmullan/CIAB-Guacamole-Remote-Desktop

NOTE:   you will need ALL of those files for the scripts to successfully install the CIAB Remote Desktop on your Cloud Server, local server or VM.

Also, note on the GitHub page I include a pointer to a YouTube Video I made that shows me running through the entire CIAB Remote Desktop installation process !

That video can be found here:    https://www.youtube.com/watch?v=GlzSKrIGQZ8&feature=youtu.be

Lastly,  all of the Scripts were designed to install the CIAB Remote Desktop onto an Ubuntu 16.04 Server.    If you want to install onto some other Linux distribution you will have to go through the various scripts and make appropriate changes for your Linux distro choice.

The Demonstration of the CIAB Remote Desktop only focuses on connecting to an Ubuntu MATE Desktop on the AWS Cloud.

REMEMBER…   the very same setup of Guacamole can be used to simultaneously configure Remote Desktop connections to Microsoft Windows Servers as well assuming those Windows Servers have been configured appropriately for RDP Remote Desktop connections/sessions.

If you find this useful, interesting and decide to try it out please let me know how it went.

Brian

 

 

 

Advertisements

Blog at WordPress.com.