Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:x11vnc [25/03/2019 10:57] Debian Alain [Créer un tunnel ssh :] |
doc:reseau:x11vnc [26/03/2019 02:39] Debian Alain [connexion avec ssl (utilisation manuelle)] |
||
---|---|---|---|
Ligne 65: | Ligne 65: | ||
- | <note tip>de même que la sécurisation par mot de passe , x11vnc permet aussi la sécurisation par (clé) ssl. | + | <note tip>de même que la sécurisation par mot de passe , |
- | pour la sécurisation par clé ssl , j'invite les bonnes volontés à se pencher dessus . | + | il y a possibilité de créer un "tunnel ssh" (voir ci - après et liens) |
- | il y a néamoins possibilité de créer un "tunnel ssh" (voir ci - après et liens) </note> | + | ou de créer une connexion vnc par ssl (ssvnc) .</note> |
+ | |||
+ | <note warning>ATTENTION ! ne confondez pas le mot de passe de vnc et le mot de passe user de votre systeme ! </note> | ||
Ligne 97: | Ligne 99: | ||
on peut aussi la lancer en direct sur le pc distant où est installé le logiciel | on peut aussi la lancer en direct sur le pc distant où est installé le logiciel | ||
- | <code user>x11vnc -many -rfbauth ~/.vnc_passwd</code> | + | <code user>x11vnc -many -rfbauth ~/.vnc/passwd</code> |
+ | |||
+ | <note tip>IMPORTANT ! | ||
+ | |||
+ | on parle bien ici du mot de passe de vnc ! | ||
+ | |||
+ | stocké dans le fichier par défaut "~/.vnc/passwd" de la commande "x11vnc -storepasswd" </note> | ||
===== Créer un tunnel ssh : ===== | ===== Créer un tunnel ssh : ===== | ||
L'inconvénient de cette méthode est que vnc passe par un port non crypté (5900 pour le display :0). | L'inconvénient de cette méthode est que vnc passe par un port non crypté (5900 pour le display :0). | ||
+ | |||
Pour traverser une box ou un routeur il faut ouvrir des ports spécifiques pour vnc. | Pour traverser une box ou un routeur il faut ouvrir des ports spécifiques pour vnc. | ||
- | L'idéal est de passer par un tunnel. Seul le port 22 pour ssh est routé dans la box, tout ce qui passe à travers est crypté ainsi que les tunnels qu'il ouvrira. | + | |
+ | L'idéal est de passer par un tunnel. | ||
+ | |||
+ | Seul le port 22 pour ssh est routé dans la box, tout ce qui passe à travers est crypté ainsi que les tunnels qu'il ouvrira. | ||
<code user>ssh -L 5900:localhost:5900 machine_distante 'x11vnc -display :0'</code> | <code user>ssh -L 5900:localhost:5900 machine_distante 'x11vnc -display :0'</code> | ||
Ligne 114: | Ligne 126: | ||
hop ! le bureau distant ... | hop ! le bureau distant ... | ||
+ | |||
+ | ici , un script qui fonctionne à peu près . | ||
+ | |||
+ | il est un peu capricieux , aussi , n'hésitez pas à le relancer si au bout de 10 secondes vous n'avez toujours rien à l'écran . | ||
+ | |||
+ | <file bash scriptvnc.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | #create SSH tunnel | ||
+ | ssh -f -L 5900:ip_distante:5900 -t user@ip_distante 'x11vnc -geometry 1280x800; /bin/bash' | ||
+ | |||
+ | #open vncviewer | ||
+ | vncviewer localhost:5900 | ||
+ | |||
+ | exit 0 | ||
+ | </file> | ||
+ | |||
+ | pour vous simplifier le travail , voici une commande à taper : | ||
+ | |||
+ | <code root>cat > ~/scriptvnc.sh <<EOF | ||
+ | #!/bin/bash | ||
+ | |||
+ | #create SSH tunnel | ||
+ | ssh -f -L 5900:ip_distante:5900 -t user@ip_distante 'x11vnc -geometry 1280x800; /bin/bash' | ||
+ | |||
+ | #open vncviewer | ||
+ | vncviewer localhost:5900 | ||
+ | |||
+ | exit 0 | ||
+ | EOF</code> | ||
+ | |||
+ | n'oubliez pas les droits : | ||
+ | <code root>chmod u+x ~/scriptvnc.sh</code> | ||
+ | |||
+ | dorénavant , <code user>./scriptvnc.sh</code>suffit pour lancer sur votre machine locale l'affichage de votre machine distante . | ||
+ | |||
+ | qui plus est , en passant par un tunnel ssh . (sécurité) | ||
+ | |||
+ | NB: n'hésitez pas à remplacer <user> par le nom de l'utilisateur distant | ||
+ | |||
+ | et <ip_distante> par l'adresse ip de votre machine distante . | ||
+ | |||
+ | vous pouvez accéder à l'ip de votre machine distante dans les paramètres de certaines box , ou , | ||
+ | |||
+ | sur la machine distante , en tapant <code user>ip a</code> et en cherchant les données "inet" pour l'interface concernée . | ||
+ | |||
+ | <note tip>vous pouvez éditer le script avec nano (voir plus amples infos dans les notes de bas de page)</note> | ||
+ | |||
+ | <note important>on parle , ici , de la connexion au systeme (en ssh) , donc , du mot de passe systeme (user) </note> | ||
+ | |||
+ | ===== connexion avec ssl (préambule) ===== | ||
+ | <note tip>SSVNC est un client ssl - vnc dérivé de tightvnc . il gère aussi le ssh ainsi que le ssl + ssh . | ||
+ | |||
+ | je ne parle pas de ces deux options annexes ici , je ne me suis pas penché dessus . | ||
+ | |||
+ | mais libre à vous . vous pourrez ainsi développer ce tuto . </note> | ||
+ | installer ssvnc en local | ||
+ | <code root>apt install ssvnc </code> | ||
+ | |||
+ | on crée le dossier /.vnc/certs/accepted/ | ||
+ | |||
+ | avant de le créer , vérifier , avec tree , s'il n'existe pas déjà : | ||
+ | |||
+ | auquel cas , l'étape de création est inutile . | ||
+ | <code user>tree ~/.vnc/</code> | ||
+ | <code root>mkdir ~/.vnc/certs/ | ||
+ | |||
+ | mkdir ~/.vnc/certs/accepted/</code> | ||
+ | |||
+ | en ssh , on se connecte à la machine distante : | ||
+ | <code user>ssh <user_distant>@<ip_distant></code> | ||
+ | <note tip>ici , il est question du mot de passe systeme (en cas de besoin)</note> | ||
+ | |||
+ | on initialise la connexion :<code user>x11vnc -ssl SAVE-key</code> | ||
+ | après avoir rentré la passphrase , qu'on note sur un carnet de peur de l'oublier , | ||
+ | <note tip>ICI , il est question du mot de passe ssl (de la passphrase)</note> | ||
+ | |||
+ | on va copier la clé depuis le serveur vers le client : | ||
+ | <code user>scp -r -p ~/.vnc/certs/server-key.crt id_locale@ip_locale:~/.vnc/certs/accepted/server-key.crt</code> | ||
+ | |||
+ | ===== connexion avec ssl (utilisation manuelle) ===== | ||
+ | |||
+ | relancer x11vnc en ssh | ||
+ | <code user>x11vnc -ssl SAVE-key -forever</code> | ||
+ | <note important>rentrer la passphrase que l'on a noté (pour ne pas l'oublier).</note> | ||
+ | |||
+ | on ne ferme pas la console distante (ssh) et | ||
+ | |||
+ | on ouvre une console locale : | ||
+ | <code user>ssvnc</code> | ||
+ | puis rentrer comme demandé l'adresse de l'hôte : | ||
+ | |||
+ | ici , le pc distant . | ||
+ | |||
+ | et le mot de passe du pc distant . | ||
+ | |||
+ | ne pas rentrer de proxy . | ||
+ | |||
+ | dans le cas présent , c'est inutile . | ||
+ | |||
+ | laisser les réglages par défaut et | ||
+ | |||
+ | cliquer sur connexion . | ||
+ | |||
+ | ssvnc demandera confirmation pour le certificat (la 1ere fois) et | ||
+ | |||
+ | lancera vncviewer en ssl . | ||
+ | |||
+ | voilà ! | ||
+ | |||
+ | graphiques : | ||
+ | |||
+ | [[https://framapic.org/x0dKtkbTpsLt/tqwCRehZfb7A.png|image de départ ssvnc]] | ||
+ | |||
+ | [[https://framapic.org/X5prRZWcqSMO/l6vydxBIqKfp.png|ssvnc menu "options"]] | ||
+ | |||
+ | [[https://framapic.org/f23Yib5HdyrH/Jruvs251FvjB.png|écran d'accueil ssvnc ]] | ||
+ | |||
+ | [[https://framapic.org/Se130C7M5qIg/7mZedNZ5tv6y.png|demande confirmation mot de passe systeme (ssh) ]] | ||
+ | |||
+ | [[https://framapic.org/rusasqK1MmPN/fQD8vsoVybFV.png|résultat par exemple (ssvnc d'une V.M. à l'origine)]] | ||
+ | |||
+ | |||
Ligne 134: | Ligne 269: | ||
on peut faire ceci : | on peut faire ceci : | ||
- | ce n'est pas une solution universelle . il faut parfois l'adapter . | + | <note warning>ce n'est pas une solution universelle . il faut parfois l'adapter .</note> |
<code root>cat > /etc/systemd/system/x11vnc.service <<EOF | <code root>cat > /etc/systemd/system/x11vnc.service <<EOF | ||
Ligne 151: | Ligne 286: | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
EOF</code> | EOF</code> | ||
+ | |||
+ | N.B.: remplacer <code>/path/.vncpasswd</code> par l'adresse du fichier de mot de passe . | ||
+ | |||
+ | ici (dans ce tuto): <code>/home/<user>/.vnc/passwd</code> | ||
+ | |||
+ | par exemple : <code>/home/switch/.vnc/passwd</code> | ||
on attribue les bons droits au fichier : | on attribue les bons droits au fichier : | ||
Ligne 175: | Ligne 316: | ||
===== Astuces :) ===== | ===== Astuces :) ===== | ||
Lancer un serveur vnc à distance , puis s'y connecter de chez vous, en une commande grâce à ssh : | Lancer un serveur vnc à distance , puis s'y connecter de chez vous, en une commande grâce à ssh : | ||
+ | il s'agit d'un "tunnel ssh" . | ||
+ | |||
<code user>ssh -f -L 5900:localhost:5900 your.ssh.server "x11vnc -safer -localhost -nopw -once -display :0"; vinagre localhost:5900</code> | <code user>ssh -f -L 5900:localhost:5900 your.ssh.server "x11vnc -safer -localhost -nopw -once -display :0"; vinagre localhost:5900</code> | ||
+ | |||
+ | dans le cas présent , vous pouvez remplacer "vinagre" par "vncviewer" . | ||
+ | |||
+ | ce qui donne : | ||
+ | <code user>ssh -f -L 5900:localhost:5900 your.ssh.server "x11vnc -safer -localhost -nopw -once -display :0"; vncviewer localhost:5900</code> | ||
+ | |||
+ | pareil : s'il est un peu capricieux , n'hésitez pas à le relancer plusiers fois de suite (2 ou 3 fois suffiront , normalement) | ||
Ligne 202: | Ligne 352: | ||
<code>adaptez /home/switch/ à votre configuration . | <code>adaptez /home/switch/ à votre configuration . | ||
normalement /home/<utilisateur>/</code> | normalement /home/<utilisateur>/</code> | ||
+ | |||
+ | avec un tunnel ssh , on peut obtenir ceci : | ||
+ | <code user>nano .bash_aliases</code> | ||
+ | <code user>alias tunnelssh='ssh -f -L 5900:localhost:5900 your.ssh.server "x11vnc -safer -localhost -nopw -once -display :0"; vncviewer localhost:5900'</code> | ||
+ | |||
+ | |||
je ne sais plus s'il faut redémarrer la session ou le pc après la création d'un alias . | je ne sais plus s'il faut redémarrer la session ou le pc après la création d'un alias . | ||
Ligne 210: | Ligne 366: | ||
- | ===== culture générale ===== | + | ===== culture générale <biliographies> ===== |
- | à lire , avant tout : | + | lectures utiles à compulser librement ou en cas de curiosité : |
x11vnc : | x11vnc : | ||
Ligne 225: | Ligne 381: | ||
[[https://forum-francophone-linuxmint.fr/viewtopic.php?f=22&t=12697#p145523 | linux mint perso ]] | [[https://forum-francophone-linuxmint.fr/viewtopic.php?f=22&t=12697#p145523 | linux mint perso ]] | ||
- | [[http://www.karlrunge.com/x11vnc/ | karlrunge ]] | + | [[http://www.karlrunge.com/x11vnc/ | karlrunge (eng.)]] |
+ | |||
+ | [[https://www.mankier.com/1/x11vnc | x11vnc : commandes (eng.) ]] | ||
+ | |||
+ | Site généraliste très intéressant (ssh , vnc , ssvnc , ...) : | ||
+ | |||
+ | [[https://pronflette.developpez.com/tutoriels/controle-distance/]] | ||
+ | |||
+ | vnc : | ||
+ | |||
+ | [[https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-debian-9 | install and configure vnc (eng.) ]] | ||
tigervnc : | tigervnc : | ||
Ligne 248: | Ligne 414: | ||
[[http://mad-b.net/docs/linux-vncssh.html | vnc : accès par tunnel ssh ]] | [[http://mad-b.net/docs/linux-vncssh.html | vnc : accès par tunnel ssh ]] | ||
+ | |||
+ | [[https://superuser.com/questions/1270767/ssh-tunnel-and-vnc | super user : tunel ssh (eng.) ]] | ||
+ | |||
+ | ssl : | ||
+ | |||
+ | [[http://www.karlrunge.com/x11vnc/ssl.html | ssl x11vnc (eng.)]] | ||
+ | |||
+ | [[http://ssvnc.sourceforge.net/ | ssl visualisation en graphique ]] | ||
+ | |||
+ | [[http://www.sebsauvage.net/comprendre/ssl/ | explications sur ssl ]] | ||
+ | |||
+ | nano : | ||
+ | |||
+ | [[https://debian-facile.org/doc:editeurs:nano | petit mode d'emploi de nano ]] | ||
+ | |||
+ | ssvnc : | ||
+ | |||
+ | [[http://www.karlrunge.com/x11vnc/ssvnc.html | site officiel ssvnc (eng.)]] | ||
+ | |||
+ | [[https://sourceforge.net/projects/ssvnc/ | sourceforge ssvnc (eng.)]] | ||