Kerberos: Unterschied zwischen den Versionen
Chris (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Chris (Diskussion | Beiträge) |
||
| Zeile 150: | Zeile 150: | ||
=== Auf dem Windows-Domaincontroller === | === Auf dem Windows-Domaincontroller === | ||
* Active Directory-Domänen und -Vertrauensstellungen öffnen | * Active Directory-Domänen und -Vertrauensstellungen öffnen | ||
* Neue Vertrauensstellung | * Neue Vertrauensstellung | ||
* Name: INTERN.DARKREALM.DYNDNS.ORG | * Name: INTERN.DARKREALM.DYNDNS.ORG | ||
| Zeile 158: | Zeile 158: | ||
* Vertrauensstellungskennwort eingeben (gleiches wie auf der MIT-KRB5 Seite) | * Vertrauensstellungskennwort eingeben (gleiches wie auf der MIT-KRB5 Seite) | ||
* Zuständigen KDC für INTERN.DARKREALM.DYNDNS.ORG festlegen: | |||
** ksetup /addkdc INTERN.DARKREALM.DYNDNS.ORG shodan.intern.darkrealm.dyndns.org | |||
* Rechnernamen zu dem Realm zuordnen: | |||
** ksetup /addhosttorealmmap shodan.intern.darkrealm.dyndns.org INTERN.DARKREALM.DYNDNS.ORG | |||
== Squid Crossrealm == | == Squid Crossrealm == | ||
Version vom 26. September 2025, 00:07 Uhr
MIT-KRB HowTo
KDC konfigurieren und KDC Datenbank erstellen
- /var/lib/krb5kdc/kdc.conf erstellen:
[kdcdefaults]
kdc_ports = 89
kdc_tcp_ports = 89
kadmind_port = 750
kpasswd_port = 466
[realms]
INTERN.NEOREALM.DYNDNS.ORG = {
database_name = /var/lib/krb5kdc/principal
acl_file = /var/lib/krb5kdc/kadm5.acl
key_stash_file = /var/lib/krb5kdc/.k5.INTERN.NEOREALM.DYNDNS.ORG
kadmind_port = 750
kpasswd_port = 466
max_life = 10h 0m 0s
max_renewable_life = 7d 0h 0m 0s
#default_principal_flags = +preauth
}
[logging]
kdc = CONSOLE
kdc = SYSLOG:INFO:DAEMON
kdc = FILE:/var/log/kdc.log
admin_server = FILE:/var/log/kadmin.log
- Datenbank erstellen:
kdb5_util create -r <REALMNAME> -s
- kadmin Prinzipal erstellen:
kadmin.local addprinc admin/admin@INTERN.NEOREALM.DYNDNS.ORG
*/admin@INTERN.DARKREALM.DYNDNS.ORG *
DNS einrichten
Folgende RR's in die Zone eintragen
_kerberos.intern.darkrealm.dyndns.org TXT "INTERN.DARKREALM.DYNDNS.ORG" _kerberos.intern.darkrealm.dyndns.org SRV 1 0 89 shodan.intern.darkrealm.dyndns.org. _kerberos-adm.intern.darkrealm.dyndns.org SRV 1 0 777 shodan.intern.darkrealm.dyndns.org. (wird noch? nicht ausgewertet) _kerberos.intern.darkrealm.dyndns.org SRV 1 0 89 shodan.intern.darkrealm.dyndns.org. _kpasswd.intern.darkrealm.dyndns.org SRV 1 0 464 shodan.intern.darkrealm.dyndns.org.
Das reicht um Rechner ohne /etc/krb5.conf auf den default realm hinzuweisen. Weil _kerberos-adm zurzeit noch nicht ausgewertet wird muss man folgendes in der /etc/krb5.conf eintragen:
[realms]
INTERN.DARKREALM.DYNDNS.ORG = {
admin_server = shodan.intern.darkrealm.dyndns.org:777
}
2. NFS mit sec=krb5p
Mount : mount shodan:/home /home -o sec=krb5p
Server: rpc.svcgssd braucht keytab /etc/krb5.keytab
rpc.svcgssd braucht explizit nfs/<fqdn> principal (erstmal egal welcher FQDN, aber der client kann nicht connecten wenn fqdn vom server nicht drinsteht)
Also in die keytab:
nfs/shodan.intern.darkrealm.dyndns.org
Client: Client sucht laut man rpc.gssd folgende Einträge in der keytab: (scheinbar geht es hier nur um machine credentials, egal wie der principal heisst)
<HOSTNAME>$@<REALM>
root/<hostname>@<REALM>
nfs/<hostname>@<REALM>
host/<hostname>@<REALM>
root/<anyname>@<REALM>
nfs/<anyname>@<REALM>
host/<anyname>@<REALM>
Also in die keytab:
host/rasmatazz.intern.darkrealm.dyndns.org
KVNO's müssen auf jedem Rechner gleich sein !
Keytab auf dem Server :
slot KVNO Principal ---- ---- --------------------------------------------------------------------- 1 2 nfs/shodan.intern.darkrealm.dyndns.org@INTERN.DARKREALM.DYNDNS.ORG 2 2 nfs/shodan.intern.darkrealm.dyndns.org@INTERN.DARKREALM.DYNDNS.ORG
Keytab auf dem Client :
slot KVNO Principal ---- ---- --------------------------------------------------------------------- 1 2 host/rasmatazz.intern.darkrealm.dyndns.org@INTERN.DARKREALM.DYNDNS.ORG 2 2 host/rasmatazz.intern.darkrealm.dyndns.org@INTERN.DARKREALM.DYNDNS.ORG
3. SSH mit kerberos (-K)
In der Server-Keytab reicht :
host/shodan.intern.darkrealm.dyndns.org@INTERN.DARKREALM.DYNDNS.ORG
Aber in der /etc/krb5.conf auf dem Server muss stehen :
<libdefaults> ignore_acceptor_hostname = true
ansonsten meldet der SSH-Server daß kein keytab-entry für host/shodan@ vorhanden ist.
4. samba mit kerberos
kinit chris@HERRMANN.AD sudo mount //shodan.intern.darkrealm.dyndns.org/temporary /mnt/tmp -o vers=3.02,sec=krb5i,cruid=chris,user=chris,cifsacl
Crossrealm AD <-> MIT-KRB5
Funktioniert momentan nur mit einem Windows Server als Domain Controller!
Auf dem MIT-KRB5 KDC
- Mit kadmin 2 Principals hinzufügen (bei beiden gleiches Passwort setzen):
- addprinc krbtgt/INTERN.DARKREALM.DYNDNS.ORG@TESTDOMAIN.AD
- krbtgt/TESTDOMAIN.AD@INTERN.DARKREALM.DYNDNS.ORG
Auf dem Windows-Domaincontroller
- Active Directory-Domänen und -Vertrauensstellungen öffnen
- Neue Vertrauensstellung
- Name: INTERN.DARKREALM.DYNDNS.ORG
- Vertrauenstyp: Bereichsvertrauensstellung
- Nicht transitiv oder Transitiv, ist egal
- Bidirektional
- Vertrauensstellungskennwort eingeben (gleiches wie auf der MIT-KRB5 Seite)
- Zuständigen KDC für INTERN.DARKREALM.DYNDNS.ORG festlegen:
- ksetup /addkdc INTERN.DARKREALM.DYNDNS.ORG shodan.intern.darkrealm.dyndns.org
- Rechnernamen zu dem Realm zuordnen:
- ksetup /addhosttorealmmap shodan.intern.darkrealm.dyndns.org INTERN.DARKREALM.DYNDNS.ORG
Squid Crossrealm
Kein Plan wie und warum es funktioniert. Ist auch noch nicht wirklich crossrealm.
In /etc/squid/squid.conf folgende Zeile einfügen:
auth_param negotiate program /usr/libexec/squid/negotiate_kerberos_auth -k /etc/squid.smb.keytab -i
msktutil -c -s HTTP/shodan.intern.darkrealm.dyndns.org -h shodan.intern.darkrealm.dyndns.org -k squid.smb.keytab --computer-name squid-http --upn HTTP/shodan.intern.darkrealm.dyndns.org --verbose --realm AD.INTERN.DARKREALM.DYNDNS.ORG --no-reverse-lookups --use-service-account
Dann erstellte Keytab nach /etc/squid.smb.keytab kopieren und squid neustarten.