Kerberos je síťový ověřovací protokol, který používá kryptografii se symetrickým klíčem a vyžaduje autorizaci od důvěryhodné třetí strany k ověřování aplikací klient-server. Původně jej vyvinul Massachusetts Institute of Technology (MIT) k ochraně síťových služeb poskytovaných projektem Athena.
V moderním světě se Kerberos často používá jako ověřovací služba třetí strany. To znamená, že všichni klienti důvěřují úsudku Kerberos o identitě jiných klientů.
V tomto tutoriálu vám ukážeme, jak nastavit ověřování Kerberos mezi dvěma servery Ubuntu 18.04. Nainstalujeme a nakonfigurujeme server Kerberos na server Ubuntu a poté nainstalujeme klienta Kerberos na druhý. Nakonec otestujeme autentizaci služby SSH se serverem Kerberos.
Předpoklady
- Server Ubuntu 18.04
- 10.10.10.15 krb5.ahmad.io krb5
- 10.10.10.16 client1.ahmad.io client1
- Oprávnění uživatele root
Co uděláme:
- Nastavit soubor FQDN
- Nainstalujte KDC Kerberos Server
- Konfigurace serveru Kerberos KDC
- Nainstalujte a nakonfigurujte klienta Kerberos
- Testování
Krok 1 – Nastavení FQDN
Nejprve musíme nakonfigurovat FQDN na serveru Kerberos a poté upravit soubor '/etc/hosts' serveru.
Změňte FQDN serveru Kerberos pomocí následujícího příkazu.
hostnamectl set-hostname krb5.ahmad.io
Poté upravte soubor '/etc/hosts' pomocí editoru vim.
vim /etc/hosts
Změňte IP adresu a FQDN za vlastní a vložte do ní.
10.10.10.15 krb5.ahmad.io krb5
Uložit a zavřít.
Nyní otestujte pomocí příkazu 'ping' níže a ujistěte se, že FQDN je přeloženo na správnou IP adresu.
ping -c 3 $(hostname -f)
Krok 2 – Instalace serveru KDC Kerberos
Nyní nainstalujeme server Kerberos na server 'krb5' s IP adresou '10.10.10.15' a FQDN je 'krb5.ahmad.io'.
Nainstalujte server Kerberos pomocí následujícího příkazu apt.
sudo apt install krb5-kdc krb5-admin-server krb5-config -y
Během instalace budete dotázáni na Kerberos Realm, Kerberos server Realm a Admin server.
Ve výchozím nastavení bude Kerberos používat název domény serveru Kerberos jako REALM, 'AHMAD.IO '.
Server Kerberos je 'krb5.ahmad.io '.
A administrátorský server je stejný jako server Kerberos 'krb5.ahmad.io '.
Po dokončení instalace se zobrazí zpráva, že se nepodařilo spustit službu Kerberos. Je to v pořádku, protože konfiguraci provedeme v další fázi.
Krok 3 – Konfigurace serveru Kerberos KDC
Nyní vygenerujte nové silné hlavní heslo pro Kerberos REALM pomocí následujícího příkazu.
sudo krb5_newrealm
Zadejte své silné heslo a heslo REALM bude vygenerováno v souboru '/etc/krb5kdc/stash'.
Poté potřebujeme vytvořit administrátora (admin principál) pro server Kerberos KDC, přidat název hostitele serveru Kerberos do databáze a poté vytvořit tabulku klíčů pro server Kerberos.
Níže spusťte rozhraní příkazového řádku 'kadmin.local' pro příkaz správy Kerberos.
sudo kadmin.local
Vytvořte nového správce uživatele s názvem 'root'.
addprinc root/admin
Zadejte silné heslo pro „root“ administrátora.
Přidejte server Kerberos KDC do databáze a vytvořte soubor tabulky klíčů pro hostitele KDC.
addprinc -randkey host/krb5.ahmad.io
ktadd host/krb5.ahmad.io
Poté zavřete nástroj 'kadmin.local'.
quit
Dále musíme přidat princip 'root' admin do seznamu řízení přístupu úpravou souboru '/etc/krb5kdc/kadm5.acl'.
vim /etc/krb5kdc/kadm5.acl
Přidejte následující konfiguraci.
root/admin *
Uložte a zavřete konfiguraci a restartujte službu Kerberos.
sudo systemctl restart krb5-admin-server.service
A konfigurace serveru KDC Kerberos byla dokončena.
Krok 4 – Instalace a konfigurace klienta Kerberos
V tomto kroku nainstalujeme klienta Kerberos na server Ubuntu s IP adresou '10.10.10.16' a názvem hostitele 'client1'.
– Konfigurace FQDN
Nakonfigurujte úplný název domény na klientském počítači pomocí následujícího příkazu.
hostnamectl set-hostname client1.ahmad.io
Poté upravte soubor '/etc/hosts' pomocí editoru vim.
vim /etc/hosts
Vložte server KDC Kerberos i klienta, jak je uvedeno níže.
10.10.10.15 krb5.ahmad.io krb5
10.10.10.16 client1.ahmad.io client1
Uložit a zavřít.
– Instalace klienta Kerberos
Nainstalujte klientské balíčky Kerberos spuštěním následujícího příkazu apt.
sudo apt install -y krb5-user libpam-krb5 libpam-ccreds auth-client-config
Během instalace budete dotázáni na Kerberos Realm, Kerberos server Realm a Admin server.
Ve výchozím nastavení bude Kerberos používat název domény serveru Kerberos jako REALM, 'AHMAD.IO '.
Server Kerberos je 'krb5.ahmad.io '.
A administrátorský server je stejný jako server Kerberos 'krb5.ahmad.io '.
A instalace klienta Kerberos je dokončena.
– Konfigurace klienta Kerberos
Z klientského počítače se připojte k serveru KDC Kerberos pomocí příkazu 'kadmin'.
kadmin
A budete požádáni o heslo principu 'root/admin'. Zadejte heslo a budete přihlášeni do administrativního systému KDC Kerberos.
Nyní přidejte FQDN klienta 'client1.ahmad.io' do databáze Kerberos a přidejte soubor keytab pro klienta.
addprinc -randkey host/client1.ahmad.io
ktadd host/client1.ahmad.io
Poté zavřete rozhraní administrace Kerberos kadmin.
quit
A konfigurace klienta Kerberos je dokončena.
Krok 5 – Testování
Pro tento testovací účel nakonfigurujeme autentizaci SSH pomocí Kerberos. Klientský počítač 'client1.ahmad.io' se připojí k serveru 'krb5.ahmad.io' prostřednictvím SSH s ověřováním Kerberos.
- Nastavte server 'krb5.ahmad.io'
Vytvořte nového uživatele systému s názvem 'ammar'.
useradd -m -s /bin/bash ammar
Přihlaste se do administrace KDC Kerberos a přidejte nového hlavního uživatele s názvem 'ammar'.
kadmin.local
addprinc ammar
Zavřete rozhraní správy Kerberos a upravte konfiguraci ssh '/etc/ssh/sshd_config'.
vim /etc/ssh/sshd_config
Odkomentujte 'GSSAPIAuthentication' a povolte ji změnou hodnoty na ''.
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
Uložte a zavřete konfiguraci a restartujte službu ssh.
systemctl restart sshd
– Nastavení počítače 'client1.ahmad.io'
Přidejte nového systémového uživatele 'ammar' na klientský počítač a přihlaste se do něj.
useradd -m -s /bin/bash ammar
su - ammar
Poté inicializujte uživatelský principál Kerberos 'ammar'.
kinit ammar
Zadejte heslo uživatele a poté zkontrolujte dostupný lístek pomocí následujícího příkazu.
klist
A zobrazí se vám následující výsledek.
Nyní se můžete připojit k serveru 'krb5.ahmad.io' pomocí ověřování SSH Kerberos.
ssh krb5.ahmad.io
A budete připojeni k serveru 'krb5.ahmad.io' prostřednictvím SSH s ověřováním Kerberos.
Níže je protokol SSH po přihlášení na server.
Nakonec byla úspěšně dokončena instalace a konfigurace serveru a klienta Kerberos na Ubuntu 18.04.