So installieren Sie Kerberos KDC Server und Client auf Ubuntu 18.04

So installieren Sie Kerberos KDC Server und Client auf Ubuntu 18.04

Dieses Tutorial umfasst die allmähliche Anleitung zum Einrichten eines Kerberos -Servers (KDC) und des Kerberos -fähigen Client.

In diesem Tutorial lernen Sie:

  • Was ist Kerberos und wie es funktioniert?
  • Konfigurieren Sie den Kerberos -Server (KDC)
  • Konfigurieren Sie den Client
  • Testen Sie die Kerberos -Authentifizierung
  • Keytab -Schöpfung

Kerberos Übersicht.

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Ubuntu 18.04
Software Kerberos -Server- und Administratorpakete
Andere Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Was ist Kerberos und wie es funktioniert?



Kerberos ist ein Netzwerkauthentifizierungsprotokoll. Es ist so konzipiert, dass es eine starke Authentifizierung für Client/Server-Anwendungen durch die Verwendung von Kryptographie für Geheimschlüssel bietet.

Der Client authentifiziert sich mit dem Authentifizierungsserver (AS), der den Benutzernamen an ein Schlüsselverteilungszentrum (KDC) weiterleitet. Das KDC gibt ein Ticket-Granting-Ticket (TGT) aus, das zeitlich gestempelt ist und es mit dem TCS-Heimtaste (TCS) des Ticket-Granting-Dienstes verschlüsselt und das verschlüsselte Ergebnis an die Workstation des Benutzers zurückgibt. Dies geschieht selten, normalerweise bei Benutzeranmeldungen. Die TGT läuft irgendwann aus.

Wenn der Kunde mit einem anderen Knoten („Principal“ im Kerberos -Parlance) mit einem Dienst auf diesem Knoten kommunizieren muss. Der Service muss bei TGT mit einem Service Principal Name (SPN) registriert werden. Der Kunde verwendet das SPN, um den Zugriff auf diesen Dienst anzufordern. Nach Überprüfung, ob die TGT gültig ist und dass der Benutzer auf den angeforderten Dienst zugreifen darf, ist das TGS -Ausgangsticket und die Sitzungsschlüssel für den Client Ticket- und Sitzungsschlüssel. Der Client sendet das Ticket dann zusammen mit seiner Serviceanforderung an den Service Server (SS).

Konfigurieren Sie den Kerberos -Server (KDC)

Zeitsynchronisation und DNS spielen eine wichtige Rolle, um KDC richtig zu arbeiten. Wenn der Zeitunterschied mehr als 5 Minuten beträgt, fällt die Authentifizierung aus. Die FQDN sollten sich idealerweise in einer ordnungsgemäßen Umgebung lösen. Hier kommen wir mit Modifikation aus /etc/hosts Die richtige Verwendung von DNS wird jedoch empfohlen.

Führen Sie den folgenden Befehl aus, um Kerberos Admin -Server und KDE (Schlüsselverteilungszentrum) zu installieren:



# APT Installieren Sie KRB5-KDC KRB5-Admin-Server KRB5-Config

Es wird die folgenden drei Dinge nacheinander fragen

  1. Kerberos Reich. (Hier habe ich Ubuntubox verwendet.Com)
  2. Kerberos Server Hostname - KDC.Ubuntubox.com
  3. Hostname des administrativen Servers (Kennwortwechsel) für Kerberos Realm Ubuntubox.Com - kdc.Ubuntubox.com
Bereitstellung von Kerberos Reich. Bereitstellung von Kerberos Server FQDN.

Bereitstellung von Admin -Server FQDN. Konfigurieren des KRB5 -Administratorservers.

Führen Sie nun den folgenden Befehl an, um den Bereich einzurichten.

# krb5_newrealm

Es wird aufgefordert, ein Kennwort für die Erstellung von Datenbank einzugeben.



root@kdc: ~# krb5_newrealm Dieses Skript sollte auf dem Master KDC/Admin -Server ausgeführt werden, um einen Kerberos -Bereich zu initialisieren. Sie werden aufgefordert, ein Master -Schlüsselkennwort einzugeben. Dieses Passwort wird verwendet, um einen Schlüssel zu generieren, der in/etc/krb5kdc/stash gespeichert ist. Sie sollten versuchen, sich an dieses Passwort zu erinnern, aber es ist viel wichtiger, dass es sich um ein starkes Passwort handelt, als es in Erinnerung bleiben wird. Wenn Sie jedoch das Passwort und/etc/krb5kdc/stash verlieren, können Sie Ihre Kerberos -Datenbank nicht entschlüsseln. Laden Sie zufällige Daten initialisieren der Datenbank '/var/lib/krb5kdc/principal' für Realm 'Ubuntubox.Com ', Masterschlüsselname' K/[email protected] 'Sie werden für das Datenbankmaster -Passwort aufgefordert. Es ist wichtig, dass Sie dieses Passwort nicht vergessen. Geben Sie den KDC-Datenbank-Master-Schlüssel ein: Nehmen Sie den KDC-Datenbankmastschlüssel erneut ein, um zu überprüfen: Jetzt, da Ihr Bereich eingerichtet ist.Lokales Programm. Dann kann dieser Auftraggeber zu/etc/krb5kdc/kadm5 hinzugefügt werden.ACL, damit Sie das Kadmin -Programm auf anderen Computern verwenden können. Kerberos Admin -Prinzipien gehören normalerweise zu einem einzelnen Benutzer und enden in /admin admin. Wenn Jruser beispielsweise ein Kerberos -Administrator ist, sollte zusätzlich zum normalen Jruser -Direktor ein Jruser/Administrator -Auftraggeber erstellt werden. Vergessen Sie nicht, DNS -Informationen einzurichten, damit Ihre Kunden Ihre KDC- und Admin -Server finden können. Dies ist im Verwaltungshandbuch dokumentiert. root@kdc: ~# 

Offen /etc/krb5kdc/kadm5.ACL Datei mit einem der Texteditor.

vim/etc/krb5kdc/kadm5.ACL
# Diese Datei ist die Zugriffskontrollliste für die KRB5 -Administration. # Wenn diese Datei bearbeitet wird, wird der Service KRB5-Admin-Server-Neustart zur Aktivierung # One gemeinsame Möglichkeit zur Einrichtung von Kerberos-Administration besteht darin. # Um dies zu aktivieren, wenden Sie sich an die folgende Zeile: */admin * 
Kopieren

Jetzt wurde der Kerberos -Server -Setup -Prozess erfolgreich abgeschlossen.

Konfigurieren Sie den Client

Führen Sie den folgenden Befehl aus, um den Kerberos -Client zu installieren und einzurichten.

# APT Installieren Sie den KRB5-Benutzer

Auch hier wird 3 Sache eins nach dem anderen gefragt, wie KDC Server -Setup.

  1. Kerberos Reich - Ubuntubox.Com
  2. Hostname für den KDC Server - KDC.Ubuntubox.com
  3. Hostname von Admin -Server - KDC.Ubuntubox.com

Testen Sie die Kerberos -Authentifizierung



Ein KEBS -Principal ist eine eindeutige Identität, zu der Kerberos Tickets zuweisen kann. Daher erstellen wir einen Auftraggeber auf KDC -Server wie unten.

Addprinc "Principal_Name"
root@kdc: ~# kadmin.Lokale Authentifizierung als Haupt root/[email protected] mit Passwort. Kadmin.Lokal: Addprinc Sandipb Warnung: Keine Politik für sandipb@ubuntubox angegeben.Com; Auf der Verfassung der Richtlinie keine Richtlinie eingeben Passwort für Principal "[email protected] ": Wiederholen Sie das Passwort für Principal" [email protected] ": Principal" [email protected] "erstellt. Kadmin.lokal: 

Führen Sie den folgenden Befehl aus, um einen Auftraggeber von KDC zu löschen, um den folgenden Befehl auszuführen.

Delprinc "Principal_Name"
root@kdc: ~# kadmin.Lokal: Authentifizierung als Haupt root/[email protected] mit Passwort. Kadmin.Lokal: Delprinc Sandipb Sind Sie sicher, dass Sie den Principal "sandipb@ubuntubox" löschen möchten.Com "? (Ja/Nein): Ja Principal "[email protected] "gelöscht. Stellen Sie sicher, dass Sie diesen Auftraggeber vor der Wiederverwendung von allen ACLs entfernt haben. Kadmin.lokal: 

Um sich nun in Kerberos zu authentifizieren und ein Ticket vom KDC -Server zu erhalten, führen Sie den folgenden Befehl im Client -Knoten aus.

Notiz: Tickets werden zerstört, wenn Sie Ihren Computer neu starten, wenn Sie den Befehl ausführen
kdestroy oder wenn sie ablaufen. Sie müssen Kinit wieder durchführen, nachdem eines davon aufgetreten ist.
# Kinit Sandipb


root@kdcclient: ~# kinit sandipb password für [email protected]: root@kdcclient: ~# root@kdcclient: ~# klist Ticket Cache: Datei:/tmp/krb5cc_0 Standard -Prinzip: [email protected] Valid Start Start Expires Service Principal 2018-12-29T19: 38: 53 2018-12-30T05: 38: 53 KRBTgt/[email protected] erneuern bis 2018-12-30t19: 38: 38 root@kdcclient: ~# 

So überprüfen Sie die Details des Principal den folgenden Befehl im KDC -Server.

GetPrinc "Principal_Name"
root@kdc: ~# kadmin.Lokale Authentifizierung als Haupt root/[email protected] mit Passwort. Kadmin.Lokal: Getprinc Sandipb Principal: [email protected] Ablaufdatum: [Nie] Letzte Passwortänderung: Sonne 30. Dezember 19:30:59 +04 2018 Kennwort Ablaufdatum: [Nie] Maximale Ticketleben: 0 Tage 10:00:00 Maximale Erneuerbare Lebensdauer: 7 Tage 00:00: U.Com) Letzte erfolgreiche Authentifizierung: Sun 30. Dezember 19:38:53 +04 2018 Letzte fehlgeschlagene Authentifizierung: [Nie] Fehlgeschlagene Passwortversuche: 0 Anzahl der Schlüssel: 2 Schlüssel: VNO 1, AES256-CTS-HMAC-SHA1-96 Key: VNO 1, AES128-CTS-HMAC-SHA1-96 MEKY: VNO 1 Attribute: fordert_pre_auth Richtlinie: [Keine] Kadmin.lokal: 

Keytab -Schöpfung



Ein KeyTab ist eine Datei mit Paaren von Kerberos -Prinzipien und verschlüsselten Schlüssel (die aus dem Kerberos -Passwort abgeleitet sind). Sie können eine KeyTab -Datei verwenden, um mithilfe von Kerberos mit verschiedenen Remote -Systemen zu authentifizieren, ohne ein Kennwort einzugeben. Wenn Sie jedoch Ihr Kerberos -Passwort ändern, müssen Sie alle Ihre Keytabs neu erstellen.

root@kdc: ~# ktutil ktutil: add_entry -password -p [email protected] -k 1 -e AES256-CTS-HMAC-SHA1-96 Passwort für [email protected]: ktutil: add_entry -password -p [email protected] 1 -e AES128-CTS-HMAC-SHA1-96 Passwort für [email protected]: ktutil: wkt sandipktt.keytab ktutil: q root@kdc: ~# 
root@kdc: ~# klist -kte sandipktt.KeyTab KeyTab -Name: Datei: Sandipktt.KeyTab Kvno Timestamp Principal ---- ------------------- ----------------------- ------------------------------- 1 2018-12-30T00: 35: 07 [email protected] (AES256-CTS-HMAC-SHA1-96) 1 2018-12-30T00: 35: 07 [email protected] (AES128-CTS-HMAC-SHA1-96) root@kdc: ~# 
root@kdc: ~# kinit -k -t sandipktt.keytab sandipb root@kdc: ~# klist Ticket Cache: Datei:/tmp/krb5cc_0 Standard -Prinzip: [email protected] Gültiges Start-Ablauf-Service Principal 2018-12-30T00: 36: 44 2018-12-30T10: 36: 44 Krbtgt/[email protected] erneuern bis 2018-12-31t00: 36: 34 root@kdc: ~# 

Abschluss

Eine Authentifizierung ist für die Sicherheit von Computersystemen von entscheidender Bedeutung. Herkömmliche Authentifizierungsmethoden sind nicht für die Verwendung in Computernetzwerken geeignet.Das Kerberos -Authentifizierungssystem eignet sich gut für die Authentifizierung von Benutzern in solchen Umgebungen.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Mastering -Bash -Skriptschleifen beherrschen
  • Linux -Konfigurationsdateien: Top 30 am wichtigsten
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Ubuntu 20.04 Leitfaden
  • Liste der besten Kali -Linux -Tools für Penetrationstests und…
  • Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen
  • Dinge zu installieren auf Ubuntu 22.04