piątek, 26 marca 2010

Instalacja i konfiguracja systemu Kerberos

Zaczynając swoją przygodę z oprogramowaniem Kerberos 5 Release 1.8 nie rozstawałem się z dokumentacją nawet na chwilę. Ku mojemu zdziwieniu, już przy pierwszej napotkanej przeszkodzie okazało się, że wszelkie zgromadzone przeze mnie informacje sprawiają wrażenie niewystarczających do rozwiązania problemu. Zanim jednak przedstawię więcej szczegółów na ten temat chciałbym opisać krok po kroku czynności niezbędne do wykonania przy instalacji i konfiguracji systemu kerberos.

1. Instalacja

Źródła do pobrania: krb-1.8-signed

Przed przystąpieniem do instalacji należy upewnić się, że system zawiera kompilator gcc oraz narzędzie yacc, co można sprawdzić poleceniem which, które zwraca pełną ścieżkę do programu (np. which yacc). U mnie na SUSE Enterprise Server 11 domyślnie zainstalowane oprogramowanie nie zawierało ani jednego ani drugiego, dlatego zmuszony byłem uzupełnić system o paczki rpm:
gcc oraz bison (które przeważnie można znaleźć na dvd z linuxem).

Po rozpakowaniu archiwum ze źródłami systemu kerberos powinniśmy przejść do wnętrza folderu krb5-1.8/src/ oraz wykonać następujące komendy:
./configure
make
make check (jeżeli chcemy przetestować skompilowany system)
make install

2. Konfiguracja

Przykładowa zawartość pliku /etc/krb5.conf dla hosta o nazwie linux-fi5z znajdującego się w domenie site wygląda następująco:


Realm wg obowiązującej konwencji powinien nosić taką samą nazwę jak domena i składać się wyłącznie z wielkich liter. Jak można zauważyć usługa Key Distribution Center oraz serwer administratora znajdują się pod adresem linux-fi5z.site a ich pliki log mieszczą się w /var/log/krb5/ .

Przykładowy plik konfiguracyjny usługi KDC /usr/local/var/krb5kdc/kdc.conf :


Tutaj staramy się nie zmieniać zbyt wiele bez wyraźnej potrzeby, pozostawiamy większość domyślnych wartości.

Informację o usługach kerberosa działających na danych portach powinniśmy umieścić w pliku /etc/services dodając do niego poniższe linie:


Kolejnym krokiem jest stworzenie bazy danych dla usługi KDC za pomocą polecenia /usr/local/sbin/kdb5_util create -r SITE -s

Dodawać administratorów będziemy za pomocą narzędzia /usr/local/sbin/kadmin.local . Polecenie mające na celu dodanie uzytkownika root do grupy administratorów wyglądać będzie następująco addprinc root/admin

Natomiast dodanie użytkownika, który będzie korzystać z usług za pomocą systemu kerberos przeprowadzamy poleceniem addprinc user_name

Dla nowo utworzonych użytkowników powinniśmy stworzyć listę uprawnień /usr/local/var/krb5kdc/kadm5.acl , w której na potrzeby przykładu nadamy każdemu administratorowi wszelkie dostępne uprawnienia: */admin@SITE *

Utworzenie pliku keytab umożliwi demonowi kadmind dekodowanie biletów Kerberosa w celu przyznania lub nie dostępu do bazy danych. Po uruchomieniu narzędzia /usr/local/sbin/kadmin.local wydajemy polecenie ktadd -k /usr/local/var/krb5kdc/kadmin5.keytab kadmin/admin kadmin/changepw

Po wykonaniu podstawowej konfiguracji systemu Kerberos możemy uruchomić usługi krb5kdc i kadmind (/usr/local/sbin/).

3. Napotkana przeszkoda

Chcąc sprawdzić czy system Kerberos działa poprawnie postanowiłem skorzystać z dołączonych przykładowych aplikacji. W tym celu dodałem do bazy danych pozycję sample/linux-fi5z.site@SITE oraz linijkę sample 13135/tcp do pliku /etc/services . Następnie uruchomiłem przykładowy serwer komendą sserver -p 13135 -S /usr/local/var/krb5kdc/kt.keytab .
Po uzyskaniu za pomocą kinit biletu TGT umożliwiającego dalsze działania postanowiłem połączyć się z serwerem komendą sclient linux-fi5z . Jak można zauważyć poniżej test zakończył się niepowodzeniem.


"Wrong principal in request" - nie jestem w stanie odgadnąć, co jest przyczyną błędu, za wszelkie pomysły na rozwiązanie zagadki będę bardzo wdzięczny.

Brak komentarzy: