Benutzer-Werkzeuge

Webseiten-Werkzeuge


kerberos

Kerberos

Fedora

/etc/krb5.conf

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = EXAMPLE.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 forwardable = yes

[realms]
 EXAMPLE.COM = {
  kdc = kerberos.example.com:88
  admin_server = kerberos.example.com:749
  default_domain = example.com
 }

[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM

[appdefaults]
 pam = {
   debug = false
   ticket_lifetime = 36000
   renew_lifetime = 36000
   forwardable = true
   krb4_convert = false
 }

/etc/profile.d/krb5-devel.csh

if ( "${path}" !~ */usr/kerberos/bin* ) then
      set path = ( /usr/kerberos/bin $path )
endif
if ( "${path}" !~ */usr/kerberos/sbin* ) then
      if ( `id -u` == 0 ) then
              set path = ( /usr/kerberos/sbin $path )
      endif
endif

/etc/profile.d/krb5-devel.sh

if ! echo ${PATH} | /bin/grep -q /usr/kerberos/bin ; then
      PATH=/usr/kerberos/bin:${PATH}
fi
if ! echo ${PATH} | /bin/grep -q /usr/kerberos/sbin ; then
      if [ `/usr/bin/id -u` = 0 ] ; then
              PATH=/usr/kerberos/sbin:${PATH}
      fi
fi

/etc/profile.d/krb5-workstation.csh

if ( "${path}" !~ */usr/kerberos/bin* ) then
      set path = ( /usr/kerberos/bin $path )
endif
if ( "${path}" !~ */usr/kerberos/sbin* ) then
      if ( `id -u` == 0 ) then
              set path = ( /usr/kerberos/sbin $path )
      endif
endif

/etc/profile.d/krb5-workstation.sh

if ! echo ${PATH} | /bin/grep -q /usr/kerberos/bin ; then
      PATH=/usr/kerberos/bin:${PATH}
fi
if ! echo ${PATH} | /bin/grep -q /usr/kerberos/sbin ; then
      if [ `/usr/bin/id -u` = 0 ] ; then
              PATH=/usr/kerberos/sbin:${PATH}
      fi
fi

/etc/xdg/autostart/krb5-auth-dialog.desktop

[Desktop Entry]
Name=Network Authentication
Name[nb]=Nettverksautentisering
Comment=Kerberos Network Authentication Dialog
Exec=krb5-auth-dialog --sm-disable
Encoding=UTF-8
Terminal=false
Type=Application

Ubuntu

(Warnings: 4. Actual kerberos/NFS is not able to work with multiple network interfaces on the same machine)
Zur Zeit funktioniert "Kerberos/NFS" nicht, wenn mehr als eine NIC im Rechner stecken.
# egrep ^nfs /etc/services
nfs           2049/tcp                        # Network File System
nfs           2049/udp                        # Network File System

Die Systemuhren müssen gleich laufen!

#=> ntp

In der "/etc/hosts" muss als erstes der FQDN stehen!

# vi /etc/hosts
10.10.10.1      testmaster.domain.de    testmaster  kdc.domain.de       kdc
10.10.10.2      testslave.domain.de     testslave
Kerberos (MIT or Heimdal)
=========================

Der Kerberos-server (or KDC) und NFS-server können sich auf der selben
Maschine befinden, können sich aber auch auf unterschiedliche Maschinen
befinden.

Als erstes brauchen wir ein funktionierendes Kerberos (MIT or Heimdal)
KDC (Key Distribution Center) bevor wir weiter machen!
Kerberos funktioniert ab Ubuntu 8.04.


MIT
---
aptitude install libpam-krb5 krb5-user


Heimdal
-------
aptitude install libpam-krb5 heimdal-clients

modprobe rpcsec_gss_krb5



Kerberos-Server (Primary KDC)
=============================
# https://help.ubuntu.com/9.04/serverguide/C/kerberos.html
aptitude purge krb5-kdc krb5-admin-server krb5-user krb5-config libpam-krb5
rm -fr /var/lib/krb5kdc /etc/krb*
aptitude install krb5-kdc krb5-admin-server
less /usr/share/doc/krb5-kdc/README.KDC


#
# Realm-DB anlegen
#
krb5_newrealm
      This script should be run on the master KDC/admin server to initialize
      a Kerberos realm.  It will ask you to type in a master key password.
      This password will be used to generate a key that is stored in
      /etc/krb5kdc/stash.  You should try to remember this password, but it
      is much more important that it be a strong password than that it be
      remembered.  However, if you lose the password and /etc/krb5kdc/stash,
      you cannot decrypt your Kerberos database.
      Loading random data
      Initializing database '/var/lib/krb5kdc/principal' for realm 'DOMAIN.DE',
      master key name 'K/M@DOMAIN.DE'
      You will be prompted for the database Master Password.
      It is important that you NOT FORGET this password.
      Enter KDC database master key:
********
      Re-enter KDC database master key to verify:
********


      Now that your realm is set up you may wish to create an administrative
      principal using the addprinc subcommand of the kadmin.local program.
      Then, this principal can be added to /etc/krb5kdc/kadm5.acl so that
      you can use the kadmin program on other computers.  Kerberos admin
      principals usually belong to a single user and end in /admin.  For
      example, if jruser is a Kerberos administrator, then in addition to
      the normal jruser principal, a jruser/admin principal should be
      created.

      Don't forget to set up DNS information so your clients can find your
      KDC and admin servers.  Doing so is documented in the administration
      guide.


#
# Kerberos-Admin anlegen
#
kadmin.local 
      Authenticating as principal root/admin@DOMAIN.DE with password.
      kadmin.local:
addprinc admin/admin
      WARNING: no policy specified for admin/admin@DOMAIN.DE; defaulting to no policy
      Enter password for principal "admin/admin@DOMAIN.DE": 
********
      Re-enter password for principal "admin/admin@DOMAIN.DE":
********
      Principal "admin/admin@DOMAIN.DE" created.
      kadmin.local:
quit


vi /etc/krb5kdc/kadm5.acl
      */admin *


/etc/init.d/krb5-admin-server restart


kinit admin/admin
      Password for admin/admin@DOMAIN.DE: 


klist 
      Ticket cache: FILE:/tmp/krb5cc_0
      Default principal: admin/admin@DOMAIN.DE

      Valid starting     Expires            Service principal
      12/03/09 14:49:27  12/04/09 00:49:27  krbtgt/DOMAIN.DE@DOMAIN.DE
              renew until 12/04/09 14:49:22


vi /etc/hosts
      192.168.0.1     kdc.domain.de       kdc


vi /etc/bind/db.domain.de
      _kerberos               TXT     "DOMAIN.DE"
      _kerberos._udp          SRV     0 0 88  kdc
      _kpasswd._udp           SRV     0 0 464 kdc
      _kerberos-adm._tcp      SRV     0 0 749 kdc


#
# Kerberos-User anlegen
#
kadmin.local
      addprinc fritz@DOMAIN.DE
      quit


#
# Ticket holen
#
kinit fritz
klist


#
# Kerberos-Zugang für Server und Client anlegen
#
# Server: testmaster.domain.de
# Client: testslave.domain.de
#
kadmin.local
      addprinc -randkey nfs/testmaster.domain.de@DOMAIN.DE
      ktadd -e des-cbc-crc:normal nfs/testmaster.domain.de@DOMAIN.DE
              Entry for principal nfs/testmaster.domain.de@DOMAIN.DE with kvno 3, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
      addprinc -randkey nfs/oqrmtestslave.domain.de@DOMAIN.DE
      ktadd -e des-cbc-crc:normal -k krb5.keytab nfs/oqrmtestslave.domain.de@DOMAIN.DE
      quit


#
# Clientzugang konfigurieren
#
#scp /etc/krb5.keytab root@oqrmtestslave.domain.de:/etc/krb5.keytab
scp krb5.keytab sysop@oqrmtestslave.domain.de:
ssh sysop@oqrmtestslave.domain.de
sudo su -
cp /home/sysop/krb5.keytab /etc/krb5.keytab




Kerberos-Server (Secondary KDC)
-------------------------------
# https://help.ubuntu.com/9.04/serverguide/C/kerberos.html




Kerberos-Client (MIT or Heimdal)
================================

# installieren
aptitude install krb5-user libpam-krb5 libpam-ccreds auth-client-config

# konfigurieren
dpkg-reconfigure krb5-config

vi /etc/krb5.conf
      [libdefaults]
              default_realm = DOMAIN.DE

      [realms]
      DOMAIN.DE = {
              kdc = 192.168.0.1
              kdc = testmaster
              admin_server = 192.168.0.1
      }

[domain_realm]
      idstein.domain.de = DOMAIN.DE
      .idstein.domain.de = DOMAIN.DE

[logging]
      kdc = FILE:/var/log/krb5kdc.log
      admin_server = FILE:/var/log/kadmin.log
      default = FILE:/var/log/krb5lib.log


#
# Kerberos-Tiket erstellen
#
kinit admin/admin


#
# Kerberos-Tiket anzeigen
#
klist

################################################################################

Kerberos-Client auf Ubuntu 16.04.4 LTS (xenial) installieren

Quelle: https://serverfault.com/questions/422778/how-to-automate-kinit-process-to-obtain-tgt-for-kerberos

den Kerberos-Client installieren:

> apt install krb5-user

mit Base64 das Passwort verschleiert abspeichern

das passwort (verschleiert) abspeichern:

> touch geheim.cfg
> chmod 0600 geheim.cfg
> echo "geheimesPasswort" | base64 > geheim.cfg

Kerberos-Tiket holen:

> cat geheim.cfg | base64 -d | kinit fritz@RELM

Kerberos-Tikets anzeigen:

> klist

mit SSL das Passwort verschlüsselt abspeichern

das SSL-Zertifikat erzeugen (das ist nur EINMAL nötig - für eine Gültigkeitsdauer von 7000 Tagen):

> openssl req -rand /dev/urandom -new -x509 -newkey rsa:4096 -sha512 -nodes -keyout pwd_RELM.key -keyform PEM -out pwd_RELM.crt -outform PEM -days 7000 -subj /emailAddress=email@adresse.de/C=DE/ST=Hessen/L=Frankfurt/O=Firma/OU=Abteilung/CN=Hostname

das passwort verschlüsselt abspeichern:

> touch geheim.cfg
> chmod 0600 geheim.cfg
> echo "geheimesPasswort" | openssl smime -encrypt -aes256 -out geheim.cfg pwd_RELM.crt

Kerberos-Tiket holen:

> openssl smime -decrypt -in geheim.cfg -inkey pwd_RELM.key pwd_RELM.crt | kinit fritz@RELM

Kerberos-Tikets anzeigen:

> klist

NFSv4

http://wiki.linux-nfs.org/wiki/index.php/Main_Page
https://help.ubuntu.com/community/NFSv4Howto
http://wiki.linux-nfs.org/wiki/index.php/NFSv4_Introduction

http://wiki.linux-nfs.org/wiki/index.php/Enduser_doc_kerberos
Zur Zeit funktioniert "Kerberos/NFS" nicht, wenn mehr als eine NIC im Rechner stecken.

################################################################################
# http://www.citi.umich.edu/projects/nfsv4/linux/krb5-setup.html

# egrep ^nfs /etc/services
nfs           2049/tcp                        # Network File System
nfs           2049/udp                        # Network File System

Die Systemuhren müssen gleich laufen!
#=> ntp

In der Host muss als erstes der FQDN stehen!
# vi /etc/hosts
10.10.10.1      oqrmtestmaster.domain.de    oqrmtestmaster  kdc.domain.de       kdc
10.10.10.2      oqrmtestslave.domain.de     oqrmtestslave
################################################################################


NFSv4-Server mit Kerberos (MIT or Heimdal)
==========================================

Wir haben es hier mit drei unterschiedlichen Entitäten zu tun:
 - Kerberos-server
 - NFS-server
 - NFS-client

Der Kerberos-server (or KDC) und NFS-server können sich auf der selben
Maschine befinden, können sich aber auch auf unterschiedliche Maschinen
befinden.

Als erstes brauchen wir ein funktionierendes Kerberos (MIT or Heimdal)
KDC (Key Distribution Center) bevor wir weiter machen!
Kerberos funktioniert ab Ubuntu 8.04.


MIT
---
aptitude install libpam-krb5 krb5-user


Heimdal
-------
aptitude install libpam-krb5 heimdal-clients

modprobe rpcsec_gss_krb5



Kerberos-Server (Primary KDC)
-----------------------------
# https://help.ubuntu.com/9.04/serverguide/C/kerberos.html
aptitude install krb5-kdc krb5-admin-server


#
# Realm-DB anlegen
#
krb5_newrealm
      This script should be run on the master KDC/admin server to initialize
      a Kerberos realm.  It will ask you to type in a master key password.
      This password will be used to generate a key that is stored in
      /etc/krb5kdc/stash.  You should try to remember this password, but it
      is much more important that it be a strong password than that it be
      remembered.  However, if you lose the password and /etc/krb5kdc/stash,
      you cannot decrypt your Kerberos database.
      Loading random data
      Initializing database '/var/lib/krb5kdc/principal' for realm 'DOMAIN.DE',
      master key name 'K/M@DOMAIN.DE'
      You will be prompted for the database Master Password.
      It is important that you NOT FORGET this password.
      Enter KDC database master key:
********
      Re-enter KDC database master key to verify:
********


      Now that your realm is set up you may wish to create an administrative
      principal using the addprinc subcommand of the kadmin.local program.
      Then, this principal can be added to /etc/krb5kdc/kadm5.acl so that
      you can use the kadmin program on other computers.  Kerberos admin
      principals usually belong to a single user and end in /admin.  For
      example, if jruser is a Kerberos administrator, then in addition to
      the normal jruser principal, a jruser/admin principal should be
      created.

      Don't forget to set up DNS information so your clients can find your
      KDC and admin servers.  Doing so is documented in the administration
      guide.


#
# Kerberos-Admin anlegen
#
kadmin.local 
      Authenticating as principal root/admin@DOMAIN.DE with password.
      kadmin.local:
addprinc admin/admin
      WARNING: no policy specified for admin/admin@DOMAIN.DE; defaulting to no policy
      Enter password for principal "admin/admin@DOMAIN.DE": 
********
      Re-enter password for principal "admin/admin@DOMAIN.DE":
********
      Principal "admin/admin@DOMAIN.DE" created.
      kadmin.local:
quit


vi /etc/krb5kdc/kadm5.acl
      admin/admin@DOMAIN.DE         *


/etc/init.d/krb5-admin-server restart


kinit admin/admin
      Password for admin/admin@DOMAIN.DE: 


klist 
      Ticket cache: FILE:/tmp/krb5cc_0
      Default principal: admin/admin@DOMAIN.DE

      Valid starting     Expires            Service principal
      12/03/09 14:49:27  12/04/09 00:49:27  krbtgt/DOMAIN.DE@DOMAIN.DE
              renew until 12/04/09 14:49:22


vi /etc/hosts
      192.168.0.1     kdc01.domain.de     kdc01


vi /etc/bind/db.domain.de
      _kerberos._udp.DOMAIN.DE.     IN SRV 1  0 88  kdc01.domain.de.
      _kerberos._tcp.DOMAIN.DE.     IN SRV 1  0 88  kdc01.domain.de.
      _kerberos._udp.DOMAIN.DE.     IN SRV 10 0 88  kdc02.domain.de. 
      _kerberos._tcp.DOMAIN.DE.     IN SRV 10 0 88  kdc02.domain.de. 
      _kerberos-adm._tcp.DOMAIN.DE. IN SRV 1  0 749 kdc01.domain.de.
      _kpasswd._udp.DOMAIN.DE.      IN SRV 1  0 464 kdc01.domain.de.


#
# Kerberos-User anlegen
#
kadmin.local
      addprinc fritz@DOMAIN.DE
      quit


#
# Ticket holen
#
kinit fritz
klist


#
# Kerberos-Zugang für Server und Client anlegen
#
# Server: oqrmtestmaster.domain.de
# Client: oqrmtestslave.domain.de
#
kadmin.local
      addprinc -randkey nfs/oqrmtestmaster.domain.de@DOMAIN.DE
      ktadd -e des-cbc-crc:normal nfs/oqrmtestmaster.domain.de@DOMAIN.DE
              Entry for principal nfs/oqrmtestmaster.domain.de@DOMAIN.DE with kvno 3, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
      addprinc -randkey nfs/oqrmtestslave.domain.de@DOMAIN.DE
      ktadd -e des-cbc-crc:normal -k krb5.keytab nfs/oqrmtestslave.domain.de@DOMAIN.DE
      quit


#
# Clientzugang konfigurieren
#
#scp /etc/krb5.keytab root@oqrmtestslave.domain.de:/etc/krb5.keytab
scp krb5.keytab sysop@oqrmtestslave.domain.de:
ssh sysop@oqrmtestslave.domain.de
sudo su -
cp /home/sysop/krb5.keytab /etc/krb5.keytab


#
# mounten
#
mount -t nfs4 -o proto=tcp,port=2049,rw,sec=krb5i 10.10.10.1:/user /home/user



Kerberos-Server (Secondary KDC)
-------------------------------
# https://help.ubuntu.com/9.04/serverguide/C/kerberos.html




NFSv4-Client mit Kerberos (MIT or Heimdal)
==========================================

# installieren
aptitude install krb5-user libpam-krb5 libpam-ccreds auth-client-config

# konfigurieren
dpkg-reconfigure krb5-config

vi /etc/krb5.conf
      [libdefaults]
              default_realm = DOMAIN.DE
....
      [realms]
      DOMAIN.DE = {
              kdc = 192.168.0.1
              kdc = oqrmtestmaster
              admin_server = 192.168.0.1
      }


#
# Kerberos-Tiket erstellen
#
kinit admin/admin


#
# Kerberos-Tiket anzeigen
#
klist

################################################################################
/home/http/wiki/data/pages/kerberos.txt · Zuletzt geändert: von manfred