Przewodnik Administratora Jabberd(1).doc

(126 KB) Pobierz
Niniejszy dokument opisuje sposób instalacji, konfiguracji i administrowania jabberd

Niniejszy dokument opisuje sposób instalacji, konfiguracji i administrowania jabberd.

Oryginał: Jabberd Administration Guide

 

Copyright © 2000, 2001, 2002 Jabber Software Foundation

 

Tłumaczenie: Marcin Gil (JID: dentharg (at) chrome pl) – wersja 0.9-alpha

 

Uwaga: To tłumaczenie jest wersją niesprawdzoną. I jako taka, nie może być uznawana za oficjalną, a jedynie za szkic. Wszelkie uwagi dot. tłumaczenia proszę kierować na email.

 

Niniejszy materiał może być rozpowszechniany jedynie na warunkach opisanych przez Open Publication License w wersji 1.0 lub nowszej (najnowsza wersja osiągalna jest pod adresem http://www.opencontent.org/openpub/).

 

Spis treści dokumentu:

1. Wprowadzenie

2. Początki

3. Podstawowe funkcje

4. Planowanie wdrożenia

5. Wymagania systemowe

5.1. System operacyjny

5.2. Sprzęt

5.3. Oprogramowanie

5.4. Przepustowość

5.5. DNS

5.6. Porty i firewalle

6. Instalacja serwera

7. Podstawowa konfiguracja

7.1. Ustawianie nazwy hosta

7.2. System plików

8. Funkcje administracyjne

8.1. Nadawanie uprawnień administratorskich

8.2. Przeglądanie aktywnych użytkowników

8.3. Rozgłaszanie komunikatów

9. Konfiguracja Intranetu

9.1. Wyłączanie komunikacji międzyserwerowej

9.2. Uniemożliwianie rejestracji

9.3. Aktualizacja serwera

9.4. Konfiguracja NAT

10. Bezpieczeństwo

10.1. Zabezpieczanie połączeń SSL-em

10.2. Bezpieczne uwierzytelnianie

11. Dalsza pomoc

12. Zgłaszanie błędów i dostarczanie łatek

13. Od tłumacza

 

Slowo Pisane / Dokumentacja Administratorzy / JAG / Wprowadzenie

1. Wprowadzenie

Niniejszy dokument opisuje sposób instalacji, konfiguracji i administrowania jabberd.

 

Serwer jabberd to pierwszy i otwarty serwer będący implementacją protokołu Jabbera. Jest to także najpopularniejsze oprogramowanie pozwalające na wdrożenie Jabbera zarówno na potrzeby firmy, jak też publicznej usługi natychmiastowej komunikacji (Instant Messaging, IM1). Oprócz tej podstawowej implementacji istnieje wiele innych, włączając w to projekty wolnego oprogramowania (zobacz http://www.jabberstudio.org), jak i oferty komercyjne: i3connect, Jabber Inc., Jabcast, Tipic. Jabber Software Foundation (JSF), organizacja zarządzająca protokołem Jabber, nie faworyzuje jakiejś szczególnej implementacji. Jednocześnie JSF zauważa, większość instalacji zaczyna właśnie od serwera jabberd. Dlatego też podjęta została próba rozpowszechnienia technologii Jabbera poprzez udokumentowanie sposobów instalacji, konfiguracji i administrowania serwerem jabberd.

 

Zachęca się administratorów do zapisania się na listę dyskusyjną JADMIN, gdzie można uzyskać pomoc. Dodatkowe informacje o Jabberze znajdują się na stronach Jabber Software Foundation.

Slowo Pisane / Dokumentacja Administratorzy / JAG / Wprowadzenie

 

Slowo Pisane / Dokumentacja Administratorzy / JAG / Poczatki

2. Początki

Projekt Jabber zapoczątkował Jeremie Miller w 1998 roku jako wolną i otwartą alternatywę dla komercyjnych usług IM oferowanych przez AIM, ICQ, MSN i Yahoo. Pierwsza ogólnodostępna informacja o projektcie ukazała się na łamach Slashdot'a w styczniu 1999. Rdzeniem projektu Jabbera zawsze pozostawał serwer jabberd: modułowy, napisany w C i używający biblioteki wątków GNU pth (wątki, to fraza występująca normalnie przy programowaniu, jest ok). Jabberd 1.0 był rozwijany przez ponad rok, nim ujrzał światło dzienne w maju 2000. Wersja 1.2 będąca publiczną betą ukazała się w październiku 2000, a zaraz za nią wersje: 1.4 – styczeń 2001, 1.4.1 – kwiecień 2001, 1.4.2 – luty 2002. Aktualnie zespół odpowiedzialny za rozwój jabberd pracuje aktywnie nad nową, całkowicie przebudowaną, serią 1.5. Zaowocuje to wydaniem jabberd 2.0 w roku 2003. Serwer jabberd jest w pełni zgodny z protokołem Jabbera, którego rozwój nadzoruje Jabber Software Foundation.

Slowo Pisane / Dokumentacja Administratorzy / JAG / Poczatki

 

Slowo Pisane / Dokumentacja Administratorzy / JAG / Podstawowe Funkcje

3. Podstawowe funkcje

Zasadniczo serwer Jabbera wykonuje następujące czynności:

 

przyjmuje połączenia przez gniazda TCP od kompatybilnych klientów i zainstalowanych komponentów serwera (server-side components)

zarządza strumieniami XML w wysyłanymi od i do tychże

autoryzowanym klientom i komponentom dostarcza podstawowe typy danych Jabbera (<message/>, <presence/> i <iq/>)

zarządza informacjami sesji połączonych klientów (przeważnie są to użytkownicy systemu IM)

w razie potrzeby, otwiera nowe połączenie i zatwierdza połączenia od innych serwerów Jabbera, a następnie trasuje do nich dane

przechowuje informacje na rzecz komponentów i, w szczególności, użytkowników IM – włączając w to listę kontaktów każdego użytkownika oraz niektóre ustawienia klienta

Pozostałe funkcje – jak konferencje (multi-user chat), katalogi użytkowników oraz współpraca z innymi systemami IM (AIM, ICQ, MSN, Yahoo czy rodzime Gadu-Gadu, Tlen) – nie należą do rdzenia usług natychmiastowej komunikacji i obecności (Instant Messaging and Presence), a przez to nie są opisywane w niniejszym Przewodniku. Aby uzyskać informacje jak dodać takie funkcje do serwera jabberd, należy sięgnąć do Jabber Component HOWTO.

Slowo Pisane / Dokumentacja Administratorzy / JAG / Podstawowe Funkcje

 

Slowo Pisane / Dokumentacja Administratorzy / JAG / Planowanie Wdrozenia

4. Planowanie wdrożenia

Niezwykle ważne jest dokonanie oceny skali planowanego wdrożenia. Szczególnie jeśli tyczy się to tak istotnego elementu infrastruktury jakim jest serwer Jabbera. Serwery Jabbera mają bardzo szerokie spektrum zastosowań, m.in.:

 

niewielkie zespoły programistów

małe i średnie firmowe intranety

licea i uniwersytety

wspólnoty bazujące na sieci Web

dostawcy usług Internetowych

intranety dużych firm

Planowane przeznaczenie Jabbera, znacząco wpłynie na decyzje podejmowane odnośnie sprzętu, systemu operacyjnego, przepustowości i konfiguracji sieci, zabezpieczeń, baz danych, itd. Najważniejszy wybór dotyczy systemu w jakim pracować ma serwer Jabbera. Oprogramowanie jabberd zostało stworzone w i na potrzeby Linuksa, a także innych podobnych systemów Uniksowych (włączając AIX, Solaris, HP-UX, BSD i MacOS X). Chociaż jabberd został przeniesiony na system Windows, to jednak wersja ta jest niedoskonała i nie zaleca się jej stosowania na regularnym serwerze. (Niniejszy dokument nie zajmuje się wersją windowsową jabberd; patrz Jabberd Windows HOWTO.)

 

Inna ważna decyzja dotyczy planowanego zakresu usług jaki chce się oferować. Czy potrzebna jest tylko prosta komunikacja jeden-do-jeden z określeniem obecności, czy też przydatne będą konferencje? Czy uruchomiony zostanie katalog użytkowników serwera? Czy możliwe będzie komunikowanie się użytkowników serwera Jabber z użytkownikami innych systemów IM jak AIM, ICQ czy GaduGadu? Usługi te nie są częścią standardowej instalacji Jabbera i muszą zostać dostarczone jako dodatkowe komponenty. Chociaż jest to korzystne dla użytkowników (user experience) to komplikuje wdrożenie – a przez to czyni administrowanie trudniejszym. (Szczegółowe informacje – patrz Jabber Component HOWTO.)

 

I w końcu, należy poświęcić chwilę uwagi możliwościom integracji Jabbera z istniejącą infrastrukturą sieciową i źródłami informacji. Dla przykładu, można zapewnić zgodność identyfikatora Jabber każdego użytkownika z jego adresem email lub identyfikatorem sieciowym. Albo zastosować istniejącą bazę użytkowników do uwierzytelniania (np. bazy danych LDAP firmy) zamiast standardowego sposobu przechowywania danych uwierzytelniających. I choć rozszerzy to możliwości systemu IM, może jednak spowodować dodatkowe komplikacje (Patrz nadchodzące Jabberd Database Integration HOWTO).

Slowo Pisane / Dokumentacja Administratorzy / JAG / Planowanie Wdrozenia

 

Slowo Pisane / Dokumentacja Administratorzy / JAG / Wymagania Systemowe

5. Wymagania systemowe

Ta część niniejszego przewodnika opisuje wymagania systemowe, konieczne do uruchomienia serwera jabberd.

 

5.1. System operacyjny

Chociaż serwer jabberd rozwijany i wdrażany jest głównie na systemie GNU/Linux, został jednak przetestowany na wielu różnych Uniksach. Wersja 1.4.2 jabberd uruchomi się na następujących systemach:

 

AIX

FreeBSD

HP-UX

IRIX

Linux

MacOS X

NetBSD

OpenBSD

Solaris 2.6, 7, 8

Systemy nie-Linuksowe wymienione powyżej nie znajdują się w tak powszechnym użyciu jak Linux, istnieje więc możliwość (aczkolwiek nikła) pojawienia się problemów z instalacją jabberd. Jeśli istnieją specyficzne wymagania i polecenia dla danego systemu – zostaną one zaznaczone w opisie. W ogólności, dla systemów uniksowych innych niż GNU, wymagane jest użycie programu GNU make zamiast programu make danej platformy. Zastosowanie GNU make powinno rozwiązać większość problemów związanych z uruchomieniem jabberd na tej platformie.

 

UWAGA: ten dokument nie zajmuje się problemami związanymi z wersją windowsową jabberd 1.4.2. Informacje na ten temat znajdują się w Jabberd Windows Guide.

 

5.2. Sprzęt

Wymagania sprzętowe zależą od spodziewanej liczby użytkowników, którą serwer ma obsługiwać. Według doświadczenia autora, większość instalacji jabberd to programy pilotażowe, serwery intranetowe lub platformy rozwojowe – obsługujące od 100 do 1000 zarejestrowanych użytkowników. Prawdopodobieństwo przebywania on-line 50% zarejestrowanych użytkowników jest nikłe (na serwerze jabber.org jednocześnie przebywa średnio 2% użytkowników), można zatem założyć, że w danej chwili serwer będzie musiał obsługiwać maksymalnie 500 użytkowników. Dla wdrożenia tego typu, minimalne wymagania sprzętowe to stacja robocza klasy Pentium z 512 MB pamięci RAM.

 

Jeśli jednak spodziewane jest znacznie większe obciążenie, należy poczynić pewne dopasowania. I choć serwer jabberd został przetestowany na obciążenia aż do 10 000 aktywnych użytkowników – to jest to tylko dowód działania koncepcji, a nie produkcyjnej stabilności ważnej dla dużych dostawców usług Internetowych. Na przykład: zależnie od zastosowanego systemu operacyjnego konieczne może być zwiększenie limitu jednoczesnych połączeń TCP lub liczby otwartych plików, które system może obsłużyć (Linuks ma ten limit ustawiony standardowo na 1024; modyfikacje dokonywane są za pomocą ustawień proc). Omówienie dużych wdrożeń wykracza poza ramy tego dokumentu, gdyż znajdują się one poza podstawowym kręgiem zastosowań Jabbera. Mam jednak nadzieję dodać nowe informacje o skalowaniu serwerów Jabbera w przyszłych wersjach HOWTO.

 

5.3. Oprogramowanie

Serwer jabberd w wersji 1.4.2 wymaga następującego oprogramowania:

 

biblioteka wątków GNU pth (wersja 1.4.0). Należy zauważyć, że GNU pth 1.4.1 nie jest kompatybilna z jabberd 1.4.2 i jeśli jest zainstalowana w systemie, to musi być zastąpiona wersją 1.4.0! Jeśli biblioteki GNU pth w ogóle nie ma w systemie, proces instalacyjny jabberd automatycznie ją doda.

GNU make. Program GNU make należy do standardowego oprogramowania wszystkich systemów GNU/Linux – jednak na systemach takich jak FreeBSD czy Solaris musi zostać zainstalowany osobno. W przeciwieństwie do GNU pth, należy zainstalować go samodzielnie (jabberd tego nie zrobi).

OpenSSL. Instalacja tego oprogramowania jest opcjonalna. Umożliwia ono klientom podłączanie się do serwera przy użyciu SSL; należy zainstalować przed instalacją jabberd 1.4.2

5.4. Przepustowość

Przy normalnym obciążeniu, serwer Jabbera wymagał będzie około 15 bps na każdego połączonego użytkownika. Oznacza to, że serwer z 1000 połączonych użytkowników zajmie ok. 15 kbs pasma; 10 000 zajmie 150 kbs pasma, itd. Zauważyć należy, że mowa tu o klientach pracujących jednocześnie (on-line), a nie o liczbie zarejestrowanych użytkowników (liczba równolegle pracujących użytkowników zależy od instalacji, lecz średnio jest to mniej niż 5% zarejestrowanych w przypadku ISP oraz mniej niż 50% zarejestrowanych w przypadku korporacji). Konieczne jest zatem wykonanie odpowiednich planów.

 

5.5. DNS

Jak opisano niżej, prawdopodobne będzie, że serwer jabberd uruchomiony zostanie jako usługa o w pełni kwalifikowanej nazwie (FQDN2). Nie jest to konieczne w każdym przypadku, jednak wymagane jeśli serwer Jabbera ma komunikować się z innymi maszynami, bądź też użytkownicy z zewnątrz mają mieć dostęp do usług wdrażanego serwera (np. konferencje czy dostęp do katalogu użytkowników JUD: Jabber User Directory). Niezbędna jest rozmowa z administratorem, by dodał nazwę hosta i wszystkich potrzebnych poddomen do tablicy DNS.

 

5.6. Porty i firewalle

IANA zatwierdziła dwa porty na użytek usług Jabbera: jeden dla komunikacji klient-serwer (port 5222) i jeden dla komunikacji serwer-serwer (port 5269). Aby dać użytkownikom Jabbera możliwość zalogowania się do serwera, należy zapewnić im dostęp do portu TCP o numerze 5222 (który musi być otwarty). Z kolei otwarcie portu TCP numer 5269 umożliwi wysyłanie komunikatów do użytkowników innych serwerów Jabber. Ponadto zainstalowanie transportów do obcych systemów IM wymagać będzie otwarcia portów dla nich specyficznych. Informacje takie winny znajdować się w plikach README bądź dokumentacji transportów, które mają zostać uruchomione (np. port 1863 dla usługi MSN).

 

Niektóre serwery instalowane są w firmowym intranecie, bądź za firewallem. Oczywiście blokada odpowiednich portów na firewallu zablokuje komunikację z serwerami spoza organizacji – co może być cechą pożądaną. W pewnych sytuacjach (jeśli firma zatrudnia ludzi pracujących zdalnie) można otworzyć standardowy port 5222 dla klientów Jabbera (lub 5223 dla połączeń SSL) aby i oni mogli komunikować się poprzez firewall. Otwarcie portu 5269 pozwoli pracownikom na komunikację z użytkownikami spoza firmy. Złożona konfiguracja może przewidywać użycie dwóch serwerów: jednego w intranecie firmy dla komunikacji wewnętrznej (za firewallem), drugiego w strefie DMZ (ograniczonego zaufania) dla użytkowników z zewnątrz (przed firewallem) oraz bezpiecznego połączenia między nimi na porcie 5269. Firewall miałby otwarty ten port tylko dla tych dwóch maszyn.

 

Jeśli pomiędzy serwerem Jabber i jakimkolwiek jego użytkownikiem znajduje się firewall, należy upewnić się, że limity czasowe (timeouts) są ustawione na odpowiednim poziomie. Jest to wymagane, gdyż klienty Jabbera łączą się z serwerem poprzez trwałe (persistent) gniazdo TCP na porcie 5222. A ponieważ gniazdo jest otwarte tak długo, jak długo trwa sesja użytkownika – firewall przystosowany do ruchu HTTP może przedwcześnie go rozłączyć.

Slowo Pisane / Dokumentacja Administratorzy / JAG / Wymagania Systemowe

 

Slowo Pisane / Dokumentacja Administratorzy / JAG / Instalacja Serwera

6. Instalacja serwera

 

Przede wszystkim należy użyskać pakiet oprogramowania jabberd, czy to w postaci paczki binarnej, czy też kodów źródłowych. Wersja 1.4.2 serwera jabberd może zostać ściągnięta z http://jabberd.jabberstudio.org/downloads/. Katalog ten zawiera także specjalizowane kompilacje dla konkretnych platform (pakiety Solarisa, RPMy, .deb-y, itp.). Pakiety te zawierają tylko rdzeń jabberd – wszelkie dodatkowe komponenty umieszczone są gdzie indziej (patrz Jabber Component Admin Guide).

 

O ile to możliwe, zaleca się zbudowanie serwera jabberd ze źródeł. Niektórzy administratorzy zgłaszali problemy związane z instalacją specjalizowanych kompilacji. Do samodzielnej kompilacji potrzebny jest tylko jeden plik: http://jabberd.jabberstudio.org/downloads/jabber-1.4.2.tar.gz. Aby go zainstalować należy:

 

 

Zapisać plik do /tmp/ (lub innego wybranego katalogu)

Otworzyć okno konsoli i stworzyć katalog, do którego jabberd ma zostać zainstalowany. Będzie on określany jako /ścieżka/do/jabbera/ (zwykle jest to /usr/local/jabber/). Uwaga: aby utworzyć ten katalog konieczne może być zalogowanie się jako root lub użycie sudo.

Wpisać polecenia:

mv /tmp/jabber-1.4.2.tar.gz /ścieżka/do/jabbera/

cd /ścieżka/do/jabbera/

gzip -d jabber-1.4.2.tar.gz

tar -xvf jabber-1.4.2.tar

(polecenie to utworzy katalog jabber-1.4.2/ zawierający przeróżne pliki i podkatalogi)

 

cd jabber-1.4.2/

./configure

Notka bezpieczeństwa

Aby umożliwić klientom możliwość łączenia się z serwerem za pomocą SSL, serwer musi zostać skompilowany za pomocą polecenia: ./configure --enable-ssl (serwera nie da się uruchomić w trybie SSL jeśli nie był kompilowany ze źródeł).

make

Notka systemowa

Jeśli masz system Solaris lub inny niezgodny z GNU, należy mieć na uwadze, by używać programu GNU make, a nie wersji dostarczonej z systemem. Przeważnie zamiast wpisać make trzeba wpisać gmake.

W tym momencie jabberd 1.4.2 powinien być już całkowicie zainstalowany na maszynie. Jeśli pojawią się jakieś trudności w instalacji, proszę wysłać wiadomość na listę JADMIN z opisem problemu. Proszę się też upewnić, że dołączona została pełna informacja o systemie i wersjach używanego oprogramowania (jak np. make).

 

Punkt kontrolny 1

Na tym etapie można już sprawdzić czy Jabber jest poprawnie zainstalowany. Nie będzie to pełny test funkcjonalności serwera, a jedynie potwierdzenie pomyślnego zakończenia procesu instalacji. By test wykonać należy:

 

Otworzyć konsolę i wpisać cd /ścieżka/do/jabbera/ (gdziekolwiek jabberd został zainstalowany)

Wpisać ls -l jabberd/jabberd celem sprawdzenia uprawnień nadanych demonowi Jabbera. Wydruk na konsoli powinien być podobny do tego:

-rwxr-xr-x 1 user group 675892 Feb 25 2002 jabberd/jabberd

Wystartować demona Jabber poleceniem ./jabberd/jabberd. Uruchomi ono serwer z domyślną nazwą hosta ustawioną na localhost. Na konsoli powinien pokazać się komunikat:

20020923T02:50:26: [notice] (-internal): initializing server

 

Uwaga

W czasie uruchamiania serwera może pojawić się komunikat „Configuration parsing using jabber.xml failed” (Przetwarzanie opcji z pliku jabber.xml zawiodło). Istnieją dwie przyczyny mogące spowodować ten błąd. Pierwsza: plik nie istnieje; rozwiązaniem jest bezpośrednie wskazanie pliku konfiguracyjnego demonowi poprzez ./jabberd/jabberd -c /ścieżka/do/jabber.xml. Drugi powód to błąd XML-a zawarty w tymże pliku. Rozwiązaniem jest jego naprawa (np. poprzez wklejenie całej jego zawartości do XML Syntax Checker na xml.com).

 

 

Otworzyć nowe okno konsoli na tej samej maszynie i wpisać telnet localhost 5222 by sprawdzić połączenie z serwerem (tak, można użyć starego dobrego telnetu!). Wydruk powinien być taki:

 

Trying 127.0.0.1...

Connected to nazwa_maszyny.

Escape character is '^]'.

Otworzyć strumień XML w kierunku do serwera poprzez wstawienie poniższego kodu:

 

<stream:stream

to='localhost'

xmlns='jabber:client'

xmlns:stream='http://etherx.jabber.org/streams'>

 

Odpowiedź z serwera powinna być natychmiastowa:

 

<?xml version='1.0'?>

<stream:stream

xmlns:stream='http://etherx.jabber.org/streams' id='losowe_id'

xmlns='jabber:client' from='localhost'>

Gratulacje! Serwer Jabbera pracuje poprawnie.

 

Zamknąć strumień poprzez wstawienie kodu </stream:stream> do okna telnetu.

Zatrzymać serwer zabijając proces lub wpisując ^C w oknie konsoli, której użyto do jego wystartowania.

Slowo Pisane / Dokumentacja Administratorzy / JAG / Instalacja Serwera

 

Slowo Pisane / Dokumentacja Administratorzy / JAG / Podstawowa Konfiguracja

7. Podstawowa konfiguracja

Na tym etapie serwer jabberd jest już zainstalowany, a jego poprawne działanie zostało potwierdzone. Aby sprawdzić działanie funkcji natychmiastowej komunikacji (jego funkcji IM) konieczne jest:

 

Skonfigurowanie nazwy hosta dla serwera

Ustawienie katalogu buforującego jako składnicy XML-a.

Kroki te zostaną szczegółowo omówione poniżej. Ich wykonanie pozwoli na realizację kolejnego punktu kontrolnego.

 

7.1. Ustawianie nazwy hosta

Konfiguracji jabberd dokonuje się poprzez edycję pliku jabber.xml znajdującego się w katalogu /ścieżka/do/jabbera/. Plik ten zawiera znaczną ilość komentarzy, które powinny pomóc w zrozumieniu znaczenia każdej opcji. Teraz wystarczy zmienić tylko nazwę hosta. Plik jabber.xml należy otworzyć w swoim ulubionym edytorze (vi, emacs itd.) i zmienić jedną linię:

 

<host><jabberd:cmdline flag="h">localhost</jabberd:cmdline></host>

Konieczne jest sprawdzenie prawidłowej nazwy hosta. Istnieje kilka możliwości:

 

Zostawić nazwę jako localhost. Rozwiązanie to jest dobre, jeśli serwer służy celom rozwojowym. Jednakże nie będzie możliwe połączenie się z tym serwerem przy pomocy klienta (lub komponentu), który pracuje na innej maszynie.

Zamienić na adres IP maszyny. Rozwiązanie to sprawdzi się gdy serwer używany jest w celach testowych dla pojedynczej sieci lub podsieci. Nie jest ono zalecane do stałej pracy, szczególnie jeśli planowana jest komunikacja z innymi serwerami Jabbera lub uruchamianie dodatkowych komponentów.

Zamienić na kwalifikowaną nazwę domenową (FQDN2) rozpoznawaną w tablicach DNS organizacji lub otwartego Internetu. Jest to rozwiązanie rekomendowane; jabberd będzie znacznie rozsądniejszy w pracy jeśli będzie pracował jako FQDN2 – w szczególności jeśli będzie rozmawiał z innymi serwerami Jabbera lub uruchamiał komponenty. (Komunikacja serwer-serwer w Jabberze używa metody zwanej „dialback” by obronić serwery przed spoofingiem3; a ponieważ metoda dialback zależy od struktury DNS-ów, więc serwer nie będący FQDN2 nie mógłby porozumiewać się z innymi serwerami Jabbera). Jeśli to tylko możliwe, jabberd powinien być uruchamiany jako nazwa domenowa, np. jabber.mojafirma.com.pl.

 

By ustawić nazwę hosta, należy po prostu zamienić localhost na jabber.mojafirma.com.pl lub inną nazwę – a potem zapisać zmiany w pliku jabber.xml.

 

7.2. System plików

Jak już wspomniano, do rdzenia funkcji serwera Jabber należy m.in. składowanie danych użytkownika. Są to dane uwierzytelniające użytkownika (nazwa i hasło) oraz lista kontaktów (w Jabberze zwana roster); czasem są to także vCard użytkownika i ustawienia jego klienta. Standardowo dane te są zapisywane w systemie plików w podkatalogu /ścieżka/do/jabbera/spool/, który musi pasować do wcześniej ustawionej nazwy hosta. Zatem jeśli w jabber.xml ustawiono host jako jabber.mojafirma.com.pl, katalog ten powinien nazywać się /ścieżka/do/jabbera/spool/jabber.mojafirma.com.pl/. Ponadto proces lub użytkownik uruchamiający demon Jabbera musi mieć prawo zapisu do niego. Gdy warunek ten zostanie spełniony, demon może tu zapisać plik (o nazwie „username.xml”) – po jednym na każdego zarejestrowanego użytkownika.

 

Nadszedł czas na kolejny test.

 

Punkt kontrolny 2

Nazwa hosta (najlepiej jako FQDN2) oraz składnica danych XML zostały już ustalone. Można teraz rozszerzyć zakres testów przeprowadzonych w punkcie kontrolnym 1. Będą to (1) połączenie z inną maszyną; (2) zarejestrowanie konta użytkownika; (3) wysłanie komunikatu do innego użytkownika.

 

Do testów ponownie zostanie użyty telnet, co umożliwi zrozumienie XML-a wysyłanego do serwera.

 

 

W katalogu /ścieżka/do/jabbera/ należy wpisać ./jabberd/jabberd -D by wystartować demona Jabber w trybie śledzenia (debug mode). Na konsolę zostanie wypisanych wiele linii z dodatkowymi informacjami.

Uwaga

Jeśli nazwa hosta została skonfigurowana jako nazwa domenowa, może pojawić się błąd «jabberd is unable to listen on ports 5222 and 5269" (nasłuch na portach 5222 i 5269 niemożliwy). Aby go wyeliminować konieczne jest powiązanie serwera z konkretnym adresem IP. Po pierwsze, w sekcji <pthcsock/> pliku jabber.xml trzeba zmienić <ip port="5222"/> na <ip port="5222>IP_maszyny</ip>. Po drugie, w sekcji <dialback/> zmienić <ip port="5269"/> na <ip port="5269">IP_maszyny</ip>.

W nowym oknie konsoli na tej samej maszynie wpisać telnet nazwa_hosta 5222, gdzie «nazwa_hosta» jest nazwą ustawioną w konfiguracji. Serwer powinien odpowiedzieć:

 

Trying 127.0.0.1...

Connected to nazwa_hosta.

Escape character is '^]'.

Otworzyć strumień XML do serwera poprzez wklejenie poniższego kodu w okno telnetu (zamiast nazwa_hosta wpisać odpowiednią nazwę):

 

<stream:stream

to='nazwa_hosta'

xmlns='jabber:client'

xmlns:stream='http://etherx.jabber.org/streams'>

 

Odpowiedź powinna być natychmiastowa:

 

<?xml version='1.0'?>

<stream:stream

xmlns:stream='http://etherx.jabber.org/streams' id='losowe_id'

xmlns='jabber:client' from='nazwa_hosta'>

Wysłać do serwera poniższy kod, by dowiedzieć się jakie informacje są potrzebne do rejestrowacji konta:

 

<iq id='reg1' type='get'>

<query xmlns='jabber:iq:register'/>

</iq>

 

Odpowiedź mówi, iż potrzebne dane to: imię, adres email, użytkownik i hasło:

 

<iq id='reg1' type='result'>

 

<query xmlns='jabber:iq:register'>

<instructions>

Choose a username and password

to register with this server.

</instructions>

...

Zgłoś jeśli naruszono regulamin