Pour discuter de Guacamole, c'est ici : CRÉER LA DISCUTION QUAND LE TUTO EST OK
=================================
Tutoriel en cours de rédaction
=================================[/color][/b]
Bonjour à tous et à toutes !
Cela fait quelque temps que je recherche un outil pour me connecter à mes serveurs en Linux et Windows via mon navigateur...
Il y a quelques outils pour se connecter en SSH via notre navigateur préféré (GateOne), mais peu qui permettent de se connecter en RDP sur un serveur Windows...
Nous avons le Remote Desktop Web Connexion de notre ami Microsoft, mais il nécessite l'achat de licence... Nous avons aussi le superbe Citrix, mais il demande beaucoup de ressource...
Puis après quelques recherches, je suis tombé sur FreeRDP Web Connect, mais il n'est plus maintenu depuis pas mal de temps
Et enfin, j'ai trouvé Guacamole... À part le nom qui donne la curieuse envie de sortir les tortillas et la cerveza, il est parfait !
Connexion RDP, SSH, VNC et Telnet (moins utile je l'accorde) en HTML 5 en plus ! Il est de plus libre et open source.
J'ai bien galéré à l'installer, je me suis inspiré des blogs et sites comme zerick.me, tecmint.com, desaille.fr, chasewright.com ainsi que la documentation officielle de l'application pour faire un tuto qui soit le plus claire possible.
Site officiel : https://guacamole.incubator.apache.org/
Guacamole est composé d'une partie serveur qui est une appli que nous allons compiler et d'une partie cliente qui est un applet Java et qui nécessite un serveur Tomcat.
Je me base sur un serveur Debian 8. Vous pouvez bien sûr l'installer sur d'autre distribution, mais il va falloir adapter le tuto !
Ce tuto n'est pas compliqué, mais il nécessite que l'on s'applique et avoir une bonne base en administration, car Guacamole est exigeant !
/!\ Attention /!\
Le serveur Tomcat qui sera installé écoute sur le port 8080, si vous avez un autre service qui utilise se port, il faut changer le port de l'un ou l'autre.
Infos :
Compatible et basé sur les tutos de Mondedie (Rutorrent, Nginx de MagicAlex et le script d'ExRat)
Version des logiciels utiliser :
apt update && apt upgrade
On peut maintenant commencer !!
1. Installation des dépendances :
apt install wget automake build-essential openjdk-7-jre libcairo2-dev libjpeg62-turbo-dev libpng12-dev libossp-uuid-dev lsb-release
apt install libfreerdp-dev libpango1.0-dev libssh2-1-dev libssh-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev freerdp ghostscript
2. Installation de la base de données :
Pour avoir accès à toutes les fonctionnalités de Guacamole, nous utiliserons une base de données MySQL, si vous en avez installé, vous pouvez passer cette étape sinon nous installons MySQL via les dépôts d'Oracle (vérifier la dernière MAJ sur http://dev.mysql.com/downloads/repo/apt/ ):
cd /tmp
wget http://dev.mysql.com/get/mysql-apt-config_0.8.1-1_all.deb
dpkg -i mysql-apt-config_0.8.1-1_all.deb
apt update
apt install mysql-server mysql-client mysql-common mysql-utilities
service mysql status
service mysql stop
mysql_install_db
service mysql start
mysql_secure_installation
- Enter current password for root (enter for none): METTRE LE MOT DE PASSE MySQL
- Change the root password? [Y/n] n
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y
mysql -r -p
/!\ Attention au copier/coller !! Risque de problème ! Faites-le à la main 😉
CREATE DATABASE guacamole_db;
CREATE USER 'guacamole_user'@'localhost' IDENTIFIED BY 'un mot de passe';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
FLUSH PRIVILEGES;
EXIT
3. Installation de Guacamole Server :
cd /tmp
wget http://sourceforge.net/projects/guacamole/files/current/source/guacamole-server-0.9.9.tar.gz
tar xvf guacamole-server-0.9.9.tar.gz
rm guacamole-server-0.9.9.tar.gz
cd guacamole-server-0.9.9
./configure --with-init-dir=/etc/init.d
make && make install && ldconfig
cd
mkdir /etc/guacamole
mkdir /etc/guacamole/lib
mkdir /etc/guacamole/extensions
systemctl enable guacd
4. Configuration de Guacamole
cd /tmp
wget http://sourceforge.net/projects/guacamole/files/current/extensions/guacamole-auth-jdbc-0.9.9.tar.gz
tar xvf guacamole-auth-jdbc-0.9.9.tar.gz
rm guacamole-auth-jdbc-0.9.9.tar.gz
cp guacamole-auth-jdbc-0.9.9/mysql/guacamole-auth-jdbc-mysql-0.9.9.jar /etc/guacamole/extensions/
cat guacamole-auth-jdbc-0.9.9/mysql/schema/001-create-schema.sql | mysql -u root -p guacamole_db
cat guacamole-auth-jdbc-0.9.9/mysql/schema/002-create-admin-user.sql | mysql -u root -p guacamole_db
cd /tmp
wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.40.tar.gz
tar xvf mysql-connector-java-5.1.40.tar.gz
rm mysql-connector-java-5.1.40.tar.gz
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /etc/guacamole/lib/
nano /etc/guacamole/guacamole.properties
# Configuration de MySQL pour Guacamole
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: LE-MOT-DE-PASSE-DE-LA-BDD
5. Installation et configuration du serveur Tomcat :
apt install tomcat8 tomcat8-admin tomcat8-user
echo "" >> /etc/default/tomcat8
echo "# GUACAMOLE EVN VARIABLE" >> /etc/default/tomcat8
echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat8
rm -rf /usr/share/tomcat8/.guacamole
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
6. Installation de Guacamole Client :
cd /tmp
wget http://sourceforge.net/projects/guacamole/files/current/binary/guacamole-0.9.9.war
mv guacamole-0.9.9.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
service mysql restart && service tomcat8 restart && service guacd restart
service mysql status && service tomcat8 status && service guacd status
Guacamole est maintenant accessible via http://monip:8080/guacamole ou http://mondomaine:8080/guacamole.
Les identifiants de base sont :
Afin de passer par HTTPS pour plus de sécurité et surtout "zapper" le "8080" après notre adresse, nous allons utilisés le reverse proxy de Nginx
7. Reverse Proxy :
nano /etc/nginx/sites-enabled/rutorrent.conf
server {
...
}
## Debut Config Guacamole ##
location /guacamole/ {
auth_basic off;
proxy_pass http://localhost:8080/guacamole/;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
access_log off;
}
## Fin Config Guacamole ##
service nginx restart
Maintenant, nous pouvons accédés à Guacamole via https://monip/guacamole ou https://mondomaine/guacamole
Évidemment, il faut absolument changer le mot de passe de l'utilisateur "guacadmin" et même créer un autre utilisateur (de préférence le même que l'utilisateur Ruttorrent afin de gérer l'authentification via Nginx) administrateur et désactiver le compte "guacadmin".
L'interface est assez simple et intuitive, donc il n'y aura pas de difficulté à changer les utilisateurs
Pour discuter de Guacamole, une discussion est en lien en haut du tuto