Needed a way to access Remote Desktop and other remote servers from behind a firewall. Windows RD Gateway doesn't work behind a nginx server (or I wasn't able to figure it out), so needed an alternative. Found Guacamole!

  1. Install Debian Wheezy

  2. Install tomcat sudo apt-get install tomcat

  3. Install Java JDK if you're going to compile the guacamole-client

  4. Follow most of the instructions on the Guacamole Website. Abbreviated version below:
    a. sudo apt-get install libcairo2-dev libpng12-dev libossp-uuid-dev
    b. might also need sudo apt-get install make and sudo apt-get install maven (for building the client)
    c. Download the latest stable release wget https://github.com/glyptodon/guacamole-server/archive/0.9.4.tar.gz
    d. Choose your supported remote server types, and install the required packages:
    RDP: sudo apt-get install libfreerdp-dev
    OpenSSL: sudo apt-get install libssl-dev
    Audio: sudo apt-get install libvorbis-dev
    e. tar -xzf guacamole-server-0.9.4.tar.gz
    f. run in the new directory: ./configure --with-init-dir=/etc/init.d
    g. then make
    h. then make install

  5. Building/Downloading the client
    a. Grab the latest client wget https://github.com/glyptodon/guacamole-client/archive/0.9.4.tar.gz
    b. tar -xzf 0.9.4.tar.gz
    c. cp guacamole-0.9.4.war /var/lib/tomcat7/webapps/guacamole.war
    d. Setup the guacamole.properties file

     		mkdir /etc/guacamole
             mkdir /usr/share/tomcat7/.guacamole
             nano /etc/guacamole/guacamole.properties
    

e. You can find a copy of guacamole.properties here
g. Create a user/connection file nano /etc/guacamole/user-mapping.xml. Example found here
6. Deploy Guacamole

    ln -s /yourpath/guacamole/guacamole.war /var/lib/tomcat7/webapps
    ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat7/.guacamole/
  1. Restart tomcat service tomcat7 restart
  2. Start guacamole service guacd restart
  3. You should now be able to access Guacamole at http://yourip
  4. Set up your nginx to reverse proxy to the Guacamole server
  5. Future considerations. Set up AJP module for nginx