Kerberos

Kerberos to protokół służący do identyfikacji (autentykacji) stworzony w MIT w roku 1988. Klienci łączą się do serwera KDC (Kerberos Distribution Center – Centrum Dystrybucji Kluczy) używając pewnego rodzaju loginu nazywanego principal i otrzymują ticket (bilet). Tak długo jak ticket jest ważny klient ma dostęp do chronionych przez kerberos usług i nie potrzebuje identyfikacji przy każdym dostępie do zasobu. Klient i serwer KDC muszą być w tym samym realm (jest to zazwyczaj nazwa domeny pisana dużymi literami).

Wymagania wstępne.

Przed uruchomieniem Kerberosa wymagane jest ustawienie synchronizacji czasu przez NTP. Jeżeli DNS nie jest skonfigurowany w pliku /etc/hosts muszą być stosowne wpisy zastępujące DNS, np:

Po adresie IP zawsze musi być wpisana nazwa hosta w wersji pełnej tj. wraz z ddomeną (FQDN), a poźniej dopiero może być nazwa skrócona. W przeciwnym wypadku autentykacja Kerberos nie będzie działać.

 

Instalacja i konfiguracja serwera.

Instalacja pakietów Kerberos:

Edycja pliku /var/kerberos/krb5kdc/kdc.conf i zastąpienie EXAMPLE.COM swoim własnym realm.

Opcjonalnie można odkomentować linię master_key_type = aes256-cts i dodać wpis w bloku [realms]: default_principal_flags = +preauth. Usunie to kompatybilność z Kerberos 4 ale zwiększy bezpieczeństwo.

Teraz edycja pliku /etc/krb5.conf. Odkomentować należy wszystkie linie, EXAMPLE.COM zastępujemy swoim realmem, example.com swoją domeną  (np. EXAMPLE.COM = NAZWA.PL, example.com = nazwa.pl), kerberos.example.com zastępujemy swoim własnym serwerem KDC (np. kdc.example.com):

Edytujemy plik /var/kerberos/krb5kdc/kadm5.acl i zastępujemy EXAMPLE.COM swoim realm.

Tworzymy bazę Kerberos (zstępujemy EXAMPLE.COM swoim realm):

Generowanie bazy trwa nawet kilka minut. Może być potrzeba napisania pewnej ilości znaków na klawiaturze aby zwiększyć entropie potrzebną do generowania danych.

Uruchomienie, autostart usługi Kerberos:

Utworzenie użytkownika user01 na testy. Na klientach serwera kerberos (server.example.com i desktop.example.com wg opisów  z linku na samym dole artykułu) user01 musi mieć to samo uid.

Uruchomienie narzędzia administracji Kerberosem:

Dodanie administatora:

Dodanie użytkownika user01:

Dodanie hosta:

Utworzenie lokalnej kopii bazy w pliku /etc/krb5.keytab:

Wyjście z administracji Kerberosem:

Edycja pliku /etc/ssh/ssh_config  i dodanie/odkomentowanie linii:

Przeładowanie demona ssh:

Konfiguracja komponentu PAM z linii komend:

Odblokowanie na firewallu portu dla usługi Kerberos (udp/tcp 88) oraz portu tcp 749 dla kadmin.

Test konfiguracji:

Teraz powinna być możliwość wyjścia z konsoli ssh i ponownego zalogowania bez podawania hasła:

Aby usunąć ticket używamy komendy:

 

Konfiguracja serwera usługi NFS i klienta NFS korzystających z Kerberosa opisana jest w artykule o Network File System:

http://miroslaw.borodziuk.eu/index.php/2017/07/25/network-file-system/

 

Leave a Reply

Your email address will not be published. Required fields are marked *