AFP (Apple Filing Protocol) server
Apple hat die Entwicklung zu seinem File Server Protokoll leider eingestellt, es gibt aber noch eine freie Implementierung auf Linux-Basis. Da im Internet doch erstaunlich wenig zur AFP Implementation gab hier meine Konfiguration zu Netatalk.
Netatalk
Ich habe die Sourcen von der Webseite geladen und selbst compiliert. Ich habe mich für eine Installation unter /opt entschieden.
./configure --prefix=/opt/netatalk --with-init-style=debian-systemd --enable-krb4-uam --enable-krbV-uam
make
make install
Die Konfiguration ist einfach. Unter /opt/netatalk/etc liegt die Config-Datei afp.conf.
;
; Netatalk 3.x configuration file
;
[Global]
; Global server settings
afp interfaces = 10.10.10.9
uam list = uams_dhx.so uams_dhx2.so uams_pam.so
mimic model = PowerMac
file perm = 0664
directory perm = 0774
ea = auto
cnid scheme = dbd
log file = /var/log/netatalk.log
; [Homes]
; basedir regex = /xxxx
[Time Machine Volume]
path = /data/netatalk/timemachine
time machine = yes
# vol size limit is in kB
vol size limit = 500000
valid users = tjard
unix priv = yes
Die Einstellungen sind übersichtlich.
; afp Interfaces gibt an, an welches Interface sich netatalk binden soll
afp interfaces = 10.10.10.9
; es gib unterschiedliche Möglichkeiten eine Benutzerdatenbank zu pflegen. Ich habe in meiner Lösung auch einen Samba-Domain laufen und wollte auch die Samba Konten für die Authentifikation nutzen. Alle Möglichkeiten mit LDAP und Kerberos und Netatalk haben keinen Erfolg gezeigt. Allerdings mit PAM war es letztendlich möglich.
uam list = uams_dhx.so uams_dhx2.so uams_pam.so
file perm = 0664
directory perm = 0774
ea = auto
cnid scheme = dbd
log file = /var/log/netatalk.log
Um ein Time Machine Backup Share anzulegen:
[Time Machine Volume]
path = /data/netatalk/timemachine
time machine = yes
# vol size limit is in kB
vol size limit = 500000
; die Unix User können einfach eingetragen werden. Für Samba User muss die Domain in Grossbuchstaben zusätzlich angeben werden.
valid users = tjard DOMAIN\benutzer
unix priv = yes
Damit ein Mac auch die Services automatisch findet, habe ich auch den avahi-deamon installiert. Für das afp Protokoll habe ich eine Konfiguration unter /etc/avahi/servicesafp.services angelegt.
<?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=RackMac</txt-record>
</service>
<service>
<type>_adisk._tcp</type>
<port>9</port>
<txt-record>sys=waMa=0,adVF=0x100,adVU=b00964c7-9931-45c8-b375-2d1390eee80c</txt-record>
<txt-record>dk0=adVN=My Time Machine Volume,adVF=0x81</txt-record>
</service>
</service-group>
Damit das Unix System auch die Samba User kennt, sind einige Arbeiten notwendig.
In Samba die smb.conf erweitern, sodass winbind gestartet wird:
winbind nss info = rfc2307
winbind trusted domains only = no
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
Damit es funktioniert noch die Datei /etc/nsswitch.conf anpassen:
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: files systemd winbind
group: files systemd winbind
shadow: files systemd winbind
gshadow: files systemd
hosts: files mdns4_minimal [NOTFOUND=return] dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Wenn ich jetzt nicht etwas vergessen habe, könnte ihr mit
getent passwd
Die Benutzer anzeigen. Es sollten auch die Samba Konten angezeigt werden.
Zu guter Letzt habe ich noch unter /etc/pam.d/ die Datei netatalk angelegt:
#%PAM-1.0
auth include common-auth
account include common-account
password include common-password
session include common-session
Ich hoffe es funktioniert nun bei euch sich mit den Linux Konten und den Samba Konten anzumelden. Wichtig bei MacOS wird die Domain nicht mit angegben.
Fragen? Nutzt das Kontaktformular und ich schaue in meiner Konfiguration nach.
Stand 6.8.2023