Netatalk sous OpenBSD ou comment avoir une Time Capsule libre

Publié le 26/11/2020 et écrit par Vincent Finance, dans la catégorie : #openbsd

Traductions disponibles : en

## Un peu de contexte

Chez moi, je possède deux ordinateurs de marque Apple : un Mac Mini acheté neuf en 2019 et un MacBook Air de 2014 que j'ai acheté d'occasion cette année pour les cours. Globalement, le tout fonctionne très bien et je suis très content de m'en servir pour mes tâches quotidiennes, même si je suis toujours tourné vers GNU/Linux pour publier mes articles ou programmer un peu.

Ce que j'apprécie surtout avec MacOS, c'est le système de sauvegarde Time Machine qui permet de sauvegarder rapidement ses données et de retourner rapidement dans le passé pour retrouver un document perdu ou restaurer son système. En plus, il a l'avantage de tourner en arrière-plan, ce qui est très pratique pour moi qui a tendance à souvent oublier de sauvegarder mes données. Jusqu'à présent, j'utilisais une technique un peu crade qui consistait à monter un disque dur virtuel via un partage réseau NFS. Autant dire que c'était vraiment ignoble et que les performances n'étaient pas vraiment au top, même si ça faisait le job. Ce bricolage a tenu un an environ, mais j'ai eu entre temps des soucis avec mon serveur de stockage et j'ai perdu l'accès à ce disque virtuel. Time Machine ne fonctionnait donc plus du tout et cela devenait critique de remplacer ce truc.

Du coup, j'ai cherché à acquérir d'occasion une Time Capsule, une sorte de disque dur réseau spécialement conçu par Apple qui permet de faire des sauvegardes en réseau, mais leur prix actuel (100€ pour 1 To) et leur retrait du marché en 2018 (donc plus de mises à jour de sécurité) m'ont convaincu que cela n'était pas forcément la meilleure idée du siècle.
J'ai donc regardé autre chose et j'ai alors trouvé une alternative libre à ces périphériques encore maintenue : j'ai nommé Netatalk !

## Netatalk, kézako ?

Netatalk est un logiciel de partage réseau qui est capable d'utiliser les protocoles propriétaires d'Apple pour communiquer avec MacOS et permettre de partager des fichiers dans un réseau local. En effet, Apple a développé deux protocoles spécifiques (AppleTalk et AFP) pour obtenir l'équivalent des partages SMB (partage réseau pour Windows) et NFS (partage réseau pour UNIX et GNU/Linux).
La version 3 de ce logiciel permet notamment d'utiliser le protocole AFP et donc de monter un serveur de partage 100% compatible avec les dernières versions de MacOS. Il est même capable de se faire passer pour une Time Capsule, ce qui permet alors de s'en servir avec Time Machine sans problème.

Netatalk est disponible, sous forme de paquet, sur la plupart des distributions GNU/Linux et sur les systèmes BSD. Ici, on va donc s'intéresser à son installation sur un vieux PC équipé d'un Pentium 4 sous OpenBSD pour lui redonner une nouvelle utilité.

## Installation et configuration sous OpenBSD

Pour installer Netatalk, il suffit de taper la commande suivante :

doas pkg_add -i netatalk

Sachant qu'OpenBSD possède deux versions de Netatalk (la version 2.1 pour les anciens systèmes sous MacOS 9 ou 8 et la version 3.1), on choisira la 3e version en tapant 2 puis sur Entrée.

Après l'installation, on édite simplement le fichier /etc/netatalk/afp.conf pour configurer nos partages en réseau. Son contenu ressemble alors à ceci :

;
; Netatalk 3.x configuration file
;

[Global]
; Global server settings
hostname = narodnaia
log file = /var/log/netatalk.log
log level = default:warn
mimic model = TimeCapsule6,106
keep sessions = yes

[TimeMachine]
; My TimeMachine service
path = /srv/timemachine
time machine = yes
valid users = @users
file perm = 660
directory perm = 740
vol size limit = 350000

Le fichier par défaut contient une petite liste d'exemples de ce qu'on peut configurer avec Netatalk. Ici, je vous montre directement les options pour créer un dossier partagé que Time Machine peut directement utiliser.

Le premier bloc, délimité par la balise [Global], contient les paramètres généraux de Netatalk. On y trouve le nom du serveur, l'emplacement du fichier de log, le type de périphérique à imiter (ici, une Time Capsule) et si on conserve les connexions aux sessions en cours.
Le deuxième bloc correspond au partage en question. Dans les crochets, on indique le nom que l'on souhaite donner au partage et on indique ensuite les options que l'on veut pour ce dossier.

Dans mon exemple, j'ai créé un dossier nommé TimeMachine avec un quota de 350 Go (la taille est à indiquer en mégaoctets). Ce quota permet à MacOS de limiter la taille du dossier et de ne pas remplir tout le disque dur du serveur. L'option time machine = yes permet à Time Machine d'utiliser le dossier pour les sauvegardes.
Une autre option intéressante est valid users qui permet d'activer un système d'authentification et de sécuriser le partage réseau. Ici, j'ai simplement indiqué que tout utilisateur appartenant au groupe users peut se connecter au partage et écrire dans le dossier. Notez qu'il n'a pas de chiffrement ici et que Netatalk ne doit pas être ouvert sur l'extérieur avec cette configuration. Je vous invite à voir la documentation officielle si vous souhaitez activer le chiffrement de la connexion (je n'ai aucun intérêt ici, vu qu'on est sur un réseau local uniquement).

## Lancer le partage et s'y connecter

Pour démarrer Netatalk et l'activer au démarrage, on utilise les deux commandes magiques d'OpenBSD : rcctl enable netatalk && rcctl start netatalk

Un netatalk(ok) devrait alors apparaître dans votre terminal et le serveur est maintenant prêt pour accepter nos clients et échanger des fichiers sur notre réseau local.

Pour faire le test, on se rend sur son client sous MacOS et on ouvre alors une nouvelle fenêtre du Finder. Dans la barre de menu en haut, on clique sur Aller puis sur Réseau pour accéder aux partages réseau disponibles. Dans la fenêtre, au bout de quelques secondes, une nouvelle icône de Time Capsule apparaît avec le nom de votre serveur Netatalk. Il suffit alors de cliquer dessus pour l'ouvrir.
Si besoin, pour se connecter, on clique alors sur le bouton Se connecter et on rentre son nom d'utilisateur sous OpenBSD et son mot de passe. La connexion se fait immédiatement et les partages réseau s'affichent dans le Finder.

Aperçu de la fenêtre du Finder

## Sauvegardes avec Time Machine

Dans le cas d'un dossier créé pour Time Machine, la marche à suivre est la suivante.
Ouvrez Time Machine pour configurer votre disque de sauvegarde. Cliquez alors sur Choisir un disque... pour ouvrir la fenêtre de sélection.
Au bout de quelques secondes, votre dossier partagé apparaît automatiquement et il vous suffit de cliquez dessus pour lancer la configuration de Time Machine et démarrer la sauvegarde. Si vous avez activé l'authentification, Time Machine vous demande alors votre nom d'utilisateur OpenBSD et votre mot de passe pour vous connecter avant de continuer.

Et voilà ! Votre Mac se connectera tout seul à votre serveur Netatalk pour faire ses sauvegardes et vous n'aurez plus à vous soucier du reste, vu que Time Machine s'occupe tout seul de toutes les étapes. Vos sauvegardes seront automatiques et sûres.

Interface de Time Machine configuré avec mon dossier en réseau

## Conclusion

Pour terminer cet article, je dois dire que j'ai été impressionné par la simplicité, la rapidité et l'efficacité de Netatalk et d'OpenBSD. En à peine 15 minutes, j'ai un système de sauvegarde complet pour mes deux Macintosh sans rien modifier et en utilisant seulement les outils de base d'Apple et un logiciel libre. Plus de problèmes de mise à jour logiciel et plus besoin d'acheter du matériel dédié qui, de toute façon, deviendra obsolète dans quelques années.
Voilà de quoi redonner vie à un bon vieux Pentium 4 ou tout autre machine qui traîne chez vous !


Crédits photographiques


Commentaire(s) publié(s)


Un commentaire à ajouter ?

Pour ajouter votre commentaire, envoyez directement un mail ici