Kerberos5 und OpenAFS unter GNU/Linux
Einleitung
Diese Anleitung beschreibt kurz die Installation und Konfiguration eines Kerberos Servers und eines OpenAFS Server unter Debian GNU/Linux. In der ganzen Anleitung werden als Beispiele die Domain example.com und das IP-Netz 10.0.0.0/24 verwendet.
Voraussetzungen
Es werden neue Pakete auf dem Debian GNU/Linux System installiert, diese müssen bereitgestellt werden. Desweiteren muss das Netzwerk zu einem Client funktionsfähig sein.
Der Kerberos und OpenAFS Server wird im Beispiel auf dem gleichen System installiert: 10.0.0.11.
DNS
Damit Kerberos und OpenAFS optimal funktionieren sind einige DNS Einträge in der Zone example.com zu machen:
kerberos IN A 10.0.0.11 afs IN A 10.0.0.11 _kerberos IN TXT "EXAMPLE.COM"_kerberos-master._udp IN SRV 0 0 88 kerberos _kerberos-adm._tcp IN SRV 0 0 749 kerberos _kpasswd._udp IN SRV 0 0 464 Kerberos _kerberos._udp IN SRV 0 0 88 kerberos EXAMPLE.COM. IN AFSDB 1 afs.example.com.
In allen Dokumentationen wird immer wieder darauf hingewiesen, dass es wichtig ist auf die Gross-/Kleinschreibung zu achten: das Kerberos realm wird immer komplett gross geschrieben und die AFS cell immer komplett klein. Zur vereinfachung geht diese Anleitung davon aus, dass die realm und die cell den gleichen Namen tragen.
Kerberos Installation
Die Installation der Kerberos Software geht recht schnell, apt-get install krb5-kdc krb5-admin-server krb5-clients ; krb5_newrealm. Die Fragen die apt-get muss man beantworten. Die Konfiguration von Kerberos findet vor allem in /etc/krb5.conf statt. Hier ist wichtig, dass default_realm und EXAMPLE.COM in der Sektion <realms> richtig konfiguriert ist.
Als nächstes wird ein principal (also ein Account) für einen Benutzer angelegt, dieser wird administrative Rechte erhalten und später den OpenAFS server verwalten.
kadmin.local -q "addprinc user@EXAMPLE.COM"
kadmin.local -q "addprinc user/admin@EXAMPLE.COM"
user/admin@EXAMPLE.COM muss jetzt in /etc/krb5kdc/kadm5.acl der Eintrag user/admin@EXAMPLE.COM * sorgt dafür das dieser principal vollen Zugriff auf die Kerberos Datenbank erhält.
Mittels kinit user/admin und dem richtigen Passwort sollte man die entsprechenden Ticket vom Kerberos Server bekommen (verifizierbar mittels klist).
OpenAFS Installation
apt-get install openafs-dbserver openafs-krb5 openafs-client installiert die OpenAFS Basis, hierbei ist darauf zu achten, dass openafs-client nicht nacht der Installation des Paketes oder nach dem booten gestartet wird. Die Antworten auf die Fragen von apt-get sollten klar sein. Zur Verifikation der Installation sollte in /etc/openafs/CellServDB der Zellenname mit der IP-Adress 10.0.0.11 enthalten sein. /etc/openafs/ThisCall sollte den Zellennamen enthalten.
OpenAFS Kernel Modules
Die Kernel Module für OpenAFS müssen wahrscheinlich auf dem Server kompiliert werden, am schnellsten geht es mit:
apt-get install module-assistant
module-assistant prepare openafs-modules
module-assistant auto-build openafs-modules
Kerberos: AFS principal anlegen
Für die Administration von OpenAFS wird ein separater principal angelegt. Hierzu wird kadmin.local genutzt und folgende Befehle
addprinc -randkey -e des-cbc-crc:v4 afs
ktadd -k /tmp/afs.keytab -e des-cbc-crc:v4 afs
Dieser principal wird mit asetkey add <kvno> /tmp/afs.keytab afs in die OpenAFS Konfiguration übernommen und im Keyfile abgelegt. kvno ist die kvno die von kadmin.local ausgegeben wurde.
Anlegen der root.cell
Als nächstes muss eine root.cell angelegt werden, hierzu nutzt OpenAFS initial die Partition /vicepa, dies muss eine Partition sein. Der Schnellstart wäre eine mittels loop gemountete Datei:
dd if=/dev/zero of=/var/lib/openafs/vicepa bs=1024k count=64
mke2fs /var/lib/openafs/vicepa
mkdir /vicepa
mount -oloop /var/lib/openafs/vicepa /vicepa
Den Eintrag in /etc/fstab zum automatischen mounten während des booten sollte man nicht vergessen!
Das Skript afs-newcell führt die entsprechende Konfiguration zum anlegen einer neuen Zell durch. kinit user/admin; aklog holt vom Kerberos mit adminitrativen Rechten ausgestattete Tickets und überträgt sie in ein entsprechendes OpenAFS Token. Dies muss mittels tokens sichtbar sein. afs-rootcell legt die root.cell auf dem Server an. Idealerweise bootet man den server jetzt neu - Muss aber nicht.
Einen Benutzer anlegen
Nachdem der Server läuft wird in diesem Abschnitt beschrieben wie ein neuer Benutzer und ein Datenbereich für diesen angelegt.
Benutzer anlegen
Mit kadmin.local fügt man einen neuen principal in die Kerberos Datenbank an: add benutzer, danach wird dieser Benutzer auch im OpenAFS angelegt:
pts createuser benutzer -id 501
Datenbereich
Auf dem OpenAFS Server wird jetzt ein volume für den Benutzer angelegt, ihm werden alle Rechte auf diesen Datenbereich zugesichert und die quota auf 0 (unbegrenzt) gesetzt:
vos create afs /vicepa user.benutzer -maxquota 0
cd /afs/.example.com/user
fs mkm benutzer user.benutzer
chown benutzer benutzer
fs sa benutzer benutzer all
fs sa benutzer system:authuser l
vos release user
fs checkvolumes
MacOSX Client
Nach der Installation des OpenAFS for MacOS 10 Client ist für diesen die CellServDB und ThisCell in /var/db/openafs/etc anzupassen. In der CellServDB muss mindestens
example.com # example
10.0.0.11 # afs.example.com
enthalten sein. Nach den # folgt kein Kommentar, sondern genutzte Daten!
zusätzliche Authentisierung
Zusätzlich zur Authentisierung unter MacOS muss man auf dem Client mittels des Terminals auch ein Kerberos Ticket und ein OpenAFS Token vom Server erfragen:
kinit benutzer
aklog
tokens
tokens listet dabei nur die AFS tokens auf.
Jetzt sollte man vollen schreib/lese-Zugriff auf /afs/example.com/daten/benutzer auf dem MacOS client haben.
Quellen
About this entry
You’re currently reading “Kerberos5 und OpenAFS unter GNU/Linux,” an entry on B:\datenbrei
- Published:
- 2006-03-08, 15° 03'
- Category:
- GNU Debian/Linux, Kerberos, openafs, projects
- Tags:
-
B4mad blogging bluetooth coding comments desktop Events foaf general blogging GNU Debian/Linux IBM jabber/XMPP Java Kerberos macish MacOSX mobile Mono/C# mtb music openafs OS philosophy Photographie photos podcasting projects Python semantic web sioc technology Travel web 2.0 webservices wireless WordPress
- Maybe related:
- Action:
- , bookmark
7 Comments
Jump to comment form | comments rss [?] | trackback uri [?]