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 21:36] Debian Alain [connexion avec ssl (préambule)] |
doc:reseau:x11vnc [26/03/2019 12:08] Debian Alain [Démarrage automatique] |
||
---|---|---|---|
Ligne 11: | Ligne 11: | ||
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=23958]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=23958]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | Ce programme permet de prendre le contrôle physique d'un ordinateur à distance ( contrôler clavier, souris, voir l'écran etc ...). Utile pour dépanner une personne à distance ou utiliser un ordinateur sans écran ( serveur, ou écran abîmé... ). x11vnc est un programme à installer sur l'ordinateur distant à contrôler ( partie serveur ). Il fonctionne de paire avec un "client VNC" ( un second programme à installer sur votre machine ex : xtigervncviewer ), qui vous donnera le contrôle de la machine distante. x11vnc vient de X11 ( le serveur graphique de Linux ) et VNC, le nom du protocole utilisé ici ( Virtual Network Computing ). | + | Ce programme permet de prendre le contrôle physique d'un ordinateur à distance ( contrôler clavier, souris, voir l'écran etc ...). Utile pour dépanner une personne à distance ou utiliser un ordinateur sans écran ( serveur, ou écran abîmé... ). x11vnc est un programme à installer sur l'ordinateur distant à contrôler ( partie serveur ). Il fonctionne de pair avec un "client VNC" ( un second programme à installer sur votre machine ex : xtigervncviewer ), qui vous donnera le contrôle de la machine distante. x11vnc vient de X11 ( le serveur graphique de Linux ) et VNC, le nom du protocole utilisé ici ( Virtual Network Computing ). |
+ | les commandes ci-dessous ont été testés sur | ||
+ | |||
+ | un serveur debian stretch 9.8(amd64) bureau mate(1.20.4) en V.irtual M.achine (192.168.1.32) Virtual Box(6.0.4) . kernel : Linux debian 4.19.0-0.bpo.2-amd64 #1 SMP Debian 4.19.16-1~bpo9+1 (2019-02-07) x86_64 GNU/Linux | ||
+ | |||
+ | |||
+ | ou un [[https://www.amazon.fr/HP-Compaq-240Go-Graveur-Windows/dp/B01IX3R6B6/ref=sr_1_3?ie=UTF8&qid=1553593639&sr=8-3&keywords=HP+6005+Pro | pc hp 6005]] pour le script systemd . stretch également . | ||
+ | |||
+ | |||
+ | et un client debian buster testing amd64 bureau gnome(3.30.2) wayland . | ||
+ | kernel : Linux Alain-PC 4.19.0-2-amd64 #1 SMP Debian 4.19.16-1 (2019-01-17) x86_64 GNU/Linux | ||
+ | |||
+ | |||
+ | |||
Ligne 69: | Ligne 82: | ||
il y a possibilité de créer un "tunnel ssh" (voir ci - après et liens) | il y a possibilité de créer un "tunnel ssh" (voir ci - après et liens) | ||
- | et / ou de créer une connexion vnc par ssl (ssvnc) .</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(et/ou root) de votre systeme ! </note> | + | <note warning>ATTENTION ! ne confondez pas le mot de passe de vnc et le mot de passe user de votre systeme ! </note> |
Ligne 86: | Ligne 99: | ||
en ssh , (sur la machine locale) vers la machine distante : | en ssh , (sur la machine locale) vers la machine distante : | ||
<code user>ssh id_user_distant@ip_distante</code> | <code user>ssh id_user_distant@ip_distante</code> | ||
+ | |||
+ | exemple : | ||
+ | |||
+ | où l'on voit la commande (ssh) le user distant(alain) et l'ip distant (192.168.1.32 : adresse réseau local) | ||
+ | |||
+ | I.P. vient de l'anglais I.nternet P.rotocol , soit : Protocole Internet . | ||
+ | |||
+ | il s'agit d'un procédé d'adressage à l'origine sur une séquence de 4 chiffres (IPV4) séparés par un point . | ||
+ | |||
+ | à venir , l' IPV6 : séquence et zone d'adressage beaucoup plus grands . | ||
+ | |||
+ | {{/file-Rb1aeab106203e374cbc6b52e65cf4357.png}} | ||
pour plus ample information , voire les liens en bas du document . | pour plus ample information , voire les liens en bas du document . | ||
Ligne 99: | Ligne 124: | ||
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 -q -many -rfbauth ~/.vnc/passwd</code> |
- | <note important>IMPORTANT ! | + | <note tip>IMPORTANT ! |
- | on parle bien ici du mot de passe de vnc ! </note> | + | 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> | ||
+ | |||
+ | <code>alain@debian:~$ x11vnc -q -many -rfbauth ~/.vnc/passwd | ||
+ | 26/03/2019 03:42:44 | ||
+ | 26/03/2019 03:42:44 *** XOpenDisplay failed. No -display or DISPLAY. | ||
+ | 26/03/2019 03:42:44 *** Trying ":0" in 4 seconds. Press Ctrl-C to abort. | ||
+ | 26/03/2019 03:42:44 *** 1 2 3 4 | ||
+ | 26/03/2019 03:42:48 *** XOpenDisplay of ":0" successful. | ||
+ | 26/03/2019 03:42:48 | ||
+ | |||
+ | The VNC desktop is: debian:0 | ||
+ | PORT=5900 | ||
+ | </code> | ||
===== Créer un tunnel ssh : ===== | ===== Créer un tunnel ssh : ===== | ||
Ligne 115: | Ligne 153: | ||
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. | 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 -q -display :0'</code> |
Pour connecter le client à l'autre bout du tunnel | Pour connecter le client à l'autre bout du tunnel | ||
Ligne 133: | Ligne 171: | ||
#create SSH tunnel | #create SSH tunnel | ||
- | ssh -f -L 5900:ip_distante:5900 -t user@ip_distante 'x11vnc -geometry 1280x800; /bin/bash' | + | ssh -f -L 5900:ip_distante:5900 -t user@ip_distante 'x11vnc -q -geometry 1280x800; /bin/bash' |
#open vncviewer | #open vncviewer | ||
Ligne 147: | Ligne 185: | ||
#create SSH tunnel | #create SSH tunnel | ||
- | ssh -f -L 5900:ip_distante:5900 -t user@ip_distante 'x11vnc -geometry 1280x800; /bin/bash' | + | ssh -f -L 5900:ip_distante:5900 -t user@ip_distante 'x11vnc -q -geometry 1280x800; /bin/bash' |
#open vncviewer | #open vncviewer | ||
Ligne 154: | Ligne 192: | ||
exit 0 | exit 0 | ||
EOF</code> | EOF</code> | ||
+ | |||
n'oubliez pas les droits : | n'oubliez pas les droits : | ||
Ligne 172: | Ligne 211: | ||
<note tip>vous pouvez éditer le script avec nano (voir plus amples infos dans les notes de bas de page)</note> | <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 ou root) </note> | + | <note important>on parle , ici , de la connexion au systeme (en ssh) , donc , du mot de passe systeme (user) |
+ | par ailleurs, bien que la connexion x11vnc ne soit pas protégée (port 5900) , | ||
+ | |||
+ | elle passe par ssh , donc , dans un tunnel (port 22) , et est , de ce fait , cryptée par ssh. | ||
+ | </note> | ||
+ | |||
+ | écran : | ||
+ | |||
+ | <code>alain@Alain-PC:~$ ssh -L 5900:localhost:5900 192.168.1.32 'x11vnc -q -display :0' | ||
+ | alain@192.168.1.32's password: | ||
+ | ############################################################### | ||
+ | #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# | ||
+ | #@ @# | ||
+ | #@ ** WARNING ** WARNING ** WARNING ** WARNING ** @# | ||
+ | #@ @# | ||
+ | #@ YOU ARE RUNNING X11VNC WITHOUT A PASSWORD!! @# | ||
+ | #@ @# | ||
+ | #@ This means anyone with network access to this computer @# | ||
+ | #@ may be able to view and control your desktop. @# | ||
+ | #@ @# | ||
+ | #@ >>> If you did not mean to do this Press CTRL-C now!! <<< @# | ||
+ | #@ @# | ||
+ | #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# | ||
+ | ############################################################### | ||
+ | |||
+ | PORT=5900 | ||
+ | |||
+ | The VNC desktop is: debian:0 | ||
+ | </code> | ||
+ | |||
+ | <code>alain@Alain-PC:~$ vncviewer localhost | ||
+ | |||
+ | TigerVNC Viewer 64-bit v1.9.0 | ||
+ | Built on: 2018-12-01 21:51 | ||
+ | Copyright (C) 1999-2018 TigerVNC Team and many others (see README.rst) | ||
+ | See http://www.tigervnc.org for information on TigerVNC. | ||
+ | |||
+ | Tue Mar 26 04:04:18 2019 | ||
+ | DecodeManager: Detected 16 CPU core(s) | ||
+ | DecodeManager: Creating 4 decoder thread(s) | ||
+ | CConn: connected to host localhost port 5900 | ||
+ | CConnection: Server supports RFB protocol version 3.8 | ||
+ | CConnection: Using RFB protocol version 3.8 | ||
+ | CConnection: Choosing security type None(1) | ||
+ | CConn: Using pixel format depth 24 (32bpp) little-endian rgb888 | ||
+ | CConn: Using Tight encoding | ||
+ | </code> | ||
===== connexion avec ssl (préambule) ===== | ===== 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 | installer ssvnc en local | ||
<code root>apt install ssvnc </code> | <code root>apt install ssvnc </code> | ||
Ligne 191: | Ligne 280: | ||
en ssh , on se connecte à la machine distante : | en ssh , on se connecte à la machine distante : | ||
<code user>ssh <user_distant>@<ip_distant></code> | <code user>ssh <user_distant>@<ip_distant></code> | ||
- | <note important>ici , il est question du mot de passe systeme (en cas de besoin)</note> | + | <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> | 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 , | après avoir rentré la passphrase , qu'on note sur un carnet de peur de l'oublier , | ||
- | <note important>ICI , il est question du mot de passe ssl (de la passphrase) </note> | + | <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 : | on va copier la clé depuis le serveur vers le client : | ||
Ligne 203: | Ligne 292: | ||
relancer x11vnc en ssh | relancer x11vnc en ssh | ||
- | <code user>x11vnc -ssl SAVE-key</code> | + | <code user>x11vnc -ssl SAVE-key -forever</code> |
- | rentrer la passphrase que l'on a noté (pour ne pas l'oublier). | + | <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 ne ferme pas la console distante (ssh) et | ||
Ligne 215: | Ligne 304: | ||
et le mot de passe du 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 | laisser les réglages par défaut et | ||
Ligne 225: | Ligne 318: | ||
voilà ! | voilà ! | ||
+ | |||
+ | |||
+ | ===== Connexion à ssl : écrans types ssvnc ===== | ||
+ | |||
+ | graphiques : | ||
+ | |||
+ | [[https://framapic.org/x0dKtkbTpsLt/tqwCRehZfb7A.png|image de départ ssvnc]] | ||
+ | |||
+ | {{/file-Rd6be60172f02d1b2e7df6e3512487a07.png}} | ||
+ | |||
+ | [[https://framapic.org/X5prRZWcqSMO/l6vydxBIqKfp.png|ssvnc menu "options"]] | ||
+ | |||
+ | {{/file-Rdf464b8746bb16476ae7809343488537.png}} | ||
+ | |||
+ | [[https://framapic.org/f23Yib5HdyrH/Jruvs251FvjB.png|écran d'accueil ssvnc ]] | ||
+ | |||
+ | {{/file-R9d27116ce2291bd78762aa6219fcf447.png}} | ||
+ | |||
+ | [[https://framapic.org/Se130C7M5qIg/7mZedNZ5tv6y.png|demande confirmation mot de passe systeme (ssh) ]] | ||
+ | |||
+ | {{/file-Rf860ee84ba032ac7a132c3b8f11073e3.png}} | ||
+ | |||
+ | [[https://framapic.org/rusasqK1MmPN/fQD8vsoVybFV.png|résultat par exemple (ssvnc d'une V.M. à l'origine)]] | ||
+ | |||
+ | {{/file-R1482911941c8b0f10ea1a1670a63d5fc.png}} | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
Ligne 231: | Ligne 354: | ||
==== Au démarrage d'une session graphique avec "autostart" ==== | ==== Au démarrage d'une session graphique avec "autostart" ==== | ||
+ | |||
+ | <code user>nano ~/.config/autostart/x11vnc.desktop </code> | ||
+ | <code>[Desktop Entry] | ||
+ | |||
+ | Type=Application | ||
+ | Name=x11vnc | ||
+ | Exec=x11vnc -forever -rfbauth /home/alain/.vnc/passwd</code> | ||
+ | <note tip>sur votre configuration , remplacez "/home/alain/" par "/home/<votre_user>/"</note> | ||
+ | |||
+ | au redémarrage de la session , on s'apperçoit que l'on a un processus de lancé : | ||
+ | <code user> pgrep x11vnc</code> | ||
+ | voilà son P.I.D. par exemple | ||
+ | <code>1536</code> | ||
+ | |||
+ | le lancement de vncviewer (ou tigervnc , si vous préférez ) , vous donnera un résultat positif : | ||
+ | <code user>vncviewer 192.168.1.32:5900</code> | ||
+ | <code>TigerVNC Viewer 64-bit v1.9.0 | ||
+ | Built on: 2018-12-01 21:51 | ||
+ | Copyright (C) 1999-2018 TigerVNC Team and many others (see README.rst) | ||
+ | See http://www.tigervnc.org for information on TigerVNC. | ||
+ | |||
+ | Tue Mar 26 10:21:38 2019 | ||
+ | DecodeManager: Detected 16 CPU core(s) | ||
+ | DecodeManager: Creating 4 decoder thread(s) | ||
+ | CConn: connected to host 192.168.1.32 port 5900 | ||
+ | CConnection: Server supports RFB protocol version 3.8 | ||
+ | CConnection: Using RFB protocol version 3.8 | ||
+ | CConnection: Choosing security type VncAuth(2) | ||
+ | |||
+ | Tue Mar 26 10:21:50 2019 | ||
+ | CConn: Using pixel format depth 24 (32bpp) little-endian rgb888 | ||
+ | CConn: Using Tight encoding | ||
+ | </code> | ||
+ | |||
==== Au démarrage du système avec les "services systemd" ==== | ==== Au démarrage du système avec les "services systemd" ==== | ||
Ligne 284: | Ligne 441: | ||
mais normalement , vncviewer ou remmina vous donneront accès à l'interface graphique . | mais normalement , vncviewer ou remmina vous donneront accès à l'interface graphique . | ||
+ | |||
+ | <note tip>N.B.: si , comme moi , vous recopiez bêtement le texte et que , donc , vous devez le corriger ... | ||
+ | |||
+ | après la rectification , faites ceci : | ||
+ | |||
+ | <code root>systemctl daemon-reload | ||
+ | |||
+ | systemctl restart name.service</code> | ||
+ | |||
+ | dans le cas présent , remplacez "name.service" par "x11vnc.service" (le nom de votre démon)</note> | ||
Ligne 325: | Ligne 492: | ||
EOF</code> | EOF</code> | ||
- | <code>adaptez /home/switch/ à votre configuration . | + | <note tip>adaptez /home/switch/ à votre configuration . |
- | normalement /home/<utilisateur>/</code> | + | normalement /home/<utilisateur>/</note> |
avec un tunnel ssh , on peut obtenir ceci : | avec un tunnel ssh , on peut obtenir ceci : | ||
<code user>nano .bash_aliases</code> | <code user>nano .bash_aliases</code> | ||
- | <code user>alias assistance='ssh -f -L 5900:localhost:5900 your.ssh.server "x11vnc -safer -localhost -nopw -once -display :0"; vncviewer localhost:5900'</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> |
+ | <note tip>je ne sais plus s'il faut redémarrer la session ou le pc après la création d'un alias .</note> | ||
+ | On peut lister les alias . ce qui permet de verifier si le nôtre est bien enregistré . | ||
- | je ne sais plus s'il faut redémarrer la session ou le pc après la création d'un alias . | + | <code user>alias</code> |
+ | <code>alias agf='sudo apt full-upgrade' | ||
+ | alias agg='sudo apt upgrade' | ||
+ | alias agu='sudo apt update' | ||
+ | alias dir='dir --color=auto' | ||
+ | alias egrep='egrep --color=auto' | ||
+ | alias fgrep='fgrep --color=auto' | ||
+ | alias fullmaj='agu && agf' | ||
+ | alias grep='grep --color=auto' | ||
+ | alias l='ls -CF' | ||
+ | alias la='ls -A' | ||
+ | alias ll='ls -l' | ||
+ | alias logs='sudo multitail -s 2 -f /var/log/messages -f /var/log/kern.log -f /var/log/syslog -f /var/log/dmesg -f /var/log/ufw.log' | ||
+ | alias ls='ls --color=auto' | ||
+ | alias maj='agu && agg' | ||
+ | alias vdir='vdir --color=auto' | ||
+ | </code> | ||
Ligne 341: | Ligne 526: | ||
- | ===== culture générale <biliographies> ===== | + | |
+ | ===== culture générale <bibliographies> ===== | ||
Ligne 409: | Ligne 595: | ||
[[https://sourceforge.net/projects/ssvnc/ | sourceforge ssvnc (eng.)]] | [[https://sourceforge.net/projects/ssvnc/ | sourceforge ssvnc (eng.)]] | ||
+ | |||
+ | adressage I.P. : | ||
+ | |||
+ | [[https://www.supinfo.com/articles/single/4557-differences-ipv4-ipv6 | SUPINFO : IPV4 VS IPV6]] | ||
+ | |||
+ | |||