Dites Bonjour à votre Raspberry Pi

Un Raspberry Pi 3 (Raspberry Pi Foundation)

Lorsque je rajoute une nouvelle machine à notre réseau, je souhaite pouvoir accéder à ses fichiers et l’utiliser à distance (c’est à dire à partir d’une autre machine). C’est d’autant plus vrai pour le Raspberry Pi que cette petite machine peut se faire oublier dans un coin, déconnectée d’écran et de clavier. La prise en main à distance est alors le moyen le plus simple pour intervenir dessus.

Mais pour cela, je dois pouvoir trouver ce Raspberry dans mon réseau. Ce n’est pas si compliqué surtout que dernièrement, tous les outils sont disponibles.

Les ordinateurs et les réseaux

Au sein d’un réseau, les différentes machines peuvent se voir et communiquer entre elles. Ceci vous permet d’envoyer un document à l’imprimante ou de lire un fichier sur un NAS (je vous en reparle bientôt).

Les machines ne se connaissent qu’à travers leur adresse IP. Ces adresses sont de la forme 127.0.0.1.

Vous pouvez faire un essai en saisissant la commande suivante dans un terminal :

ping 127.0.0.1 -c 4

et vous devez vois 4 lignes ressemblant à la suivante :

64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.043 ms

La machine ayant l’adresse 127.0.0.1 réponds qu’elle est bien présente. Oh, comment j’ai su qu’une de vos machine a cette adresse ? Simplement parce que 127.0.0.1 est une adresse spéciale qui s’appelle localhost et qui est la machine elle même, la machine locale. En fait, vous n’avez même pas besoin d’être connecté à un réseau pour exécuter cette commande avec l’adresse 127.0.0.1, votre machine s’interroge elle même.

Dans la plupart des foyers, les adresses sont attribuées aux machines par le routeur (ou la box par sa fonction routeur). Il est donc compliqué de suivre quelle adresse est attribuée à quelle machine. Même si vous êtes capables de les fixer, il est difficile de les mémoriser. C’est là qu’entrent en jeu des outils comme les protocoles Zeroconf. qui permettent de se connecter à une machine à partir d’un nom plus humain.

Bonjour Avahi

Zeroconf sont des protocoles (oui, plusieurs). Avahi est le logiciel qui implémente ces protocoles et qui permettra au Raspberry de s’annoncer sur le réseau. Bonjour est une autre implémentation de Zeroconf proposé par Apple et c’est évidemment celle qui tourne sur Os X et qui m’a surtout permis ce titre un peu moisi…

Avahi nous permettra donc de trouver une machine par son nom, par exemple, si la machine s’appelle raspberrypi :

ping raspberrypi.local

Si vous essayez cette commande en ayant votre Raspberry Pi branché sur le réseau et que vous n’avez pas modifié le nom par défaut, vous verrez peut-être qu’une machine répond. Dans les dernières versions, Avahi est installé et annonce le Raspberry par ce nom sur le réseau.

D’anciens tutos vous proposent de saisir les commandes suivantes :

sudo apt-get install avahi-daemon
sudo update-rc.d avahi-daemon defaults

Pour information, la première ligne est destinée à installer Avahi et la seconde l’active en tant que service, c’est à dire un logiciel qui sera lancé au démarrage et tournera en tâche de fond.

Ces commandes ne sont donc plus nécessaires.

Bon… À quoi sert ce billet si tout marche déjà ?

Bonjour, je ne fais rien…

Si le service est présent, pour l’instant, il ne sert à rien… Le premier outil réseau que l’on test habituellement est SSH. SSH permet de se connecter à l’aide d’un terminal à une machine distante, c’est donc une manière légère (sous entendu qui échange peu d’informations contrairement à une interface graphique complète) de contrôler une machine distante.

Nous pouvons essayer la commande suivante.

ssh raspberrypi.local

il vous sera répondu que cette machine n’est pas trouvée. En fait, elle n’est pas trouvée pour le service SSH puisqu’elle ne le propose pas.

Les services Avahi sont déclarés dans le répertoire /etc/avahi/services/. Par défaut, ce répertoire est vide, ce que vous pouvez vérifier avec

ls /etc/avahi/services/

Pour informer Avahi que nous souhaitons activer un service, il suffit d’ajouter dans ce répertoire un fichier qui décrit le service. Ce fichier pourra avoir le nom que vous voulez (mais assurez-vous qu’il soit évident pour lla maintenance) et l’extension .service. Ce fichier est au format xml.

Le contenu de ce type de fichier est décrit dans le manuel que vous pouvez accéder par :

man avahi.service

Ce n’est pas forcément très compréhensible. Vous avez dans le répertoire /usr/share/doc/avahi-deamon/examples/ quelques exemples de configuration. Et oui, pour illustrer, vous avez le fichier de déclaration du service ssh.

Bonjour ssh

On ne va donc pas se prendre la tête, recopiez le par la commande suivante

sudo cp /usr/share/doc/avahi-deamon/examples/ssh.service /etc/avahi/services/

On va pouvoir l’éditer au besoin. Pour cela, il faut lancer un éditeur. J’ai une préférence pour vi ou vim mais en général, les débutants sont redirigés vers nano :

sudo nano /etc/avahi/services/ssh.service

Vous voyez que vous avez un fichier complet et en fait, il n’y a rien à modifier. Et oui, ce fichier d’exemple propose déjà la configuration standard. Vous allez maintenant pouvoir utiliser ssh vers votre Raspberry Pi… à deux détails près.

Sécuriser la connexion

Le Raspberry Pi est un ordinateur destiné à l’apprentissage. Son système est configuré pour être utilisable dès la sortie du carton. Il vous permet donc de vous connecter automatiquement sur un compte qui a les droits d’administrateur. Ce compte, c’est l’utilisateur pi et son mot de passe est raspberry. C’est le même sur tous les Raspberry Pi. Du coup, quelqu’un de mal intentionné essayera de se connecter sur votre Raspberry, il essayera ce couple identifiant/mot de passe et pourra ainsi prendre le contrôle de votre Raspberry.

Bien sûr, vous vous dites que sur votre réseau à la maison, un tel risque n’existe pas, mais on ne sait jamais. Et après tout, la sécurisation est hyper simple puisqu’il s’agit de changer le mot de passe. Vous avez deux méthodes. La première passe par le menu Préférences/Configuration du Raspberry Pi. La seconde, par un terminal.

Dans un terminal, saisissez la commande

passwd

et laissez vous guider.

Un nom par machine

Pour utiliser le protocole Zeroconf, il faut que votre Raspberry ai un nom. Il en a déjà un par défaut, raspberrypi. Vous pouvez le conserver ou en choisir un autre. Pour le changer, il faut lancer la commande de configuration

sudo raspi-config

Vous verrez alors apparaître l’interface de configuration du Raspberry. Vous trouverez l’option pour changer de nom dans Hostname.

Changer le nom est optionnel mais l’idéal est que chaque machine dans un réseau ai un nom unique, même si elles ne sont pas branchées au même moment. N’oubliez pas que la validation d’un hôtes est basée sur son nom.

Voilà, vous avez le minimum pour ajouter le Raspberry Pi à votre réseau et pour vous y connecter en ssh.

À propos de... Darko Stankovski

iT guy, photographe et papa 3.0, je vous fais partager mon expérience et découvertes dans ces domaines. Vous pouvez me suivre sur les liens ci-dessous.

Vous aimerez aussi...

Laisser un commentaire

En naviguant sur Dad 3.0, vous acceptez l’utilisation de cookies pour une navigation optimale et nous permettre de réaliser des statistiques de visites. Plus d'informations

Le blog Dad 3.0 utilise les cookies pour vous permettre une navigation optimale et nous permettre de réaliser des statistiques de visite. Dad 3.0 affichant des publicités, celles-si utilisent également des cookies pour un ciblage publicitaire. En continuant la navigation sur Dad 3.0, vous acceptez le dépôt et la lecture de cookies.

Fermer