Connexion

Forum

Logiciels » Autres logiciels Comment installer Guacamole serveur

xuo Membre non connecté

Rang

Avatar

Inscrit le : 23/10/2011 à 18h17

Localisation : Bouc-Bel-Air

Messages: 470

Le 27/10/2019 à 11h00

Reprise du message précédent

Bonjour,

Ouh la la, c'est pas facile à suivre.
Là je suis devant Galles/Afrique du Sud. J'essayerai de regarder plus en détail ce soir, sinon le week-end prochain.

Merci pour l'aide en tout cas.

Xuo.
   
nic80 Membre non connecté

Rang

Avatar

Inscrit le : 06/08/2018 à 23h52

Messages: 1413

Le 01/11/2019 à 11h15
Bonjour,

Il faut d' abord récupérer le fichier guacamole-server-1.0.0.tar.gz, puis le décompresser ( optionnellement on peut vérifier la somme sha256).

En utilisateur normal :
Code BASH :
 
cd ~/Téléchargements
wget "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/1.0.0/source/guacamole-server-1.0.0.tar.gz"
mv "closer.cgi?action=download&filename=guacamole%2F1.0.0%2Fsource%2Fguacamole-server-1.0.0.tar.gz" guacamole-server-1.0.0.tar.gz
mkdir guacamole
cd guacamole
tar zxvf ../guacamole-server-1.0.0.tar.gz
cd ~/Téléchargements


Ensuite on récupère le rpm de devel de lib64ossp_uuid et lib64ossp_uuid16, toujours en utilisateur normal:

Code BASH :
wget http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/7.1/x86_64/media/core/release/lib64ossp_uuid-devel-1.6.2-21.mga7.x86_64.rpm
wget http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/7.1/x86_64/media/core/release/lib64ossp_uuid16-1.6.2-21.mga7.x86_64.rpm


On installe les différents devel nécessaires:

En root:
Code BASH :
 
su
urpmi freerdp-devel lib64pango1.0-devel lib64ffmpeg-devel lib64ssh2-devel lib64telnet-devel lib64vncserver-devel lib64jpeg-devel lib64webp-devel lib64pulseaudio-devel lib64openssl-devel lib64vorbis-devel lib64png-devel lib64cairo-devel


On extrait les fichiers rpm en utilisateur normal:
Code BASH :
 
cd ~/Téléchargements
mkdir extractrpm
cd extractrpm
rpm2cpio ../lib64ossp_uuid16-1.6.2-21.mga7.x86_64.rpm | cpio -id
rpm2cpio ../lib64ossp_uuid-devel-1.6.2-21.mga7.x86_64.rpm | cpio -id
cd usr


En root on copie les fichiers extraits vers leur emplacements:

Code BASH :
su
cp -u bin/uuid-config /usr/bin/
mkdir /usr/include/ossp
cp -u include/uuid.h /usr/include/ossp/
cp -u lib64/libuuid* /usr/lib64/
mv /usr/lib64/pkgconfig/uuid.pc /usr/lib64/pkgconfig/uuid.pc.ori
cp -u lib64/pkgconfig/uuid.pc /usr/lib64/pkgconfig/uuid.pc
ldconfig


En utilisateur normal on lance le configure depuis le répertoire source de guacamole serveur ( le support rdp ne fonctionne pas (chercherait t' il quelque chose dans /usr/include/freerdp/core ?), ainsi que guacenc ( donc désactivé par l' option --disable-guacenc ), puis le make

Code BASH :
cd ~/Téléchargements/
cd guacamole
cd guacamole-server-1.0.0
./configure --disable-guacenc
make


on peut ensuite copier le nouveau binaire de guacd dans /usr/sbin/guacd et les librairies trouvées compilées.
En root:

Code BASH :
cp src/guacd/.libs/guacd /usr/sbin/guacd
cp src/protocols/vnc/.libs/libguac-client-vnc.so* /usr/lib64/
cp src/protocols/ssh/.libs/libguac-client-ssh.so* /usr/lib64/
cp src/protocols/telnet/.libs/libguac-client-telnet.so* /usr/lib64/
ldconfig


Ensuite on peut redemarrer Tomcat et guacd. En root:

Code BASH :
systemctl restart tomcat
guacd
 


Enfin il faut démarrer le serveur vnc puis faire un test. Edité par nic80 Le 01/11/2019 à 14h08
   
xuo Membre non connecté

Rang

Avatar

Inscrit le : 23/10/2011 à 18h17

Localisation : Bouc-Bel-Air

Messages: 470

Le 02/11/2019 à 11h20
Bonjour,

1) Si je comprends bien, on repart de la version source de guacamole (pas celle des rpms de Mageia) et on contourne les problèmes de paquetages Mageia en les installant en local ?
Parce que j'ai des/usr/lib64/libuuid* qui proviennent de lib64uuid-devel et lib64uuid1 des rpms Mageia.
Je ne peux pas enlever le 2ème (icône grisée dans le MCC) et le premier va supprimer Tomcat-native (le tomcat dont a besoin guacamole pour tourner ???).
Je peux les renommer en .orig mais c'est un peu dangereux non ?

2) A quoi sert : mkdir /usr/include/ossp ?
le répertoire ossp n'existe pas après les rpm2cpio

3) A quoi sert le --disable-guacenc ?

Merci.

Xuo.
   
nic80 Membre non connecté

Rang

Avatar

Inscrit le : 06/08/2018 à 23h52

Messages: 1413

Le 02/11/2019 à 11h58
Bonjour,

Oui, j' ai testé avec la version 1.0.0 ( tant qu' à installer le fichier 1.0.0 .war de guacamole... Après je n' ai pas essayé de compiler les librairies clientes de la version actuelle du serveur guacd).

Après on peut essayer sans rajouter la librairie libuuid qui provient du paquet lib64ossp_uuid16-1.6.2-21.mga7.x86_64.rpm, mais je sais pas si cela compilera correctement. Quand à la dangerosité, je n' en ai aucune idée ( j' ai fait cette manipulation sur une VM de test que je peux casser sans problème (même si je préfère éviter quand même))

Il me semble que le ./configure cherche le fichier uuid.h dans ce répertoire, c' est pourquoi je l' ai crée pour mettre le fichier uuid.h dedans ( sinon je crois que le configure échoue).

La preuve après avoir renommé le répertoire ossp dans /usr/include, le configure me retourne:

Citation :
checking ossp/uuid.h presence... no
checking for ossp/uuid.h... no
checking whether uuid_make is declared... no
configure: error: "No OSSP uuid.h found in include path"


Le disable-guacenc permet de désactiver une fonctionnalité de d' encodage vidéo des flux.

Citation :
"--disable-guacenc do not build the Guacamole video encoding tool"


la seule chose trouvée sur guacenc sur le site d' Apache est la suivante:

Citation :
The libavcodec, libavutil, and libswscale libraries provided by FFmpeg are used by guacenc to encode video streams when translating recordings of Guacamole sessions. Without FFmpeg, the guacenc utility will simply not be built.

If you do not wish to make graphical recordings of Guacamole sessions, or do not wish to translate such recordings into video, then FFmpeg is not needed.


Après je n' ai pas trouvé comment faire compiler le support rdp malgré que le paquet freerdp-devel soit installé. Le configure me retourne toujours:

Citation :
checking for freerdp_new in -lfreerdp-core... no
checking for freerdp_new in -lfreerdp... no
configure: WARNING:
--------------------------------------------
Unable to find libfreerdp-core / libfreerdp
RDP will be disabled.
--------------------------------------------


Si le mainteneur du paquet freerdp-devel passe par ici, peut être aura t' il une idée ? ;-)

Pour le guacenc, le configure ajoute bien le support de l' outil guacenc, mais la compilation échoue avec ce message:

Citation :
Making all in src/guacenc
make[2] : on entre dans le répertoire « /home/nico/Téléchargements/guacamole/guacamole-server-1.0.0/src/guacenc »
CC guacenc-buffer.o
CC guacenc-cursor.o
CC guacenc-display.o
CC guacenc-display-buffers.o
CC guacenc-display-image-streams.o
CC guacenc-display-flatten.o
CC guacenc-display-layers.o
CC guacenc-display-sync.o
CC guacenc-encode.o
CC guacenc-ffmpeg-compat.o
CC guacenc-guacenc.o
guacenc.c: Dans la fonction « main »:
guacenc.c:79:5: error: « avcodec_register_all » est obsolète [-Werror=deprecated-declarations]
avcodec_register_all();
^~~~~~~~~~~~~~~~~~~~
In file included from guacenc.c:27:
/usr/include/libavcodec/avcodec.h:4102:6: note: déclaré ici
void avcodec_register_all(void);
^~~~~~~~~~~~~~~~~~~~
cc1 : tous les avertissements sont traités comme des erreurs
make[2]: *** [Makefile:761: guacenc-guacenc.o] Error 1
make[2] : on quitte le répertoire « /home/nico/Téléchargements/guacamole/guacamole-server-1.0.0/src/guacenc »
make[1]: *** [Makefile:510: all-recursive] Error 1
make[1] : on quitte le répertoire « /home/nico/Téléchargements/guacamole/guacamole-server-1.0.0 »
make: *** [Makefile:432: all] Error 2


edit: pour guacenc, j' ai trouvé ceci , mais je ne l' ai pas modifié dans le source téléchargé pour la version 1.0.0 ( qui est sortie après le commit). Après modification, le make se termine correctement.

Pendant le make, j' ai ceci :
Citation :
/usr/bin/ld: warning: libuuid.so.1, needed by /usr/lib64/libfontconfig.so.1, may conflict with libuuid.so.16


edit 2 :

un rpm -qa | grep rdp donne bien

Citation :
lib64freerdp2-2.0.0-0.rc4.1.mga7
lib64freerdp-devel-2.0.0-0.rc4.1.mga7
freerdp-2.0.0-0.rc4.1.mga7


Donc je ne sais pas d' où cette non découverte provient du fichier configure de guacamole ou parce qu' il manque un fichier quelque part. Edité par nic80 Le 02/11/2019 à 12h43
   
david.david Membre non connecté

Rang

Avatar

Modérateur Équipe Mageia

Inscrit le : 11/02/2008 à 23h08

Localisation : Bernwiller, Haut-Rhin

Messages: 2609

Le 02/11/2019 à 12h57
Alors j'ai mis à jour guacd 1.0.0 sur Cauldron mais il a fallu que je corrige le paquet ossp_uuid ainsi que le paquet util-linux :

http://svnweb.mageia.org/packages?view=revision&revision=1457269

http://svnweb.mageia.org/packages?view=revision&revision=1457292

Pour freerdp le problème vient que le projet guacd à toujours encore besoin de freerdp 1 qui n'est plus depuis longtemps disponible, on est à la version 2.


ASUS K73S (portable) :
Intel Core i3-2350M_2.3GHz, 8 GO RAM DDR3, écran LED 17" (1600x900), CG Intel HD intégrée + CG Nvidia GeForce 610M_1GB dédiée (Technologie Optimus), SSD Samsung 850 EVO 250GB + SSD Samsung 850 EVO 500GB.

Mageia 7 - x86_64bits/ KDE Plasma-5.15.4 (DVD édition), c' est de la bombe, vive MAGEIA et toute l'équipe du STAFF MLO.
de david.david <david.david@mageialinux-online.org>
28281 .Venez nous rejoindre sur le salon IRC de MLO
   
xuo Membre non connecté

Rang

Avatar

Inscrit le : 23/10/2011 à 18h17

Localisation : Bouc-Bel-Air

Messages: 470

Le 02/11/2019 à 16h16
Bonsoir,

On progresse ...
1) J'ai dû ajouter un :
rsync -avlHpg src/libguac/.libs/libguac.so* /usr/lib64/
D'ailleurs, il vaut mieux utiliser rsync que cp car sinon les liens symboliques ne sont pas conservés et cela pose des problème sur ldconfig.
2) J'ai du installer x11vnc.
/usr/bin/x11vnc -storepasswd
x11vnc -rfbauth /home/xuo/.vnc/passwd &
3) Ne pas se connecter dans guacamole depuis la machine qui tourne x11vnc. L'affichage se duplique encore et encore ... C'est joli mais ça finit mal.
4) Dans le fichier /etc/guacamole/user-mapping.xml :
<!-- Per-user authentication and config information -->
<authorize username="xuo" password="LE_MOT_DE_PASSE_DE LA PAGE_HTML">
<protocol>vnc</protocol>
<param name="hostname">localhost</param>
<param name="port">5900</param>
<param name="password">LE_MOT_DE_PASSE_X11VNC</param>
</authorize>
...
5) Je ne sais pas comment sortir une fois que je suis connecté sur le pc distant. J'ai voulu rafraichir la page depuis Firefox, je me suis fait virer et en plus le process x11vnc sur le serveur a crashé. A part fermer l'onglet, je ne sais pas comment faire. Et ça ne mettra pas forcément fin à la connexion.
6) Question supplémentaire : est-ce que les connexions sont bien sécurisées (par ssh) entre le client et le serveur ou faut-il encore faire du "vnc over ssh" ? Je n'ai pas eu le temps de regarder dans la doc Guacamole. Un realVNC/TigerVnc serait-i mieux ?
7) Il faut encore que je le teste depuis un pc sur internet. J'hésite à installer tout cela sur le serveur. Et tester depuis mon pc de debug (celui sur lequel j'ai fait toutes ces manips) va me poser d'autres problèmes d'accès depuis internet (ouvrir des ports sur la Freebox ???, ...). Je vais réfléchir. Mais il faut d'abord que je réponde au point 6).
8) Encore merci à tous pour l'aide. Sans vous, j'y serai encore ... :super:

Xuo.
   
nic80 Membre non connecté

Rang

Avatar

Inscrit le : 06/08/2018 à 23h52

Messages: 1413

Le 02/11/2019 à 16h55
Bonjour,

Pour le 1), je ne me suis pas occupé des librairies de libguac.so* (peut être faudrait t' il ! ;-) )
2) je n' ai tester qu' avec tiger-vnc (je n' ai pas vu d' autre vnc (et je pense que tout les vnc se basent sur le vnc common), mais de mes rapides tests, je n' ai pas constaté ce point (après je n' ai pas essayé d' applications, mais je me suis retrouvé avec une session vide donc rien à voir avec la session courante). Aprés le vncserver se lance sur le display :1 (et pas :0)...

Pour le 5) et le 6) je ne sais pas...

Edit: pour le 5, le serveur vnc ne permet pas de définir un timeout de fin de session (à coté d' options de chiffrement de la communication) ?

edit 2: @David.David: Merci pour l' explication... Y' a plus qu' à attendre que ce "bug" soit résolu, puisque à priori il y a beaucoup de choses qui ont changées entre la version 1.0 et 2.0.0rc4 ...

Edit 3: a priori, l' échange entre le client guacamole et le client guacd n' est chiffrée que si un certificat est fourni et l' option ssl est activée des deux côtés. En revanche, je n' ai rien vu concernant le chiffrement entre le client vnc et guacd.

Pour fermer une connexion, il faut utiliser la combinaison ctrl+alt+shit afin de faire apparaitre le menu de paramètres/options qui est masqué par défaut. Ensuite, il faut cliquer sur déconnecter. J' ai l' impression que la fermeture de l' onglet/navigateur ferme les connexions réseaux (peut être vérifiable en faisant un /sbin/ss | grep -i port_d_ecoute


Edité par nic80 Le 03/11/2019 à 08h25
   
xuo Membre non connecté

Rang

Avatar

Inscrit le : 23/10/2011 à 18h17

Localisation : Bouc-Bel-Air

Messages: 470

Le 03/11/2019 à 19h31
Bonsoir,

J'ai réussi à me connecter en ssh et vnc sur le pc de debug (ordi2) en utilisant l'adresse ip de la Freebox. Je confirmerai demain à partir du pc du travail.
1) Forwarder les ports 8080, 2222, 5990 et 4822 vers l'adresse IP de ordi2 (192.168.0.12) à partir de l'interface de la Freebox (ou autre).
  1. 8080 : tomcat
  2. 2222 : port ssh. Pour ne pas avoir de conflit avec mon serveur qui est serveur ssh sur le port 22.
  3. 5990 : port vnc. Pour ne pas avoir de conflit avec mon serveur qui est serveur vnc sur le port 5900 .
  4. 4822 : guacd
Je ne suis pas certain qu'il faille tout rediriger.

2) Ne pas oublier de modifier le fichier /etc/sshd_config sur ordi2 car sinon la connexion ssh ne se fait pas (j'ai passé une heure à comprendre :pleur4: pourquoi ça ne marchait pas => port = 2222
3) Démarrer x11vnc sur le port 5990 => x11vnc -rfbauth /home/xuo/.vnc/passwd -rfbport 5990
4) J'ai laisser le fichier /etc/guacamole/guacd.conf tel quel
bind_host = localhost
bind_port = 4822
5) Mon fichier de config :
<authorize
username="xuo" password="MON_MOT_DE_PASSE_GUACAMOLE">
<connection name="vnc">
<protocol>vnc</protocol>
<param name="hostname">localhost</param>
<param name="port">5990</param>
<param name="password">MON_MOT_DE_PASSE_VNC</param>
</connection>

<connection name="ssh">
<protocol>ssh</protocol>
<param name="hostname">localhost</param>
<param name="port">2222</param>
<param name="username">xuo</param>
</connection>
</authorize>

6) Se connecter sur <adresse ip de la freebox>:8080/guacamole-1.0.0

Prochaine étape : installer Guacamole sur le serveur en se connectant en https (??? on est sur Tomcat, pas Apache, peut-on utiliser Apache à la place de Tomcat ???) et savoir si les connexions seront chiffrées ou en clair (https suffisant ?).

Xuo.
   
nic80 Membre non connecté

Rang

Avatar

Inscrit le : 06/08/2018 à 23h52

Messages: 1413

Le 07/11/2019 à 22h52
Bonjour,

Pour le SSL, c' est quelque chose comme ça ?

Pour utiliser Apache directement, je n'en suis pas sur, puisque l' on déploye une application.

Edit: pour le forward des ports le port 8080 n' est pas suffisant ?
Parce que c' est le serveur Guacamole qui fait la connexion vers le serveur guacd, qui lui même fait la connexion vers le serveur ssh/vnc (donc seul le port de Tomcat devrait être visible de l' extérieur, non ? )

Client <-> internet <-> serveur guacamome <-> serveur guacd <-> serveur interne (port 2222 ou 5990) Edité par nic80 Le 08/11/2019 à 07h29
   
xuo Membre non connecté

Rang

Avatar

Inscrit le : 23/10/2011 à 18h17

Localisation : Bouc-Bel-Air

Messages: 470

Le 09/11/2019 à 16h04
Bonjour,

Il faut que je relise entièrement la doc Guacamole car pour le SSL, je ne comprends rien à ce qu'est le reverse proxy, des web Sockets, ...
Il est possible que rediriger seulement le port 8080 soit suffisant. Je vais essayer de faire ça pendant ces 3 jours.
Sinon, j'ai pas mal galérer sur le lancement de x11vnc lors du redémarrage du PC.
Je mets les fichiers que j'ai utilisés :

/etc/systemd/system/guacamoled.service

Citation :
[Unit]
Description = x11vnc and guacd deamon
After = syslog.target network.target remote-fs.target
# After = multi-user.target

[Service]
Type=forking
ExecStart = /root/startSystemdDaemon.csh -process guacamole -start
# ExecStart = /bin/x11vnc -rfbauth /home/eric/.vnc/passwd -xauth guess -rfbport 5990 -forever -bg
ExecStop = /root/startSystemdDaemon.csh -process guacamole -stop
# User = xuo
# Group = users

[Install]
WantedBy = multi-user.target


startGuacamoleService.csh
Citation :
#!/bin/tcsh -f

set hostName = `hostname`

set process_start = 0
set process_stop = 0
set process_name = none
set x11port = 5990

@ curArg = 1
while ($curArg <= $#argv)
switch ($argv[$curArg])
case -process:
@ curArg = $curArg + 1
set process_name = $argv[$curArg]
breaksw

case -start:
set process_start = 1
breaksw

case -stop:
set process_stop = 1
breaksw

default:
echo "ERROR : the argument $argv[$curArg] is not recognized."
exit 1
endsw
@ curArg = $curArg + 1
end

if ($process_name == 'none') then
echo "ERROR : -process is a required argument."
exit 1
endif

setenv DISPLAY :0

if ($process_start == 1) then
if ($process_name == 'guacamole') then
# /bin/x11vnc -rfbauth /home/eric/.vnc/passwd -rfbport $x11port -display :0.0 &
# /bin/x11vnc -rfbauth /home/eric/.vnc/passwd -rfbport $x11port &
# /bin/x11vnc -rfbauth /home/eric/.vnc/passwd -rfbport $x11port -xauth guess -display :0 -forever -bg
/bin/x11vnc -rfbauth /home/eric/.vnc/passwd -rfbport $x11port -xauth guess -forever -bg
/sbin/guacd
endif
endif

if ($process_stop == 1) then
if ($process_name == 'guacamole') then
set pid = `pgrep -f /bin/x11vnc`
if ($pid != '') then
kill $pid
endif
set pid = `pgrep -f guacd`
if ($pid != '') then
kill $pid
endif
endif
endif

exit 0



Xuo.
   
xuo Membre non connecté

Rang

Avatar

Inscrit le : 23/10/2011 à 18h17

Localisation : Bouc-Bel-Air

Messages: 470

Le 10/11/2019 à 12h03
Bonjour,

Je confirme que seul le port 8080 a besoin d'être redirigé.
Pour la connexion ssl, je ne sais pas comment faire car, pour le coup, je pense qu'il va y avoir des conflits avec mon 'vrai' serveur apache. J'ai l'impression qu'il faudra que je jongle avec les redirections de la Freebox.
Je veux encore vérifier certaines choses 'en vrai' c-à-d depuis le boulot ou depuis chez quelqu'un d'autre mais, pour le moment, je suis assez impressionné par Guacamole. C'est assez fluide (à confirmer depuis une connexion vraiment distante), on peut choisir de se connecter en ssh ou en vnc à partir de la même interface, ...

Xuo.
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie