ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

netatalk

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

./logo.png Netatalk ist eine Implementation des Apple Filing Protocol (AFP) für Unix-Systeme. Das Protokoll ermöglicht den Dateizugriff über ein Netzwerk für (Apple-)Rechner mit den Betriebssystemen Mac OS oder Mac OS X. Zusätzlich lassen sich mit Netatalk auch Drucker für (Apple-)Rechner freigeben.

Installation

Die Authentifizierung erfolgt mit Hilfe des Paketes uams_dhx2.so.

Paketquellen

Das folgende Paket muss aus den Paketquellen installiert werden:

  • netatalk (universe, [2])

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install netatalk 

sudo aptitude install netatalk 

Firewall-Konfiguration

Falls auf der Ubuntu-Installation auch eine Firewall wie ufw installiert wurde, sollten die Ports 548 und 427 geöffnet werden, damit afpd aus dem Netzwerk erreicht werden kann. Das ist im Falle von ufw mit den folgenden Befehlen möglich[3][7]:

sudo ufw allow 548
sudo ufw allow 427
sudo ufw disable && sudo ufw enable 

Benutzung/Konfiguration

Achtung!

Ist VMWare installiert oder die von Netatalk zu benutzende Netzwerkkarte nicht eth0, muss die Karte in /etc/netatalk/atalkd.conf aufgeführt werden[6][7]. Die Parameter für die Karte werden von Netatalk selbst gesetzt.

Anschließend muss der Dienst netatalk neu gestartet werden [5].

Passwort-Einstellungen korrigieren

Um sicherzustellen, dass die Passwörter sicher zum Server übertragen werden, sollte in der /etc/netatalk/afpd.conf die folgende Zeile einkommentiert werden (also ohne # am Anfang)[6]:

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

Damit wird für alle Standardverbindungen (erster -) der TCP Modus festgelegt und nur das Modul uams_dhx2.so zur Authentifizierung erlaubt.

Falls man SSH Tunnel anbieten und erlauben möchte (für AFP Verbindungen über unsichere Netzwerke sinnvoll) sollte man zusätzlich die zwei folgenden Zeilen mit in die Konfigurationsdatei /etc/netatalk/afpd.conf schreiben (wobei der Hostname angepasst werden muss)[6]:

-advertise_ssh
-fqdn ihr.hostname.de

Freigabeeinstellungen für afpd

In der Datei /etc/netatalk/AppleVolumes.default sind als Standard nur die Homeverzeichnisse der Linux-User eingetragen. Andere Verzeichnisse auf dem Server lassen sich durch das Editieren dieser Datei freigeben.

Kommentarzeilen werden in der Datei wie üblich mit einer führenden # gekennzeichnet. Die Konfigurationszeilen sind folgendermaßen aufgebaut:

Pfad [ Freigabe-Name ] [ Optionen ]

Der Pfadname muss entweder ein vollständiger oder ein per Shell-Shorthand gekürzter Pfadname auf dem Server sein. In diesen Pfad können auch Variablennamen eingebaut werden, die in der manpage von "AppleVolumes.default" beschrieben werden.

Der Freigabe-Name erscheint nach dem "Mit Server verbinden"-Dialog von Mac OS X als Laufwerk-Name des Servers. Wenn der Freigabe-Name Leerzeichen enthält, muss er in Anführungszeichen stehen. Der Freigabe-Name darf nicht länger als 27 Zeichen sein und darf keinen Doppelpunkt : enthalten.

Jede Freigabe muss in einer eigenen Zeile stehen.

Es gibt eine Vielzahl von Optionen, die sich für jede Freigabe separat setzen lassen. Die wichtigsten Optionen werden hier beschrieben, weitere finden sich in der manpage von AppleVolumes.default

netatalk-Optionen
Option Funktion
allow:[Benutzer/Gruppen] Mit dieser Option werden Unix-Benutzer und -Gruppen zur Nutzung der Freigabe zugelassen. Benutzer- und Gruppennamen sind per Komma voneinander getrennt. Gruppennamen werden mit einem @ eingeleitet. Beispiel: allow:benutzer1,benutzer2,@gruppe
deny:[Benutzer/Gruppen] Mit dieser Option werden Unix-Benutzer und -Gruppen von der Nutzung der Freigabe ausgeschlossen. Format wie unter allow.
preexec:[Befehl] Mit dieser Option kann ein Befehl angegeben werden, der ausgeführt wird, wenn die Freigabe gemountet wird.
postexec:[Befehl] Mit dieser Option kann ein Befehl angegeben werden, der ausgeführt wird, wenn die Freigabe geschlossen wird.
root_preexec:[Befehl] Mit dieser Option kann ein Befehl angegeben werden, der als root ausgeführt wird, wenn die Freigabe gemountet wird.
root_postexec:[Befehl] Mit dieser Option kann ein Befehl angegeben werden, der als root ausgeführt wird, wenn die Freigabe geschlossen wird.
veto:[Veto-Name] Mit dieser Option werden Dateien und Verzeichnisse nicht angezeigt, deren (Teil-)Pfad mit dem Veto-Namen übereinstimmt. Mehrere Veto-Namen können mit / aneinander gehängt werden. Beispiel: Wenn der Dateipfad /abc/def/dateiname lautet wird mit der Option veto:/abc/ die Datei nicht angezeigt.

Beispiel - Freigabe für Apple Time Machine

Sehr praktisch für Benutzer eines Apple unter Mac OS X ist die Möglichkeit, mit netatalk (und dem darin enthaltenen afpd) ein "TimeMachine Volume" im Netzwerk anzubieten, auf dem mit dem Apple Programm "Time Machine" eine automatische Datensicherung stattfinden kann. Dazu muss wie im Abschnitt 'Freigabeeinstellungen für afpd' beschrieben eine zusätzliche Freigabe mit der Option tm erstellt werden.

So kann in der Datei /etc/netatalk/AppleVolumes.default z.B. die folgende Zeile hinzugefügt werden:

/pfad/zum/sicherungsordner TimeMachine options:tm,usedots,upriv

Anschließend afpd neu starten, um die geänderte Konfiguration zu übernehmen. Dann kann das Volume in Mac OS X nach dem Verbinden zum afpd Server als Backup Volume genutzt werden.

Ergänzungen/Erweiterungen

Richtig komfortabel wird die Netzwerk-Freigabe für Mac OS X im Zusammenspiel von Netatalk mit Bonjour (Zeroconf) – eine Technik, die die automatische Erkennung von Computern, Geräten und verschiedenen Netzwerkdiensten in IP-Netzen bereitstellt. Aus diesem Grund wird die Installation von Avahi per Paketmanager empfohlen. Das Paket dazu heißt avahi-daemon (universe)

Danach wird Folgendes in die Datei /etc/avahi/services/afpd.service eingetragen:

1
2
3
4
5
6
7
8
9
<?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>

Anschließend muss der Dienst avahi-daemon neu gestartet werden [5] und der Server erscheint automatisch auf den Mac OS X-Rechnern unter Netzwerk.

ubuntuusers.local › Wikinetatalk