2010 02 Openfire – I własny kanał komunikacji

background image

20

POCZĄTKI

HAKIN9 2/2010

R

ozwiązaniem naszego problemu jest
stworzenie własnej linii komunikacji
niezależnej od serwerów zewnętrznych.

Dla zapewnienia względnego bezpieczeństwa
trzeba zwrócić uwagę na trzy elementy. Po
pierwsze końcówki sieci komunikacyjnej,
czyli komputery użytkowników. Jeżeli
zabezpieczenia komputera same w sobie
zostały skompromitowane, nic co do niego
trafia nie jest bezpieczne. Element drugi to
połączenie z serwerem – przechodzące
przez dżunglę Internetu dane są narażone na
podsłuchanie, a nawet podmianę. Ostatnim
elementem łańcucha jest serwer, z którym
łączą się klienci. W rzeczywistości pozostaje
nam wiecznie najsłabszy element każdego
łańcucha, człowiek. Jednak tego problemu nikt
jeszcze nie rozwiązał.

Serwer Openfire, jak i klienta Spark, można

pobrać za darmo ze strony internetowej
projektu. Jako klientów można wykorzystać
komunikatory Psi czy Exodus. Program
praktycznie od ręki daje nam kanał komunikacji
niezależny od serwerów zewnętrznych. Osobną
kwestią jest zabezpieczenie połączenia z
serwerem i wykorzystanie dodatkowych
możliwości serwera. Kwestią komputera i
człowieka nie będziemy się tu zajmować.

Instalacja

Instalacja zarówno serwera, jak i klienta
jest banalnie prosta. Zależnie od systemu

SYLWESTER

ZDANOWSKI

Z ARTYKUŁU

DOWIESZ SIĘ

co oferuje Openfire,

jak zainstalować i uruchomić

serwer,

jak w pełni wykorzystać

możliwości serwera,

jak zabezpieczyć połączenie.

CO POWINIENEŚ

WIEDZIEĆ

jak instalować

oprogramowanie,

dla kogo tworzysz połączenie.

wystarczy pobrać odpowiedni instalator lub
program w formie źródłowej. Dla Windowsa
mamy standardową instalację dwóch
kliknięć na kolorową ikonkę. W przypadku
Linuksa podstawą są pliki źródłowe, można
jednak znaleźć pakiety przygotowane dla
konkretnych dystrybucji. Dla dystrybucji Debian
wystarcza wówczas polecenie

dpkg -i

<nazwa _ pakietu>

. Oprogramowanie wraz z

konfiguracją można usunąć poleceniem

dpkg

--purge openfire

. Ponadto dobrą pomoc

można znaleźć w dokumentacji projektu,
chociaż brakuje w niej paru szczegółów.
Początkujący użytkownik systemu Linux,
chcący w lokalnej sieci uruchomić Openfire,
niestety poczuje się zagubiony.

Kiedy zakończy pracę instalator programu,

należy przejść przez konfigurację, w jej ramach
utworzymy bazę danych użytkowników.
Dopiero od tego momentu możliwe
będzie połączenie klientów. Do korzystania
z konfiguracji poprzez przeglądarkę
niepotrzebny jest serwer WWW. Strona
dostępna jest pod adresem IP komputera na
porcie 9090 np. 192.168.1.1:9090.

Konfigurację rozpoczynamy od wybrania

języka. Dalej możemy zmienić domyślne porty,
na których dostępny jest panel administratora.
Z reguły niepotrzebne jest wprowadzanie
jakichkolwiek zmian. Chociaż zmiana portu
jest sposobem na utrudnienie analizy serwera
przez napastnika. Podejście to tyczy się równie

Stopień trudności

Openfire –

własny kanał

komunikacji

Komunikacja za pośrednictwem komunikatorów tekstowych

jest współcześnie dość popularna. Z tego rozwiązania

korzystają pracownicy wielu firm do przesyłania służbowych

informacji. Jak zabezpieczyć taką komunikację przed

podglądem?

background image

21

OPENFIRE – WŁASNY KANAŁ KOMUNIKACJI

HAKIN9

2/2010

dobrze SSH czy ftp, ograniczeniem
jest pytanie: Jak bardzo zależy nam
na prostocie, ciszy i spokoju?
Zmiana
domyślnych portów z reguły kończy się
ciągłymi telefonami od niezadowolonych
użytkowników.

W kolejnym kroku możemy

wybrać bazę danych, wbudowaną lub
zewnętrzną. W przypadku wbudowanej
bazy danych mechanizm jest
znacznie prostszy. Niepotrzebne są
żadne dodatkowe czynności. Jednak
tracimy możliwości zewnętrznej
bazy danych jak wewnętrzna
kontrola uprawnień czy mechanizmy
tworzenia kopii zapasowych. Bez
zewnętrznej bazy danych nie możliwe
jest również tworzenie klastrów,
co przy tendencji wzrostowej dla
komunikacji zamyka drogę prostego
zwiększenia przepływności. Dlatego
perspektywicznym rozwiązaniem jest
konfiguracja bazy zewnętrznej.

Konieczne jest przygotowanie bazy

danych oraz użytkownika, z którego
korzystać będzie serwer. Można wybrać
jedną z wielu obsługiwanych baz w tym
MySQL, Oracle czy Postgres. Zadania
wewnątrz MySQL można wykonać
zgodnie z Listingiem 1. Po zalogowaniu
się do MySQL polecenia kolejno tworzą
bazę danych, użytkownika i nadają
mu uprawnienia. Ostatnie polecenie
powoduje wprowadzenie nowych
uprawnień w życie. Należy zwrócić uwagę,
iż na Listingu 1 tworzony użytkownik jest
ograniczony do jednego adresu IP. Należy
to uwzględnić, gdy serwery Openfire
znajdują się na innych maszynach niż
baza danych. Wszystko pięknie, ale
nasza baza danych jest absolutnie pusta.
Zawartość bazy należy zaimportować
z plików zainstalowanych razem z
programem w przypadku Linuksa z
bazą MySQL wystarczy polecenie cat
/usr/share/openfire/resources/database/
openfire_mysql.sql | mysql -p openfire.
W
katalogu /user/share/openfire znajdują
się wszystkie pliki serwera.

Konfiguracja pozwala również na

zintegrowanie naszej komunikacji
z serwerami Active Directory lub
OpenLDAP. Rozwiązania takie
implementowane niezależnie od
omawianego Openfire są użyteczne

dla często przemieszczających się
pracowników.

W ostatnim oknie możemy podać

adres e-mail administratora oraz hasło
do panelu administratora. Niezależnie
od tego jaki adres mail zostanie podany
do panelu administratora można
się zalogować jako admin. Jednak
przed pierwszą próbą logowania
konieczny jest restart serwera, inaczej
nie zostaniemy wpuszczeni. Jest to

pierwsza z wielu sytuacji, w której
trzeba wykazać cierpliwość. Pomimo, iż
skrypt restartujący serwer pokaże jego
uruchomienie, należy odczekać kilka
sekund na możliwość logowania.

Na pierwszej widocznej stronie

znajduje się kilka istotnych informacji. Po
pierwsze Openfire wykorzystuje wirtualną
maszynę Javy. Po drugie potrafi zużywać
znaczne ilości pamięci, zależnie od
obciążenia i ilości załadowanych

Listing 1.

Tworzenie bazy danych MySQL

CREATE

DATABASE

openfire

;

CREATE

USER

'open'

@

192

.

168

.

1

.

2

IDENTIFIED

BY

'haseleczko'

;

GRANT

ALL

ON

openfire

.

*

TO

'open'

@

192

.

168

.

1

.

2

;

PRIVILEGES

FLUSH;

Wszystko gra

Restartując po raz pierwszy serwer Openfire jesteśmy zmuszeni nieco poczekać na wejście do
panelu administratora. Również przy tworzeniu użytkowników i grup nie wszystko będzie działać
od razu. Jeżeli pojawią się problemy w postaci użytkownika, którego program zalogował się, a
na serwerze jest niewidoczny lub grup, które nie zmieniają statusu, nie ma się czym szczególnie
niepokoić. Najlepszym rozwiązaniem jest wyłączenie wszystkich klientów i restart serwera.
Po takiej czynności wszelakie problemy znikają. Tyczy się to również instalacji wtyczek. Jeżeli
nowy dodatek został zainstalowany, zrestartowany z panelu wtyczek i wciąż jest niewidoczny,
restartujemy serwer.

NAGIOS – system monitoringu usług sieciowych, jak i stanu pracujących maszyn. Konfiguracja
uwzględnia hierarchię rodzic-dziecko pomiędzy połączonymi elementami sieci. Pozwala na
informowanie o awariach poprzez mail czy bramki SMS.

Rysunek 1.

Zainstalowane wtyczki

background image

22

HAKIN9 2/2010

23

HAKIN9

2/2010

wtyczek. Uruchamianie serwera na
starszej maszynie dysponującej nie
więcej niż 512 MB ma sens jedynie jako
eksperyment. Po trzecie widoczne są
informacje o wykorzystywanych portach
i ich przeznaczeniu.

Wtyczki

Jedną z pierwszych interesujących opcji
Openfire jest wykorzystanie klastrów.
Przy dużej ilości aktywnych użytkowników
można łatwo poprawić wydajność sieci
łącząc wiele maszyn. W menu Clustering
zobaczymy jednak żądanie wtyczki. Po
przejściu do wtyczek nie będzie jednak
żadnej dostępnej. Na tym samym
ekranie znajduje się opcja odświeżania
dostępnych wtyczek oraz osobna opcja
zawierająca znaną w danej chwilę
dostępnych wtyczek.

Do instalacji wystarczy wcisnąć jeden

przycisk, lista zainstalowanych wtyczek
widoczna jest na Rysunku 1.

Wtyczki dają również wiele innych

przydatnych możliwości. Wtyczka
Reginstration pozwala na uruchomienie
dodatkowych czynności przy rejestracji
nowych użytkowników. Między innymi
można wskazać użytkownika, który
będzie informowany o każdej rejestracji.
Kolejną opcją jest uruchomienie
tworzenia konta przez stronę internetową.
Nowi użytkownicy mogą być również
witani specjalną wiadomością.

Wtyczka client control oferuje

wiele przydatnych możliwości. W
pierwszej kolejności możliwe jest
wybranie dopuszczalnych klientów
serwera. Chociaż jest wiele możliwości,
pozostawienie Sparka jako jedynego
pozwoli ograniczyć kłopoty. Klient
ten gwarantuje pełne wykorzystanie
możliwości serwera. Dalej możliwe jest
załadowanie na serwer wersji klienta do
pobrania przez użytkowników.

Skoro wszyscy mają już taką samą

wersję oprogramowania, możemy
ograniczyć im pewne możliwości.
Według uznania można zablokować
przesyłanie plików, wysyłanie
wiadomości do wielu użytkowników (ang.
brodcast
) oraz możliwość samodzielnej
zmiany prywatnych danych.

Szczególnie w dużych sieciach

firmowych użytecznym narzędziem jest
filtrowanie przesyłanych wiadomości. Dzięki
tej funkcji możemy powstrzymać naszych
użytkowników, choćby od flirtów w czasie
pracy. Wystarczy w tym celu stworzyć listę
słów, które mają być odrzucane.

Kolejny dodatek Monitoring

Service wyposaży nas w możliwości
archiwizowania wiadomości. Jednak
ważniejszy jest dodany monitoring
widoczny na Rysunku 2. Dzięki
niemu bardzo dobrze widoczne jest
wykorzystanie naszego serwera.
Odczytać można ilość obecnych

użytkowników, trwających rozmów oraz
ilość wysyłanych na minutę pakietów.
Wszystkie monitorowane parametry
można przeglądać w rozpiętości czasu
od godziny do tygodnia. Przydatne
są powiększone wykresy, na których
widoczny jest upływ czasu. Pozwala to
nie tylko ocenić wykorzystanie zasobów,
ale i czas największego obciążenia.
Informacje takie są przydatne przy
planowaniu zadań okresowych, jak
tworzenie kopii zapasowych czy
regularne aktualizacje.

Istnieje wiele protokołów IM (ang.

Instant Message), dzięki wtyczce IM
Gateway
można umożliwić połączenie
np. z GG, MSN, IRC, ICQ. O ile może to
być wręcz konieczne dla szefa, należy
pomyśleć czy inni pracownicy powinni
mieć taką możliwość. Dostępność
bramki można ograniczyć do wybranych
użytkowników. W efekcie użytkownicy,
którzy muszą porozumiewać się z
osobami spoza naszego serwera
nie muszą instalować dodatkowych
komunikatorów.

Praktyczne rozwiązania

Po małym wprowadzeniu rozważmy
praktyczną sytuację zastosowania i
możliwości programu. Przyjmijmy, iż łącze
ma służyć sześciu osobom: prezes,
dwóch księgowych i trzech szeregowych
pracowników. Taki układ, chociaż

Rysunek 2.

Monitoring serwera

Rysunek 3.

Szefowska lista pracowników

POCZATKI

background image

22

HAKIN9 2/2010

23

HAKIN9

2/2010

niezbyt życiowy, wystarczy do pokazania
możliwości serwera. Prezentujemy
naszym użytkownikom program z
instrukcją, jak z niego korzystać i
utworzyć własne konto. Zniesmaczeni
koniecznością przyswajania nowej
wiedzy, zdenerwowani dzwonią
dopytując się jak nazywają się inni
użytkownicy. Nie znając ich nazw, nie
mogą rozmawiać. Pierwsza rzecz jaką
robimy to tworzymy grupy użytkowników.
Koniecznie grupę księgowych oraz
pracowników umieszczając w niej osoby
na właściwych stanowiskach. Opcje
zarządzania grupami znajdują się w
menu Użytkownicy/grupy, położenie raczej
logiczne. Po utworzeniu grup możemy
włączyć wyświetlenie grupy wszystkim jej
członkom. Dzięki temu każdy będzie miał
kontakt z pracownikami własnej rangi.
Tworzymy również grupę szef, nawet jeżeli
jest tylko jeden. Dzięki temu w konfiguracji
pozostałych grup możemy pozwolić
na ich widzenie przez grupę szefa, do
której jako użytkownik znajduje się tylko
on. Koniec końców pracownicy jednego
szczebla widzą tylko siebie, a szef widzi
wszystkich, jest to widoczne na Rysunku
2. Zależnie od potrzeb korzystając z
tej metody, można utworzyć hierarchię
grup, aby pracownik wyższego szczebla
miał kontakt ze swoimi podwładnymi
oraz pracownikami tego samego
szczebla. Nieistotne jest jak wielu
mamy pracowników i na ilu szczeblach.
Dokładamy wtyczkę brodcast, dzięki
czemu nasz szef może jednym ruchem
wysłać do wszystkich wiadomość o
zbliżającym się dniu wolnym i obcięciu
premii informatykowi za utrudnianie życia
nowościami.

Jak umożliwić użytkownikom

odnajdywanie kont użytkowników innych
szczebli bez użycia telefonu? Dogrywamy
wtyczkę serach i umożliwiamy jej
wykorzystanie przez klientów. W dolnej
części okna klienta będą oni mogli
wpisać fragment wyszukiwanego
imienia. W ramach firmy można narzucić
pracownikom nazwy kont, zawierających
imię i nazwisko, co pozwoli uniknąć
niespodzianek przy wyszukiwaniu.

Openfire pozwala na jeszcze kilka

usprawnień pracy. Użyteczna może
okazać się wtyczka Email Listener. Dodaje

background image

24

POCZATKI

HAKIN9 2/2010

ona opcje przekierowania informacji
przychodzących na skrzynkę pocztową
do wybranych osób. Z jednej strony
możliwe jest ustawienie dla każdego
użytkownika powiadomień dotyczących
jego poczty. Z drugiej można wykorzystać
tą opcję do przekierowywania
wiadomości o awariach narzędzi
monitorujących, jak NAGIOS. Dzięki
temu natychmiast poinformowani
zostaną wszyscy dostępni pracownicy
odpowiedzialni za naprawę. Jednym
warunkiem wykorzystania, jest serwer
poczty wraz z protokołem IMAP.

Zabezpieczenia

Podstawową linią bezpieczeństwa jest
przejście z serwerów zewnętrznych na
firmowe. Jeżeli do tego komunikacja
odbywa się w lokalnej sieci,
bezpieczeństwo informacji jest równe
bezpieczeństwu sieci. Przy zastrzeżeniu,
iż dostęp bezprzewodowy do lokalnej
sieci znacznie obniża jej poziom
bezpieczeństwa. Większość zabezpieczeń
w formie WPA TKIP, nie mówiąc już o WEP,
zapewnia jedynie dobre samopoczucie.

Drugi element bezpieczeństwa stanowi

SSL. Za jego pomocą można zapewnić
autoryzację klient – serwer. Instrukcja
postępowania znajduje się na stronach
projektu Openfire. Zabezpieczenie to
opiera się na narzędziach dostarczanych
przez maszynę Javy.

Jednak, jeżeli mamy do czynienia z

wieloma biurami rozrzuconymi w różnych
miastach, można pokusić się o bardziej
zaawansowane podejście. Podstawą przy
postępowaniu z tego rodzaju sieciami
jest VPN. Wirtualna sieć prywatna
pozwala oddzielić komunikację pomiędzy

naszymi sieciami lokalnymi, a całym
ruchem dżungli Internetu.

OpenVPN może pracować w dwóch

trybach, korzystając ze statycznych kluczy
szyfrujących lub przy każdym połączeniu
dokonywać autoryzacji i wymiany kluczy.
W efekcie mamy wiarygodne szyfrowanie
połączenie. Rozwiązanie to jest jednak z
zasady przeznaczone dla całego ruchu
pomiędzy oddziałami. Dlatego też każdy
kto ma uprawniony dostęp do sieci VPN
ma też dostęp do komunikacji Openfire.

Kiedy pożądane jest oddzielenie ruchu

komunikatora lub nie chcemy korzystać
z VPN, można wykorzystać SSH port
forwarding
. Ta metoda zabezpieczenia
pozwala utworzyć szyfrowany tunel
pomiędzy wybranymi portami komputerów.
W przypadku klientów tunel taki należy
utworzyć na porcie 5222. Zabezpieczenie
to w zasadzie daje pełne bezpieczeństwo
komunikacji, jednak jest dość niewdzięczne
w implementacji. Do tworzenia tunelu
można podejść na kilka sposobów,
Najbardziej barbarzyńską (najprostszą i
najbardziej zrozumiałą) metodą jest ręczne
nawiązanie połączenia poleceniem

ssh

-L 5222:localhost:5222 openfire

. Po

dokonaniu autoryzacji na komputerze o
nazwie openfire możliwe jest nawiązanie
połączenia przez klienta Spark, wskazując
na port 5222, ale z adresem 127.0.0.1,
zamiast adresu serwera. Klient kieruje
się na lokalny port, poprzez tunel kończy
na porcie naszego serwera, nawiązując
połączenie. Wadą takiego podejścia
jest konieczność posiadania konta
w systemie. W przypadku dużej ilości
pracowników samo instalowanie na
każdym komputerze odpowiedniego
skryptu tworzącego automatycznie

połączenie bez udziału użytkownika, może
być nie wykonalne. Również klient wymaga
zmiany ustawień dotyczących portów,
którą należy przeprowadzić w opcjach
zaawansowanych, dostępnych z okna
logowania. Ze względu na te utrudnienia
powyższy przykład ma charakter dowodu
idei, nie rzeczywistej metody. Uwzględniając
skrypt tworzący automatycznie tunel w tle
podczas startu systemu, można rozważyć
zastosowanie tego zabezpieczenia na
komputerach niewielkiej ilości kluczowych
pracowników. Metodę tę w analogiczny
sposób można stosować dla innych
programów lub pomiędzy należącymi do
nas serwerami Openfire.

Podsumowanie

W przeciągu kilku minut Openfire pozwala
uruchomić własny serwer komunikacji. W
przypadku dużych sieci pozwala nie tylko
poprawić bezpieczeństwo przesyłanych
wewnątrz niej informacji, ale ogranicza
również ilość ruchu wychodzącego na
zewnątrz sieci. W analogiczny sposób
wykorzystywane bywają wewnętrzne
serwery cechujące DNS.

Zapewnia mechanizm dostarczania

wiadomości tak od administratora, jak i od
przełożonych do pozostałych pracowników.
Przy relatywnie niewielkich nakładach
czasowych można stworzyć funkcjonalne
narzędzie pracy usprawniające
funkcjonowanie firmy. Brakuje jedynie
możliwości tworzenia wideo konferencji.

W ramach prywatnych zastosowań

wskazane jest łącze symetryczne,
chociażby o minimalnych parametrach.
Jedna osoba dysponująca takim
połączeniem może uruchomić kanał
komunikacji dla dowolnej grupy znajomych.
Dzięki przedstawionym możliwościom jest
on znacznie praktyczniejszy niż popularne
fora grupowe, czy często wykorzystywane
przez studentów grupowe konta pocztowe.
Być może czas wprowadzić usługę
grupowego komunikatora.

Na płycie CD dołączony został

materiał uzupełniający do artykułu w
postaci filmu na temat jak stworzyć własny
kanał komunikacji.

Sylwester Zdanowski

Autor książki Debian Linux. System operacyjny dla

każdego. Pierwsze starcie. Kontakt z autorem:

sylwesterzdanowski@o2.pl.

W Sieci

http://www.igniterealtime.org/projects/openfire/ – projekt openfire,
http://www.nagios.org/ – NAGIOS.

Skrypty zabezpieczające połączenie

Za pomocą skryptów w środowisku Linux można automatycznie wykonać każdą czynność,
o której nie chcemy nawet mówić użytkownikowi komputera. W naszym przypadku można
pokusić się o skrypt, który tworzy połączenie, uwierzytelnia się przy pomocy klucza publicznego
i uruchamia klienta. De facto wprowadzenie takiego zabezpieczenia, jak i wszystkiego co
przekracza podejście dwóch kliknięć, wymaga szkolenia wszystkich pracowników.


Wyszukiwarka

Podobne podstrony:
MB ćwiczenia 24 04 2010 (02)
Prawo cywilne wyk.13 2010-02-16, Prawo Cywilne
2010 02 05 09;33;36
GG 2010 3 02
Angora 2010 02 21
MB ćwiczenia 29 05 2010 (02)
SERWIS 2010.02.15
2010 02 24
2009-02-26, pedagogium, wykłady, Komunikacja społeczna
Śmierć Grzegorza Michniewicza, Katyń - Smoleńsk 2010, Katyń 2010 - 02, Publicystyka
2010 02 15
2010 02 05 09;35;57
2010 02 23
2010 02 24
SIMR-AN1-EGZ-2010-02-08-rozw
2077 02.,Opis,techniczny Budownictwo,komunikacyjne
2010 02 10
2010 02 10 rozwiazaniaid 27110
2010-02-10 łaczniki

więcej podobnych podstron