Ich betreibe einen kleinen Linux Home Server. Dieser fungiert auch als AppleTalk Fileserver. Aktuell benutzt der Server die Ubuntu LTS Version 10.04. In dieser Version ist leider nur das veraltete Netatalk Paket in der Version 2.0.5.3 enthalten. Dadurch ist es leider nicht möglich mit einem aktuellen Mac Rechner die Freigaben als Time Machine Backup einzurichten. Diese Anleitung beschreibt, wie man Netatalk selber übersetzt und konfiguriert.

Originales Paket deinstallieren

Falls dieses Paket schon installiert ist muss es deinstalliert werden. Über die purge Option werden auch die globalen Konfigurationsdateien mit gelöscht:

apt-get purge netatalk

Achtung: Falls die Konfigurationsdateien weiter verwendet werden sollen, sollten sie vorher gesichert werden. Für das Übersetzen der Quellen sind folgende Pakete zusätzliche erforderlich:

apt-get install \ 
  build-essential \
  devscripts \
  cracklib2-dev \
  dpkg-dev \
  libssl-dev \
  libkrb5-dev \
  krb5-multidev \
  libdb-dev \
  libgcrypt11-dev \
  wget \
  rcconf

Über das Paket build-essential bekommt man den GNU C/C++-Compiler und die libc Bibliothek plus make installiert.Die restlichen Pakete sind alles Bibliotheken die zum Übersetzen des Netatalk Paketes notwendig sind.

Quellen downloaden, übersetzen und installieren

Danach kann man die aktuellen Quellen von der Netatalk Seite downloaden und entpacken:

  cd /usr/src
  wget http://sourceforge.net/projects/netatalk/files/netatalk/2.2.1/netatalk-2.2.1.tar.gz
  tar xfvz netatalk-2.2.1.tar.gz

Nach dem Wechsel in das Quellcode Verzeichnis lässt wird der Quellcode konfiguriert:

  cd netatalk-2.2.1
  ./configure \
  --enable-debian \
  --enable-pgp-uam \
  --enable-krb4-uam \
  --enable-krbV-uam \
  --enable-overwrite \
  --sysconfdir=/etc

Durch diesen Befehl wird es für eine Debian/Ubuntu Installation konfiguriert. Über die Option –enable-overwrite werden die Startdateien für das Programm neu in das Verzeichnis /etc/netatalk geschrieben. Übersetzt wird dann alles mit dem Befehl:

make -j2

wobei über den -j Parameter die Anzahl der Prozessorkerne angegeben werden kann. Als letzter Schritt ist dann noch der make install Aufruf notwendig. Hierbei werden die Dateien an die zuvor konfigurierten Verzeichnisse kopiert:

make install

Konfiguration

Netatalk Dämonen besänftigen

In der Standard Konfiguration werden einige Dienste aus dem Netatalk Paket gestartet welche in neueren Mac OS Version nicht mehr benötigt werden. Diese sind nur für ältere Mac's noch interessant. Sofern nur Mac OS X Clients im Einsatz sind, können einige Dienste abgeschaltet werden.

Die Einstellungen welche Dienste gestartet werden, sind in der Datei /etc/default/netatalk angegeben. Im Abschnitt Legacy Configurations sind die älteren Dienste zu finden:

  ATALKD_RUN=no
  PAPD_RUN=no
  TIMELORD_RUN=no
  A2BOOT_RUN=no

Die wichtigen Dienste sind:

  CNID_METAD_RUN=yes
  AFPD_RUN=yes

Bei Bedarf lassen sich in dieser Datei noch weitere allgemeine Einstellungen des Servers vornehmen. Für eine erste Inbetriebnahme sollten die obigen Einstellungen allerdings reichen.

AFPD - Apple Filing Protocol Daemon konfigurieren

Über die Datei /etc/netatalk/afpd.conf wird der Apple Filing Protocol Daemon konfiguriert. Hier können prinzipiell verschiedene virtuelle Server angelegt werden. Weiterhin wird die Art der Benutzer Authentifizierung festgelegt.
Eine Minimalkonfiguration besteht aus nur einer Zeile:

  # default:
  - -tcp -noddp -uamlist uams_randnum.so,uams_dhx2.so -nosavepasswo -advertise_ssh

Freigaben bearbeiten

Alle Freigaben werden nun in der Datei /etc/netatalk/Volumes.Default eingetragen. Die Datei hat dabei folgenden Aufbau:

[Verzeichnis] [Freigabe Name] [Benutzer|Gruppen] [Optionen]

Beispiel:

  /mnt/netatalk/data        data        allow:volker
  /mnt/netatalk/mac_os      mac_os      allow:volker
  /mnt/netatalk/timemachine timemachine allow:volker options:tm,usedots,upriv

Nach einem Neustart des Servers sollten die Änderungen wirksam werden.

  /etc/init.d/netatalk restart
  Restarting Netatalk Daemons (this will take a while)Stopping Netatalk Daemons: afpd cnid_metad.
  Starting Netatalk services (this will take a while):  cnid_metad afpd.
  done.

Beachten sollte man noch, dass Netatalk auch bei jedem Systemstart gestartet wird. Dies lässt sich sehr gut über das Programm rcconf einstellen.