GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren Sie den Kerberos 5 KDC-Server unter Linux für die Authentifizierung

Kerberos ist ein Netzwerkauthentifizierungsprotokoll.

Kerberos bietet eine starke kryptografische Authentifizierung gegenüber den Geräten, wodurch Client und Server sicherer kommunizieren können. Es wurde entwickelt, um Netzwerksicherheitsprobleme zu beheben.

Wenn Firewalls eine Lösung darstellen, um das Eindringen von externen Netzwerken zu bekämpfen, wird Kerberos normalerweise verwendet, um das Eindringen und andere Sicherheitsprobleme innerhalb des Netzwerks zu beheben.

Die aktuelle Version von Kerberos ist Version 5, die als KRB5 bezeichnet wird .

Um Kerberos zu implementieren, muss der zentralisierte Authentifizierungsdienst auf dem Server ausgeführt werden.

Dieser Dienst heißt KEY DISTRIBUTION CENTER (KDC).

Einem bei KDC registrierten Server vertrauen alle anderen Computer im Kerberos-Realm.

Beispieldatei krb5.conf

Hier ist eine krb5.conf-Beispieldatei, die alle REALM- und Domänen-zu-REAM-Zuordnungsinformationen enthält,

# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = EXAMPLE.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 EXAMPLE.COM = {
  kdc = kerberos.example.com
  admin_server = kerberos.example.com
 }

[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM

Kerberos KDC-Server installieren

Aus Sicherheitsgründen wird empfohlen, den Kerberos (KDC)-Server auf einem separaten Server auszuführen.

Laden Sie das krb5-Serverpaket herunter und installieren Sie es.

# rpm -ivh krb5-server-1.10.3-10.el6_4.6.x86_64.rpm
Preparing...       ########################################### [100%]
   1:krb5-server   ########################################### [100%]

Stellen Sie sicher, dass die folgenden RPMs installiert sind, bevor Sie KDC konfigurieren:

# rpm -qa | grep -i krb5
pam_krb5-2.3.11-9.el6.x86_64
krb5-server-1.10.3-10.el6_4.6.x86_64
krb5-workstation-1.10.3-10.el6_4.6.x86_64
krb5-libs-1.10.3-10.el6_4.6.x86_64

Datei /etc/krb5.conf ändern

Ändern Sie /etc/krb5.conf so, dass es wie unten mit den entsprechenden REALM- und DOMAIN_REALM-Zuordnungen widerspiegelt.

# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = MYREALM.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 MYREALM.COM = {
  kdc = elserver1.example.com
  admin_server = elserver1.example.com
 }

[domain_realm]
 .myrealm.com = MYREALM.COM
 myrealm.com = MYREALM.COM

Kdc.conf-Datei ändern

Auch die kdc.conf sollte wie unten gezeigt modifiziert werden.

# cat /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 MYREALM.COM = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

KDC-Datenbank erstellen

Erstellen Sie als Nächstes die KDC-Datenbank mit dem Befehl kdb5_util wie unten gezeigt. Geben Sie in diesem Schritt das entsprechende Passwort für den Hauptschlüssel der KDC-Datenbank ein.

# /usr/sbin/kdb5_util create -s
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'MYREALM.COM',
master key name 'K/[email protected]'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:
Re-enter KDC database master key to verify:

Administratorrechte zuweisen

Den Benutzern können über die Datei /var/kerberos/krb5kdc/kadm5.acl.

Administratorrechte für die Datenbank gewährt werden
# cat /var/kerberos/krb5kdc/kadm5.acl
*/[email protected]     *

Im obigen Beispiel hat jeder Prinzipal in MYREALM mit einer Administratorinstanz alle Administratorrechte.

Erstellen Sie einen Prinzipal

Erstellen Sie den Prinzipal mit dem folgenden Befehl. In diesem Beispiel habe ich den Prinzipal mit dem Benutzernamen „eluser“ erstellt.

# kadmin.local -q "addprinc eluser/admin"
Authenticating as principal root/[email protected] with password.
WARNING: no policy specified for eluser/[email protected]; defaulting to no policy
Enter password for principal "eluser/[email protected]":
Re-enter password for principal "eluser/[email protected]":
Principal "eluser/[email protected]" created.

Starten Sie den Kerberos-Dienst

Starten Sie die KDC- und kadmin-Daemons wie unten gezeigt.

# service krb5kdc start
Starting Kerberos 5 KDC:               [  OK  ]

# service kadmin start
Starting Kerberos 5 Admin Server:      [  OK  ]

Kerberos-Client konfigurieren

Konfigurieren Sie den Kerberos-Client so, dass er sich bei der KDC-Datenbank authentifiziert:

Sehen wir uns nun an, wie der krb5-Client so konfiguriert wird, dass er sich bei der oben erstellten Kerberos-KDC-Datenbank authentifiziert.

Schritt 1:Installieren Sie die Pakete krb5-libs und krb5-workstation auf dem Client-Rechner.

Schritt 2:Kopieren Sie die /etc/krb5.conf vom KDC-Server auf den Client-Rechner.

Schritt 3:Jetzt müssen wir den Prinzipal für den Client in der KDC/Kerberos-Datenbank erstellen.

Sie können die folgenden Befehle verwenden, um den Prinzipal für den Clientcomputer auf dem KDC-Masterserver zu erstellen. Im folgenden Beispiel erstelle ich einen Host-Prinzipal für den Client elserver3.example.com auf dem Master-KDC-Server elserver1.example.com

# kadmin.local -q "addprinc host/elserver3.example.com"
Authenticating as principal root/[email protected] with password.
WARNING: no policy specified for host/[email protected]; defaulting to no policy
Enter password for principal "host/[email protected]":
Re-enter password for principal "host/[email protected]":
Principal "host/[email protected]" created.

Schritt 4:Extrahieren Sie die krb5.keytab für den Client vom KDC-Masterserver mit dem folgenden Befehl:

# kadmin.local -q "ktadd -k /etc/krb5.keytab host/elserver3.example.com"
Authenticating as principal root/[email protected] with password.
Entry for principal host/elserver3.example.com with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des3-cbc-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type arcfour-hmac added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des-hmac-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des-cbc-md5 added to keytab WRFILE:/etc/krb5.keytab.

Damit ist die Konfiguration abgeschlossen. In dieser Phase sind Sie fertig.

Von nun an überprüft der Host jedes Mal, wenn Sie eine SSH-, RSH-Verbindung herstellen, seine Identität anhand der KDC-Datenbank mithilfe der Keytab-Datei und stellt eine sichere Verbindung über Kerberos her.

Ktadd wird zum Generieren einer neuen Keytab-Datei oder zum Hinzufügen eines Prinzipals zu einer vorhandenen Keytab-Datei mit dem kadmin-Befehl verwendet.

Ktremove wird verwendet, um den Prinzipal aus einem vorhandenen Keytab zu entfernen. Der Befehl zum Entfernen des oben erstellten Prinzipals lautet:

kadmin.local -q "ktremove -k /etc/krb5.keytab –q all"

Löschen Sie eine KDC-Datenbank

Wenn Sie aus irgendeinem Grund eine KDC-Datenbank löschen müssen, verwenden Sie den folgenden Befehl:

# kdb5_util -r MYREALM.COM destroy
kdb5_util: Deleting KDC database stored in /usr/local/var/krb5kdc/principal, you sure
(type yes to confirm)? <== yes
OK, deleting database '/usr/local/var/krb5kdc/principal'...

Die Option -f im obigen Befehl erzwingt das Löschen der KDC-Datenbank.

KDC-Datenbank sichern und wiederherstellen

Um eine KDC-Datenbank in eine Datei zu sichern, verwenden Sie krb5_util_dump.

# kdb5_util dump kdcfile

# ls -l kdcfile
-rw-------. 1 root root 5382 Apr 10 07:25 kdcfile

Gehen Sie wie folgt vor, um die KDC-Datenbank aus der im obigen Schritt erstellten Sicherungsdatei wiederherzustellen:

# kdb5_util load kdcfile

Linux
  1. So installieren Sie SQL Server unter Linux

  2. So installieren Sie den Nginx-Webserver unter Linux

  3. So installieren Sie Borgmatic für einfache Linux-Server-Backups

  4. So installieren Sie den Virtualisierungs-Linux-Server

  5. Wie installiere ich Microsoft SQL Server für Linux (Fedora)?

Graylog-Überwachungsserver unter Ubuntu Linux für Überwachungsserver/-dienste

So installieren Sie den Nginx-Webserver unter Ubuntu Linux:Ein Tutorial für Anfänger

So installieren Sie Apache unter Arch Linux

So installieren Sie Webmin unter Ubuntu Linux

So installieren und konfigurieren Sie die CSF-Firewall für Linux

So installieren Sie Jenkins unter Rocky Linux 8