LDAP i RADIUS Jakub Olszewski
Czym jest LDAP ? Lightweight Directory Access Protocol (LDAP). Jest to "lekki" protokół przeznaczony do dostępu do usług katalogowych. Wykorzystywany praktycznie w adresacji sieci Internet/Intranet w celu zapewnienia: niezawodności skalowalności bezpieczeństwa danych. LDAP pracuje w oparciu o protokół TCP/IP lub inne połączeniowe usługi transportu. Dane grupowane są w strukturze przypominającej drzewo katalogów. Każdy obiekt jest jednoznacznie identyfikowany poprzez swoje położenie w drzewie - tzw. distinguished name (DN). Uwaga. Używane słowo "katalog" oznacza raczej kartotekę, niż znany "folder", dlatego myślenie o LDAP w kategoriach kartoteki znacznie ułatwia zrozumienie czym jest LDAP.
Czym jest LDAP ? LDAP (Lightweight Directory Access Protocol) – jest to usługa katalogowa pozwalający na wymianę informacji za pośrednictwem TCP/IP. LDAP w wielu sytuacjach uznawane jest za rozwiązanie lepsze od innych usług katalogowych, ponieważ korzystając z TCP/IP (które działa tylko w warstwie transportowej modelu OSI) daje niezwykle szybkie odpowiedzi na żądania zgłaszane przez klienta.
Funkcje protokołu LDAP bind / unbind Funkcją operacji bind jest uwierzytelnienie użytkownika – powiązanie jego tożsamości (i obiektu LDAP) z połączeniem sieciowym i sesją LDAP. Pozwala ona na uwierzytelnienie klienta wobec serwera. Natomiast operacja unbind nie jest (wbrew popularnemu przekonaniu) odwrotnością operacji bind. Funkcją operacji unbind jest zakończenie sesji i połączenia sieciowego LDAP. Operacja unbind nie potrzebuje potwierdzenia – połączenie jest po prostu kończone. search Operacja search daje możliwość klientowi zgłoszenia żądania poszukiwanego zasobu, które będzie realizowane przez serwer. W ten sposób klient może pobierać oraz wyszukiwać informacje. modify Operacja modify zezwala klientowi na modyfikowanie, wprowadzanie nowych pozycji oraz ich usuwanie z bazy danych znajdującej się na serwerze. add Operacja add daje klientowi możliwość zgłoszenia żądania dodania wpisów do katalogu, zmiany istniejącego wpisu oraz zmiany nazwy wpisu. delete Operacja delete zezwala klientowi na żądanie usunięcia wpisów z katalogu.
Atrybuty protokołu LDAP UID (User Identifier) identyfikator użytkownika RID (Relative Identifier) względny identyfikator użyt. CN (Common Name) nazwa SN (Surname) nazwisko OU (Organizational Unit) jednostka organizacyjna O (Organization) jednostka DC (Domain Component) składnik nazwy domenowej C (Country) państwo
Autoryzacja Przypomnienie. (ang. authorization, także kontrola dostępu, ang. access control) funkcja bezpieczeństwa, która potwierdza, czy dany podmiot jest uprawniony do korzystania z żądanego zasobu.
Rodzaje autoryzacji Lokalną (zakładamy konta dla każdego użytkownika, który aby uzyskać dostęp do internetu przez proxy musi się zalogować), Identd (do autoryzacji potrzebny jest daemon lub usługa po stronie klienta, ident daemon jest dostępny pod Linux’em, by używać tej metody pod Windows’em, należy ściągnąć np. tego klienta) LDAP (autoryzacja odbywa się poprzez usługę katalogową, może to być Active Directory (gdzie serwer działa pod kontrolą Windows 2000 lub 2003) Novel eDirectory (NetWare 5.x i 6.x), LDAP v2 i v3 (OpenLDAP); można zdefiniować którzy użytkownicy/grupy mają mieć dostęp a którzy nie) Autoryzacja Windows (metoda ta wykorzystuje istniejącą domenę do autoryzacji, kontrolerem domeny może być Windows NT, 2000 lub 2003 oraz Samba 2.x lub 3.x Server działający w trybie kontrolera domeny) Radius (oczywiście do autoryzacji wykorzystywany jest serwer RADIUS).
Metody uwierzytelniania „prosta” (simple) anonimowa (anonymous) bez hasła (unauthenticated) za pomocą identyfikatora i odpowiadającego mu hasła (user/password authenticated)
Metody uwierzytelniania za pomocą schematu SASL (Simple Authentication and Security Layer, SASL – metoda dodania warstwy (ang. layer) uwierzytelniania użytkownika dla protokołów opartych na połączeniach) SASL pozwala na stosowanie różnych mechanizmów (Kerberos, DIGEST-MD). Standardowe interfejsy (np. ldapsearch, ldapmodify) domyślnie próbują uwierzytelniać użytkownika w serwerze za pomocą SASL-a. Dodatkowa konfiguracja pozwala na zastosowanie specyficznej własności SASL-a, dzięki której można dokonać pośredniej autoryzacji (użytkownik po uwierzytelnieniu może przełączyć swoją tożsamość na innego użytkownika lub usługę i otrzymać odpowiednie prawa dostępu). Najpopularniejszą dostepną bezpłatnie implementacją SASL-a jest Cyrus SASL. Obecnie zaleca się do współpracy z OpenLDAP-em SASL w wersji 2.x.
Replikacja LDAP Używanie centralnego źródła informacji ma wiele zalet, ale ma także wielką wadę. Jeśli z jakiegoś powodu serwer będzie niedostępny z komputera klienta system stanie się praktycznie bezużyteczny dla użytkowników. Aby rozwiązać ten problem można użyć mechanizmu implementowanego w serwerach LDAP zwanego replikacją. Jeden z serwerów jest używany jako master a pozostałe jako slaves(repliki). Każda zmiana w zawartości głównego LDAPa jest propagowana do replik. Jeśli klient nie będzie mógł się połączyć z masterem, to pobierze dane z repliki.
Jak dodać replikację do istniejącego systemu? klient Wystarczy dodać IP repliki do /etc/ldap.conf host <IP_serwera_master> <IP_repliki>
Jak dodać replikację do istniejącego systemu? replika (Należy zainstalować serwer OpenLDAP na hoście, który ma pełnić rolę repliki i skopiować zawartość katalogu <LDAP_DIR>/var/. Prostszym rozwiązaniem może być nawet skopiowanie całego drzewa katalogów <LDAP_DIR> pod warunkiem, że replika używa tego samego systemu operacyjnego co master. Przed rozpoczęciem kopiowania master musi zostać zatrzymany…
Jak dodać replikację do istniejącego systemu? Do bazy LDAP należy dodać DN, który będzie używany przez mastera w celu dowiązania do repliki: dn: cn=Replicator,dc=mat,dc=uni,dc=torun,dc=pl objectClass: top objectClass: person userPassword: {crypt}<CRYPTED PASSWORD> cn: Replicator sn: Replicator Następujące linie muszą zostać dodane do <LDAP_DIR>/etc/openldap/slapd.conf. access to * by dn="cn=Replicator,dc=mat,dc=uni,dc=torun,dc=pl" write by * read updatedn "cn=Replicator,dc=mat,dc=uni,dc=torun,dc=pl"
Jak dodać replikację do istniejącego systemu? master Istaniejący serwer zacznie pełnić rolę mastera. W tym celu konieczne jest dodanie następujących linii do <LDAP_DIR>/etc/openldap/slapd.conf. replica host=<IP OF REPLICA> binddn="cn=Replicator,dc=mat,dc=uni,dc=torun,dc=pl" bindmethod=simple credentials=secret Po dokonaniu zmian należy wystartować slapd oraz slurpd - demon replikacji.
Przykładowe wykorzystanie LDAP LDAP jako system obsługi DNS usługi i portale WWW zastosowania bazy LDAP w procesie obsługi certyfikatów cyfrowych i kluczy publicznych PKI oraz DNSSEC wsparcie usług portalowych w serwerach poczty elektronicznej zastosowanie w Samba do przechowywania informacji o sieci lokalnej Ciekawostka. Serwer usługi LDAP na naszym wydziale - jowita (158.75.2.3, 158.75.12.145)
RADIUS (ang. Remote Authentication Dial In User Service), usługa zdalnego uwierzytelniania użytkowników, którzy wdzwaniają się do systemu (poprzez usługę "połączenia dodzwaniane"). Protokół używany do uwierzytelniania. Stosowany przez dostawców internetowych na serwerach innych niż serwery z systemem Windows. Obecnie jest najpopularniejszym protokołem podczas uwierzytelniania i autoryzowania użytkowników sieci telefonicznych i tunelowych. Używany w sieciach bezprzewodowych.
Funkcjonowanie W odpowiedzi na próbę zalogowania się użytkownika do sieci serwer dostępowy generuje zapytanie o dane użytkownika, w tym jego identyfikator i hasło. Po wprowadzeniu tych danych z poziomu terminala użytkownika, jego identyfikator wraz z zakodowanym hasłem zostają wysłane do serwera RADIUS-a. Rolę serwera uwierzytelniania spełnia host z uruchomionym dedykowanym oprogramowaniem serwera RADIUS.
Funkcjonowanie Po sprawdzeniu danych użytkownika skutkiem ich skonfrontowania z zawartością własnych baz danych serwer RADIUS może odpowiedzieć jednym z następujących komunikatów: ACCEPT - oznacza sukces uwierzytelniania, REJECT - użytkownik nie został poprawnie uwierzytelniony, dostęp do zasobów sieci jest zabroniony, CHALLENGE - prośba o wprowadzenie dodatkowych danych uwierzytelniających.
Funkcjonowanie Po przejściu z sukcesem etapu uwierzytelniania, serwer RADIUS sprawdza w bazach autoryzacji, jakie usługi są dostępne dla danego użytkownika ( np. telnet, rlogin, połączenia terminalowe LAT, oprogramowanie protokołów SLIP czy PPP, możliwość wywołania interpretera EXEC ). Serwer RADIUS na etapie autoryzacji sprawdza też czy działania danego użytkownika w sieci nie powinny podlegać restrykcjom wynikłym z list dostępu.
Zastosowanie RADIUS w sieciach bezprzewodowych Jeśli urządzenie sieciowe (NAS) jest klientem RADIUS, to użytkownik musi przekazać klientowi dane uwierzytelniania NAS przesyła pakiet Access-Request do serwera RADIUS – w zleceniu musi pojawić się User-Name itd. Gdy nie pojawia się odpowiedź NAS ponawia przesyłanie do tego samego serwera, NAS przekazuje zlecenie do serwera alternatywnego Serwer RADIUS po odebraniu zlecenia Access-Request sprawdza wiarygodność klienta wspólny klucz tajny (shared secret) służy do uwierzytelniania transakcji klient-serwer wspólny klucz tajny NIGDY nie jest przesyłany przez sieć
Zastosowanie RADIUS w sieciach bezprzewodowych Serwer RADIUS w oparciu o lokalne metody uwierzytelniania sprawdza uprawnienia użytkownika W przypadku negatywnego wyniku kontroli serwer odpowiada pakietem Access-Reject Serwer może przekazać do klienta pakiet (odpowiedź) Access-Challenge Po otrzymaniu pakietu Access-Challenge klient ponownie wysyła Access-Request (z nowym ID) Pozytywny wynik uwierzytelnienia kończy odpowiedź Access-Accept
Bibliografia http://projekt-ldap.uci.umk.pl/raporty/ftp/uci/acls.html http://pl.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol
Ciekawe linki Instalacja LDAP http://www.linuxsoft.cz/article.php?id_article=415 Instalacja i konfiguracja OpenLDAP http://www.drfugazi.eu.org/pl/ldap/instalacja-i-konfiguracja-openldap Wiele ciekawych artykułów odnośnie LDAP http://projekt-ldap.uci.umk.pl/raporty/
Pojęcia Kerberos (ang. Cerber) jest protokołem uwierzytelniania i autoryzacji w sieci komputerowej z wykorzystaniem Centrum Dystrybucji Kluczy, zaprojektowanym w Massachusetts Institute of Technology. NAS (ang. Network Attached Storage) to nazwa technologii umożliwiającej podłączenie zasobów pamięci dyskowych bezpośrednio do sieci komputerowej. DIGEST-MD Określenie "skrót wiadomości" odnosi się do krótki ciąg lub wartość skrótu o stałej długości, który jest obliczany od dłuższego komunikatu o zmiennej długości zakodowane są przez algorytm. Przegląd wiadomości (MD) to algorytmy MD2, MD4 i MD5, z których wytwarzają się wartości hasha 128-bitowego. Algorytmów MD są powszechnie używane do generowania podpisu cyfrowego w wiadomościach.