Ceci n'est pas une question mais un petit pas à pas pour les geeks qui chercheraient à utiliser leur serveur linux sous debian comme serveur de partage AFP et accessoirement espace de sauvegarde time machine.
Certains me diront qu'appletalk fonctionne depuis logntemps sous debian via une simple commande, sauf que c'était le cas sous tiger mais une sombre histoire d'authentification fait que leopard ne se logue plus qu'en invité sur un partage afp linux. La solution ? activer et intégrer ssl au paquet netatalk avant de le compiler et de l'installer. C'est partit :
Déjà posons les bases :
Linux Debian 4.0 (etch) avec des sources en stable.
une partition hdb1 montée sur /media/afp
une partition hdd2 montée sur /media/tm
la commande
- Code: Tout sélectionner
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
entrée sur votre mac (permet à time machine de vous proposer les lecteurs réseau lors de la sélection du volume de sauvegarde)
on se logue en root sur la debian et on s'assure de bien etre dans le dossier /root :
- Code: Tout sélectionner
cd
On attribue les droits sur les dossier voulus à l'utilisateur qui se connectera aux partages :
- Code: Tout sélectionner
chown -R username.username /media/afp
chown -R username.username /media/tm
chmod -R 775 /media/afp
chmod -R 775 /media/tm
username étant l'utilisateur "principal" des partages, ajoutez ensuite tous les autres utilisateurs devant se connecter au groupe de "username"
On commence par un habituel
- Code: Tout sélectionner
apt-get update
apt-get upgrade
au cas où vous ne l'auriez pas fait depuis un moment
On récupère les sources du paquet netatalk :
- Code: Tout sélectionner
apt-get source netatalk
Si jamais vous obtenez une erreur ici, installez bzip2 et autres paquets de décompression (on récupère effectivement les sources du paquet placées dans une archive)
Puis on installe certains paquets nécessaires (notament pour activer ssl) :
- Code: Tout sélectionner
apt-get install devscripts fakeroot libssl-dev cracklib2-dev
Et on demande à apt d'installer toutes les dépendances du paquet netatalk :
- Code: Tout sélectionner
apt-get build-dep netatalk
Petit point : Nous disposons maintenant de tous les paquets nécessaires non seulement à netatalk mais également à l'ajout du support ssl dans celui-ci.
On entre maintenant dans le dossier contenant les sources :
- Code: Tout sélectionner
cd netatalk-x.x.x
On demande a debian de compiler le paquet en activant l'option ssl :
- Code: Tout sélectionner
DEB_BUILD_OPTIONS=ssl debuild
J'ai obtenu une erreur en fin de compilation, je ne suis pas le seul mais je n'ai pas trouvé de solution à cette erreur, étant donné que personne n'en cherche, le paquet fonctionne quand même
On remonte d'un dossier :
- Code: Tout sélectionner
cd ..
et on installe le fichier :
- Code: Tout sélectionner
dpkg -i netatalk*.deb
Même si cette commande installera le paquet, je vous conseil quand même d'entrer le nom exact en vous servant du tab-completion, des fois que ce ne serait pas votre premier essai, il réessaierait d'installer tous les paquets présents dans le dossier.
Et on s'assure que debian ne le remplace pas au prochain apt-get upgrade, vu qu'il remettrait à la place un paquet sans ssl :
- Code: Tout sélectionner
aptitude hold netatalk
Ca y est, on a installé notre paquet et tous les process netatalk sont lancés, on est contents... sauf que vous ne pouvez toujours pas vous connecter. la raison ? toujours cette fameuse façon de s'authentifier de leopard (et puis ça n'aurait pas été drole si c'était aussi facile ^^)
il nous reste plusieurs bricoles à faire pour que tout roule :
d'abord créer un fichier dans le home de chaque utilisateur désirant se connecter via afp :
- Code: Tout sélectionner
echo userpassword > /home/username/.passwd
chown username /home/username/.passwd
chmod 600 /home/username/.passwd
Où username est le login de l'utilisateur (aussi bien pour la box linux que pour le partage afp), et userpassword le mot de passe utilisé pour se connecter au partages afp (notez qu'il peut tout à fait être différent du mot de passe de l'utilisateur sur la box, très utile quand on ne veut pas que les tilisateurs puissent ouvrir une session sur la box, si vous ne comprenez rien a cette dernière partie ce n'est pas un soucis, ne vous y attardez pas).
ensuite on redémarre les process netatalk :
- Code: Tout sélectionner
/etc/init.d/netatalk restart
Tout devrait aller pour le mieux, mais au moment de vous connecter leopard vous monte votre home sur la bécanne et pas moyen de voir vos deux partitions, pas de panique, on n'a pas encore paramétré les différents partages à monter, ce qu'on va s'empresser de faire :
éditez le fichier de configuration de netatalk :
- Code: Tout sélectionner
nano /etc/netatalk/afpd.conf
je ne vais pas m'étendre sur toutes les possibilités de ce fichier, mais simplement vous mettre une copie du mien :
- Code: Tout sélectionner
"1337NAS" -transall -uamlist uams_clrtxt.so,uams_dhx.so -noguest
Dans l'ordre, le nom du serveur entre " " (ici 1337NAS), -transall indique un fonctionnement sur tcp aussi bien que appletalk, le plus important étant de bien avoir "uams_dhx.so" dans la partie uamlist, -noguest permet de désactiver la connexion invité.
Ca c'est fait, passons au deuxième fichier, AppleVolumes.default :
- Code: Tout sélectionner
nano /etc/netatalk/AppleVolumes.default
Ici on va paramétrer les différents partages, voici une nouvelle fois mon fichier :
- Code: Tout sélectionner
/media/afp "Data"
/media/tm "TM"
Relancez une nouvelle fois netatalk :
- Code: Tout sélectionner
/etc/init.d/netatalk restart
Tout devrait fonctionner, vous n'avez plus qu'a remonter les partages, et TM devrait aparaitre dans la liste des volumes disponibles de time machine.
Seulement lors de la première synchro, time machine va lamentablement planter, sans raison aparente. Pas de panique il y a toujours une solution, donc :
Lorsque vous lancez la sauvegarde, time machine va créer un fichier avec un nom dans ce style : 1337BOOK_xxxxxxxxxxxx.sparsebundle, où 1337BOOK sera le nom de votre machine, et xxxxxxxxxxxx l'adresse mac de votre carte réseau filaire.
Le plus simple est de copier le nom de ce fichier avant que time machine ne le supprime en plantant. Ensuite, lancez utilitaire de disque et créez vous même une image sparsebundle, taille indifférente, time machine la redimensionnera, format HFS+, aucun chiffrement, aucun schéma de partition et format sparsebundle, enregistrez sous le même nom que l'image que time machine avait créé et mettez la même chose en nom de volume.
Placez ensuite cette image dans le volume Time machine, relancez la sauvegarde, et goutez au plaisir de time machine sans monopoliser un disque dur externe.