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 [26/03/2019 01:46] Debian Alain [Configuration] |
doc:reseau:x11vnc [01/07/2023 09:00] cpm [Configuration] orthographe |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
* Objet : Prise de controle d'un Bureau graphique à distance | * Objet : Prise de controle d'un Bureau graphique à distance | ||
- | * Niveau requis : {{tag>débutant avisé}} | + | * Niveau requis : {{tag>avisé}} |
* Commentaires : // x11vnc est un serveur utilisant le protocole vnc // | * Commentaires : // x11vnc est un serveur utilisant le protocole vnc // | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) , [[doc:reseau:ssh|ssh: shell distant sécurisé]] | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) , [[doc:reseau:ssh|ssh: shell distant sécurisé]] | ||
- | * Suivi : {{tag>en-chantier à-tester à-placer}} - FIXME Pour choisir, voir les autres Tags possibles dans [[:atelier:#tags|l'Atelier]]. | + | * Suivi : {{tag>à-tester}} |
* Création par [[user>Switch]] 23/03/2019 | * Création par [[user>Switch]] 23/03/2019 | ||
* Co-créé par [[utilisateurs:debian-alain|Debian_Alain]] 24/03/2019 | * Co-créé par [[utilisateurs:debian-alain|Debian_Alain]] 24/03/2019 | ||
- | * Testé par Debian_Alain le 24/03/2019 FIXME | + | * Testé par Debian_Alain le 24/03/2019 |
* 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 [[https://wiki.debian.org/fr/DebianStretch | debian stretch]] 9.8(amd64) [[ https://mate-desktop.org/fr/ | bureau mate]](1.16.2) en [[https://www.oracle.com/fr/virtualization/virtualbox/ | V.irtual M.achine Virtual Box]](6.0.4) . | ||
+ | |||
+ | [[https://fr.wikipedia.org/wiki/Noyau_Linux | kernel]] : Linux Host-004 4.19.0-0.bpo.4-amd64 #1 SMP Debian 4.19.28-2~bpo9+1 (2019-03-27) 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 9.8 mate 1.16.2 | ||
+ | |||
+ | [[https://fr.wikipedia.org/wiki/Noyau_Linux | kernel]]: Linux Host-001 4.19.0-0.bpo.2-amd64 #1 SMP Debian 4.19.16-1~bpo9+1 (2019-02-07) x86_64 GNU/Linux | ||
+ | |||
+ | |||
+ | et un client debian [[ https://www.debian.org/releases/buster/ | buster testing]] amd64 [[https://fr.wikipedia.org/wiki/GNOME | bureau gnome]](3.30.2) [[https://fr.wikipedia.org/wiki/Wayland | wayland]] . | ||
+ | |||
+ | [[https://fr.wikipedia.org/wiki/Noyau_Linux | kernel]] : Linux Alain-PC 4.19.0-4-amd64 #1 SMP Debian 4.19.28-2 (2019-03-15) x86_64 GNU/Linux | ||
+ | |||
+ | |||
+ | - par ailleurs, tout ce qui suit a été testé sur un réseau local . derrière une box . | ||
+ | |||
+ | - vu le nombre faramineux de box rien que dans les F.A.I. Français, j'ai sciemment shunté ce point . | ||
+ | |||
+ | - je ne suis pas assez calé là - dessus (les box) . | ||
+ | |||
+ | |||
+ | | ||
Ligne 28: | Ligne 55: | ||
Sur le serveur distant à contrôler ayant une session graphique démarrée : lancez le serveur x11vnc | Sur le serveur distant à contrôler ayant une session graphique démarrée : lancez le serveur x11vnc | ||
<code user>x11vnc</code> | <code user>x11vnc</code> | ||
- | Le serveur x11vnc se lance, affiche ses informations dans votre console, et vous indique qu'il est prêt et attend une demande de connection d'un client sur le port par défaut 5900 : | + | Le serveur [[https://fr.wikipedia.org/wiki/X11vnc | x11vnc]] se lance, affiche ses informations dans votre [[ https://en.wikipedia.org/wiki/Linux_console| console]], et vous indique qu'il est prêt et attend une demande de connection d'un [[https://www.poftut.com/best-vnc-viewer-clients-linux/ | client]] sur le port par défaut 5900 : |
<code config retour de la commande>... | <code config retour de la commande>... | ||
The VNC desktop is: vnd:0 | The VNC desktop is: vnd:0 | ||
Ligne 42: | Ligne 69: | ||
===== Configuration ===== | ===== Configuration ===== | ||
- | x11vnc permet beaucoup de configurations : des méthodes pour sécuriser par mots de passe, simplement montrer l'écran ou donner le controle complet ( avec souris clavier ), multi utilisateurs ... Lisez le manuel <code user>man x11vnc</code> . | + | [[https://doc.ubuntu-fr.org/x11vnc | x11vnc]] permet beaucoup de configurations : des méthodes pour sécuriser par mots de passe, simplement montrer l'écran ou donner le controle complet ( avec souris clavier ), multi utilisateurs ... Lisez le manuel <code user>man x11vnc</code> . |
- | Quelques options essentielles : | + | Quelques options essentielles [[http://www.karlrunge.com/x11vnc/x11vnc_opts.html|parmi toute celle disponibles]]: |
^Option ^Explication ^Exemple ^ | ^Option ^Explication ^Exemple ^ | ||
- | |**-display** disp| Précise l'affichage X11 à utiliser. Généralement :0 si vous n'avez qu'un écran.| -disp :O | | + | |**-display** disp| Précise l'affichage X11 à utiliser. Généralement '':0'' si vous n'avez qu'un écran.| <code>-disp :0</code> | |
|-auth fichier| Nécessaire si x11vnc est lancé depuis une connection distante ssh ou en tant que service, ou par un script au démarrage du systeme ( donc lancé par root et non par vous ). Dans ce cas x11vnc doit s'identifier auprès du "serveur X" ( serveur graphique de Linux ) en montrant un "cookie" ( Xautority ); sans quoi le serveur X rejettera x11vnc et l'écran sera inaccessible. Le chemin de ce cookie dépend de votre gestionnaire de connection ( Lightdm, gdm3 etc ). Pour le trouver, dans une console sur votre serveur, faites : <code user>pgrep -a Xorg | grep -o '[-]auth [^ ]*'</code> | <code>Pour lightdm : -auth /var/run/lightdm/root/:0</code> <code>Pour gdm3 : -auth /run/user/1000/gdm/Xauthority</code> etc...| | |-auth fichier| Nécessaire si x11vnc est lancé depuis une connection distante ssh ou en tant que service, ou par un script au démarrage du systeme ( donc lancé par root et non par vous ). Dans ce cas x11vnc doit s'identifier auprès du "serveur X" ( serveur graphique de Linux ) en montrant un "cookie" ( Xautority ); sans quoi le serveur X rejettera x11vnc et l'écran sera inaccessible. Le chemin de ce cookie dépend de votre gestionnaire de connection ( Lightdm, gdm3 etc ). Pour le trouver, dans une console sur votre serveur, faites : <code user>pgrep -a Xorg | grep -o '[-]auth [^ ]*'</code> | <code>Pour lightdm : -auth /var/run/lightdm/root/:0</code> <code>Pour gdm3 : -auth /run/user/1000/gdm/Xauthority</code> etc...| | ||
| -shared | Autorise plusieur clients a se connecter en meme temps au serveur x11vnc | | | | -shared | Autorise plusieur clients a se connecter en meme temps au serveur x11vnc | | | ||
- | | -forever | (identique à -many ) A la déconection du client, x11vnc reste allumé en attente d'autres demandes. Utile pour lancer un serveur vnc toujours allumé . | | | + | | -forever | (identique à -many ) A la déconnexion du client, x11vnc reste allumé en attente d'autres demandes. Utile pour lancer un serveur vnc toujours allumé . | | |
| -xkb | FIXME Aide a configurer le clavier si différent entre serveur et client. | | | | -xkb | FIXME Aide a configurer le clavier si différent entre serveur et client. | | | ||
| -bg | (background) Va en arrière plan ( apres le message de lancement ). Utile pour les scripts ( ex: au demarrage du systeme ). Si besoin, activez les "logs" en fichiers, pour retrouver les messages de x11vnc. | | | -bg | (background) Va en arrière plan ( apres le message de lancement ). Utile pour les scripts ( ex: au demarrage du systeme ). Si besoin, activez les "logs" en fichiers, pour retrouver les messages de x11vnc. | | ||
- | | logs FIXME | | | | + | | -o fichier | Définit un fichier de log de VNC | ''x11vnc [OPTION] -o /var/log/x11vnc.log'' | |
Ligne 64: | Ligne 90: | ||
^ -passwd | **Méthode déconseillée** car le mot de passe sera visible dans votre ligne de commande depuis la liste des processus en cours Définit un mot de passe. | -passwd secret | | ^ -passwd | **Méthode déconseillée** car le mot de passe sera visible dans votre ligne de commande depuis la liste des processus en cours Définit un mot de passe. | -passwd secret | | ||
+ | 1) première méthode sécurisation par mot de passe | ||
<note tip>de même que la sécurisation par mot de passe , | <note tip>de même que la sécurisation par mot de passe , | ||
Ligne 77: | Ligne 104: | ||
===== utilisation de ssh ===== | ===== utilisation de ssh ===== | ||
- | ssh est un protocole de communication en console . | + | <note tip>note : les exemples suivants s'entendent dans un seul sens : |
+ | |||
+ | aidant vers demandeur . | ||
+ | |||
+ | pour que le demandeur initialise la liaison afin d'être aidé , | ||
+ | |||
+ | on peut parler alors de reverse ssh . | ||
+ | |||
+ | mais je n'y connais rien . | ||
+ | |||
+ | je laisse volontiers à plus calé le soin de vous l'expliquer . </note> | ||
+ | |||
+ | |||
+ | [[https://debian-facile.org/doc:reseau:ssh:client | ssh]] est un protocole de communication en console . | ||
il permet , sur une console locale , de se connecter sur un ordinateur distant . | il permet , sur une console locale , de se connecter sur un ordinateur distant . | ||
exactement comme si on y ouvrait une console .(sur le pc distant) | exactement comme si on y ouvrait une console .(sur le pc distant) | ||
+ | |||
+ | particularité : | ||
+ | |||
+ | comme toute architecture client / serveur , ssh nécessite un serveur sur la machine distante | ||
+ | |||
+ | et un client sur la machine locale ([[https://debian-facile.org/doc:reseau:ssh | l'interface ssh]]) | ||
aussi : | aussi : | ||
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) | ||
+ | |||
+ | [[https://fr.wikipedia.org/wiki/Adresse_IP | 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 . | ||
- | n.b.: ssh demande souvent une authentification par mot de passe , voire clé R.S.A. . | + | n.b.: ssh demande souvent une [[https://openclassrooms.com/fr/courses/43538-reprenez-le-controle-a-laide-de-linux/41773-la-connexion-securisee-a-distance-avec-ssh | authentification]] par mot de passe , voire clé R.S.A. . |
en réseau local , ssh est très bien . sur internet , c'est de suite plus difficile ... | en réseau local , ssh est très bien . sur internet , c'est de suite plus difficile ... | ||
Ligne 99: | Ligne 157: | ||
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 tip>IMPORTANT ! | <note tip>IMPORTANT ! | ||
Ligne 106: | Ligne 164: | ||
stocké dans le fichier par défaut "~/.vnc/passwd" de la commande "x11vnc -storepasswd" </note> | 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> | ||
+ | |||
+ | ==== connexion à distance ==== | ||
+ | |||
+ | il n'y a pas beaucoup de solutions pour l'accès à distance sur un pc . | ||
+ | |||
+ | la seule , (presque) disponible par défaut , c'est ssh . en mode texte , donc pas facilement abordable . | ||
+ | |||
+ | pour prendre la main en graphique sur le pc distant , il faut passer par là pour installer et configurer x11vnc , par exemple . | ||
+ | |||
+ | c'est aussi le seul moyen , en premier , pour configurer le chargeur de session . | ||
+ | |||
+ | une fois cette étape franchie , on peut accéder en graphique au pc distant (serveur) . | ||
+ | |||
+ | il permet l'accès à un serveur distant mais ne permet pas de lancer "bêtement" le bureau . | ||
+ | |||
+ | pour lancer le bureau , il faut modifier son lanceur (gdm / gdm3) pour activer l'autologin . | ||
+ | |||
+ | donc , par la même occasion , profitez en pour installer et paramétrer x11vnc puis , ensuite , redémarrage . | ||
+ | |||
+ | au reboot du serveur qui loggue donc automatiquement et sous x , vous pourrez lancer tigervnc et , | ||
+ | |||
+ | donc , obtenir un beau bureau distant sur votre machine locale . | ||
+ | |||
+ | note : dans gdm3 , ne pas oublier de décommenter (activer , donc) la ligne suivante : | ||
+ | |||
+ | <code>WaylandEnable=false</code> | ||
+ | |||
+ | faute de quoi , il y a des chances que votre pc démarre sous wayland , donc , pas de serveur x et pas de x11vnc (même s'il est installé) . | ||
+ | |||
+ | conséquence directe : pas de bureau distant . | ||
+ | |||
+ | il y a une autre solution : toujours en ssh , installer x11vnc en systemd . | ||
+ | |||
+ | sous lightdm , vous aurez alors accès au login en graphique . | ||
+ | |||
+ | vous pouvez , dans lightdm , modifier le chapitre [vnc] (optionnel et pas obligatoire) qui devrait vous permettre | ||
+ | |||
+ | en théorie d'accéder à l'écran de login à distance et , donc , de lancer le login en graphique . | ||
+ | |||
+ | mais il faut , en préalable , installer x11vnc dans systemd ("/etc/systemd/system") . voir le chapitre "systemd" plus bas . | ||
+ | |||
+ | qui lui , réellement , donne accès au login à distance , uniquement , pour l'instant , dans lightdm . | ||
+ | |||
+ | <code>/etc/lightdm/lightdm.conf | ||
+ | |||
+ | [VNCServer] | ||
+ | enabled=true | ||
+ | command=Xvnc -rfbauth /home/<user>/.vnc/passwd | ||
+ | port=5900 | ||
+ | listen-address=localhost | ||
+ | width=1024 | ||
+ | height=768 | ||
+ | depth=24</code> | ||
+ | |||
+ | <code>La connexion au login avec VNC lors de l'utilisation de GDM3 n'est actuellement pas possible. | ||
+ | Le moyen le plus simple de récupérer cette fonctionnalité VNC est simplement de revenir de GDM3 à LightDM. | ||
+ | |||
+ | LightDM est toujours activement développé et utilisé par de nombreuses distributions Linux</code> | ||
+ | |||
+ | <code>Pour réveiller un ordinateur à distance , on peut utiliser le W.O.L. (wake on lan) . | ||
+ | réveil de la machine par le réseau . | ||
+ | on a besoin de l'adresse mac (sorte de no de série de l'interface) et de l'adresse ip (adresse internet) | ||
+ | (voire bibliographies)</code> | ||
+ | |||
+ | note : | ||
+ | |||
+ | curieusement , le lancement de x11vnc par lightdm , ne se fait pas . | ||
+ | ce dernier en effet lance tigervnc(server) grâce à un lien codé en dur dans le programme (lightdm) . | ||
+ | pour lancer x11vnc , il faut , soit le lancer indéfiniment par systemd , soit modifier le lien du chargeur de démarrage , soit reprogrammer ce dernier pour , enfin , lancer x11vnc au démarrage . | ||
+ | |||
+ | pour ma part , je suis partisan de la première solution (systemd) , switch , lui semble plutôt partisan de la deuxième solution (travailler sur les liens). | ||
+ | elle aurai un gros avantage . en ce sens qu'elle permettrai d'utiliser moins de mémoire . | ||
+ | mais que se passe t il en cas de crash ? dans ce dernier cas ? . | ||
+ | je crois que la première solution est plus "sécure" mais aussi plus gourmande en mémoire vu que le processus est lancé constamment et non pas à l'appel uniquement . | ||
+ | |||
+ | | ||
+ | |||
+ | |||
+ | |||
===== 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). | + | dans ce tuto , vous trouverez 3 méthodes de sécurisation de vnc : |
+ | |||
+ | 1) le mot de passe (plus haut) | ||
+ | |||
+ | 2) le tunnel ssh , ici . | ||
+ | |||
+ | cette méthode consiste à faire passer par ssh(port 22 , chiffré par défaut) une connexion vnc(port 5900 en clair) | ||
+ | |||
+ | 3) et le protocole ssl (à suivre). | ||
+ | |||
+ | qui repose sur l'authentification par clé de chiffrement ssl . | ||
+ | |||
+ | |||
+ | ici , 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. | ||
Ligne 117: | Ligne 279: | ||
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 135: | Ligne 297: | ||
#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 149: | Ligne 311: | ||
#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 156: | Ligne 318: | ||
exit 0 | exit 0 | ||
EOF</code> | EOF</code> | ||
+ | |||
n'oubliez pas les droits : | n'oubliez pas les droits : | ||
Ligne 174: | Ligne 337: | ||
<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) </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) ===== | ||
+ | 3 ème solution pour sécuriser vnc | ||
+ | |||
+ | authentification par certificat ssl : | ||
+ | |||
+ | |||
+ | <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 205: | Ligne 423: | ||
relancer x11vnc en ssh | relancer x11vnc en ssh | ||
- | <code user>x11vnc -ssl SAVE-key</code> | + | <code user>x11vnc -ssl SAVE-key -forever</code> |
<note important>rentrer la passphrase que l'on a noté (pour ne pas l'oublier).</note> | <note important>rentrer la passphrase que l'on a noté (pour ne pas l'oublier).</note> | ||
Ligne 231: | Ligne 449: | ||
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?400}} | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
Ligne 237: | Ligne 485: | ||
==== 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 290: | Ligne 573: | ||
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> | ||
==== Démarrage à la demande avec Inetd ==== | ==== Démarrage à la demande avec Inetd ==== | ||
+ | |||
+ | |||
+ | |||
+ | |||
Ligne 314: | Ligne 611: | ||
===== création d'un alias ===== | ===== création d'un alias ===== | ||
pour simplifier l'usage des commandes de x11vnc : | pour simplifier l'usage des commandes de x11vnc : | ||
+ | |||
+ | en cas de démarrage manuel : | ||
pour créer un alias , c'est simple : | pour créer un alias , c'est simple : | ||
Ligne 319: | Ligne 618: | ||
<code root>nano ~/.bash_aliases</code> | <code root>nano ~/.bash_aliases</code> | ||
y copier le code suivant : | y copier le code suivant : | ||
- | <code>alias assistance='x11vnc -many -rfbauth ~/.vnc_passwd -xkb'</code> | + | <code>alias assistance='x11vnc -many -rfbauth ~/.vnc/passwd -xkb'</code> |
il suffira , dès lors , de taper la commande <code user>assistance</code> en lieu et place de la longue ligne d'instructions d'origine | il suffira , dès lors , de taper la commande <code user>assistance</code> en lieu et place de la longue ligne d'instructions d'origine | ||
Ligne 328: | Ligne 627: | ||
<code root>cat > /home/switch/.bash_aliases <<EOF | <code root>cat > /home/switch/.bash_aliases <<EOF | ||
- | alias assistance='x11vnc -many -rfbauth ~/.vnc_passwd -xkb' | + | alias assistance='x11vnc -many -rfbauth ~/.vnc/passwd -xkb' |
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 : | ||
Ligne 338: | Ligne 637: | ||
<code user>alias tunnelssh='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é . | ||
+ | <code user>alias</code> | ||
- | je ne sais plus s'il faut redémarrer la session ou le pc après la création d'un alias . | + | <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 347: | Ligne 665: | ||
- | ===== culture générale <biliographies> ===== | + | ===== culture générale <bibliographies> ===== |
Ligne 415: | Ligne 733: | ||
[[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]] | ||
+ | |||
+ | systemd : | ||
+ | |||
+ | [[https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-unit_files | Red Hat : systemd (eng.) ]] | ||
+ | |||
+ | inetd / xinetd : | ||
+ | |||
+ | [[https://fr.wikipedia.org/wiki/Inetd | inetd wikipedia ]] | ||
+ | |||
+ | [[https://fr.wikipedia.org/wiki/Xinetd | xinetd wikipedia ]] | ||
+ | |||
+ | [[https://debian-handbook.info/browse/fr-FR/stable/sect.inetd.html | inetd debian : le superserveur ]] | ||
+ | |||
+ | [[http://www.linux-france.org/~mdecore/linux/doc/memo2/node47.html | /etc/inetd.conf ]] | ||
+ | |||
+ | [[https://doc.ubuntu-fr.org/x11vnc#demarrer_vnc_comme_service_inetd | démarrer vnc comme service inetd ]] | ||
+ | |||
+ | Lightdm et VNC : | ||
+ | |||
+ | [[https://wiki.archlinux.org/index.php/LightDM | lightdm archwiki]] | ||
+ | |||
+ | [[https://wiki.archlinux.org/index.php/LightDM#VNC_Server | lightdm et vnc archwiki ]] | ||
+ | |||
+ | GDM et VNC : | ||
+ | |||
+ | [[https://askubuntu.com/questions/1033274/ubuntu-18-04-connect-to-login-screen-over-vnc | GDM3 et VNC ]] | ||
+ | |||
+ | W.O.L. : | ||
+ | |||
+ | [[https://fr.wikipedia.org/wiki/Wake-on-LAN | W.ake O.n L.an WIKIPEDIA ]] | ||
+ | |||
+ | [[https://fr.wikipedia.org/wiki/Adresse_MAC | adresse MAC WIKIPEDIA ]] | ||
+ | |||
+ | [[https://la-vache-libre.org/gwakeonlan-reveillez-votre-pc-depuis-un-reseau-local-ou-distant/ | G wake on lan ]] | ||