Um meine Daten auf meinem MacOSX vor Verlust zu sichern, habe ich es bisher so gehandhabt, dass Time Machine, über die bisher bekannte Methode die Daten auf meine NAS sichert. Dies hat aber einen entscheidenden Nachteil: Im Falle, dass eine komplett Rücksicherung per Mac-CDs gemacht werden muss, ist das Laufwerk nicht verfügbar, da ja im laufenden Betrieb der Support für NAS-Laufwerke erst aktiviert werden muss.
Um nun trotzdem ein Backup zu haben, welches man nicht erst mit entsprechenden Hacks verfügbar machen muss, braucht man nicht zwangsläufig eine Time Capsule. Ein Linux, in meinem Fall meine Debian NAS, tut es auch. Das Zauberwort heisst netatalk.
netatalk ist ein OpenSource AFP Server, der sich nahezu perfekt als Apple-Produkt im Netzwerk ausgeben kann (für die Graphik-Enthusiasten sogar mit entsprechendem Icon im Finder, ganz im Apple Cooperative Design).
Sofern die Aussagen im Netz noch stimmen, bringt das Debian Paket, Version 2.0.3, aber keine Verschlüsselung bei der Anmeldung mit. Passwörter können nur im Klartext übermittelt werden. Klar handelt es sich bei meinem Office-LAN um ein lokales Netzwerk, und die Bestimmungen da einzudringen sind nicht ganz einfach (vom nicht vorhandenen WLAN angefangen, über die Notwendigkeit eines LAN-Kabels, bis hin zur Keule hinter meiner Wohnungstür), allerdings muss man das ja nicht so hinnehmen.
Um trotzdem mit Verschlüsselung bei der Anmeldung arbeiten zu können, kommt man nicht drum rum, sich das Paket selbst zu bauen. Dazu installieren/entfernen wir Abhängigkeiten der Version von netatalk aus dem Debian Repository, installieren noch nötige Pakete und holen uns die Sourcen:
cd /usr/src apt-get build-dep netatalk apt-get install libcrack2-dev fakeroot libssl-dev libpam-cracklib apt-get source netatalk cd netatalk-2*
Anschließend wird das netatalk Paket mit aktivierter Verschlüsselung gebaut:
DEB_BUILD_OPTIONS=ssl dpkg-buildpackage -rfakeroot
Dies kann (und wird) eine Weile dauern.
Nach erfolgreichem Abschluss, es kommen maximal ein paar Signierungsfehler die wir aber unbeachtet verwerfen können, sollte sich in /usr/src nun das Debian Paket befinden, welches wir auch direkt installieren
cd - dpkg -i netatalk_2*.deb
Um apt/Debian daran zu hindern, unsere selbst gebaute Version zu aktualisieren, setzen wir sie noch auf “hold”:
echo "netatalk hold" | dpkg --set-selections
Damit wären wir mit der Installation durch, und können uns der Konfiguration zuwenden. Als erstes geben wir in der /etc/default/netatalk an, was für Komponenten von netatalk gestartet werden sollen. Für Freigaben sind folgende Einstellungen erforderlich:
ATALKD_RUN=no # AppleTalk RTMP, NBP, ZIP und AEP Manager PAPD_RUN=no # AppleTalk Printserver CNID_METAD_RUN=yes # Meta-Daten, da ja Linux kein HFS+ kann AFPD_RUN=yes # AFP-Daemon TIMELORD_RUN=no # Timeserver Daemon A2BOOT_RUN=no # Apple Bootserver
Als nächstes ist das Config File /etc/netatalk/afpd.conf dran, welches die allgemeinen Optionen für Freigaben steuert (nicht die Freigaben selbst). Dort tragen wir in die letzte Zeile folgendes ein:
"- -transall -uamlist uams_randnum.so,uams_dhx.so -nosavepassword -advertise_ssh"
Die Zeile ist ohne die Anführungszeichen anzugeben. Die musste ich nur setzen, damit DokuWiki mir daraus keine Aufzählung macht
Die Optionen besagen:
"-" => Einstellungen gelten für den Default Server, alternativ kann man auch den Hostnamen angeben "-transall" => sowohl AFP-over-Appletalk, als auch AFP-over-TCP erlauben "-uamlist uams_randnum.so,uams_dhx.so" => Authentifizierungs-Methoden aktivieren "-nosavepassword" => Na was wohl ;-) "-advertise_ssh" => Verbindungen werden durch SSH getunnelt
Eine Auflistung aller Optionen findet ihr auf der netatalk-Sourceforge Seite.
Weiter im Takt: Das Time Machine Volume ist als nächstes dran. In der /etc/netatalk/AppleVolumes.default kann die letzte Zeile (sollte die Home-Directorys freigeben) gelöscht werden. Stattdessen setzen wir unsere eigene Freigabe rein:
/daten/backup/user01/ "Time Machine Volume" allow:user01 cnidscheme:cdb options:usedots,upriv
Die kurze Erklärung dazu:
/daten/backup/user01/ => Ordner, der freiegeben werden soll "Time Machine Volume" => Beschreibung der Freigabe allow:user01 => Nutzer die darauf zugreifen dürfen cnidscheme:cdb => CNID Backend für diese Freigabe options:usedots,upriv => Dot Files (z.B. ".Datei") werden angezeigt, statt diese in HEX umzuwandeln, und Verwendung der Unix Rechte
Damit sollte die Konfiguration von netatalk stehen. Ein Abschließender Neustart…
/etc/init.d/netatalk restart
…schließt die Config ab.
Damit die Freigabe nun noch im Finder in der Seitenleiste auch angezeigt wird, wird Avahi installiert, ein Bonjour ähnlicher Dienst, welcher Dienste im Netzwerk veröffentlicht:
apt-get install avahi-daemon libnss-mdns
Nach der Installation nehmen wir noch folgende Anpassung in der Datei /etc/nsswitch.conf vor:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
Anschließend veröffentlich wir unsere Freigabe mit folgendem Eintrag in der Datei /etc/avahi/services/afpd.service:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!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>
Nun brauchen wir nur noch Avahi neustarten…
/etc/init.d/avahi-daemon restart
…und im Finder sollte nun schon die NAS erscheinen.
Durch den Eintrag <txt-record>model=Xserve</txt-record> wird übrigens unsere NAS als XServe erkannt.
Um sich nun auch einzuloggen, muss ein Unix-Account auf der NAS bestehen. Der lässt sich mit…
useradd -s /bin/false -d /daten/backup/user01/ user01 passwd user01
…anlegen.
Sollte das Anmelden nicht gelinge, sollte man einen Blick in die Log-Files /var/log/auth.log und /var/log/daemon.log werfen.
Nun noch in /etc/hosts die Hosts-Einträge anpassen:
127.0.0.1 localhost 127.0.1.1 NAS.local NAS
Der Rest (Time Machine konfigurieren) sollte dann kein Problem mehr sein. Unter Umständen muss man das Sparse-Bundle manuell anlegen und auf die Freigabe kopieren. Aber das ist ja nichts, was man nicht mit Google findet.