kerberos
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| kerberos [2018-05-08 12:58:08] – [Kerberos-Client] manfred | kerberos [2018-05-08 12:59:12] (aktuell) – [mit Base64 das Passwort verschleiert abspeichern] manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Kerberos ====== | ||
| + | |||
| + | ===== Fedora ===== | ||
| + | |||
| + | ==== / | ||
| + | |||
| + | [logging] | ||
| + | | ||
| + | kdc = FILE:/ | ||
| + | | ||
| + | | ||
| + | [libdefaults] | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | [realms] | ||
| + | | ||
| + | kdc = kerberos.example.com: | ||
| + | admin_server = kerberos.example.com: | ||
| + | default_domain = example.com | ||
| + | } | ||
| + | | ||
| + | [domain_realm] | ||
| + | | ||
| + | | ||
| + | | ||
| + | [appdefaults] | ||
| + | pam = { | ||
| + | debug = false | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | } | ||
| + | |||
| + | |||
| + | ==== / | ||
| + | |||
| + | if ( " | ||
| + | set path = ( / | ||
| + | endif | ||
| + | if ( " | ||
| + | if ( `id -u` == 0 ) then | ||
| + | set path = ( / | ||
| + | endif | ||
| + | endif | ||
| + | |||
| + | |||
| + | ==== / | ||
| + | |||
| + | if ! echo ${PATH} | /bin/grep -q / | ||
| + | PATH=/ | ||
| + | fi | ||
| + | if ! echo ${PATH} | /bin/grep -q / | ||
| + | if [ `/ | ||
| + | PATH=/ | ||
| + | fi | ||
| + | fi | ||
| + | |||
| + | |||
| + | ==== / | ||
| + | |||
| + | if ( " | ||
| + | set path = ( / | ||
| + | endif | ||
| + | if ( " | ||
| + | if ( `id -u` == 0 ) then | ||
| + | set path = ( / | ||
| + | endif | ||
| + | endif | ||
| + | |||
| + | |||
| + | ==== / | ||
| + | |||
| + | if ! echo ${PATH} | /bin/grep -q / | ||
| + | PATH=/ | ||
| + | fi | ||
| + | if ! echo ${PATH} | /bin/grep -q / | ||
| + | if [ `/ | ||
| + | PATH=/ | ||
| + | fi | ||
| + | fi | ||
| + | |||
| + | |||
| + | ==== / | ||
| + | |||
| + | [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 ===== | ||
| + | |||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | * [[http:// | ||
| + | |||
| + | * [[http:// | ||
| + | |||
| + | (Warnings: 4. Actual kerberos/ | ||
| + | Zur Zeit funktioniert " | ||
| + | |||
| + | |||
| + | * [[http:// | ||
| + | |||
| + | # egrep ^nfs / | ||
| + | nfs | ||
| + | nfs | ||
| + | |||
| + | Die Systemuhren müssen gleich laufen! | ||
| + | #=> ntp | ||
| + | |||
| + | In der "/ | ||
| + | # vi /etc/hosts | ||
| + | 10.10.10.1 | ||
| + | 10.10.10.2 | ||
| + | |||
| + | |||
| + | 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:// | ||
| + | aptitude purge krb5-kdc krb5-admin-server krb5-user krb5-config libpam-krb5 | ||
| + | rm -fr / | ||
| + | aptitude install krb5-kdc krb5-admin-server | ||
| + | less / | ||
| + | | ||
| + | | ||
| + | # | ||
| + | # Realm-DB anlegen | ||
| + | # | ||
| + | krb5_newrealm | ||
| + | This script should be run on the master KDC/admin server to initialize | ||
| + | a Kerberos realm. | ||
| + | This password will be used to generate a key that is stored in | ||
| + | / | ||
| + | is much more important that it be a strong password than that it be | ||
| + | remembered. | ||
| + | you cannot decrypt your Kerberos database. | ||
| + | Loading random data | ||
| + | Initializing database '/ | ||
| + | master key name ' | ||
| + | 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 / | ||
| + | you can use the kadmin program on other computers. | ||
| + | principals usually belong to a single user and end in / | ||
| + | example, if jruser is a Kerberos administrator, | ||
| + | the normal jruser principal, a jruser/ | ||
| + | created. | ||
| + | | ||
| + | Don't forget to set up DNS information so your clients can find your | ||
| + | KDC and admin servers. | ||
| + | guide. | ||
| + | | ||
| + | | ||
| + | # | ||
| + | # Kerberos-Admin anlegen | ||
| + | # | ||
| + | kadmin.local | ||
| + | Authenticating as principal root/ | ||
| + | kadmin.local: | ||
| + | addprinc admin/admin | ||
| + | WARNING: no policy specified for admin/ | ||
| + | Enter password for principal " | ||
| + | ******** | ||
| + | Re-enter password for principal " | ||
| + | ******** | ||
| + | Principal " | ||
| + | kadmin.local: | ||
| + | quit | ||
| + | | ||
| + | | ||
| + | vi / | ||
| + | */admin * | ||
| + | | ||
| + | | ||
| + | / | ||
| + | | ||
| + | | ||
| + | kinit admin/admin | ||
| + | Password for admin/ | ||
| + | | ||
| + | | ||
| + | klist | ||
| + | Ticket cache: FILE:/ | ||
| + | Default principal: admin/ | ||
| + | | ||
| + | Valid starting | ||
| + | 12/03/09 14: | ||
| + | renew until 12/04/09 14:49:22 | ||
| + | | ||
| + | | ||
| + | vi /etc/hosts | ||
| + | 192.168.0.1 | ||
| + | | ||
| + | | ||
| + | vi / | ||
| + | _kerberos | ||
| + | _kerberos._udp | ||
| + | _kpasswd._udp | ||
| + | _kerberos-adm._tcp | ||
| + | | ||
| + | | ||
| + | # | ||
| + | # 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/ | ||
| + | ktadd -e des-cbc-crc: | ||
| + | Entry for principal nfs/ | ||
| + | addprinc -randkey nfs/ | ||
| + | ktadd -e des-cbc-crc: | ||
| + | quit | ||
| + | | ||
| + | | ||
| + | # | ||
| + | # Clientzugang konfigurieren | ||
| + | # | ||
| + | #scp / | ||
| + | scp krb5.keytab sysop@oqrmtestslave.domain.de: | ||
| + | ssh sysop@oqrmtestslave.domain.de | ||
| + | sudo su - | ||
| + | cp / | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | Kerberos-Server (Secondary KDC) | ||
| + | ------------------------------- | ||
| + | # https:// | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | Kerberos-Client (MIT or Heimdal) | ||
| + | ================================ | ||
| + | | ||
| + | # installieren | ||
| + | aptitude install krb5-user libpam-krb5 libpam-ccreds auth-client-config | ||
| + | | ||
| + | # konfigurieren | ||
| + | dpkg-reconfigure krb5-config | ||
| + | | ||
| + | vi / | ||
| + | [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:/ | ||
| + | admin_server = FILE:/ | ||
| + | default = FILE:/ | ||
| + | | ||
| + | | ||
| + | # | ||
| + | # Kerberos-Tiket erstellen | ||
| + | # | ||
| + | kinit admin/admin | ||
| + | | ||
| + | | ||
| + | # | ||
| + | # Kerberos-Tiket anzeigen | ||
| + | # | ||
| + | klist | ||
| + | | ||
| + | ################################################################################ | ||
| + | |||
| + | |||
| + | ==== Kerberos-Client auf Ubuntu 16.04.4 LTS (xenial) installieren ==== | ||
| + | |||
| + | Quelle: [[https:// | ||
| + | |||
| + | 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 " | ||
| + | |||
| + | __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 / | ||
| + | |||
| + | das passwort verschlüsselt abspeichern: | ||
| + | > touch geheim.cfg | ||
| + | > chmod 0600 geheim.cfg | ||
| + | > echo " | ||
| + | |||
| + | __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:// | ||
| + | https:// | ||
| + | http:// | ||
| + | | ||
| + | http:// | ||
| + | Zur Zeit funktioniert " | ||
| + | | ||
| + | ################################################################################ | ||
| + | # http:// | ||
| + | | ||
| + | # egrep ^nfs / | ||
| + | nfs | ||
| + | nfs | ||
| + | | ||
| + | Die Systemuhren müssen gleich laufen! | ||
| + | #=> ntp | ||
| + | | ||
| + | In der Host muss als erstes der FQDN stehen! | ||
| + | # vi /etc/hosts | ||
| + | 10.10.10.1 | ||
| + | 10.10.10.2 | ||
| + | ################################################################################ | ||
| + | | ||
| + | | ||
| + | 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:// | ||
| + | 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. | ||
| + | This password will be used to generate a key that is stored in | ||
| + | / | ||
| + | is much more important that it be a strong password than that it be | ||
| + | remembered. | ||
| + | you cannot decrypt your Kerberos database. | ||
| + | Loading random data | ||
| + | Initializing database '/ | ||
| + | master key name ' | ||
| + | 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 / | ||
| + | you can use the kadmin program on other computers. | ||
| + | principals usually belong to a single user and end in / | ||
| + | example, if jruser is a Kerberos administrator, | ||
| + | the normal jruser principal, a jruser/ | ||
| + | created. | ||
| + | | ||
| + | Don't forget to set up DNS information so your clients can find your | ||
| + | KDC and admin servers. | ||
| + | guide. | ||
| + | | ||
| + | | ||
| + | # | ||
| + | # Kerberos-Admin anlegen | ||
| + | # | ||
| + | kadmin.local | ||
| + | Authenticating as principal root/ | ||
| + | kadmin.local: | ||
| + | addprinc admin/admin | ||
| + | WARNING: no policy specified for admin/ | ||
| + | Enter password for principal " | ||
| + | ******** | ||
| + | Re-enter password for principal " | ||
| + | ******** | ||
| + | Principal " | ||
| + | kadmin.local: | ||
| + | quit | ||
| + | | ||
| + | | ||
| + | vi / | ||
| + | admin/ | ||
| + | | ||
| + | | ||
| + | / | ||
| + | | ||
| + | | ||
| + | kinit admin/admin | ||
| + | Password for admin/ | ||
| + | | ||
| + | | ||
| + | klist | ||
| + | Ticket cache: FILE:/ | ||
| + | Default principal: admin/ | ||
| + | | ||
| + | Valid starting | ||
| + | 12/03/09 14: | ||
| + | renew until 12/04/09 14:49:22 | ||
| + | | ||
| + | | ||
| + | vi /etc/hosts | ||
| + | 192.168.0.1 | ||
| + | | ||
| + | | ||
| + | vi / | ||
| + | _kerberos._udp.DOMAIN.DE. | ||
| + | _kerberos._tcp.DOMAIN.DE. | ||
| + | _kerberos._udp.DOMAIN.DE. | ||
| + | _kerberos._tcp.DOMAIN.DE. | ||
| + | _kerberos-adm._tcp.DOMAIN.DE. IN SRV 1 0 749 kdc01.domain.de. | ||
| + | _kpasswd._udp.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/ | ||
| + | ktadd -e des-cbc-crc: | ||
| + | Entry for principal nfs/ | ||
| + | addprinc -randkey nfs/ | ||
| + | ktadd -e des-cbc-crc: | ||
| + | quit | ||
| + | | ||
| + | | ||
| + | # | ||
| + | # Clientzugang konfigurieren | ||
| + | # | ||
| + | #scp / | ||
| + | scp krb5.keytab sysop@oqrmtestslave.domain.de: | ||
| + | ssh sysop@oqrmtestslave.domain.de | ||
| + | sudo su - | ||
| + | cp / | ||
| + | | ||
| + | | ||
| + | # | ||
| + | # mounten | ||
| + | # | ||
| + | mount -t nfs4 -o proto=tcp, | ||
| + | | ||
| + | | ||
| + | | ||
| + | Kerberos-Server (Secondary KDC) | ||
| + | ------------------------------- | ||
| + | # https:// | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | 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 / | ||
| + | [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 | ||
| + | | ||
| + | ################################################################################ | ||
