EDV:OpenAFS: Difference between revisions

From KIP Wiki
⧼kip-jumptonavigation⧽⧼kip-jumptosearch⧽
(→‎Linux-Client: kerberos login und single-sign-on :))
 
(91 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Image:openafs-logo.jpg|framed|right|OpenAFS-Logo]]
= [[EDV:OpenAFS|OpenAFS]] am [[KIP]] =


== Allgemeines ==
* [[EDV_Privat:OpenAFS|EDV-interne Seite]]


Hier im [[KIP]] wird [http://www.openafs.org OpenAFS] als zentrales Netzwerk-Dateisystem verwendet.


AFS (Andrew File System) ist ein Dateisystem, das die plattformübergreifende gleichzeitige Nutzung von Dateien zwischen mehreren Rechnern ermöglicht.
== Allgemeines ==
Es beinhaltet Funktionen zur Zugriffskontrolle (ACLs), Authentifizierung (Kerberos), verschlüsselte Datenübertragung (fcrypt) und einiges [[w:de:Andrew File System | mehr...]]


Ursprünglich wurde es an der Carnegie Mellon Universität entwickelt, und danach von der Transarc Corporation, die 1994 von IBM übernommen wurde, vermarktet.<br />
* Wikipedia Artikel: [[w:de:Andrew File System]]
Seit 2000 existiert eine parallele [[w:de:Open Source | Open Source]] Weiterentwicklung.
* Homepage von [[EDV:OpenAFS|OpenAFS]]: http://www.openafs.org
* Das Rechenzentrum hat auch ein [[EDV:AFS|AFS]]: http://www.urz.uni-heidelberg.de/Software/AFS/


== Client Installation ==


Um sich mit dem AFS-Dateiserver zu verbinden, benötigt man (wer hätte das gedacht) eine entsprechende Client-Software. Diese ist für
=== Was ist (Open)AFS? ===
fast alle Betriebssysteme kostenlos verfügbar.


* ''' [[EDV:OpenAFS/Windows | Installation Windows ]]'''
AFS ist ein sicheres, verteiltes Dateisystem, welches an der Carnegie Mellon Universität entwickelt wurde.
Danach wurde es von der Transarc Corporation, die mittlerweile von IBM übernommen wurde, vermarktet.


* ''' [[EDV:NewSystem/Debian_6#OpenAFS-Client | Installation Linux]] '''
IBM ermöglichte dann eine parallele Weiterentwicklung als [[w:de:Open Source]] (http://www.openafs.org).


* ''' [[EDV:OpenAFS/Install_mac_osx | Installation Mac OS X]] '''


=== Warum (Open)AFS? ===


Weitere Informationen zum Thema:
Es gibt mehrere Vorteile von AFS (ohne Anspruch auf Vollständigkeit):
* [[w:de:FAQ | FAQ]] für das AFS im KIP: [[EDV:OpenAFS/FAQ | OpenAFS/FAQ ]]
* Die Daten können transparent über mehrere Server verteilt werden.
* Das Orginal [http://docs.openafs.org/UserGuide/index.html OpenAFS User Guide]
* Jeder kann auf das AFS mit einem Client zugreifen.
* Das Rechenzentrum hat auch ein [[EDV:OpenAFS|AFS]]: http://www.urz.uni-heidelberg.de/datenhaltung/afs/
* Es gibt [[w:de:Access Control List]]en (ACL), welche eine bessere Rechteverwaltung ermöglichen.
* [[w:de:Disk Quota]]s sind elementare Bestandteile von [[EDV:AFS|AFS]].


== Verwendung ==
== Verwendung ==


Um mit dem AFS-Server arbeiten zu können, muss man sich zuerst [[EDV:OpenAFS/Verwendung/Authentisieren|authentifizieren]] (siehe auch [[w:de:Authentifizierung | Authentifizierung ]]), da man sonst nur die Reche der Gruppe ''system:anyuser'' (also Anonymous / Gast) erhält. Mit diesen ist nur der Zugriff auf allgemeine (öffentliche) Dateien möglich. OpenAFS arbeitet dabei mittlerweile mit Kerberos Verion 5 ([http://www.kerberos.org/software/tutorial.html Kerberos]).
Man kann dazu auch die [[EDV:OpenAFS/FAQ| FAQ]] durchlesen, insbesondere: [[EDV:OpenAFS/FAQ#Was ist ein Ticket und/oder Token | "Was ist ein Ticket und/oder Token"]].


Wegen der [[EDV:OpenAFS/Verwendung/ACLs|Rechte im AFS (Access Control Lists)]] werden von den Unix/Linux-Protection-Bits
=== Authentisieren ===
für User, Group und Others werden nur die von User verwendet - dies erfolgt, nachdem die ACL ausgewertet wurde.
Weitere Informationen zur [[EDV:OpenAFS/Verwendung|Benutzung von AFS]].


{{Achtung|{{IconAchtung}} Wichtig für AFS sind '''synchrone Zeiten''' der Systemuhren! Deshalb sollte auf jedem Client die Uhrzeit auch stimmen (siehe [[EDV:NTP|NTP]]), sonst kann es passieren, dass die Authentifikation fehlschlägt.}}
Um mit [[EDV:AFS|AFS]] arbeiten zu können, muss man sich erst authentisieren ([[w:de:Authentisierung]]),
da man sonst nur die Reche der Gruppe '''system:anyuser''' (also Anonymous) hat.


== Wichtige Konfigurationsdateien ==
[[EDV:AFS|AFS]] arbeitet dabei mit Kerberos4-Token ([[w:de:Kerberos (Informatik)]]).


Falls es mal zu Problemen mit dem OpenAFS-Client kommt, ist es gut zu wissen, wo welche Einstellung steht ;)


Nachfolgend die wichtigsten KIP-AFS spezifischen Konfigurationsdateien.
==== Arbeiten mit AFS-Kommandos ====


=== CellServDB ===
Die folgenden Kommondos sind alle bei (Open)AFS dabei und können

ohne zusätzliches Kerberos verwendet werden.
In der ''CellServDB'' sollte für die KIP-Zelle folgender Eintrag stehen:


Mit dem '''tokens'''-Kommando kann überprüft werden, ob ein solches Token existiert und wie lange es gültig ist:
<pre>
<pre>
userX@pcY:~$ tokens

Tokens held by the Cache Manager:

User's (AFS ID 1000) tokens for afs@kip.uni-heidelberg.de [Expires Feb 27 18:15]
--End of list--
</pre>

Zum Erhalten oder Erneuern eines Tokens, wird '''klog''' verwendet:
userX@pcY:~$ klog userX

Die Gültigkeit eines solchen Tokens bezieht sich standardmäßig auf einen Nutzer auf einem Rechner,
in allen Shells ([[w:de:Betriebssystem-Shell]], [[w:de:Unix-Shell]]).
Um diese Gültikeit nur auf '''eine''' Shell zu beziehen,
muss man diese mit '''kpagsh''' kapseln und danach erst das Token holen:
userX@pcY:~$ pagsh
userX@pcY:~$ klog userX

Zum Zerstören des Tokens vor dem Ende seiner Laufzeit gibt es '''unlog''':
<pre>userX@pcY:~$ unlog
userX@pcY:~$ tokens

Tokens held by the Cache Manager:

--End of list--
</pre>

==== Arbeiten mit Kerberos-Kommandos ====

Da wir Heimdal-Kerberos für die Authentisierung von AFS verwenden,
können auch die Heimdal-Clients zur Authentisierung verwendet werden.
Wenn OpenAFS gestartet ist, wird dann neben dem Kerberos-Ticket
auch automatisch ein AFS-Token geholt.

Zur Abfrage der Tickets wird '''klist''' verwendet.
Mit der Option ''''-T'''' wird auch gleich das AFS-Token angezeigt, falls vorhanden:
<pre>userX@pcY:~$ klist -T
Credentials cache: FILE:/tmp/krb5cc_1000
Principal: userX@KIP.UNI-HEIDELBERG.DE

Issued Expires Principal
Feb 27 16:25:00 Feb 28 02:24:59 krbtgt/KIP.UNI-HEIDELBERG.DE@KIP.UNI-HEIDELBERG.DE
Feb 27 16:25:00 Feb 28 02:24:59 afs@KIP.UNI-HEIDELBERG.DE

Feb 27 16:25:00 Feb 28 02:24:59 User's (AFS ID 1000) tokens for kip.uni-heidelberg.de
</pre>

Um ein Ticket zu erhalten, gibt es '''kinit'''.
Das Token wird automatisch mit erzeugt:
userX@pcY:~$ kinit userX

Innerhalb der Güligkeit kann das Kerberos-Ticket auch verlängert werden,
ohne das Passwort nochmal neu eingeben zu müssen:
userX@pcY:~$ kinit -R

Um die eigene Shell zu kapseln, gibt es dann '''kpagsh''':
userX@pcY:~$ kpagsh

Zum Zerstören aller Tickets (und des Tokens) dient '''kdestroy''':
<pre>userX@pcY:~$ kdestroy
userX@pcY:~$ klist -T
klist: No ticket file: /tmp/krb5cc_1000
</pre>

=== Access Control Lists (ACLs) ===

Achtung: Von den Unix/Linux-Protection-Bits für User, Group und Others werden nur die von User verwendet.
Dies erfolgt, nachdem die ACL ausgewertet wurde.


==== Unterschied der AFS-ACLs zu Unix-Dateirechten ====
Im typischen Unix-/Linux-Dateisystem existieren nur die drei Klassen Eigentümer, Gruppe, Alle.
Eine Datei hat dann '''genau einen''' Eigentümer und '''genau eine''' Gruppe.
Nun können jeder dieser Klassen für jede Datei bestimmte Rechte gegeben werden.
Zum Beispiel (Ausgabe von '''ls -l'''):
-rw-r--r-- 1 floh users 396811 2006-11-10 17:12 Neuenheimer_Feld_Plan.jpg

Es ist eine feinere Rechteaufteilung implementiert (siehe Punkt [[EDV:OpenAFS#Rechte im AFS]])
und vor allem können beliebig viele Gruppen und Personen in einer ACL vorkommen.
Zum Beispiel (Ausgabe von '''fs listacl'''):
Access list for /afs/kip/user/home1/sesselm is
Normal rights:
s3 rl
system:administrators rlidwka
system:authuser l
sesselm rlidwka

{{Achtung|Leider können solche ACLs nur auf Verzeichnisse angewendet werden.}}

==== Besondere Gruppen im AFS ====

{| {{Prettytable}}
! Gruppe
! Wer gehört zu dieser Gruppe
|-
| system:anyusers || Jeder (Anonym)
|-
| system:authusers || Alle Nutzer, die sich (erfolgreich gegenüber dem AFS) authentisiert haben.
|-
| system:administrators || Gruppe der Administratoren
|-
|}

==== Rechte im AFS ====

Es existieren ''sieben'' Zugriffsrechte im AFS:
{| {{Prettytable}}
! Recht
! Langform
! Bedeutung
|-
| l || '''L'''ookup || Auflisten des Inhaltes des Verzeichnisses und Anzeige der ACL
|-
| i || '''I'''nsert || Einfügen/Anlegen von Dateien/Verzeichnissen in dem Verzeichnis
|-
| d || '''D'''elete || Löschen von Dateien/Verzeichnissen in dem Verzeichnis
|-
| a || '''A'''dminister || Ändern der ACL des Verzeichnisses
|-
| r || '''R'''ead || Lesen von Dateien
|-
| w || '''W'''rite || Schreiben/Ändern von Dateien ({{IconAchtung}} nicht neue Dateien anlegen)
|-
| k || Loc'''k''' || Sperren von Dateien mit '''flock'''
|-
|}

Damit man diese Rechte nicht immer alle einzeln angeben muss,
gibt es folgende kurzen ''Aliase'':
{| {{Prettytable}}
! Alias
! Ausführlich
! Bedeutung
|-
| write || rlidwk || Schreiben (alle außer '''A'''dminister)
|-
| read || rl || Lesen und Lookup
|-
| all || rlidwka || Alle Rechte (auch '''a''')
|-
| none || || Kein Recht, dient zum Entfernen von Rechten
|-
|}

==== Rechte lesen und setzen ====

Mit '''fs listacl [Eintrag]+''' erhält man die gültige ACL des Eintrages (Datei/Verzeichnis):
fs listacl *

Mit '''fs setacl''' kann eine ACL geändert werden (oder gleich mehrere):
fs setacl -dir ./mydirectory -acl system:anyuser read
fs setacl -dir ./mydirectory ./mydir2 -acl system:anyuser none userX read groupY l

Um sich mit den Befehlen vertraut zu machen, kann '''fs help''' verwendet werden:
fs help
fs help listacl
fs help setacl

{{Achtung|{{IconAchtung}} Es gibt auch '''negative''' Rechte (verbieten).
Diese haben Vorrang vor ''normalen'' Rechten und sollten nur mit äußerster Vorsicht verwendet werden
(daher auch hier nur am Rande erwähnt)!
fs setacl -dir ./mydir -acl userY rl -negative}}

=== Nützliche Kommandos ===

Die Hilfeseiten der Kommandos sind meist schon sehr selbsterklärend und sollten deshalb auch verwendet werden:
fs help
fs help listquota
fs help listacl
pts help
pts help listentries

Auflisten der ACLs:
fs listacl /afs/kip/temp

Ändern der ACL:
fs setacl /afs/kip/temp system:administrator all

Auflisten der Quota:
fs quota /afs/kip/temp
fs listquota /afs/kip/temp

Herausfinden des Volumes zum Mountpoint:
fs lsmount /afs/kip/temp

Löschen des Eintrags im Cache des AFS-Clients:
fs flush /afs/kip/temp

Auflisten aller Nutzer im AFS:
pts listentries

Auflisten aller Gruppen im AFS:
pts listentries -groups

Auflisten der Nutzer in einer AFS-Gruppe:
pts members users

== Client-Installation (Zugang zum AFS) ==


=== Die CellServDB/ThisCell ===

Unsere Zelle (Cell) im [[KIP]] ist natürlich '''kip.uni-heidelberg.de''', daher sieht die '''ThisCell'''-Datei so aus:
kip.uni-heidelberg.de

In der '''CellServDB''' sollte für die KIP-Zelle folgender Eintrag stehen:
>kip.uni-heidelberg.de
>kip.uni-heidelberg.de
129.206.176.40 # ldap.kip.uni-heidelberg.de
129.206.176.40 # ldap.kip.uni-heidelberg.de
129.206.176.149 # ldap2.kip.uni-heidelberg.de
129.206.176.149 # ldap2.kip.uni-heidelberg.de
</pre>


{{Achtung|Achtung der 2. Teil ist nicht nur ein Kommentar, dort '''muss''' der vollständige Name des Servers stehen (für aklog)!}}
Diese Datei ist auch unter '''/afs/kip/common/etc/CellServDB''' zu finden.


Diese Datei befindet sich auch
=== Linux-Client ===


* im AFS unter: '''/afs/kip/common/etc/CellServDB'''
Hier am Beispiel von Debian mit einem 2.6.x Kernel.


* im Web unter: '''http://kip1.kip.uni-heidelberg.de/afs/common/etc/CellServDB'''


und kann für die Einstellungen genutzt, bzw. einfach ins Konfigurationsverzeichnis kopiert werden.
==== Heimdal Kerberos (Client) installieren ====


* unter Linux meist in: '''/etc/openafs/CellServDB '''
Dies ist '''optional''', kann aber unter Umständen einiges vereinfachen,
da unser AFS auch auf Heimdal zurückgreift.
aptitude install heimdal-clients


* unter Windows vermutlich in: '''C:\Programme\OpenAFS\Client\CellServDB'''
Die folgenden Fragen wie folgt beantworten:
{|style="margin-left:25px;"
|-
| Kerberos Realm || '''KIP.UNI-HEIDELBERG.DE'''
|-
| Hesiod-Domain || '''.kip.uni-heidelberg.de'''
|-
| Kerberos Server || '''ldap.kip.uni-heidelberg.de ldap2.kip.uni-heidelberg.de'''
|-
| Admin Server von Kerberos || '''ldap.kip.uni-heidelberg.de'''
|}


=== ThisCell ===


Unsere Zelle (Cell) im [[KIP]] ist natürlich '''kip.uni-heidelberg.de''',somit enthält die '''ThisCell'''-Datei entsprechend nur den Eintrag:
==== OpenAFS installieren ====
kip.uni-heidelberg.de


=== CellAlias (nur für -dynroot) ===
Binaries installieren:
aptitude install openafs-client


Wenn '''/afs dynamisch''' generiert wird, sollte die '''CellAlias'''-Datei folgendes beinhalten:
Die folgenden Fragen wie folgt beantworten:
kip.uni-heidelberg.de kip
{|style="margin-left:25px;"
alihlt.cern.ch alihlt
|-
| AFS-Zelle || '''kip.uni-heidelberg.de'''
urz.uni-heidelberg.de urz
|-
| Größe des AFS-Cache (kb)|| '''50000'''
|-
| /afs dynamisch ? || '''Nein'''
|-
| Rechnernamen des Datenbank-Servers || '''afsdb1.kip.uni-heidelberg.de''' '''afsdb2.kip.uni-heidelberg.de'''
|-
| Openafs-Client starten || '''Ja''' (oder Nein wenn nicht erwünscht)
|}


Diese Datei muss gegebenenfalls im Konfigurationsverzeichnis des Clients erzeugt werden


* unter Unix / Linux ist das meist: '''/etc/openafs/CellAlias''' oder '''/usr/vice/etc'''
==== OpenAFS Kernel Modul erstellen/installieren ====


* unter Windows: '''C:\Programme\OpenAFS\Client\CellServDB'''
Um das Kernel-Modul für OpenAFS zu erstellen, ist Folgendes zu tun:
aptitude install module-assistant openafs-module-source
cd /usr/src
module-assistant prepare openafs
module-assistant build openafs
dpkg -i openafs-modules-2.6.18-3-686_1.4.2-4+2.6.18-7_i386.deb


Dieses Beispiel auch im AFS und kann von dort aus kopiert werden:
{{Achtung|Dies gilt nur für den aktuellen Kernel und muss dann für andere Kernel wiederholt werden!}}
cp /afs/kip.uni-heidelberg.de/common/etc/CellAlias /etc/openafs


Nun kann auch der OpenAFS-Client gestartet werden:
Damit diese Datei neu eingelesen wird, muss der AFS-Client neugestartet werden.
Wenn das nicht geht, können diese Aliase auch temporär manuell erzeugt werden:
/etc/init.d/openafs-client force-start
fs newalias kip kip.uni-heidelberg.de
fs newalias alihlt alihlt.cern.ch
fs newalias urz urz.uni-heidelberg.de
fs listalias


=== krb5.conf ===
Test
$ ls -l /afs
lrwxr-xr-x 1 daemon root 21 2007-01-31 12:37 kip -> kip.uni-heidelberg.de
drwxr-xr-x 2 root root 2048 2007-02-12 12:05 kip.uni-heidelberg.de


Die Datei krb5.conf (oder auch krb5.ini) beinhaltet Informationen über den Kerberos-Realm, in dem sich der Client befindet.
Kerberos wird über diese Text-Datei konfiguriert.


* im AFS unter: '''/afs/kip/common/etc/krb5.conf'''
==== NSS-Konfiguration (Namensauflösung) ====
* im Web unter: '''http://kip1.kip.uni-heidelberg.de/afs/common/etc/krb5.conf'''
Für die Namensauflösung (Nutzername/Gruppenname zu uid/gid-Nummer) ist [[EDV:LDAP|LDAP]] zuständig.


Auf dem lokalen Client-System befindet sie sich:
Hier ist beschrieben, wie die Konfiguration erfolgen sollte: [[EDV:LDAP#NSS (Namensauflösung)]]


* unter Linux in: '''/etc/krb5.conf '''


* unter Windows in: '''C:\ProgramData\Kerberos\krb5.conf'''
==== PAM-Konfiguration (Pluggable Authentication Modules) ====
Wenn zum Login die AFS bzw. LDAP-Accounts verwendet werden sollen, muss PAM entsprechend konfiguriert werden.


* oder auch in: '''C:\Windows\krb5.ini'''
Zur Vorbereitung muss erst einmal das LDAP-PAM-Module wie hier beschrieben konfiguriert werden: [[EDV:LDAP#PAM (Pluggable Authentication Modules)]]


und ihr Inhalt sieht in etwa so aus:
Nun die PAM-Module installieren:
<pre>
aptitude install libpam-heimdal libpam-openafs-session
### KIP krb5.conf - date: 21.11.2012 ###
[libdefaults]
allow_weak_crypto = true
default_realm = KIP.UNI-HEIDELBERG.DE
ticket_lifetime = 2d
renew_lifetime = 8d


# The following krb5.conf variables are only for MIT Kerberos.
Jetzt nur noch einen Eintrag für '''pam_krb5.so''' für den jeweiligen Dienst hinzufügen oder
kdc_timesync = 1
allgemein in den '''common-*'''-Dateien.
ccache_type = 4
Damit es nicht zu einfach wird teilen wir jetzt alles auf.
forwardable = true
Die Authentisierung läuft über Kerberos, das Accountmanagement über LDAP und für die Session benötigen wir AFS.
proxiable = true
Die fertigen PAM-Dateien/Einträge sehen dann zum Beispiel so aus:
renewable = true

#/etc/pam.d/common-auth
auth sufficient '''pam_krb5.so''' ignore_root '''minimum_uid=1000'''
auth required pam_unix.so nullok_secure

#/etc/pam.d/common-account
account sufficient '''pam_ldap.so''' ignore_unknown_user
account required pam_unix.so

#/etc/pam.d/common-session
session optional '''pam_krb5.so''' ignore_root
session optional '''pam_openafs_session.so'''
session required pam_unix.so


==== Single-Sign-On über SSH ====
Gleich vorweg, die normale Public-Key-Authentisierung von SSH funktioniert nicht,
da kein anonymer Zugriff auf das '.ssh'-Verzeichnis im AFS möglich ist und auch nicht sein sollte!

Aber als Lösung für ein Single-Sign-On bietet sich die GSSAPI-Authentisierung von SSH an.
Nun sind dazu einige Schritte nötig:


===== SSH-Server konfigurieren =====
In der '''/etc/ssh/sshd_config''' folgendes rein schreiben:
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes

SSH-Server neustarten:
/etc/init.d/ssh restart


===== SSH-Client konfigurieren =====
Damit der Client auch GSSAPI verwendet muss dies explizit eingestellt werden.
Dazu entweder in der globales '''/etc/ssh/ssh_config''' oder in der Nutzerspezifischen '''~/.ssh/config''' folgendes eintragen:
GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes


===== Kerberos Host-Key erstellen =====
Für die Authentisierung ist ein Host-Key von Kerberos notwendig!
{{Achtung|{{IconAchtung}} Dieser kann allerdings nur von der [[EDV:EDV-Abteilung|EDV-Abteilung]] erstellt und eingetragen werden!}}

Dazu Key im LDAP erstellen ('''gq''')!

Nun als root auf dem Rechner einloggen (hostY):
root@'''hostY''':~# kadmin -p '''user/admin'''
kadmin> cpw -r host/'''hostY'''.kip.uni-heidelberg.de
kadmin> get host/'''hostY'''.kip.uni-heidelberg.de
kadmin> ext host/'''hostY'''.kip.uni-heidelberg.de
kadmin> quit

Kontrolle:
root@'''hostY''':~# ktutil list


===== Kerberos Key holen und einloggen =====
Damit wir uns nun einloggen können müssen wir uns den entsprechenden Kerberos-Key holen.
kinit userX
klist -v

{{Achtung|Das '''krbtgt''' (Kerberos-Ticket-Granting-Ticket) muss '''forwardable''' sein! Das kann mit 'klist -v' kontrolliert werden:
klist -v}}

Nun sollte ein Login ohne weitere Passwordeingabe auf den Server möglich sein:
ssh -l userX hostY

=== Solaris ===


# The following libdefaults parameters are only for Heimdal Kerberos.
v4_instance_resolve = false
[realms]
KIP.UNI-HEIDELBERG.DE = {
kdc = ldap2.kip.uni-heidelberg.de
kdc = afsback.kip.uni-heidelberg.de
kdc = ldap.kip.uni-heidelberg.de
admin_server = ldap.kip.uni-heidelberg.de
}
[domain_realm]
.kip.uni-heidelberg.de = KIP.UNI-HEIDELBERG.DE
kip.uni-heidelberg.de = KIP.UNI-HEIDELBERG.DE
[login]
krb4_convert = false
krb4_get_tickets = false
</pre>


=== Windows ===


Ein etwas älteres Beispiel:
== Backup ==
Installation des Clients im KIP: [[EDV:OpenAFS/Install_winxp]]
Dateien von gestern, ältere Dateien ...





Latest revision as of 13:51, 7 March 2013

OpenAFS-Logo

Allgemeines

Hier im KIP wird OpenAFS als zentrales Netzwerk-Dateisystem verwendet.

AFS (Andrew File System) ist ein Dateisystem, das die plattformübergreifende gleichzeitige Nutzung von Dateien zwischen mehreren Rechnern ermöglicht. Es beinhaltet Funktionen zur Zugriffskontrolle (ACLs), Authentifizierung (Kerberos), verschlüsselte Datenübertragung (fcrypt) und einiges mehr...

Ursprünglich wurde es an der Carnegie Mellon Universität entwickelt, und danach von der Transarc Corporation, die 1994 von IBM übernommen wurde, vermarktet.
Seit 2000 existiert eine parallele Open Source Weiterentwicklung.

Client Installation

Um sich mit dem AFS-Dateiserver zu verbinden, benötigt man (wer hätte das gedacht) eine entsprechende Client-Software. Diese ist für fast alle Betriebssysteme kostenlos verfügbar.


Weitere Informationen zum Thema:

Verwendung

Um mit dem AFS-Server arbeiten zu können, muss man sich zuerst authentifizieren (siehe auch Authentifizierung ), da man sonst nur die Reche der Gruppe system:anyuser (also Anonymous / Gast) erhält. Mit diesen ist nur der Zugriff auf allgemeine (öffentliche) Dateien möglich. OpenAFS arbeitet dabei mittlerweile mit Kerberos Verion 5 (Kerberos). Man kann dazu auch die FAQ durchlesen, insbesondere: "Was ist ein Ticket und/oder Token".

Wegen der Rechte im AFS (Access Control Lists) werden von den Unix/Linux-Protection-Bits für User, Group und Others werden nur die von User verwendet - dies erfolgt, nachdem die ACL ausgewertet wurde. Weitere Informationen zur Benutzung von AFS.

Achtung.svg Wichtig für AFS sind synchrone Zeiten der Systemuhren! Deshalb sollte auf jedem Client die Uhrzeit auch stimmen (siehe NTP), sonst kann es passieren, dass die Authentifikation fehlschlägt.

Wichtige Konfigurationsdateien

Falls es mal zu Problemen mit dem OpenAFS-Client kommt, ist es gut zu wissen, wo welche Einstellung steht ;)

Nachfolgend die wichtigsten KIP-AFS spezifischen Konfigurationsdateien.

CellServDB

In der CellServDB sollte für die KIP-Zelle folgender Eintrag stehen:

 >kip.uni-heidelberg.de
 129.206.176.40          # ldap.kip.uni-heidelberg.de
 129.206.176.149         # ldap2.kip.uni-heidelberg.de
Achtung der 2. Teil ist nicht nur ein Kommentar, dort muss der vollständige Name des Servers stehen (für aklog)!

Diese Datei befindet sich auch

  • im AFS unter: /afs/kip/common/etc/CellServDB

und kann für die Einstellungen genutzt, bzw. einfach ins Konfigurationsverzeichnis kopiert werden.

  • unter Linux meist in: /etc/openafs/CellServDB
  • unter Windows vermutlich in: C:\Programme\OpenAFS\Client\CellServDB

ThisCell

Unsere Zelle (Cell) im KIP ist natürlich kip.uni-heidelberg.de,somit enthält die ThisCell-Datei entsprechend nur den Eintrag:

kip.uni-heidelberg.de

CellAlias (nur für -dynroot)

Wenn /afs dynamisch generiert wird, sollte die CellAlias-Datei folgendes beinhalten:

kip.uni-heidelberg.de   kip
alihlt.cern.ch          alihlt
urz.uni-heidelberg.de   urz

Diese Datei muss gegebenenfalls im Konfigurationsverzeichnis des Clients erzeugt werden

  • unter Unix / Linux ist das meist: /etc/openafs/CellAlias oder /usr/vice/etc
  • unter Windows: C:\Programme\OpenAFS\Client\CellServDB

Dieses Beispiel auch im AFS und kann von dort aus kopiert werden:

cp /afs/kip.uni-heidelberg.de/common/etc/CellAlias /etc/openafs

Damit diese Datei neu eingelesen wird, muss der AFS-Client neugestartet werden. Wenn das nicht geht, können diese Aliase auch temporär manuell erzeugt werden:

fs newalias kip kip.uni-heidelberg.de
fs newalias alihlt alihlt.cern.ch
fs newalias urz urz.uni-heidelberg.de
fs listalias

krb5.conf

Die Datei krb5.conf (oder auch krb5.ini) beinhaltet Informationen über den Kerberos-Realm, in dem sich der Client befindet. Kerberos wird über diese Text-Datei konfiguriert.

Auf dem lokalen Client-System befindet sie sich:

  • unter Linux in: /etc/krb5.conf
  • unter Windows in: C:\ProgramData\Kerberos\krb5.conf
  • oder auch in: C:\Windows\krb5.ini

und ihr Inhalt sieht in etwa so aus:

### KIP krb5.conf - date: 21.11.2012 ###
 
[libdefaults]
allow_weak_crypto = true
default_realm = KIP.UNI-HEIDELBERG.DE
ticket_lifetime = 2d
renew_lifetime = 8d

# The following krb5.conf variables are only for MIT Kerberos.
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
renewable = true

# The following libdefaults parameters are only for Heimdal Kerberos.
v4_instance_resolve = false
	
[realms]
KIP.UNI-HEIDELBERG.DE = {
kdc = ldap2.kip.uni-heidelberg.de
kdc = afsback.kip.uni-heidelberg.de
kdc = ldap.kip.uni-heidelberg.de
admin_server = ldap.kip.uni-heidelberg.de
}
	
[domain_realm]
.kip.uni-heidelberg.de = KIP.UNI-HEIDELBERG.DE
kip.uni-heidelberg.de = KIP.UNI-HEIDELBERG.DE
	
[login]
krb4_convert = false
krb4_get_tickets = false


Ein etwas älteres Beispiel: Installation des Clients im KIP: EDV:OpenAFS/Install_winxp