Kerberos ist ein Netzwerkauthentifizierungsprotokoll, das symmetrische Schlüsselkryptographie verwendet und die Autorisierung durch einen vertrauenswürdigen Dritten 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. Dies bedeutet, dass alle Clients dem Urteil von Kerberos über die Identität eines anderen 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 Ihrer eigenen und fügen Sie sie ein.
10.10.10.15 krb5.ahmad.io krb5
Speichern und schließen.
Testen Sie nun mit dem folgenden Befehl ‚ping‘ und stellen Sie sicher, dass der FQDN auf die richtige IP-Adresse aufgelöst ist.
ping -c 3 $(hostname -f)
Schritt 2 – Installieren Sie den KDC Kerberos Server
Jetzt installieren wir den Kerberos Server auf dem ‚krb5‘ Server mit der IP-Adresse ‚10.10.10.15‘ und der FQDN lautet ‚krb5.ahmad.io ‚.
Installieren Sie 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 wie der Kerberos-Server ‚krb5.ahmad.io‘.
Sobald die Installation abgeschlossen ist, wird angezeigt, dass der Kerberos-Dienst nicht ausgeführt werden konnte. Es ist in Ordnung, weil wir auf der nächsten Stufe konfigurieren.
Schritt 3 – KDC Kerberos Server konfigurieren
Generieren Sie nun mit dem folgenden Befehl ein neues sicheres Master-Kennwort 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 Kerberos-Server-Hostnamen zur Datenbank hinzufügen und dann die Schlüsseltabelle für den Kerberos-Server erstellen.
Führen Sie die ‚kadmin.local‘ Befehlszeilenschnittstelle für Kerberos-Verwaltungsbefehl unten.
sudo kadmin.local
Erstellen Sie einen neuen Administratorbenutzerprinzipal mit dem Namen ‚root‘.
addprinc root/admin
Geben Sie das sichere Kennwort für den Administratorprinzipal ‚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
Dann schließen Sie die ‚kadmin.lokale‘ Dienstprogramm.
quit
Als nächstes müssen wir das ‚root‘-Administratorprinzip zur Zugriffssteuerungsliste hinzufügen, indem wir das ‚/etc/krb5kdc/kadm5 .acl-Datei.
vim /etc/krb5kdc/kadm5.acl
Fügen Sie die folgende Konfiguration hinzu.
root/admin *
Speichern und schließen Sie die Konfiguration und starten Sie den Kerberos-Dienst neu.
sudo systemctl restart krb5-admin-server.service
Und die Konfiguration des KDC Kerberos Servers wurde abgeschlossen.
Schritt 4 – Installieren und konfigurieren Sie den Kerberos-Client
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 den KDC Kerberos-Server und den Client wie folgt ein.
10.10.10.15 krb5.ahmad.io krb5
10.10.10.16 client1.ahmad.io client1
Speichern und schließen.
– Install Kerberos Client
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 wie der Kerberos-Server ‚krb5.ahmad.io‘.
Die Installation für den Kerberos-Client ist abgeschlossen.
– Kerberos-Client konfigurieren
Stellen Sie auf dem Clientcomputer mit dem Befehl ‚kadmin‘ eine Verbindung zum KDC Kerberos-Server her.
kadmin
Und Sie werden nach dem Passwort von ‚root/admin‘ gefragt. Geben Sie das Kennwort ein und Sie werden beim KDC Kerberos-Verwaltungssystem angemeldet.
Fügen Sie nun den Client-FQDN hinzu ‚client1.ahmad.io ‚ zur Kerberos-Datenbank 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-Administrationsoberfläche.
quit
Und die Konfiguration des Kerberos-Clients ist abgeschlossen.
Schritt 5 – Testen
Für diesen Testzweck konfigurieren wir die SSH-Authentifizierung mit Kerberos. Die Client-Maschine ‚client1.ahmad.io ‚ wird mit dem Server verbinden ‚krb5.ahmad.io ‚ durch SSH mit der Kerberos-Authentifizierung.
– Einrichtung ‚krb5.ahmad.io ‚ Server
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-Administrationsoberfläche und bearbeiten Sie die SSH-Konfiguration ‚/etc/ssh/sshd_config‘.
vim /etc/ssh/sshd_config
Kommentieren Sie die ‚GSSAPIAuthentication‘ aus und aktivieren Sie sie, indem Sie den Wert in “ ändern.
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
Speichern und schließen Sie die Konfiguration und starten Sie den SSH-Dienst neu.
systemctl restart sshd
– Setup ‚client1.ahmad.io ‚ Maschine
Fügen Sie den neuen Systembenutzer ‚ammar‘ auf dem Client-Computer 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 anschließend das verfügbare Ticket mit dem folgenden Befehl.
klist
Und Sie werden das folgende Ergebnis angezeigt.
Jetzt können Sie die ‚krb5.ahmad.io ‚ Server mit der SSH Kerberos-Authentifizierung.
ssh krb5.ahmad.io
Und Sie werden mit dem ‚krb5.ahmad.io ‚ Server über SSH mit Kerberos-Authentifizierung.
Unten sehen Sie das SSH-Protokoll, nachdem Sie sich beim Server angemeldet haben.
Schließlich wurde die Installation und Konfiguration von Kerberos Server und Client unter Ubuntu 18.04 erfolgreich abgeschlossen.