====== Kerberos ======
Hauptanwendung ist sicheres [[NFS]].
Voraussetzung ist ein funktionierendes DNS. Alle beteiligten Systeme müssen
auflösbar sein. Sowohl mit ''A''- als auch ''PTR''-Record.
===== Installation =====
==== Server ====
Der Server stellt sowohl den KDC als auch den Admin-Server zur Verfügung.
apt-get install krb5-kdc krb5-admin-server
Konfiguration
  - ''krb5_newrealm''
    * Master-Kennwort erforderlich
  - ''kadmin.local''
    * ''list_principals'' zum überprüfen was gerade eingetragen ist
    * ''addprinc root/admin'' 
      * Administrationskennwort erforderlich.
      * Über diesen Principal werden die Administrativen Tätigkeiten durchgeführt
    * ''addprinc -randkey host/server.example.com''
    * ''ktadd host/server.example.com''
      * erzeugt eine Keytab-Datei auf dem aktuellen Server in ''/etc''
      * enthalten ist der im vorigen Befehl erzeugte Principal für den Server
    * ''quit''
  - ''/etc/krb5kdc/kadm5.acl'' bearbeiten
    * ''root/admin *'', Berechtigung für den zuvor erzeugten Admin-Principal
  - ''/etc/default/nfs-kernel-server''
    * ''NEED_SVCGSSD="yes"''
  - Daemonen neu starten, damit die erzeugte Konfiguration aktiv wird
    * ''krb5-kdc''
    * ''kadmind''
==== Client ====
apt-get install krb5-user
Konfiguration
  - ''kadmin''
    * spricht mit dem ''kadmind'' auf dem Server
    * ''addprinc -randkey host/client.example.com''
    * ''ktadd host/client.example.com''
      * Legt auf dem aktuellen Rechner (Client) eine Keytab-Datei an
      * enthalten ist der im vorigen Befehl erzeugte Principal für den Client
    * ''quit''
  - ''/etc/default/nfs-common''
    * ''NEED_IDMAPD=yes''
    * ''NEED_GSSD=yes''
  - Daemonen neu starten
    * ''nfs-common''
Hinweis: mit ''ktutil'' kann man sich den Inhalt einer Keytab-Datei anzeigen lassen, zur Überprüfung, ob alles so funktioniert hat wie gewünscht.
==== Kinit automatisieren ====
Manuell anlegen einer Keytab welche einen Namen enthält und ein zugeordnetes Kennwort.
Dieses kann dann für den ''kinit''-befehl verwendet werden, so daß dieser keine 
Eingabeaufforderung für ein Kennwort mehr benötigt:
ktutil
ktutil: addent -password -p username@EXAMPLE.COM -k 1 -e rc4-hmac
ktutil: wkt /home/username/example.keytab
ktutil: exit
Überprüfen:
  klist -e -k -t example.keytab
''kinit'' automatisieren:
  kinit username@EXAMPLE.COM -k -t /home/username/example.keytab
  
===== Nutzung =====
Bereitstellen von NFS-Verzeichnissen durch den Server
TODO noch unklar ob das die "optimalen" Einstellungen sind oder es ggf. bessere / elegantere Möglichkeiten gint
/export gss/krb5p(rw,fsid=0,insecure,no_subtree_check,async,anonuid=65534,anongid=65534)
/export/volume1 gss/krb5p(rw,nohide,insecure,no_subtree_check,async,anonuid=65534,anongid=65534)
Anbinden von NFS-Freigaben an den Client
mount -t nfsv4 -osec=krb5p server:/volume1 /mnt