Installer ZeroTier sur TrueNAS

TrueNAS, précédemment appelé FreeNAS, est un serveur de fichiers flexible qui s'appuie sur ZFS et FreeBSD, couramment utilisé pour le stockage de fichiers et pour des sauvegardes Time Machine. Le support de ZeroTier, qui était précédemment intégré à FreeNAS, a été retiré dans TrueNAS à partir de la version 11.3 pour des raisons de licence.

Cependant, il est possible d'installer ZeroTier sur TrueNAS (versions 12 et 13) en modifiant les paramètres par défaut pour autoriser l'installation des paquets FreeBSD. Ce processus consiste à désactiver les paquets locaux et à activer les paquets FreeBSD via l'édition des fichiers de configuration appropriés. Par la suite, l'installation de ZeroTier peut être effectuée à l'aide de l'utilitaire natif pkg.

Il est important de noter que ces modifications ne sont pas persistantes après un redémarrage. Cela signifie que chaque mise à jour de ZeroTier requerra la répétition de ces étapes. Pour résoudre ce problème, il est possible de rendre ZeroTier persistant sur TrueNAS, même si cela va à l'encontre des recommandations des développeurs de TrueNAS.

La solution à ce problème réside dans l'ajout d'un script ZeroTier à /etc/local/rc.d et l'activation de ce dernier dans /etc/rc.local, pour garantir que le service démarre au démarrage. La configuration de FreeBSD doit également être modifiée pour lancer le démon ZeroTier automatiquement au redémarrage. Ces modifications doivent être sauvegardées dans la zone persistante, à savoir /conf/base, qui est utilisée par TrueNAS pour réinitialiser certains répertoires au démarrage.

Dans l'ensemble, ces modifications permettent l'installation et l'utilisation de ZeroTier sur TrueNAS, malgré les contraintes imposées par le système. Cependant, il est fortement recommandé de procéder avec prudence lors de l'apport de ces modifications, en raison du risque potentiel de compromettre la stabilité du système d'exploitation.

Mise en place :

Désactivation des paquets locaux :

Modifiez "enabled: yes" en "enabled: no"

Activation des paquets FreeBSD :

Modifiez "enabled: no" en "enabled: yes"

Désormais, vous pourrez installer n'importe quel paquet FreeBSD en utilisant l'utilitaire natif pkg. Toutefois, cette configuration ne persiste pas après un redémarrage, donc toute mise à jour de ZeroTier nécessitera de refaire ces étapes.

Installation de ZeroTier sur TrueNAS

En supposant que vous ayez déjà configuré ZeroTier et que vous ayez un identifiant de réseau, saisissez les commandes suivantes dans votre terminal TrueNAS pour installer et configurer le paquet ZeroTier de FreeBSD :

pkg install zerotier
/usr/local/sbin/zerotier-one -d
/usr/local/bin/zerotier-cli join <votre ID de réseau>

Si tout se passe comme prévu, votre système TrueNAS apparaîtra désormais dans votre interface ZeroTier Central. Acceptez-le et (optionnellement) attribuez manuellement une adresse IP.

Utilisez ifconfig pour vérifier que les interfaces sont opérationnelles et tapez /usr/local/bin/zerotier-cli listnetworks pour vous assurer que tous les réseaux affichent "OK". Ensuite, testez la connectivité en envoyant une requête ping à votre machine TrueNAS depuis un autre client ZeroTier et vice-versa. Si tout s'est bien passé, vous devriez pouvoir accéder à votre serveur de fichiers depuis n'importe où !

Rendre ZeroTier Persistant sur TrueNAS

Un problème majeur avec TrueNAS est qu'il réinitialise toute cette configuration à chaque redémarrage ! Ainsi, vous devrez relancer le démon ZeroTier et rejoindre à nouveau tous vos réseaux chaque fois que vous redémarrez.

Si vous souhaitez rendre ZeroTier (ou tout autre service sur TrueNAS) persistant à travers les redémarrages, vous devez effectuer des manipulations pour contourner ce comportement.

ZeroTier utilise plusieurs composants situés à différents endroits, certains d'entre eux ne seront pas affectés par un redémarrage de TrueNAS. Les binaires dans /usr/local/sbin et /usr/local/bin sont sûrs, mais les fichiers de configuration dans /var/db/zerotier-one et la configuration du démon ne survivront pas à un redémarrage.

Nous devons ajouter un script ZeroTier à /etc/local/rc.d et ajouter une activation à /etc/rc.local afin que le démon démarre au démarrage.

Accédez à https://github.com/ChanceM/pfSense-pkg-zerotier/blob/master/zerotier et copiez le texte de ce fichier

vim /etc/local/rc.d/zerotier

Collez le texte et enregistrez avec :wq

Rendez-le exécutable :

chmod 555 /etc/local/rc.d/zerotier

Testez votre nouveau service ZeroTier

service zerotier stop
service zerotier start

Nous allons maintenant configurer FreeBSD pour démarrer le démon ZeroTier automatiquement au redémarrage.

vim /etc/rc.conf

Ajoutez la ligne suivante juste avant nginx_enable:

zerotier_enable="Yes"

Avant de poursuivre, vérifiez que votre configuration ZeroTier fonctionne à 100% !

TrueNAS stocke la configuration persistante dans /conf/base et utilise cela pour effacer les répertoires /etc, /mnt, et /var au démarrage. Vous pouvez modifier /conf/base et apporter des changements à la configuration en utilisant les commandes suivantes.

Avant de poursuivre, installez ZeroTier et rejoignez tous les réseaux que vous souhaitez conserver !

Sauvegardez les composants ZeroTier qui doivent rester

cd / ; tar -cvf ~/zerotier.tar etc/rc.conf etc/local/rc.d/zerotier var/db/zerotier-one

Rendez le système de fichiers racine inscriptible

mount -uw /

Restaurez notre configuration dans la zone persistante

cd /conf/base
tar -xvpf ~/zerotier.tar

ZeroTier devrait persister après un redémarrage !

Réadapté et traduit depuis la source suivante : https://blog.fosketts.net/2022/02/03/how-to-install-zerotier-on-truenas-12