Apache Guacamole sur Kali linux : Installation Et Tuto
Apache Guacamole est une application Web HTML5 qui permet d’accéder aux environnements de bureau à l’aide
de protocoles de bureau à distance (tels que VNC ou RDP). Guacamole est également le projet qui produit
cette application Web et fournit une API qui la pilote. Cette API peut être utilisée pour alimenter d’autres
applications ou services similaires.
« Guacamole » est le plus souvent utilisé pour désigner l’application Web produite par le projet Guacamole
à l’aide de leur API. Cette application Web fait partie d’une pile qui fournit une passerelle de bureau à
distance indépendante du protocole. Écrit en JavaScript et utilisant uniquement HTML5 et d’autres normes,
la partie client de Guacamole ne nécessite rien de plus qu’un navigateur Web moderne ou un appareil
compatible Web pour accéder à l’un des bureaux desservis.
Historiquement, Guacamole était un client HTML5 VNC, et avant cela, un client JavaScript Telnet appelé
RealMint (« RealMint » est l’anagramme de « terminal »), mais ce n’est plus le cas. L’architecture de
Guacamole s’est développée pour englober le bureau à distance en général et peut être utilisée comme
passerelle pour un nombre quelconque d’ordinateurs. À l’origine une preuve de concept, Guacamole est
maintenant suffisamment performant pour une utilisation quotidienne, et tout le développement de
Guacamole se fait sur Guacamole.
En tant qu’API, Guacamole sur Kali Linux fournit un moyen commun et efficace de diffuser des données texte sur un tunnel
basé sur JavaScript en utilisant HTTP ou WebSocket, et une implémentation client qui prend en charge le
protocole Guacamole et rend l’affichage à distance lorsqu’il est combiné avec un flux de protocole
Guacamole à partir du tunnel.
Il fournit des événements de souris et de clavier inter-navigateurs, un clavier à l’écran basé sur XML et des
couches imbriquées synchronisées avec une composition accélérée par matériel. Les projets qui souhaitent
fournir un support de bureau à distance via HTML5 peuvent tirer parti des années de recherche et de
développement qui ont été consacré.
Voir aussi : comment installer les pilotes sur Windows 10
Pourquoi utiliser guacamole apache ?
La principale raison d’utiliser Guacamole est un accès constant, mondial et sans entrave à vos ordinateurs.
Guacamole permet d’accéder à un ou plusieurs bureaux de n’importe où à distance, sans avoir à installer un
client, en particulier lorsque l’installation d’un client n’est pas possible. En configurant un serveur
Guacamole, vous pouvez donner accès à n’importe quel autre ordinateur du réseau à partir de pratiquement
n’importe quel autre ordinateur sur Internet, n’importe où dans le monde. Même les téléphones portables
ou les tablettes peuvent être utilisés, sans avoir à installer quoi que ce soit.
Véritable application Web dont la communication se fait uniquement via HTTP ou HTTPS, Guacamole
vous permet d’accéder à vos machines de n’importe où sans enfreindre la politique de votre lieu de travail
et sans nécessiter l’installation de clients spéciaux. La présence d’un proxy ou d’un pare-feu d’entreprise
n’empêche pas l’utilisation de Guacamole.
Avantage de l’utilisation de guacamole apache
– Accédez à vos ordinateurs depuis n’importe quel appareil
Comme Guacamole ne nécessite qu’un navigateur raisonnablement rapide et conforme aux normes,
Guacamole fonctionnera sur de nombreux appareils, y compris les téléphones portables et les tablette,
guacamole est spécialement conçu pour ne pas se soucier de savoir si vous avez une souris, un clavier, un
écran tactile ou toute combinaison de ceux-ci.
L’une des principales philosophies de conception derrière Guacamole est qu’il ne devrait jamais supposer
que vous avez un appareil particulier (par exemple : un téléphone mobile) simplement parce que votre
navigateur a ou manque une fonctionnalité spécifique (par exemple : des événements tactiles ou un petit
écran). La base de code de Guacamole prend en charge les événements de souris et de toucher
simultanément, sans choisir l’un par rapport à l’autre, tandis que l’interface est conçue pour être utilisable
quelle que soit la taille de l’écran.
À moins de bugs, vous devriez pouvoir utiliser Guacamole sur à peu près n’importe quel appareil moderne
avec un navigateur Web.
– Gardez un ordinateur dans le « cloud »
Ignorant le mot à la mode, il est souvent utile d’avoir un ordinateur qui n’a pas de matériel physique dédié,
où sa puissance de traitement et de stockage est gérée de manière transparente par des systèmes
redondants dans un centre de données distant.
Les ordinateurs hébergés sur du matériel virtualisé sont plus résistants aux pannes, et avec tant
d’entreprises offrant désormais des ressources informatiques à la demande, Guacamole est un moyen idéal
pour accéder à plusieurs machines qui ne sont accessibles que sur Internet.
– Fournir un accès facile à un groupe
Guacamole vous permet de centraliser l’accès à un grand groupe de machines et de spécifier pour chaque
utilisateur quelles machines sont accessibles. Plutôt que de se souvenir d’une liste de machines et
d’informations d’identification, les utilisateurs n’ont qu’à se connecter à un serveur central et à cliquer sur
l’une des connexions répertoriées.
Si vous avez plusieurs ordinateurs auxquels vous souhaitez accéder à distance, ou si vous faites partie d’un
groupe où chaque personne dispose d’un ensemble de machines auxquelles elle a besoin d’accéder à
distance, Guacamole est un bon moyen de fournir cet accès tout en garantissant que l’accès est disponible
de n’importe où.
– Ajout d’un accès distant HTML5 à votre infrastructure existante
Comme Guacamole est une API, pas seulement une application Web, les composants et bibliothèques de
base fournis par le projet Guacamole peuvent être utilisés pour ajouter des fonctionnalités d’accès à
distance HTML5 à une application existante. Vous n’avez pas besoin d’utiliser l’application Web
principale Guacamole ; vous pouvez écrire (ou intégrer) le vôtre assez facilement.
Si vous hébergez un service informatique à la demande, l’ajout d’un accès à distance basé sur HTML5
permet aux utilisateurs de votre service un accès plus large ; les utilisateurs n’ont besoin que d’un
navigateur Web pour voir les écrans de leurs ordinateurs.
Mais on note aussi principalement le fait que guacamole possède :
– Une simplicité d’utilisation (pas besoin d’installer quoi que ce soit en plus pour utiliser la
solution), – Une gratuité du produit (mais peu ou pas de support), – Une possibilité d’utiliser des flux de type RDP, VNC ou encore SSH.
Inconvénient lier à l’utilisation de guacamole apache
Guacamole comme toute création humaine possèdent des point faibles et inconvénient lier à son
utilisation, on a comme inconvénient déjà :
– L’inconvénient majeur qui est lié à la sécurité car après certaines recherches de vulnérabilité
sur celui-ci il en ressort qu’un pirate ayant accès à un ordinateur d’une entreprise est en
mesure de déclencher une attaque RDP inversée (une attaque par laquelle un PC distant
infecté par un certain type de logiciel malveillant prend le contrôle d’un client qui tente de s’y
connecter). Dans le cas présent, l’attaque RDP inversée permettrait à un pirate de prendre le
contrôle de la passerelle Apache Guacamole qui gère toutes les sessions distantes d’un réseau.
Après avoir pris le contrôle de la passerelle, le pirate pourrait espionner toutes les sessions
entrantes, enregistrer tous les identifiants utilisés, et même contrôler d’autres sessions dans
l’entreprise. Bref, cela équivaut à un contrôle total du réseau.
Les experts identifient deux scénarios d’attaque : celui de l’attaque inversée, par lequel une
machine compromise à l’intérieur du réseau de l’entreprise exploite la connexion entrante
inoffensive pour attaquer la passerelle Apache et en prendre le contrôle, et celui du
collaborateur malveillant selon lequel collaborateur malhonnête utilise un ordinateur à
l’intérieur du réseau pour exploiter son emprise aux deux extrémités de la connexion afin de
prendre le contrôle de la passerelle.
– Un inconvénient mineur qui est le manque de support du logiciel, cela peut sembler léger voir
négligeable au premier abord mais pour ce qui est de l’utilisation du logiciel on se retrouve
sans réel support pour guider dans l’utilisation de celui-ci ce qui rend obligatoire la
consultation de site tierce pour se documenter quant a l’utilisation du logiciel, ce qui peut
s’avérer dangereux dans certaines conditions ou les informations donner sur ses sites tierces
viserait a laisser des failles qu’elle pourrait exploiter plus tard .
Cela aussi veux dire que le logiciel est rarement voire pas du tout mis à jour donc les failles de
sécurités qui sont remarquer sont corriger souvent très tardivement voire pas du tout ce qui
représente un réel danger. Nous avons ainsi terminé avec la présentation de guacamole apache qui est une application Web
permettent l’utilisation distante d’ordinateur via un navigateur comme toutes création humaine celle-ci
possède de nombreux avantages mais aussi des inconvénients non négligeables mais cela n’enlève rien a
l’utilité que celle-ci peut avoir une fois qu’on maitrise ses deux aspect positif et négatif.
Il devient donc un outil de qualité pour les entreprises qui souhaite pouvoir instaurer la notion de
télétravail en leur sein et ainsi palier a des problèmes de distance, de pandémie, etc.
Il permettra au entreprise de pouvoir continuer d’exercer leur activité même dans les conditions les plus
précaires, ainsi présenter nous allons maintenant passer à son déploiement.
Install guacamole Debian 10 sur Kali linux (Debian
10)
Le déploiement de guacamole apache sur l’OS linux passe par l’installation et la vérification de la présence
des composantes suivantes :
Tomcat 8 ou Tomcat 9 : apache tomcat étant un serveur local d’hébergement d’application java.
VNC : qui est un dispositif permettant d’accéder de visualiser et de contrôler l’environnement de bureau
d’un ordinateur distant, il permet au client VNC de transmettre les informations saisies du clavier et de la
souris a l’ordinateur distant.
Le contrôle de la présence de ses composantes et effectuer durant la procédure de déploiement de
guacamole qui est la suivante :
- Installer les outils de construction requis
Pour installer guacamole-server, vous devez le construire à partir de la source. Cela nécessite donc que vous
installiez les outils de génération requis avant de pouvoir commencer à générer le composant guacamole- server :
apt install -y build-essential libcairo2-dev libjpeg62-turbo-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev \
libssl-dev libvorbis-dev libwebp-dev libpulse-dev
Est la commande linux permettant l’installation de ses différents composants.
Ensuite, installez les bibliothèques FreeRDP pour activer la prise en charge de RDP via Guacamole. Vous
devez installer les bibliothèques FreeRDP à partir des référentiels Debian Backport. Sinon, si vous installez
à partir des référentiels Debian par défaut, vous pourriez rencontrer une telle erreur ;
Les commande sont les suivantes :
echo « deb buster-backports main » > /etc/apt/sources.list.d/backports.list
Ensuite
apt update
Puis :
apt install freerdp2-dev/buster-backports
2. Construire le serveur guacamole
Pour se faire il suffit de taper les commandes suivantes :
VER=1.3.0
Puis :
wget
Une fois le téléchargement terminer, extraire l’archive reçu avec la commande suivante :
tar xzf guacamole-server-$VER.tar.gz
Ensuite accéder au répertoire ou a été extrait le fichier (il porte le même nom que l’archive ) donc la
commande est :
cd guacamole-server-$VER
Ps : $VER est notre petite variable à laquelle nous avons donné la valeur 1.3.0 pour nous éviter de devoir
retaper cette suite de chiffre plusieurs fois surtout que l’on peut oublier a un moment.
Ensuite il faut exécuter configure pour vérifier la présence des paquets et dépendances.
La commande est : ./configure –with-init-dir=/etc/init.d
le résultat final de la commande devra être comme ceci :
… ———————————————— guacamole-server version 1.3.0
————————————————
Library status:
freerdp2 ………… yes
pango …………… yes
libavcodec ………. yes
libavformat………. yes
libavutil ……….. yes
libssh2 …………. yes
libssl ………….. yes
libswscale ………. yes
libtelnet ……….. yes
libVNCServer …….. yes
libvorbis ……….. yes
libpulse ………… no
libwebsockets ……. no
libwebp …………. yes
wsock32 …………. no
Protocol support:
Kubernetes …. no
RDP ……….. yes
SSH ……….. yes
Telnet …….. yes
VNC ……….. yes
Services / tools:
guacd …… yes
guacenc …. yes
guaclog …. yes
FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2
Init scripts: /etc/init.d
Systemd units: no
Type « make » to compile guacamole-server.
.Et surtout veiller à ne rien modifier dans ce fichier et juste sortir apres avoir vérifier si tout ça correspond
(si vous avez plus de YES ce n’est pas grave mais moins de YES c’est un problème il vous manque des
dépendances et vous devez les installer sinon vous aurez des problèmes plus tard.)
3. Installer et configurer Guacamole server
Taper : make
Ensuite : make install
Pour démarrer l’installation.
À la fin exécuter : ldconfig
Pour créer les liens et le caches nécessaires vers les bibliothèques partagées les plus récentes trouvées du
serveur guacamole ensuite on passe à l’exécution de guacamole server
Taper les commandes :
systemcl daemon-reload
systemcl start guacd
systemcl enable guacd
Ensuite pour vérifier l’état taper :
status systemcl guacd
Vous obtiendrez ceci :
guacd.service – LSB: Guacamole proxy daemon
Loaded: loaded (/etc/init.d/guacd; generated)
Active: active (running) since Sat 2021-03-27 16:18:30 EAT; 6s ago
Docs: man:systemd-sysv-generator(8)
Process: 20717 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 2359)
Memory: 10.4M
CGroup: /system.slice/guacd.service
└─20720 /usr/local/sbin/guacd -p /var/run/guacd.pid
Mar 27 16:18:29 debian systemd[1]: Starting LSB: Guacamole proxy daemon…
Mar 27 16:18:30 debian guacd[20718]: Guacamole proxy daemon (guacd) version 1.3.0 started
Mar 27 16:18:30 debian guacd[20717]: Starting guacd: guacd[20718]: INFO: Guacamole proxy daemon
(guacd) version 1.3.0 started
Mar 27 16:18:30 debian guacd[20717]: SUCCESS
Mar 27 16:18:30 debian systemd[1]: Started LSB: Guacamole proxy daemon.
Mar 27 16:18:30 debian guacd[20720]: Listening on host 127.0.0.1, port 4822
Le « active » après » Active : » est très important s’il n’est pas là c’est que vous avez manqué quelque chose
a un niveau et le serveur n’as pas pu être lancer il faudra recommencer.
Ainsi que le SUCCESS.
4. Installer le Servlet Tomcat
Apache tomcat est utilisé pour fournir du contenue client guacamole aux utilisateurs qui se connectent au
serveur guacamole a partir du navigateur web, pour l’installer exécuter cette commande :
apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user –y
Une fois que la commande aura terminer son exécution vérifier l’état de l’installation avec la commande :
Systemclt status tomcat9.service
Comme pour le précèdent vous devrez voir active après » Active : » Si tel n’est pas le cas faites :
systemcl enable tomcat9.service
Ensuite
systemcl start tomcat9.service
et cela devrait marcher si tout a fonctionner dans les étapes précédentes et il est bon de savoir que Apache
omcat est sur le port 8080/tcp par défaut mais vérifier que c’est le cas avec la commande :
ss-altnp | grep 80
5. Autoriser l’accès au serverlet
Pour ce faire ouvrir le port 8080/tcp sur ufw avec la commande :
ufw enable 8080/tcp
6. Installer le client guacamole
Si tout a été exécuter a la perfection et dans l’ordre il ne manque plus qu’a installer le client guacamole
pour ce faire il faut d’abord le télécharger la commande suivante permet de le faire :
VER=1.3.0
Ensuite
wget -O
/etc/guacamole/guacamole.war
Nb : On initialise encore VER pour nous faciliter la tâche, et on note que la version 1.3.0 est la version a
jour de guacamole.
Ensuite il faudra créer un lien symbolique du client guacamole vers le répertoire des applications web
tomcat avec la commande :
ls -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/
Enfin redémarrer tomcat pour déployer la nouvelle application avec la commande :
systemcl restart tomcat9
Redémarrer aussi le daemon guacd avec :
systemcl restart guacd
7. Configuration de guacamole
Guacamole a deux fichiers de configuration principaux ;
/etc/guacamole qui est référencé par la GUACAMOLE_HOME variable d’environnement
/etc/guacamole/guacamole.properties qui est le fichier de configuration principal utilisé par Guacamole
et ses extensions.
Il existe également des extensions de guacamole et des configurations de bibliothèques. Vous devez créer
les répertoires pour ces configurations ; avec la commande :
mkdir /etc/guacamole/{extensions,lib}
Ensuite définissez la variable d’environnement du répertoire de base guacamole et ajoutez-la au
/etc/default/tomcat9 fichier de configuration avec la commande :
echo « GUACAMOLE_HOME=/etc/guacamole » >> /etc/default/tomcat9
a. Configurer les connexions au serveur guacamole
il faut définir comment guacamole se connecte a guacd et il faut donc créer le fichier guacamole.properties
sous l’emplacement /etc/guacamole avec la commande
vim /etc/guacamole/guacamole.propreties
Ensuite copiez ceci dans l’interface de vim
guacd-hostname : localhost
port guacd : 4822
mappage utilisateur : /etc/guacamole/user-mapping.xml
fournisseur d’autorisation : net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
Une fois cela fait vous devez enregistrez le fichier et pour ce faire taper sur la touche « entrez » pour passer
en mode console de vim puis enregistrer en tapant au clavier » :w » et fermez avec « :q ».
Par la suite il vous faudra lier les répertoires de configuration de servlet tomcat avec la commande :
ln -s /etc/guacamole /usr/share/tomcat9/.guacamole
b) Configurer la méthode d’authentification guacamole
La méthode d’authentification par défaut de Guacamole lit tous les utilisateurs et toutes les connexions à
partir d’un seul fichier appelé user-mapping.xml. Dans ce fichier, vous devez définir les utilisateurs autorisés à accéder à l’interface utilisateur Web de
Guacamole, les serveurs auxquels se connecter et la méthode de connexion, nous utiliserons la méthode de
connexion basée sur le hash en md5 car c’est celle la plus basique.
Pour commencer générer un hash en md5 des mots de passe que l’utilisateur utilisera pour se connecter à
l’interface dédie web de guacamole, la commande est la suivante :
echo -n mot de passe | openssl md5
Nb : vous remplacerez mot de passe par votre propre mot de passe.
Vous obtiendrez un résultat qui sera sensiblement ressemblant à celui ci-dessous : (stdin)= 5f4dcc3b5aa765d61d8327deb882cf99 Copier et garder ce mot quelque part se sera utile ce sera utile pour la suite juste après avoir fait cela on va créer le fichier authentification utilisateur : user-mapping.xml avec la commande : vim /etc/guacamole/user-mapping.xml et vous y insérez le script suivant : ssh 192.168.57.3 22 rdp 192.168.56.103 3389 koromicha vrai En remplacent la valeur après le « password = » par le mot que vous avez gardé tout a l’heure et laisser le reste intacte puis sortez en enregistrant.
NB : Guacadmin est l’administrateur, si vous ne spécifier pas un nom d’utilisateur dans le script vous
serrez inviter à le faire lors de la connexion, mais si vous voulez le faire manuellement insérez ceci dans la
première colonne :
NOM D’UTILISATEUR MOT DE PASSE en changeant le nom d’utilisateur et le mot de passe par celui que vous désirez ( n’oubliant pas de hasher le mot de passe en md5 ) puis redémarrer tomcat pour effectuer les modifications avec la commande : systemctl restart tomcat9 guacd
8. Comment accéder a guacamole apache ?
Pour se faire vous devez utiliser l’adresse : qui sera insérer dans la barre
de navigation de votre navigateur sachant que le 127.0.0.1 est remplacer selon votre désire pendant
l’installation.
Voici donc terminer le compte rendu Monsieur du déploiement de guacamole apache détailler étape par
étape jusqu’au lancement de l’application web. A bientôt sur geekyanick.com pour un nouvel article.
Voir aussi : comment installer les pilotes sur Windows 10