30.3Apple Filing Protocol
Das Apple Filing Protocol (kurz AFP) ist ein Netzwerkprotokoll zum Zugriff auf Dateien und Verzeichnisse über das Netzwerk. AFP kommt standardmäßig zum Einsatz, wenn mehrere Apple-Computer in einem lokalen Netzwerk Dateien austauschen möchten.
Vielleicht fragen Sie sich: »Wozu AFP, OS X unterstützt doch auch SMB?« Prinzipiell stimmt das, und seit Herbst 2013 ist SMB mit OS X 10.9 sogar zum bevorzugten Protokoll für Netzwerkverzeichnisse geworden. Allerdings ist AFP nach wie vor das einzige Protokoll, um Backups mit der Time Machine in Netzwerken durchzuführen.
Für die Nachbildung des Apple Filing Protocols ist das Open-Source-Programm Netatalk verantwortlich. Entsprechende Pakete stehen in allen gängigen Distributionen zur Verfügung. Netatalk kommt auch in nahezu allen NAS-Geräten (Network Attached Storage) zum Einsatz.
In diesem Abschnitt erfahren Sie, wie Sie Netatalk so einrichten, dass OS-X-Rechner im lokalen Netzwerk Dateien lesen und speichern und Ihren Linux-Server als Backup-Medium verwenden können. Netatalk bietet darüber hinaus unzählige Optionen und Konfigurationsvarianten, die nur in Sonderfällen relevant sind und auf die ich deswegen nicht eingehe. Werfen Sie gegebenenfalls einen Blick in das eher dürftige Online-Handbuch auf der Netatalk-Website:
http://netatalk.sourceforge.net
Dieses Kapitel bezieht sich auf die Netatalk-Versionen 3.n. Version 3.0 wurde bereits im Juli 2012 vorgestellt, hat in den Linux-Distributionen aber leider noch keine besonders große Verbreitung gefunden: Im Herbst 2015 konnten lediglich Fedora 23 und openSUSE 42 (Leap) mit aktuellen Netatalk-Paketen aufwarten.
Ubuntu-Version 15.10 enthält nur die vollkommen veraltete Netatalk-Version 2.2.5. Das ist aber immer noch besser als der Status quo bei Debian 8, CentOS 7 bzw. RHEL 7: Dort fehlt Netatalk gleich ganz, und zwar auch in der EPEL-Paketquelle. Die Debian-Entwickler begründen das mit unklaren Copyrights, was insofern schwer nachvollziehbar ist, als auf der Netatalk-Webseite eindeutig die GPL 2 als Lizenz angegeben wird.
Die Tests für dieses Kapitel habe ich mit Netatalk 3.1.3 unter Fedora 23 durchgeführt. Wie Sie Netatalk 3 unter Debian, CentOS, RHEL und Ubuntu installieren, können Sie auf den folgenden Seiten nachlesen:
-
http://netatalk.sourceforge.net/wiki/index.php/Netatalk_3.1.7_SRPM_for_Fedora_and_CentOS
-
http://netatalk.sourceforge.net/wiki/index.php/Install_Netatalk_3.1.7_on_Ubuntu_15.04_Vivid
-
http://netatalk.sourceforge.net/wiki/index.php/Install_Netatalk_3.1.7_on_Debian_8_Jessie
-
https://daniel-lange.com/archives/102-Apple-Timemachine-backups-on-Debian-8-Jessie.html
Vielleicht fragen Sie sich, warum ich mich hier derart ausführlich mit Versionsnummern aufhalte. Das hat damit zu tun, dass sich die Netatalk-Konfiguration mit Version 3.0 grundlegend verändert (und vereinfacht) hat. Die hier präsentierte Anleitung ist daher für alte Netatalk-Versionen nicht geeignet!
Die Konfiguration für Netatalk befindet sich in der Datei /etc/netatalk/afp.conf. Die Syntax ist ähnlich wie bei Samba: Die Datei wird durch [name] in Abschnitte unterteilt, Einstellungen erfolgen in der Form parameter = wert. Es gibt zwei reservierte Abschnittsnamen: [Global] für Grundeinstellungen und [Homes] für Heimatverzeichnisse. Alle weiteren Abschnitte bezeichnen »Volumes«, also Netzwerkverzeichnisse. Die folgenden Zeilen veranschaulichen die Syntax:
Die folgenden Absätze erläutern die wichtigen Schlüsselwörter. hostname gibt an, unter welchem Namen der Rechner für OS X sichtbar sein soll. Eine Einstellung ist nur notwendig, wenn dieser Name vom Linux-Hostnamen abweichen soll.
Die Einstellung basedir regex = /home besagt, dass alle /home/name-Verzeichnisse als Heimatverzeichnisse freigegeben werden sollen. Der Zugriff auf diese Verzeichnisse erfordert einen Login, wobei Sie den Linux-Loginnamen und das dazugehörende Passwort angeben müssen. Anders als Samba verwendet Netatalk also dieselben Passwörter wie Linux.
[test] leitet die Definition des Netzwerkverzeichnisses (»Volume«) mit dem Namen test ein. Sein Inhalt ergibt sich aus dem Inhalt des lokalen Verzeichnisses /data/forosx. Dabei werden die Zugriffsrechte unverändert von Linux nach OS X weitergegeben. Wenn der Login zum AFP-Volume als kofler erfolgt, dann können von OS X aus nur die Dateien gelesen bzw. verändert werden, für die auch der Linux-Benutzer kofler entsprechende Zugriffsrechte hat.
[tm] definiert ein weiteres Netzwerkverzeichnis, das aufgrund der Einstellung time machine = yes für Time-Machine-Backups verwendet werden darf. Dabei ist der Login nur für kofler zulässig. vol size limit limitiert die Größe des Backup-Volumes circa auf den angegebenen Wert in MByte. Die Einstellung verhindert, dass wiederholte Backups die gesamte Festplatte vollschreiben.
Netatalk unterstützt unzählige weitere Möglichkeiten, die Sie mit man afp.conf bzw. auf der Webseite http://netatalk.sourceforge.net nachlesen können.
Netatalk kommuniziert über den Port 548. Wenn dieser Port durch eine Firewall blockiert ist, was unter CentOS, Fedora, RHEL und SUSE der Fall ist, müssen Sie hierfür eine Ausnahmeregel definieren. Damit OS X überhaupt weiß, dass es einen neuen AFP-Server im Netz gibt, muss außerdem der Avahi-Dämon via MDNS kommunizeren dürfen.
In den folgenden Kommandos für Fedora/CentOS/RHEL findet das erste firewall-cmd-Kommando heraus, welche Firewall-Zone für die LAN-Schnittstelle enp0s3 gilt. Für diese Zone werden dann Ausnahmeregeln definiert und aktiviert:
Der Start von Netatalk erfolgt durch das Init-System der Distribution. Dabei sollten Sie sicherstellen, dass auch der avahi-daemon läuft, was in der Regel der Fall ist.
Unter OS X tauchen AFP-Server nahezu verzögerungsfrei in der Seitenleiste des Finders auf (siehe Abbildung 30.1). Beim ersten Login müssen Sie den passenden Linux-Benutzernamen und das Passwort angeben. In den Systemeinstellungen der Time Machine sind nur die Volumes sichtbar, die in afp.conf mit time machine = yes markiert sind.
Abbildung 30.1Auswahl eines AFP-Verzeichnisses im Finder