So richten Sie Kerberos Server und Client unter Ubuntu 18.04 LTS ein
Kerberos ist ein Netzwerk-Authentifizierungsprotokoll, das symmetrische Schlüsselkryptographie verwendet und die Autorisierung eines vertrauenswürdigen Drittanbieters zur Authentifizierung von Client-Server-Anwendungen erfordert. 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 eingesetzt. Das bedeutet, dass alle Kunden Kerberos‘ Urteil über die Identität eines anderen Kunden vertrauen.
In diesem Tutorial zeigen wir Ihnen, wie Sie die Kerberos-Authentifizierung zwischen zwei Ubuntu 18.04-Servern einrichten. Wir werden den Kerberos-Server auf dem Ubuntu-Server installieren und konfigurieren und dann den Kerberos-Client auf der anderen Seite installieren. Schließlich werden wir die Authentifizierung des SSH-Dienstes mit dem Kerberos-Server testen.
Voraussetzungen
- Ubuntu-Server 18.04
- 10.10.10.10.15 krb5.ahmad.io io krb5
- 10.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
- Prüfung
Schritt 1 – Einrichten von FQDN
Zuerst 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 anschließend 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 diese ein.
10.10.10.15 krb5.ahmad.io krb5
Speichern und schließen.
Testen Sie nun mit dem Befehl „ping“ unten 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
Nun werden wir den Kerberos-Server auf dem’krb5′-Server mit der IP-Adresse’10.10.10.10.15′ installieren und der 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 der Kerberos den Domänennamen des Kerberos-Servers als REALM,‘AHMAD.IO‚.
Der Kerberos-Server ist‘krb5.ahmad.io‚.
Und der Admin-Server entspricht dem Kerberos-Server ‚krb5.ahmad.io‚.
Nach Abschluss der Installation wird Ihnen angezeigt, dass der Kerberos-Dienst nicht ausgeführt werden kann. Es ist in Ordnung, denn wir werden die Konfiguration im nächsten Schritt vornehmen.
Schritt 3 – KDC Kerberos-Server konfigurieren
Erzeugen 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 admin-Benutzer (admin principal) für den KDC-Kerberos-Server erstellen, den Kerberos-Server-Hostnamen zur Datenbank hinzufügen und dann die Keytab für den Kerberos-Server erstellen.
Führen Sie unten den Befehl „kadmin.local“ für die Kerberos-Administration aus.
sudo kadmin.local
Erstellen Sie ein neues Admin-Benutzerprinzip mit dem Namen „root“.
addprinc root/admin
Geben Sie das sichere Passwort für das „root“-Administrationsprinzip 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 Administrationsprinzip „root“ 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 werden wir den Kerberos-Client auf dem Ubuntu-Server mit der IP-Adresse’10.10.10.10.16′ und dem Hostnamen’client1′ installieren.
– FQDN konfigurieren
Konfigurieren Sie den FQDN auf dem Client-Computer mit dem folgenden Befehl.
hostnamectl set-hostname client1.ahmad.io
Bearbeiten Sie anschließend 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 entspricht dem Kerberos-Server ‚krb5.ahmad.io‚.
Und die Installation für den Kerberos-Client ist abgeschlossen.
– Kerberos-Client konfigurieren
Verbinden Sie sich von der Client-Maschine aus mit dem KDC-Kerberos-Server über den Befehl „kadmin“.
kadmin
Und Sie werden nach dem Passwort für das Prinzip „root/admin“ gefragt. Geben Sie das Passwort ein und Sie werden im 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 – Prüfung
Für diesen Testzweck werden wir die SSH-Authentifizierung mit Kerberos konfigurieren. Der Client-Rechner ‚client1.ahmad.io‘ verbindet sich mit dem Server ‚krb5.ahmad.io‘ über SSH mit der Kerberos-Authentifizierung.
– Einrichtung des Servers’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-Administrationsschnittstelle und bearbeiten Sie die ssh-Konfiguration ‚/etc/ssh/ssh/sshd_config‘.
vim /etc/ssh/sshd_config
Entkommentieren Sie die’GSSAPIAuthentifizierung‘ und aktivieren Sie sie, indem Sie den Wert auf “ ändern.
GSSAPIAuthentication yes GSSAPICleanupCredentials yes
Speichern und schließen Sie die Konfiguration und starten Sie dann den ssh-Dienst neu.
systemctl restart sshd
– Einrichten der’client1.ahmad.io‘ Maschine
Fügen Sie auf dem Client-Computer einen neuen Systembenutzer „ammar“ hinzu und melden Sie sich dort an.
useradd -m -s /bin/bash ammar su - ammar
Danach initialisieren Sie das Kerberos-Benutzerprinzip „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 Sie erhalten das folgende Ergebnis.
Jetzt können Sie den Server’krb5.ahmad.io‘ mit der SSH-Kerberos-Authentifizierung verbinden.
ssh krb5.ahmad.io
Und Sie werden über SSH mit Kerberos-Authentifizierung mit dem Server’krb5.ahmad.io‘ verbunden.
Nachfolgend finden Sie das SSH-Protokoll, nachdem Sie sich am Server angemeldet haben.
Schließlich wurde die Installation und Konfiguration von Kerberos-Server und -Client auf Ubuntu 18.04 erfolgreich abgeschlossen.