Kerberos ist ein Netzwerkauthentifizierungsprotokoll, das Kryptografie mit symmetrischen Schlüsseln verwendet und eine Autorisierung von einem vertrauenswürdigen Drittanbieter erfordert, um Client-Server-Anwendungen zu authentifizieren. Es wurde ursprünglich vom Massachusetts Institute of Technology (MIT) entwickelt, um die vom Athena-Projekt bereitgestellten Netzwerkdienste zu schützen.
In der modernen Welt wird Kerberos häufig als Authentifizierungsdienst eines Drittanbieters verwendet. Das bedeutet, dass alle Clients dem Urteil von Kerberos über die Identität anderer Clients vertrauen.
In diesem Tutorial zeigen wir Ihnen, wie Sie die Kerberos-Authentifizierung zwischen zwei Ubuntu 18.04-Servern einrichten. Wir installieren und konfigurieren den Kerberos-Server auf dem Ubuntu-Server und installieren dann den Kerberos-Client auf dem anderen. Abschließend testen wir die Authentifizierung des SSH-Dienstes mit dem Kerberos-Server.
Voraussetzungen
- Ubuntu-Server 18.04
- 10.10.10.15 krb5.ahmad.io krb5
- 10.10.10.16 client1.ahmad.io client1
- Root-Rechte
Was wir tun werden:
- FQDN-Datei einrichten
- KDC-Kerberos-Server installieren
- KDC-Kerberos-Server konfigurieren
- Kerberos-Client installieren und konfigurieren
- Testen
Schritt 1 – FQDN einrichten
Zunächst müssen wir den FQDN auf dem Kerberos-Server konfigurieren und dann die Datei „/etc/hosts“ des Servers bearbeiten.
Ändern Sie den FQDN des Kerberos-Servers mit dem folgenden Befehl.
hostnamectl set-hostname krb5.ahmad.io
Bearbeiten Sie danach die Datei „/etc/hosts“ mit dem vim-Editor.
vim /etc/hosts
Ändern Sie die IP-Adresse und den FQDN mit Ihren eigenen und fügen Sie sie ein.
10.10.10.15 krb5.ahmad.io krb5
Speichern und schließen.
Testen Sie jetzt mit dem untenstehenden „ping“-Befehl und stellen Sie sicher, dass der FQDN in die richtige IP-Adresse aufgelöst wird.
ping -c 3 $(hostname -f)
Schritt 2 – KDC-Kerberos-Server installieren
Jetzt installieren wir den Kerberos-Server auf dem „krb5“-Server mit der IP-Adresse „10.10.10.15“ und dem FQDN ist „krb5.ahmad.io“.
Installieren Sie den Kerberos-Server mit dem folgenden apt-Befehl.
sudo apt install krb5-kdc krb5-admin-server krb5-config -y
Während der Installation werden Sie nach dem Kerberos-Realm, dem Kerberos-Server des Realms und dem Admin-Server gefragt.
Standardmäßig verwendet Kerberos den Domänennamen des Kerberos-Servers als REALM, „AHMAD.IO '.
Der Kerberos-Server ist 'krb5.ahmad.io '.
Und der Admin-Server ist derselbe wie der Kerberos-Server 'krb5.ahmad.io '.
Sobald die Installation abgeschlossen ist, wird Ihnen angezeigt, dass der Kerberos-Dienst nicht ausgeführt werden kann. Es ist in Ordnung, weil wir in der nächsten Phase konfigurieren werden.
Schritt 3 – KDC-Kerberos-Server konfigurieren
Generieren Sie nun mit dem folgenden Befehl ein neues starkes Master-Passwort für den Kerberos REALM.
sudo krb5_newrealm
Geben Sie Ihr sicheres Passwort ein und das REALM-Passwort wird in der Datei „/etc/krb5kdc/stash“ generiert.
Danach müssen wir den Administratorbenutzer (Administratorprinzipal) für den KDC-Kerberos-Server erstellen, den Hostnamen des Kerberos-Servers zur Datenbank hinzufügen und dann die Keytab-Datei für den Kerberos-Server erstellen.
Führen Sie die 'kadmin.local'-Befehlszeilenschnittstelle für den Kerberos-Administrationsbefehl unten aus.
sudo kadmin.local
Erstellen Sie einen neuen Admin-Benutzerprinzipal mit dem Namen „root“.
addprinc root/admin
Geben Sie das starke Passwort für den Admin-Principal „root“ ein.
Fügen Sie den KDC-Kerberos-Server zur Datenbank hinzu und erstellen Sie die Keytab-Datei für den KDC-Host.
addprinc -randkey host/krb5.ahmad.io
ktadd host/krb5.ahmad.io
Schließen Sie dann das Dienstprogramm „kadmin.local“.
quit
Als nächstes müssen wir das „root“-Admin-Prinzip zur Zugriffskontrollliste hinzufügen, indem wir die Datei „/etc/krb5kdc/kadm5.acl“ bearbeiten.
vim /etc/krb5kdc/kadm5.acl
Fügen Sie die folgende Konfiguration hinzu.
root/admin *
Speichern und schließen Sie die Konfiguration und starten Sie dann den Kerberos-Dienst neu.
sudo systemctl restart krb5-admin-server.service
Und die Konfiguration des KDC-Kerberos-Servers ist abgeschlossen.
Schritt 4 – Kerberos-Client installieren und konfigurieren
In diesem Schritt installieren wir den Kerberos-Client auf dem Ubuntu-Server mit der IP-Adresse „10.10.10.16“ und dem Hostnamen „client1“.
- FQDN konfigurieren
Konfigurieren Sie den FQDN auf dem Clientcomputer mit dem folgenden Befehl.
hostnamectl set-hostname client1.ahmad.io
Bearbeiten Sie danach die Datei „/etc/hosts“ mit dem vim-Editor.
vim /etc/hosts
Fügen Sie sowohl den KDC-Kerberos-Server als auch den Client wie unten beschrieben ein.
10.10.10.15 krb5.ahmad.io krb5
10.10.10.16 client1.ahmad.io client1
Speichern und schließen.
- Kerberos-Client installieren
Installieren Sie Kerberos-Client-Pakete, indem Sie den folgenden apt-Befehl ausführen.
sudo apt install -y krb5-user libpam-krb5 libpam-ccreds auth-client-config
Während der Installation werden Sie nach dem Kerberos-Realm, dem Kerberos-Server des Realms und dem Admin-Server gefragt.
Standardmäßig verwendet Kerberos den Domänennamen des Kerberos-Servers als REALM, „AHMAD.IO '.
Der Kerberos-Server ist 'krb5.ahmad.io '.
Und der Admin-Server ist derselbe wie der Kerberos-Server 'krb5.ahmad.io '.
Und die Installation für den Kerberos-Client ist abgeschlossen.
- Kerberos-Client konfigurieren
Stellen Sie vom Client-Rechner aus eine Verbindung zum KDC-Kerberos-Server her, indem Sie den Befehl „kadmin“ verwenden.
kadmin
Und Sie werden nach dem Passwort des 'root/admin'-Prinzips gefragt. Geben Sie das Passwort ein und Sie werden beim KDC-Kerberos-Administrationssystem angemeldet.
Fügen Sie nun den Client-FQDN „client1.ahmad.io“ zur Kerberos-Datenbank hinzu und fügen Sie die Keytab-Datei für den Client hinzu.
addprinc -randkey host/client1.ahmad.io
ktadd host/client1.ahmad.io
Schließen Sie dann die kadmin-Kerberos-Administrationsschnittstelle.
quit
Und die Konfiguration des Kerberos-Clients ist abgeschlossen.
Schritt 5 – Testen
Zu diesem Testzweck konfigurieren wir die SSH-Authentifizierung mit Kerberos. Der Client-Rechner „client1.ahmad.io“ verbindet sich über SSH mit der Kerberos-Authentifizierung mit dem Server „krb5.ahmad.io“.
- Richten Sie den „krb5.ahmad.io“-Server ein
Erstellen Sie einen neuen Systembenutzer namens „ammar“.
useradd -m -s /bin/bash ammar
Melden Sie sich bei der KDC-Kerberos-Administration an und fügen Sie einen neuen Hauptbenutzer namens „ammar“ hinzu.
kadmin.local
addprinc ammar
Schließen Sie die Kerberos-Administrationsschnittstelle und bearbeiten Sie die SSH-Konfiguration „/etc/ssh/sshd_config“.
vim /etc/ssh/sshd_config
Entkommentieren Sie die „GSSAPIAuthentication“ und aktivieren Sie sie, indem Sie den Wert in „.
ändernGSSAPIAuthentication yes
GSSAPICleanupCredentials yes
Speichern und schließen Sie die Konfiguration und starten Sie dann den SSH-Dienst neu.
systemctl restart sshd
- Einrichten des Computers „client1.ahmad.io“
Fügen Sie den neuen Systembenutzer „ammar“ auf dem Client-Rechner hinzu und melden Sie sich an.
useradd -m -s /bin/bash ammar
su - ammar
Initialisieren Sie danach den Kerberos-Benutzerprinzipal „ammar“.
kinit ammar
Geben Sie das Passwort des Benutzers ein und überprüfen Sie danach das verfügbare Ticket mit dem folgenden Befehl.
klist
Und Ihnen wird das folgende Ergebnis angezeigt.
Jetzt können Sie den Server ‚krb5.ahmad.io‘ mithilfe der SSH-Kerberos-Authentifizierung verbinden.
ssh krb5.ahmad.io
Und Sie werden über SSH mit Kerberos-Authentifizierung mit dem Server „krb5.ahmad.io“ verbunden.
Unten ist das SSH-Protokoll nach der Anmeldung beim Server.
Schließlich wurde die Installation und Konfiguration von Kerberos-Server und -Client auf Ubuntu 18.04 erfolgreich abgeschlossen.