Mac OS X Time Machine auf NAS sichern lassen

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.

howtos/mac.os.x.time.machine.auf.nas.sichern.lassen.txt · Last modified: 2011/11/03 15:47 by daniel
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki