Dateiserver für Mac OS X und TimeMachine mit Debian 6.0

Achtung seit Mac OS X Lion funktioniert die Time Machine erst ab Version 2.2.0 von Netatalk! Verwendet man OSX Lion sollte man netatalk aus den Debian SID Repository installieren. Mac OS X Lion – TimeMachine und Debian 6 (Squeeze)

Es gibt einige Tutorials Web allerdings sind die schon etwas veraltet. Ich hab meinen privaten Homeserver diese Woche, erweitert und auf Debian 6.0 aktualisiert. Ich besitze eben auch einen Mac. Zwar nur einen einzigen Mac was einen Fileserver für OSX Systeme eher sinnlos macht allerdings müssen ja irgendwie Backups erstellt werden. Einer der wichtigsten Dinge bei Backups ist meiner Meinung nach, dass sie komplett automatisch ablaufen sollen. Ohne jegliches Zutun des Benutzers. Sobald der Benutzer selbst etwas machen muss, damit das Backup automatisch abläuft, wird oft darauf vergessen. Unter MacOSX ist es mit Hilfe von TimeMachine sehr einfach Sicherungen zu erstellen. Man kann aber nicht nur externe Festplatten verwenden, sondern auch einen Fileserver im Netzwerk angeben, wenn die Freigabe auf diesem korrekt konfiguriert wurde. Bei einem mobilen Gerät wird gerne darauf vergessen die Festplatte während des Arbeitens anzustecken um Backups zu haben. Bequem ist es auch nicht gerade neben einer Festplatte auf der Couch zu liegen.

Installation der notwendigen Pakete

apt-get install netatalk avahi-daemon

Netatalk ist eine ganze Sotfwaresammlung. Netatalk kann auch die unter MacOS üblichen Protkolle wie AppleTalk, PAP … dies sind aber allerdings schon recht alte Protokolle die selbst Apple in den letzten Jahren vernachlässigt hat. Nur um die Kompatibilität zu alten Apple Systemen zu wahren werden diese auch noch von aktuellen Snow Leopard Versionen unterstützt. Die wichtigste Funktion von Netatalk ist eigentlich AFP over TCP.

Der avahi-daemon ist eine Implemetierung von Zeroconf. Mit diesem Dienst kann man den Server im Netzwerk bekannt machen (ähnlich wie NetBIOS). Damit also der Server im Netzwerk aufscheint und so leicht gefunden werden kann wird der avahi-daemon installiert und eingerichtet

Konfiguration

Konfiguration von netatalk

Die /etc/netatalk/afpd.conf ist die zentrale Konfigurationsdatei des afpd. In dieser kann man die allgemeinen Einstellungen des afpds ändern. Die Konfiguration ist eigentlich komplett leer. All diese Einstellungen werden einfach beim Starten von afpd als Option angehängt. Man kann also für nähere Informationen die Manpage von Netatalk lesen (man afpd). Wichtig ist nur die letzte Zeile in der Konfigurationsdatei.

- -tcp -noddp -uamlist uams_dhx.so,uams_dhx2.so -nosavepassword

Diese Zeile ist schon in der Konfiguration vorhanden und muss nur auskomentiert werden.

Nachdem man netatalk neu gestartet hat (/etc/init.d/netatalk restart), kann man sich mit dieser Konfiguration schon mit dem Server verbinden. Wenn also nur das Homeverzeichnis freigegeben werden soll und der Server nicht einfach im Finder angezeigt werden soll dann ist man eigentlich schon fertig. Verbinden geht recht einfach. Den Finder öffnen, [cmd]+[K] und z.B. mit „afp://192.168.0.2“ mit dem Server mit der IP 192.168.0.2 verbinden. Hat man nur zugriff auf einen einzigen Share wird gleich dieser Verbunden und man wird nicht mal gefragt welche Freigabe verbunden werden soll.

Gut der Fileserver funktioniert so weit. Nur wollen wir ja auch die TimeMachine auf eine Freigabe schreiben lassen. Dafür legt man am besten einen getrennten Share an. Freigaben werden in /etc/netatalk/AppleVolumes.default definiert. Auch diese Datei strotzt so vor Kommentaren. Will man das ganze genauer verstehen kann man sich auch dadurch arbeiten. Eine Manpage ist natürlich auch vorhanden
man AppleVolumes.default

Auch hier sind am Ende der Konfigurationsdatei schon sinnvolle default-Einstellungen gesetzt.

# The line below sets some DEFAULT, starting with Netatalk 2.1.
:DEFAULT: options:upriv,usedots

# By default all users have access to their home directories.
~/                      "Home Directory"

/media/backup/TimeMachine-flo TimeMachineFlo    allow:flo       options:tm

# End of File

Der Aufbau der Datei ist recht einfach
path [ volume name ] [ options ]

Um eine Backupfreigabe für TimeMachine zu erstellen ist die Option tm wichtig.

/media/backup/TimeMachine-flo TimeMachineFlo allow:flo options:tm

Auf meinem Server befindet sich für Backups ein extra Verzeichnis. Bei den TimeMachine Freigaben muss aber der entsprechende User auch das Recht besitzen dort zu schreiben. Also muss im Filesystem auch die Berechtigung richtig gesetzt werden.

chown -R flo:flo /media/backup/TimeMachine-flo

Damit ist mein User (flo) Besitzer dieses Ordners und darf dort schreiben.

Konfiguration des avahi-daemon

Im Prinzip funktioniert das Ganze auch ohne den avahi-daemon. Allerdings erscheint der Server nicht unter Netzwerk im Finder. Konfiguriert wird der avahi-daemon über die Datei /etc/avahi/avahi-daemon.conf. Eigentlich muss bei der Datei nichts mehr angepasst werden. Wenn man allerdings auch einen Samba Server für Windows-Maschinen laufen lassen will würde ich es empfehlen einen anderen Hostnamen einzusetzen. Das Proble ist nämlich wenn Samba & Netatalk/avahi auf der gleichen Maschin elaufen das auf Mac Rechnern nur die Samba Freigaben im Finder erscheinen. Setzt man einen anderen Hostnamen ein erscheinen unter Netzwerk auf den Mac-Rechnern zwei Server

# This file is part of avahi.
#
# avahi is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# avahi is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with avahi; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.

# See avahi-daemon.conf(5) for more information on this configuration
# file!

[server]
host-name=majestix-apple
#domain-name=local
#browse-domains=0pointer.de, zeroconf.org
use-ipv4=yes
use-ipv6=yes
#allow-interfaces=eth0
#deny-interfaces=eth1
#check-response-ttl=no
#use-iff-running=no
#enable-dbus=yes
#disallow-other-stacks=no
#allow-point-to-point=no
#cache-entries-max=4096
#clients-max=4096
#objects-per-client-max=1024
#entries-per-entry-group-max=32
ratelimit-interval-usec=1000000
ratelimit-burst=1000

[wide-area]
enable-wide-area=yes

[publish]
#disable-publishing=no
#disable-user-service-publishing=no
#add-service-cookie=no
#publish-addresses=yes
#publish-hinfo=yes
#publish-workstation=yes
#publish-domain=yes
#publish-dns-servers=192.168.50.1, 192.168.50.2
#publish-resolv-conf-dns-servers=yes
#publish-aaaa-on-ipv4=yes
#publish-a-on-ipv6=no

[reflector]
#enable-reflector=no
#reflect-ipv=no

[rlimits]
#rlimit-as=
rlimit-core=0
rlimit-data=4194304
rlimit-fsize=0
rlimit-nofile=768
rlimit-stack=4194304
rlimit-nproc=3

Damit ist es aber noch nicht getan, es muss auch noch eingestellt werden welcher Dienst mittels Avahi publiziert werden soll. Für jeden Dienst wird eine Konfigurations Datei im Verzeichnis /etc/avahi/services angelegt. Für den afpd wird also die Datei afpd.service mit folgendem Inhalt angelegt

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-group>

Nicht vergessen den Avahi-daemon neu zu starten (/etc/init.d/avahi-daemon restart). Damit die Konfiguration zu übernommen wird und schon erscheint der Server unter Netzwerk im Finder. Verbindet man die TimeMachine Freigabe, kann man diese als Zielvolume auswählen. Und seine Sicherungen in Zugunft über das Netzwerk laufen lassen.

About Florian