Quantcast
Channel: Configuration Archives - Framboise 314, le Raspberry Pi à la sauce française....
Viewing all articles
Browse latest Browse all 176

Connectez-vous à distance au Raspberry Pi avec TeamViewer

$
0
0

teamviewer_250pxAprès vous avoir présenté tightvncserver puis x11VNC, voici venir TeamViewer (TW) pour le Raspberry Pi.
Encore une façon de prendre la main à distance sur un Raspberry Pi, très intéressante si le RasPi est headless (sans écran/clavier).
Alors que les solutions précédentes utilisaient des ports particuliers, TW utilise les ports standard 80 et 443.

NIVEAU_debutant

Cliquez pour avoir une définition de ces niveaux

 

Attention
Ce tutoriel concerne uniquement l’installation de Teamviewer sur le Raspberry Pi. Pour l’installation de TeamViewer sur des machines sous Windows, Android ou Linux… RTFM

TeamViewer : prenez la main à distance sur votre Raspberry Pi

Comment ça marche ?

principe2En pratique chacune des deux machines se connecte à un serveur tiers appelé ici TeamViewer Maître chez TW (en rouge). Comme ils utilisent des ports standard, il n’y a pas de ports visibles ouverts, donc moins d’attaques. Ensuite c’est le serveur qui se charge de transférer les informations d’une machine à l’autre.

Lors de l’établissement d’une connexion, TeamViewer détermine le type de connexion optimal. Après authentification via les serveurs TW, une connexion directe est établie dans 70 % des cas via UDP ou TCP (et ce même derrière les passerelles normalisées, les routeurs NAT et les pare-feux). Les autres connexions sont acheminées par le biais du réseau de routeurs redondant de TW via TCP ou tunnel HTTP. Il n’y a donc pas besoin d’ouvrir des ports pour pouvoir travailler avec TeamViewer !

Vu côté utilisateur, c’est comme si les deux machines étaient directement reliées (en bleu). C’est une des différences fondamentales avec tightvncserver ou x11VNC, qui réalisaient une liaison en direct entre les deux machines.

Secret pour tout le monde

Comme décrit ci-dessous, même chez TeamViewer, exploitant des serveurs de routage, personne ne peut lire les données chiffrées échangées.

Le trafic TeamViewer est sécurisé par des échanges de clés publiques/privées RSA et un chiffrement de session AES (256 bits). Cette technologie est basée sur les même standards que les technologies HTTPS ou SSL et est considérée comme parfaitement sécurisée selon les normes actuelles. Comme la clé privée ne quitte jamais l’ordinateur client, ce procédé permet d’assurer que les ordinateurs intermédiaires (y compris les serveurs TeamViewer) ne peuvent pas déchiffrer les données. La clé publique du cluster maître est déjà intégrée dans chaque client TeamViewer. Ceci permet de chiffrer les messages envoyés au cluster maître et de vérifier sa signature. L’infrastructure à clé publique PKI empêche efficacement les attaques intermédiaires du type « man in the middle » (homme du milieu).

chiffrement-et-auth_600px

Par ailleurs, avec le chiffrement, le mot de passe n’est jamais transmis directement, mais selon le procédé « challenge-response » (stimulation/réponse) et n’est mémorisé que sur les ordinateurs locaux. Pendant l’authentification, le mot de passe n’est jamais transmis directement grâce à l’utilisation du protocole SRP (Secure Remote Password). Uniquement un vérificateur de mot de passe est stocké sur l’ordinateur local.

Et… c’est sûr ?

Les identifiants TeamViewer sont générés directement et automatiquement par TeamViewer à l’aide des caractéristiques matérielles de l’ordinateur. Les serveurs TeamViewer contrôlent la validité de cet identifiant à chaque connexion.

La protection contre les attaques par force brute

Dans la pratique, ce sont cependant souvent des attaques très primitives qui s’avèrent les plus dangereuses. Dans le contexte de la sécurité informatique, une attaque par force brute est souvent la tentative de deviner, par des essais répétés, un mot de passe qui protège l’accès à une ressource. Grâce à la performance croissante des ordinateurs disponibles sur le marché, le temps nécessaire pour deviner un mot de passe long est considérablement réduit. Pour dissuader les attaques par force brute, TeamViewer augmente de façon exponentielle le temps d’attente entre les tentatives de connexion.

protection

Ainsi, pour 24 tentatives, 17 heures sont nécessaires. Le temps d’attente entre les tentatives de connexion n’est réinitialisé qu’une fois le mot de passe entré avec succès. TeamViewer protège  contre des attaques provenant d’un ordinateur spécifique, mais aussi contre celles provenant de plusieurs ordinateurs. Ces attaques sont connues sous le nom d’attaques botnet, qui tentent d’accéder à un identifiant spécifique.

Installation de TeamViewer sur le Raspberry Pi

Raspbian Jessie en mode graphique

teamviewer_05aBon, on va passer à la pratique, si vous le voulez bien…

Il y a quelque temps il n’était pas forcément facile de trouver le logiciel sur le site de TeamViewer, la version destinée au Raspberry Pi est accessible sous forme de paquet .deb sur cette page : https://www.teamviewer.com/iotcontest. Il est aussi accessible à présent sur la page des téléchargements Linux.

Commencez comme toujours par la mise à jour de votre version de Raspbian :

sudo apt-get update
sudo apt-get upgrade

page_raspi

Mais bon, une fois trouvé on va pouvoir l’installer. Si vous préférez le mode graphique (quelle idée ! 🙂 ) allez sur la page et cliquez sur le bouton Download…

Plus sérieusement dans un terminal lancez a récupération du paquet .deb :

wget http://download.teamviewer.com/download/linux/version_11x/teamviewer-host_armhf.deb

pi@raspberrypi:~ $ wget http://download.teamviewer.com/download/linux/version_11x/teamviewer-host_armhf.deb
--2016-08-25 15:36:49--  http://download.teamviewer.com/download/linux/version_11x/teamviewer-host_armhf.deb
Résolution de download.teamviewer.com (download.teamviewer.com)… 46.163.100.214, 46.163.100.216, 46.163.100.213, ...
Connexion à download.teamviewer.com (download.teamviewer.com)|46.163.100.214|:80… connecté.
requête HTTP transmise, en attente de la réponse… 301 Moved Permanently
Emplacement : https://download.teamviewer.com/download/linux/version_11x/teamviewer-host_armhf.deb [suivant]
--2016-08-25 15:36:49--  https://download.teamviewer.com/download/linux/version_11x/teamviewer-host_armhf.deb
Connexion à download.teamviewer.com (download.teamviewer.com)|46.163.100.214|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://downloadeu2.teamviewer.com//download/linux/version_11x/teamviewer-host_11.0.63329_armhf.deb [suivant]
--2016-08-25 15:36:49--  https://downloadeu2.teamviewer.com//download/linux/version_11x/teamviewer-host_11.0.63329_armhf.deb
Résolution de downloadeu2.teamviewer.com (downloadeu2.teamviewer.com)… 178.162.205.111, 2a00:c98:2050:a031:1::1
Connexion à downloadeu2.teamviewer.com (downloadeu2.teamviewer.com)|178.162.205.111|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 6231798 (5,9M) [application/octet-stream]
Sauvegarde en : « teamviewer-host_armhf.deb »

teamviewer-host_arm 100%[=====================>]   5,94M   462KB/s   ds 14s

2016-08-25 15:37:03 (450 KB/s) — « teamviewer-host_armhf.deb » sauvegardé [6231798/6231798]

Une fois le paquet récupéré on peut l’installer :

sudo dpkg -i teamviewer-host_armhf.deb

pi@raspberrypi:~ $ sudo dpkg -i teamviewer-host_armhf.deb
Selecting previously unselected package teamviewer-host.
(Reading database ... 118080 files and directories currently installed.)
Preparing to unpack teamviewer-host_armhf.deb ...
Unpacking teamviewer-host (11.0.63329) ...

dpkg: dependency problems prevent configuration of teamviewer-host:
teamviewer-host depends on libqt5gui5 (>= 5.2.1); however:
Package libqt5gui5 is not installed.
teamviewer-host depends on libqt5widgets5 (>= 5.2.1); however:
Package libqt5widgets5 is not installed.
teamviewer-host depends on libqt5qml5 (>= 5.2.1); however:
Package libqt5qml5 is not installed.
teamviewer-host depends on libqt5quick5 (>= 5.2.1); however:
Package libqt5quick5 is not installed.
teamviewer-host depends on libqt5webkit5 (>= 5.1.1); however:
Package libqt5webkit5 is not installed.
teamviewer-host depends on libqt5x11extras5 (>= 5.2.1); however:
Package libqt5x11extras5 is not installed.
teamviewer-host depends on qtdeclarative5-qtquick2-plugin (>= 5.2.1) | qml-module-qtquick2 (>= 5.2.1); however:
Package qtdeclarative5-qtquick2-plugin is not installed.
Package qml-module-qtquick2 is not installed.
teamviewer-host depends on qtdeclarative5-controls-plugin (>= 5.2.1) | qml-module-qtquick-controls (>= 5.2.1); howev
dpkg: error processing package teamviewer-host (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
teamviewer-host

Zut ! Il manque des dépendances ! Et le paquet ne s’installe pas 🙁 On va forcer l’installation des paquets manquants : (voyez l’option -f sur cette page pour plus d’explications)

sudo apt-get -f install

pi@raspberrypi:~ $ sudo apt-get -f install
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Correction des dépendances... Fait
Les paquets supplémentaires suivants seront installés :
libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5opengl5
libqt5printsupport5 libqt5qml5 libqt5quick5 libqt5sql5 libqt5sql5-sqlite
libqt5webkit5 libqt5widgets5 libqt5x11extras5 libxcb-icccm4 libxcb-image0
libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xkb1
libxkbcommon-x11-0 qml-module-qtquick-controls qml-module-qtquick-dialogs
qml-module-qtquick-layouts qml-module-qtquick-privatewidgets
qml-module-qtquick-window2 qml-module-qtquick2 qttranslations5-l10n
Les NOUVEAUX paquets suivants seront installés :
libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5opengl5
libqt5printsupport5 libqt5qml5 libqt5quick5 libqt5sql5 libqt5sql5-sqlite
libqt5webkit5 libqt5widgets5 libqt5x11extras5 libxcb-icccm4 libxcb-image0
libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xkb1
libxkbcommon-x11-0 qml-module-qtquick-controls qml-module-qtquick-dialogs
qml-module-qtquick-layouts qml-module-qtquick-privatewidgets
qml-module-qtquick-window2 qml-module-qtquick2 qttranslations5-l10n
0 mis à jour, 27 nouvellement installés, 0 à enlever et 0 non mis à jour.
1 partiellement installés ou enlevés.
Il est nécessaire de prendre 17,4 Mo dans les archives.
Après cette opération, 70,6 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n]

Répondez O : Cette commande va forcer l’installation des dépendances nécessaires et vous pouvez ensuite relancer l’installation du paquet .deb. Cette fois ça devrait bien se passer 😉

pi@raspberrypi:~ $ sudo dpkg -i teamviewer-host_armhf.deb
(Lecture de la base de données… 119449 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de teamviewer-host_armhf.deb …
Removed symlink /etc/systemd/system/multi-user.target.wants/teamviewerd.service.
Dépaquetage de teamviewer-host (11.0.63329) sur (11.0.63329) …
Paramétrage de teamviewer-host (11.0.63329) …

Paramétrage de l’installation

Sur le bureau de votre Raspberry Pi apparait cette fenêtre :

teamviewer_01A moins que vous ne soyez pas d’accord avec les termes de la licence (ah bon, vous les lisez, vous ?) cliquez sur le bouton Accepter l’accord de licence.

Ceci entraîne l’affichage d’une icône TeamViewer dans la barre des tâches :

teamviewer_04et l’affichage d’une fenêtre vous permettant d’autoriser les connexions distantes et vous donnant l’identifiant de votre Raspberry Pi ainsi que le mot de passe pour la connexion.

teamviewer_02

Vous noterez aussi la présence d’une nouvelle entrée de menu qui vous permettra de lancer TeamViewer :

teamviewer_03A partir de ce moment votre Raspberry Pi est accessible par TeamViewer !

Accès depuis une machine windows

Sur la machine Windows il faudra installer dans un premier temps la version de TW correspondante.

Lancez TW :

teamviewer_07_local2Saisissez l’identifiant du RasPi et cliquez sur Connexion à un partenaire.

teamviewer_08_local2Saisissez maintenant le mot de passe que vous avait donné le RasPi lors du lancement de TW…

teamviewer_09_localVous voici connecté(e) au Rasberry Pi distant, dans la session en cours. C’est à dire que comme avec x11VNC toutes les actions (clavier/souris) réalisées sur une des machines est instantanément reproduite sur l’autre…

Accès depuis une machine Linux

Sur la machine Linux il faudra installer dans un premier temps la version de TW correspondante.

Lancez TW, les étapes pour se connecter sont exactement les mêmes que pour Windows (voir ci-dessus) :

teamviewer_12_debianIci la connexion au Raspberry a été faite sur une machine sous Debian/LXDE.

Accès depuis un smartphone Android

Sur un smartphone Android il suffit d’installer l’application TeamViewer for Remote Control.

appli_android
Une fois que c’est installé démarrez l’appli :

android_connect

Cliquez sur Connecter (en bas à gauche de l’écran) puis renseignez l’ID du Raspberry Pi et son mot de passe (il vous est demandé quand vous validez l’ID)

Et ensuite…

screenshot_2016-08-25-19-51-49_600px

screenshot_2016-08-25-19-52-02_600px

screenshot_2016-08-25-19-52-18_600px

Vous pouvez contrôler votre Raspberry Pi depuis votre smartphone 🙂

Combien ça coûte ?

Alors là c’est simple : TeamViewer est gratuit pour un usage personnel ! Ça veut dire que si vous voulez prendre la main sur le Raspberry Pi de votre cousin qui habite à 300 Km (bon, faut pas qu’il ait une bande passante de merde trop faible quand même) ça ne vous coutera rien…

Seules les entreprises doivent prendre un compte payant (c’est d’ailleurs ce qui permet à TW de fournir le service gratuitement aux particuliers…)

Et le transfert de fichiers ?

Bin… c’est ce qui a retardé la sortie de cet article. D’un autre côté ça m’a permis de vérifier que si on sollicite TeamViewer sur un sujet technique, on obtient une réponse.

Je n’arrivais à transférer les fichiers ni sous Windows, ni sous Debian !

teamviewer_13_debian_600px

La fenêtre apparaît mais la partie droite (le Raspberry Pi) reste désespérément vide. Allez un ticket ouvert chez TW !

et quelques jours plus tard 🙂

Bonjour M. ,
Je vous remercie pour votre message et l’intérêt que vous portez à TeamViewer.
Merci de nous avoir informé de ce problème.
La situation a été vérifiée en interne, le transfert de fichier avec le Raspberry n’existe pas encore, la fonction devrait être donc grisée.
Cela devrait être corrigé dans le futur.
Vous souhaitant bonne réception et restant à votre disposition pour tout renseignement, je vous souhaite également une agréable journée.
Cordialement.
Romain

On devrait donc bénéficier de cette fonction dans le futur. Elle peut être utile pour récupérer à distance des logs ou des enregistrements de données…

Conclusion

Il y a encore d’autres fonctionnalités à explorer, par exemple créer un compte chez TW et enregistrer vos différentes machines… Mais je vous laisse bosser un peu aussi 🙂

Pour l’utilisation de TeamViewer sur un Raspbian Lite en mode headless, j’ai encore quelques soucis et j’ai contacté TeamViewer. Ça fera l’objet d’un prochain article…

Merci à doudy et Sylvain pour leurs interventions à propos de TeamViewer dans les commentaires de x11VNC ainsi qu’à Jean-Philippe (F5GKW) pour le relais du commentaire qu’il a laissé sur le blog de F8ASB :

En ce qui me concerne il manquait des dépendances (sur RPI3 et Jessie) donc :

sudo apt-get install libqt5gui5 libqt5widgets5 libqt5quick5 libqt5webkit5 libqt5x11extras5 qml-module-qtquick2

La résolution d’écran n’est pas terrible !
cela est dû au fait que si il n’y a pas de moniteur connecté ( ce qui est mon cas en utilisation à distance) le Raspi se met en mode basse résolution
Pour corriger cela , éditer le fichier /boot/config.txt et ajouter :
# forçage résolution sans écran pour teamviewer
hdmi_force_hotplug=1
hdmi_group=1
hdmi_mode=4
disable_overscan=1

vous allez voir,c’est plus confortable !

pour les divers modes HDMI (et vos propres essais ) je vous renvoie à :
https://www.raspberrypi.org/documentation/configuration/config-txt.md

Sources

Teamviewer sur Raspberry Pi

 


Viewing all articles
Browse latest Browse all 176

Trending Articles