Kerberos to protokół uwierzytelniania sieciowego, który wykorzystuje symetryczną kryptografię klucza i wymaga autoryzacji od zaufanej strony trzeciej w celu uwierzytelnienia aplikacji klient-serwer. Pierwotnie został opracowany przez Massachusetts Institute of Technology (MIT) w celu ochrony usług sieciowych świadczonych w ramach projektu Athena.
we współczesnym świecie Kerberos jest często używany jako usługa uwierzytelniania stron trzecich. Oznacza to, że wszyscy klienci ufają osądowi Kerberosa na temat tożsamości innych klientów.
w tym samouczku pokażemy, jak skonfigurować uwierzytelnianie Kerberos między dwoma serwerami Ubuntu 18.04. Zainstalujemy i skonfigurujemy Serwer Kerberos na serwerze Ubuntu, a następnie zainstalujemy klienta Kerberos na drugim. Na koniec przetestujemy uwierzytelnianie usługi SSH z serwerem Kerberos.
- Ubuntu server 18.04
- 10.10.10.15 krb5.ahmad.io krb5
- 10.10.10.16 client1.ahmad.io KLIENT1
- uprawnienia roota
co zrobimy:
- Ustaw plik FQDN
- Zainstaluj serwer KDC Kerberos
- Skonfiguruj serwer KDC Kerberos
- Zainstaluj i skonfiguruj klienta Kerberos
- testowanie
Krok 1 – Skonfiguruj FQDN
przede wszystkim musimy skonfigurować FQDN na serwerze Kerberos, a następnie edytować plik '/etc/hosts’ serwera.
Zmień FQDN serwera Kerberos za pomocą następującego polecenia.
hostnamectl set-hostname krb5.ahmad.io
następnie Edytuj plik '/etc/hosts’ za pomocą edytora vim.
vim /etc/hosts
Zmień swój adres IP i FQDN i wklej do niego.
10.10.10.15 krb5.ahmad.io krb5
Zapisz i zamknij.
teraz Przetestuj za pomocą polecenia’ ping ’ poniżej i upewnij się, że FQDN jest rozwiązany pod właściwym adresem IP.
ping -c 3 $(hostname -f)
Krok 2-Zainstaluj serwer KDC Kerberos
teraz zainstalujemy Serwer Kerberos na serwerze 'krb5′ o adresie IP '10.10.10.15′ i FQDN jest 'krb5.ahmad.io’.
Zainstaluj serwer Kerberos używając następującego polecenia apt.
sudo apt install krb5-kdc krb5-admin-server krb5-config -y
podczas instalacji zostaniesz zapytany o Serwer Kerberos Realm, Serwer Kerberos Realm I Serwer administracyjny.
domyślnie Kerberos użyje nazwy domeny serwera Kerberos jako domeny, „AHMAD.IO’.
Serwer Kerberos jest „krb5.ahmad.io’.
a serwer admina taki sam jak serwer Kerberos 'krb5.ahmad.io’.
po zakończeniu instalacji pojawi się komunikat, że usługa Kerberos nie została uruchomiona. Jest dobrze, ponieważ skonfigurujemy na następnym etapie.
Krok 3-Skonfiguruj serwer KDC Kerberos
teraz Wygeneruj nowe silne hasło główne dla serwera Kerberos za pomocą następującego polecenia.
sudo krb5_newrealm
Wpisz swoje silne hasło, a hasło REALM zostanie wygenerowane w pliku’/etc/krb5kdc / stash’.
następnie musimy utworzyć użytkownika administratora (Admin principal) dla serwera KDC Kerberos, dodać nazwę hosta serwera Kerberos do bazy danych, a następnie utworzyć tablicę kluczy dla serwera Kerberos.
Uruchom ” kadmin.local ’ interfejs wiersza poleceń dla polecenia administracyjnego Kerberos poniżej.
sudo kadmin.local
Utwórz nowego administratora użytkownika o nazwie 'root’.
addprinc root/admin
wpisz silne hasło dla głównego administratora 'root’ .
Dodaj serwer KDC Kerberos do bazy danych i utwórz plik keytab dla hosta KDC.
addprinc -randkey host/krb5.ahmad.io
ktadd host/krb5.ahmad.io
następnie zamknij 'kadmin.lokalna ” użyteczność.
quit
następnie musimy dodać zasadę administratora ’ root 'do listy kontroli dostępu, edytując’ /etc/krb5kdc/kadm5.plik acl.
vim /etc/krb5kdc/kadm5.acl
dodaj następującą konfigurację.
root/admin *
Zapisz i zamknij konfigurację, a następnie uruchom ponownie usługę Kerberos.
sudo systemctl restart krb5-admin-server.service
i konfiguracja serwera KDC Kerberos została zakończona.
Krok 4-Zainstaluj i skonfiguruj klienta Kerberos
w tym kroku zainstalujemy klienta Kerberos na serwerze Ubuntu z adresem IP '10.10.10.16′ i nazwą hosta 'client1′.
– Skonfiguruj FQDN
Skonfiguruj FQDN na komputerze klienckim za pomocą następującego polecenia.
hostnamectl set-hostname client1.ahmad.io
następnie Edytuj plik '/etc/hosts’ za pomocą edytora vim.
vim /etc/hosts
Wklej zarówno serwer KDC Kerberos, jak i klienta, jak poniżej.
10.10.10.15 krb5.ahmad.io krb5
10.10.10.16 client1.ahmad.io client1
Zapisz i zamknij.
– zainstaluj klienta Kerberos
zainstaluj pakiety klienta Kerberos, uruchamiając następujące polecenie apt.
sudo apt install -y krb5-user libpam-krb5 libpam-ccreds auth-client-config
podczas instalacji zostaniesz zapytany o Serwer Kerberos Realm, Serwer Kerberos Realm I Serwer administracyjny.
domyślnie Kerberos będzie używał nazwy domeny serwera Kerberos jako domeny, „AHMAD.IO’.
Serwer Kerberos jest „krb5.ahmad.io’.
a serwer admina taki sam jak serwer Kerberos 'krb5.ahmad.io”.
i instalacja dla klienta Kerberos jest zakończona.
– Skonfiguruj klienta Kerberos
z maszyny klienckiej, połącz się z serwerem KDC Kerberos za pomocą polecenia 'kadmin’.
kadmin
i zostaniesz poproszony o hasło Zasady 'root / admin’. Wpisz hasło, a zostaniesz zalogowany do systemu administracyjnego KDC Kerberos.
teraz dodaj klienta FQDN 'client1.ahmad.io’ do bazy danych Kerberos i dodać plik keytab dla klienta.
addprinc -randkey host/client1.ahmad.io
ktadd host/client1.ahmad.io
następnie zamknij interfejs administracyjny kadmin Kerberos.
quit
i konfiguracja klienta Kerberos jest zakończona.
Krok 5-testowanie
w tym celu skonfigurujemy uwierzytelnianie SSH za pomocą Kerberosa. Maszyna klienta „client1.ahmad.io’ połączy się z serwerem 'krb5.ahmad.io przez SSH z uwierzytelnieniem Kerberos.
– Konfiguracja „krb5.ahmad.io’ Serwer
tworzy nowego użytkownika systemowego o nazwie 'ammar’.
useradd -m -s /bin/bash ammar
Zaloguj się do administracji KDC Kerberos i dodaj nowego głównego użytkownika o nazwie 'ammar’.
kadmin.local
addprinc ammar
Zamknij interfejs administracyjny Kerberos i Edytuj konfigurację ssh '/etc/ssh/sshd_config’.
vim /etc/ssh/sshd_config
odkomentuj „GSSAPIAuthentication” i włącz ją, zmieniając wartość na””.
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
Zapisz i zamknij konfigurację, a następnie uruchom ponownie usługę ssh.
systemctl restart sshd
– Setup „client1.ahmad.io’ Maszyna
Dodaj nowego użytkownika systemowego 'ammar’ na maszynie klienta i zaloguj się do niego.
useradd -m -s /bin/bash ammar
su - ammar
następnie zainicjuj polecenie użytkownika Kerberos „ammar”.
kinit ammar
wpisz hasło użytkownika, a następnie sprawdź dostępne zgłoszenie za pomocą następującego polecenia.
klist
i pojawi się następujący wynik.
teraz możesz podłączyć „krb5.ahmad.io” serwer wykorzystujący uwierzytelnianie SSH Kerberos.
ssh krb5.ahmad.io
i zostaniesz połączony z „krb5.ahmad.io’ serwer przez SSH z uwierzytelnianiem Kerberos.
Poniżej znajduje się Log SSH po zalogowaniu się na serwer.
wreszcie instalacja i konfiguracja serwera i klienta Kerberos na Ubuntu 18.04 została zakończona pomyślnie.