sobota, 11 września 2010

Usługi katalogowe - OpenLDAP (3) - Konfiguracja

W poprzednim wpisie dotyczącym usług katalogowych opisałem proces instalacji serwera OpenLDAP. Dzisiaj, zgodnie z zapowiedzą przedstawię sposób konfiguracji tej aplikacji oraz zaprezentuję to jak ona działa.


Konfiguracja
Proces konfiguracji sprowadza się do wprowadzeniu w pliku /usr/local/etc/openldap/slapd.conf odpowiednich wartości dla poszczególnych parametrów.

Jednym z parametrów, który należy określić jest hasło użytkownika zarządzającego serwerem, aby uniknąć wpisywania tego hasła w sposób czytelny można skorzystać z narzędzia slappasswd. Pozwala ono wygenerować zaszyfrowany ciąg hasła, który następnie można bezpiecznie umieścić w pliku konfiguracyjny. Wygeneruję zatem taki ciąg wydając polecenie i podając odpowiednie dane
  • slappasswd
Wynik działania zaprezentowano powyżej.
Założyłem dodatkowo, że serwer będzie pracował w domenie: mbsoftware.com.pl, a administrator będzie nazywał się po prostu: admin.
Teraz możemy przystąpić do wprowadzania wartości w wymienionym wcześniej pliku. Przykładowy szablon pliku znajduje się poniżej:


database bdb
suffix "dc=,dc=<1-WSZY_CZŁON_DOMENY>" 
rootdn "cn=,dc=,dc=<1-WSZY_CZŁON_DOMENY>" 
rootpw
directory
Znając domenę, nazwę użytkownika oraz ciąg, który będzie reprezentował hasło pozostaje nam do określenia katalog - np. /usr/local/var/openldap-data - trzeba zadbać, aby przed uruchomieniem aplikacji został on utworzony.
Na podstawie powyższych danych wprowadzamy zmiany w pliku:

database bdb
suffix "dc=mbsoftware,dc=com,dc=pl" 
rootdn "cn=admin,dc=mbsoftware,dc=com,dc=pl" 
rootpw {SSHA}Uer3DSw297HyPvs25Z4u3tnyp2hrUB8i
directory /usr/local/var/openldap-data
Nie możemy zapomnieć o utworzeniu wyżej wymienionego katalogu. Poniżej fragment pliku slapd.conf oraz zmiany, które w nim wprowadziłem.




Uruchamianie
Aby uruchomić serwer OpenLDAP, należy wydać polecenie:

  • sudo /usr/local/libexec/slapd
Weryfikacja działania
Sprawdźmy teraz czy serwer odpalił się poprawnie i czy odpowiada zgodnie z konfiguracją na zapytania, które można zlecić do wykonania za pomocą komendy ldapsearch. Wykonajmy poniższą komendę:

  • ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
W wyniku działania powinniśmy dostać informację o sufiksie jaki został wprowadzony w pliku slapd.conf.
Poniższy zrzut ekranu prezentuje wynik, jaki uzyskałem dla mojej konfiguracji.

Podsumowanie
Konfiguracja oraz uruchamianie aplikacji nie wymaga włożenia wiele wysiłku, jednak aby zapewnić większe bezpieczeństwo całej aplikacji należy zapoznać się z następującą lekturą udostępnioną na stronie OpenLDAP.

Wydaje się, że cykl dotyczący usług katalogowych można już zamknąć. Temat ten opisywałem z ważnego powodu - planuję zintegrować OpenLDAP z innym systemem. Zanim postawię kropkę nad "i" w ostatnim "odcinku" wprowadzę do działającej instancji serwera usług katalogowych dane z których zamierzam skorzystać w przyszłości. 

czwartek, 9 września 2010

Usługi katalogowe - OpenLDAP (2) - Instalacja

Poprzednim razem w wielkim skrócie opisałem przypadek wykorzystania systemów usług katalogowych. Dzisiaj chciałbym zaznajomić Was z systemem OpenLDAP.

Zanim zaczniemy, chciałbym przedstawić prostą strukturę organizacyjną wyimaginowanej firmy obsługującej internetowe wnioski o produkty finansowe dla dużego banku. Firma będzie się składać z dwóch pracowników: Kierownika oraz Pracownika. Kierownik będzie posiadał uprawnienia do dokonywania audytu, natomiast pracownik do przetwarzania wniosków.

Instalacja
Proces instalacji należy rozpocząć od ściągnięcia archiwum z aplikacją. Najlepiej skorzystać z dystrybucji przygotowanej przez autorów, która jest dostępna pod adresem: http://www.openldap.org/software/download/.
Po ściągnięciu paczki, należy ją wgrać na maszynę wirtualną - jak to można zrobić? Teoretycznie VirtualBox udostępnia mechanizm współdzielenia katalogów z systemem hostem (Windows XP w moim wypadku) jednak do tej pory nie udało mi się tego uruchomić. Aby wgrać paczkę do Ubuntu odpalonego na maszynie wirtualnej wykorzystajmy proste narzędzie WinSCP, które pracuje jako menadżer plików po szyfrowanym połączeniu SSH.
Kiedy uda się wgrać pakiet na maszynę należy go rozpakować poniższym poleceniem:

  • gunzip -c openldap-VERSION.tgz | tar xvfB -

Ponieważ cały proces polega zbudowaniu aplikacji z kodów źródłowych może zaistnieć potrzeba zainstalowania kompilatorów:

  • sudo apt-get install gcc

Dodatkowo do poprawnego działania całej aplikacji potrzebna jest baza danych BekeleyDB. Również ją można w łatwy sposób zainstalować wykorzystując apt-get lub aptitude:

  • sudo aptitude install libdb4.7 libdb4.7-dev

Kolejnym krokiem jest konfiguracja etapu budowania - w tym celu w katalogu do którego rozpakowało się archiwum z OpenLDAP wykonujemy poniższe zapytanie:

  • ./configure

Dokonuje ono sprawdzenia czy wszystkie wymagane narzędzia są dostępne w systemie (kompilator, baza danych itp.). Teoretycznie operacja powinna zakończyć się sukcesem, ponieważ zainstalowaliśmy wcześniej zarówno kompilator jak i wymaganą przez OpenLDAP bazę danych. Jeżeli pojawią się problemy - brak jakiejś aplikacji zależnej to należy poszukać ją za pomocą aptitude lub apt-get i zainstalować po czym ponowić wywołanie ./configure.

Przedostatnim etapem jest kompilacja całej aplikacji za pomocą dwóch poleceń:

  • make depend
  • make

Należy je wykonać kolejno po sobie. Ta druga może trochę trwać z racji tego, że wykonuje budowanie całej aplikacji z kodów źródłowych. Sukces kompilacji obwieści komunikat zaprezentowany na poniższym zrzucie ekranu:

Aby sprawdzić czy cały proces budowania przebiegł pomyślnie można odpalić testy, które zweryfikują całą aplikację:

  • make test

Procedura ta jest jednak czasochłonna i ku mojemu rozczarowaniu okazało się, że nie wszystkie testy przeszły. Nie ma się jednak co załamywać - spróbujemy poradzić sobie z aplikacją pomimo tych niedogodności.

Ostatnim krokiem procesu instalacji jest "osadzenie" skompilowanej aplikacji w systemie:

  • sudo make install

W rezultacie powinniśmy uzyskać działającą aplikację OpenLDAP w systemie. W następnym wpisie postaram się przybliżyć proces jej konfiguracji oraz zaprezentować działanie.

sobota, 4 września 2010

Usługi katalogowe - OpenLDAP (1)

Tak jak wspomniałem w poprzednim wpisie chciałbym krótko przedstawić usługi katalogowe. Do czego zatem one służą? Przede wszystkim w dużych firmach jako jeden punkt zawierający dane katalogowe (informacje o pracownikach, urządzeniach wykorzystywanych w pracy, strukturze organizacyjnej, itp.). 

Wyobraźcie sobie, że firma korzysta z wielu aplikacji, które pomagają realizować jej biznes. Każda z tych aplikacji musi wiedzieć o użytkownikach, którzy mogą wywoływać jej funkcjonalności oraz uprawnienia dla tych użytkowników. Dodatkowo w kilku z tych aplikacji określono, aby użytkownicy oraz inne jednostki logiczne odwzorowywały strukturę organizacyjną firmy. Jeżeli aplikacje te dostarczali różni wykonawcy to 100% można uznać, że każda z tych funkcjonalności została zrealizowana w inny sposób i w każdej istnieje osobny moduł administracyjny pozwalający zarządzać strukturą, uprawnieniami oraz użytkownikami. Prowadzi to niechybnie do wzrostu kosztów administrowania tymi aplikacjami w takiej firmie. Dlaczego ich nie obniżyć? 

Wszystkie funkcjonalności administracyjne są do siebie bardzo podobne - sprowadzają się do zarządzania katalogami: użytkowników, struktury firmy, uprawnień, sprzętu, itp. Czemu zatem nie może istnieć jeden system, który te dane będzie przechowywał w jednym miejscu i który będzie udostępniał je wszystkim zainteresowanym? Efekt jaki w ten sposób można osiągnąć to przede wszystkim obniżenie kosztów administracyjnych, które przy zarządzaniu wieloma aplikacjami mogą być całkiem spore. 

Realizację tych celów pomagają osiągnąć systemy usług katalogowych. Jednym z takich systemów jest  OpenLDAP - darmowa implementacja Lightweight Directory Access Protocol. W kilku najbliższych wpisach postaram się przybliżyć Wam instalację, konfigurację oraz użytkowanie tego systemu.

piątek, 3 września 2010

Anonimowość w sieci - Tor dla FireFox'a

W jednym z poprzednich postów opisywałem jak uruchomić program Freenet, który w dobie coraz bardziej zwiększającej się kontroli internetu umożliwia zachowanie pełnej anonimowości. Pewnym istotnym mankamentem tego rozwiązania jest użyteczność. Niestety, ale w porównaniu z nieanonimową stroną Internetu tej anonimowej brakuj dynamiczności. Strony, które w sieci Freenet można przeglądać są całkowicie statyczne. Drugim mankamentem jest sposób wyszukiwania oraz czas transmisji strony do przeglądarki. Niestety od wyszukiwania nie ma co oczekiwać szybkości ani skuteczności na miarę Google'a. Co więcej jeżeli podpięci będziemy do "złośliwego" węzła możemy zostać zalani fałszywymi treściami nieodpowiadającymi temu co w rzeczywistości wyszukujemy. To wszystko za jedną cenę całkowitej anonimowości.

Zastanówmy się czy nie istnieje jednak łatwiejszy sposób bycia anonimowym z jednoczesnym zachowaniem możliwości korzystania z dobrodziejstw ogólnodostępnego Internetu. Okazuje się, że jest taka możliwość wystarczy skorzystać z Tor'a. Jest to aplikacja, która poprzez łączenie się z serwerami proxy uruchamianymi na innych maszynach pozwala surfować po Internecie. Informacje pomiędzy przeglądarką a stroną internetową przechodzą przez kilka (kilkanaście) węzłów sieci i są na tej drodze w pełni szyfrowane (jedyne nieszyfrowane połączenie występuje między stroną internetową o ostatnim z węzłów). Żaden z węzłów nie przechowuje informacji o tym co, kiedy i do kogo przesłał. Żaden węzeł nie jest w stanie określić do kogo na prawdę jest adresowana przesyłka, wie tylko do którego węzła ma to wrócić, ale nie wie czy jest to ostateczny klient czy tylko węzeł pośredniczący.

Oczywiście, nie jest to skuteczna, 100% ochrona prywatności. Jeżeli aplikacja wraz z przeglądarką internetową będą wykorzystywane w sposób niepoprawny (np. działać będą wtyczki Flash czy inne, które mogą bezpośrednio uderzać do serwera) łatwo można zostać zidentyfikowanym. Teoretycznie możliwe jest również za pomocą analizy statystycznej określenie czy jeden z węzłów sąsiadujących temu, na którym się przeprowadza badania nie jest odbiorcą ostatecznych konkretnych, przesyłanych treści. Ryzyko takiego działania wprawdzie jest niewielkie, ale trzeba sobie zdawać sprawę z tego, że istnieje.

Kolejnym mankamentem jest prędkość działania. Z racji tego, że w tym rozwiązaniu również uczestniczą węzły pośredniczące (we Freenet również tak jest) przesyłanie pomiędzy nimi informacji zamiast bezpośredniego uderzenia do serwera trwa dłużej.

Poznaliśmy zatem jak działa Tor oraz jakie są jego wady i zalety. Sprawdźmy teraz jak zachowuje się on w praktyce. Należy ściągnąć plik instalacyjna Tor'a i rozpakować go na komputerze po ściągnięciu. Jest to paczka, która zawiera komplet Tor'a, aplikacji pomocniczych (np.: serwera Proxy) oraz FireFox'a z odpowiednio skonfigurowaną wtyczką. Teraz wystarczy tylko odpalić: Start Tor Browser.exe.

Po uruchomieniu aplikacji powinno pokazać się okno jak na powyższym rysunku. Kiedy uda się nawiązać połączenie z siecią Tor automatycznie uruchomiona zostanie przeglądarka FireFox załączona w ściągniętym pakiecie. Warto zwrócić uwagę, że nie zawiera ona żadnych wtyczek - pozwala to zapewnić, że nasza anonimowość nie zostanie zdradzona przez działanie jakiegoś nieodpowiedniego pluginu.

Pierwszą stroną prezentowaną po załadowaniu FireFoxa jest ta na której Tor udostępnia informacje pod jakim adresem jesteśmy obecnie widziani. Jeżeli przypatrzycie się bliżej to zauważycie, że widziany przez stronę internetową adres z którego "nawiązano" połączenie to: 208.53.142.40, a miejsce to znajduje się w przybliżeniu w USA:

Po jakimś czasie zmienia się nasz węzeł z którego "wychodzimy" na świat i mamy inny adres: 92.241.190.188.

A skąd teraz jesteśmy widoczni dla witryn internetowych?

Samą operację zmiany tożsamości możemy wymusić na Tor'ze przez wybranie opcji: Użyj nowej tożsamości. Od tej pory możemy prawie całkowicie anonimowo korzystać z dobrodziejstw Internetu.

Mam nadzieję, że ten krótki cykl artykułów przybliżył Wam więcej informacji o tym jak zachować anonimowość w sieci w dobie powszechnej inwigilacji na ulicach, w pracy i w Internecie. Przynajmniej tam będziemy mogli zachować swoją prawdziwą tożsamość w tajemnicy.

czwartek, 2 września 2010

O powrocie - krótkie podsumowanie dotychczasowego blogowania i plany na przyszłość

Po dłuższej przerwie postanowiłem wznowić pisanie bloga. Zanim jednak przejdę do konkretów chciałbym podsumować to co do tej pory zrobiłem ze szczególnym naciskiem na to co rozpocząłem a jeszcze nie zakończyłem. Trochę się takich tematów zebrało.

Po pierwsze rozpocząłem temat związany z DLNA: Projekt DLNA. Jego celem był przegląd software'owych rozwiązań systemów tej  klasy. Projekt skończył się na etapie wybrania programów do porównania oraz przygotowania szablonu systemu linux'owego stanowiącego podstawę do instalowania oraz testowania oprogramowania. Ze względu na chęć wykorzystania tego rozwiązania w domu temat zamierzam aktualizować.

W międzyczasie z potrzeby powstania i utrzymania szablonu wirtualnego systemu linux'owego stanowiącego bazę do testowania innych rozwiązań pisałem o wirtualizacji . Kolejne wpisy dotyczyły instalacji i konfiguracja środowiska VirtualBox, instalacji dystrybucji Ubuntu oraz klonowania maszyn

Na fali popularności Google Wave powstały artykuły (Instalacja serwera XMPP, Konfiguracja serwera XMPP, Sprawdzamy działanie XMPP, Instalacja wtyczki Wave)   opisujące instalację własnego serwera Wave. Pokładałem w nim nadzieję wykorzystania tego rozwiązania w firmie w której pracuję. Niestety problemem okazał się brak klientów dorównujących pierwowzorowi Google'a. Być może kiedy powstanie odpowiedni program zaproponuję wdrożenie tego rozwiązania w pracy. 

Ostatni cykl artykułów dotyczył przykładu wdrożenia SOA - Integracja systemów bankowych. Nie został on ukończony jednak nie zamierzam z niego zrezygnować, ponieważ wydaje mi się on bardzo pouczający i niezwykle rozwijający. Poza tym, oprócz przyjemności intelektualnej, którą realizacja tego projektu ma mi przynieść zakładam, że w przyszłości przyniesie mi ona również wymierne korzyści finansowe, ale o tym chwilowo nie chcę wspominać.

Zanim jednak powrócę do kontynuowania wyżej wymienionych tematów (Integracji oraz projektu DLNA) chciałbym zaznajomić się z usługami katalogowymi i podzielić z Wami moimi spostrzeżeniami na ten temat. Rozpocznę nowy cykl dotyczący tego tematu. W zamierzeniu ma on wpasować się w rozwiązanie Integracji systemów bankowych, a w przyszłości wiedza zdobyta dzięki niemu zostać wykorzystana w kolejnych projektach.

Zachęcam zatem do odwiedzania bloga.