Installer Netatalk 3 sur Debian

- Unix

Les solutions de stockage réseau proposée par Apple sont comme tous leurs produits hors de prix, la meilleur solution est d’avoir un NAS ou un petit serveur Linux avec quelques disques durs.

Je possède les deux : le NAS me sert de stockage pérenne et la SheevaBoite me sert de stockage temporaire. Ainsi j’ai souvent besoin d’y accéder aux données stockées sur la SheevaBoite à partir du Finder (pour ne pas m’embêter à utiliser un client FTP).

Préambule

Pour pouvoir monter le partage sur le Mac, il est nécessaire d’avoir installé un daemon Avahi sur son serveur. J’ai déjà écrit un article qui donnait des explications supplémentaires sur l’intérêt d’installer Avahi sur une machine Debian.

Une fois cette première partie terminée, on va se pencher sur netatalk qui est une implémentation libre de l’AFP : le protocole de communication entre Macs.

Si vous ne voulez pas vous prendre la tête et faire confiance à internet, vous pourrez trouver un package compilé de netatalk en version 3.1.7 sur le site de Daniel Lange. C’est la solution que j’avais utilisé avant de tilter que je n’aurai pas les éventuelles mise à jour avec cette solution. Du coup j’ai décidé de le compiler !

Installation de Netatalk

Malheureusement netatalk n’est pas souvent mis à jour dans les paquets Debian. Pour dire vrai, il n’y a aucune version de netatalk sur les dernières version de Debian (mis à part sur Sid), mais c’est pas grave, il va falloir compiler le paquet à la main, mais rien de bien compliqué !

Il y a besoin de pas mal de dépendances à installer avant de commencer :

$> sudo apt-get update
$> sudo apt-get install automake avahi-daemon build-essential checkinstall db5.3-util db-util git-core libacl1-dev libavahi-client-dev libdb5.3-dev libgcrypt20 libgcrypt20-dev libpam0g-dev libtool pkg-config

Ensuite, il faut télécharger les sources de netatalk :

$> wget http://prdownloads.sourceforge.net/netatalk/netatalk-3.1.8.tar.gz

On extrait les sources et on lance le configure avec les options que j’ai récupéré sur le site du projet. Je me suis un peu pris la tête à vouloir ajuster les options pour obtenir des erreurs de compilation, avant de prendre la conf par défaut.

$> tar -xvzf netatalk-3.1.8.tar.gz
$> cd netatalk-3.1.8
$> ./configure \
        --with-init-style=debian-systemd \
        --without-libevent \
        --without-tdb \
        --with-cracklib \
        --enable-krbV-uam \
        --with-pam-confdir=/etc/pam.d \
        --with-dbus-sysconf-dir=/etc/dbus-1/system.d \
        --with-tracker-pkgconfig-version=1.0

Faites juste à attention à votre système d’init, il faut changer l’option --with-init-style si vous êtes sur Debian <8.

Et on termine avec l’installation à proprement parler :

$> make
$> make install 

Configuration

Avec la version 3 de netatalk, toute la gestion de la configuration a été modifiée. Si comme moi vous vous obstinez à vouloir utiliser l’ancienne configuration que vous aviez faite pour la version 2, vous allez perdre votre temps.

Heureusement, la configuration est plus simple à écrire dorénavant, voici une partie de ma conf /etc/netatalk/afp.conf avec 2 montages “Homes” et “Data”:

[Global]
; Global server settings
vol preset = default_for_all
log file = /var/log/netatalk.log
uam list = uams_dhx.so,uams_dhx2.so
save password = no
mimic model = Macmini

[default_for_all]
file perm = 0664
directory perm = 0774
cnid scheme = dbd

[Homes]
basedir regex = /home

[Data]
path = /mnt/data
valid users = user

N’oubliez pas de démarrer le service :

$> systemctl restart netatalk.service

Conclusion

C’est donc dommage de devoir compiler à la main netatalk pour pouvoir faire facilement des montages réseau entre OSX et Linux. Alors certes l’installation ne prend pas longtemps mais c’est bien plus long qu’un simple apt-get install.

Petite info, tant que j’y suis, le protocole AFP utilise le port 548, n’oubliez pas d’ouvrir ce port dans votre firewall…