Étant équipé de plus en plus par des produits marqués d’une pomme, une question devenait de plus en plus importante: Quid de la sauvegarde des données de mon MacBook Pro?
Apple propose une solution clé en main (comme a son habitude) qui s’appelle « Time Machine », cette fonction va vous permettre de faire des sauvegardes complètes et incrémentales de vos données qui sont sur votre appareil.
Il faut savoir que la fonctionnalité Time Machine repose sur un serveur de fichier de type AFP (Apple Filing Protocol) et le protocole de configuration automatique « zeroconf » aussi appelé « Bonjour ».

Mais voila chez Apple tout à un prix et celui la simplicité s’élève tout de même à 369€ pour une Time Capsule de 2To et 499€ pour 3To, bref un investissement non justifié sachant que mon Micro Server Gen8 HP peut très bien remplir ce rôle. Je me suis donc penché sur comment mettre en place un serveur de sauvegarde Time Machine sur Linux (CentOS 7).
Installer les pré-requis
Pour commencer nous allons installés quelques pré-requis systèmes:
yum install -y rpm-build gcc make wget avahi-devel cracklib-devel dbus-devel dbus-glib-devel libacl-devel\
libattr-devel libdb-devel libevent-devel libgcrypt-devel krb5-devel mysql-devel openldap-devel openssl-devel\
pam-devel quota-devel systemtap-sdt-devel tcp_wrappers-devel libtdb-devel tracker-devel bison docbook-style-xsl\
flex dconf
Puis on télécharge les sources du paquet Netatalk depuis le site du dépôt du projet:
wget http://www003.upp.so-net.ne.jp/hat/files/netatalk-3.1.11-0.1.1.fc27.src.rpm -P /opt/
Puis on compile et on installe le tout:
cd /opt
rpm -ivh netatalk-3.1.11-0.1.1.fc27.src.rpm
rpmbuild -bb ~/rpmbuild/SPECS/netatalk.spec
rpm -ivh ~/rpmbuild/RPMS/x86_64/netatalk-3.1.11-0.1.1.el7.centos.x86_64.rpm
Configuration des services
Il ne reste plus qu’à configurer l’ensemble pour que tout fonctionne et on commence par créer un utilisateur dédié à votre rôle Time Machine
useradd tmbackup
passwd tmbackup
mkdir -p /srv/backup/timemachine
chown tmbackup:tmbackup /srv/backup/timemachine
Puis nous allons créer/modifier les différents fichiers de configurations:
Le fichier /etc/avahi/services/afpd.service.
vi /etc/avahi/services/afpd.service
Copier y le contenu suivant en l’adaptant à vos besoins:
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
</service-group>
Le fichier /etc/netatalk/afp.conf
vi /etc/netatalk/afp.conf
Copiez y le contenu suivant en l’adaptant à vos besoins:
[Global]
log level = default:warn
log file = /var/log/afpd.log
hosts allow = 192.168.0.0/24
spotlight = yes
[Time Machine]
path = /srv/backup/timemachine
valid users = tmbackup
time machine = yes
spotlight = no
Le fichier /etc/netatalk/afpd.conf
vi /etc/netatalk/afpd.conf
Copiez y le contenu suivant en l’adaptant à vos besoins:
- -transall -uamlist uams_randnum.so,uams_dhx.so,uams_dhx2.so -nosavepassword -advertise_ssh
Le fichier /etc/netatalk/AppleVolumes.default
vi /etc/netatalk/AppleVolumes.default
Copiez y le contenu suivant en l’adaptant à vos besoins:
/srv/backup/timemachine TimeMachine allow:tmbackup options:usedots,upriv,tm dperm:0775 fperm:0660 cnidscheme:dbd volsizelimit:200000
Enfin pour le fichier suivant /etc/nsswitch.conf rechercher dans le fichier la ligne commençant par « hosts: » et modifiez la comme ceci:
hosts: files mdns4_minimal dns mdns mdns4
On ouvre les flux réseaux dans le pare-feu:
firewall-cmd --zone=public --permanent --add-port=548/tcp
firewall-cmd --zone=public --permanent --add-port=548/udp
firewall-cmd --zone=public --permanent --add-port=5353/tcp
firewall-cmd --zone=public --permanent --add-port=5353/udp
firewall-cmd --zone=public --permanent --add-port=49152/tcp
firewall-cmd --zone=public --permanent --add-port=49152/udp
firewall-cmd --zone=public --permanent --add-port=52883/tcp
firewall-cmd --zone=public --permanent --add-port=52883/udp
firewall-cmd --reload
On active les différents services au démarrage:
systemctl enable avahi-daemon
systemctl enable netatalk
Enfin on redémarre les services:
systemctl start avahi-daemon
systemctl start netatalk
Configuration client
Une fois le serveur configuré, il faut maintenant connecter votre équipement (MacBook Pro pour moi) à votre serveur.
Pour commencer allez dans les paramètres de votre de Mac et sélectionnez « Time Machine »

Dans la fenêtre Time Machine cliquer sur « Choisir un disque… » vous devriez voir apparaitre la liste de l’ensemble des disques utilisables pour mettre en place votre sauvegarde.
Sélectionner votre serveur Time Machine et cliquez sur « Utiliser le disque ».

Rentrer ensuite les identifiants de connexion que vous avez défini pendant la phase d’installation de votre serveur et sélectionner « Se connecter ».

Une fois la configuration terminée vous devriez voir une interface comme celle ci-dessous qui vous informe que le disque pour la sauvegarde a bien été ajouté et que la sauvegarde va bientôt débutée.

Laissez maintenant votre machine tournée pour qu’elle puisse faire la première sauvegarde. Celle-ci risque de prendre du temps si vous stockez beaucoup de données sur votre machine.
Je cherchais depuis un moment une alternative et là je suis conquis.
très simple à réalisé bien écrit merci. Je vais surveiller ton site.
le wiki « Netatalk 3.1.11 on Debian 9 Stretch » m’a donné mal à la tête, je me suis servi du tien adapté à Debian et ça marche ! Un grand merci. C’est propre et efficace !