Download: Spolecznosc_Projekty
Transkrypt
Download: Spolecznosc_Projekty
SPOŁECZNOŚĆ Projekty Przegląd najciekawszych projektów Open Source Projekty pod lupą W tym miesiącu poświęcimy uwagę dwóm projektom: najnowszej wersji OpenBSD oraz serwerowi telefonicznemu Asterisk. ARTUR SKURA OpenBSD 3.5 Kolejna wersja OpenBSD, oznaczona numerem 3.5[1], pojawiła się 1 maja. Oprócz wielu usprawnień związanych z bezpieczeństwem zawiera kilka innowacji, które powinny zainteresować Czytelników Linux Magazine, zwłaszcza administratorów sieci. Jak wiadomo, OpenBSD jest bardzo często wykorzystywany w roli routera i firewalla, głównie ze względu na niezwykle elegancki sposób konfiguracji filtra pakietów pf, który – od wersji 3.4 – został połączony z mechanizmem zarządzania pasmem ALTQ, dzięki czemu za pomocą jednego pliku konfiguracyjnego, wykorzystując przejrzysty zestaw reguł, możemy kontrolować najistotniejsze aspekty ruchu sieciowego. Wraz z wersją 3.5 nasze firewalle zostają wzbogacone o nowy protokół, CARP (Common Address Redundancy Protocol), pozwalający uzyskać redundancję routerów/firewalli w dużych sieciach. Oznacza to, że ruch między sieciami kontroluje nie jeden, lecz kilka firewalli: jeśli główny firewall przestanie działać, jeden z pozostałych przejmie jego pracę, włączając w to utrzymywanie stanu połączenia, w sposób przezroczysty nie tylko dla komputerów w Internecie, lecz również w sieci wewnętrznej – co wymaga nadania firewallom tego samego numeru IP i adresu MAC. Co ciekawe, wykorzystano w tym celu zupełnie nowy protokół zamiast oprzeć się na Strona domowa wersji 3.5 OpenBSD 102 Czerwiec 2004 już istniejącym (VRRP, Virtual Router Redundancy Protocol) z powodu zagrożenia patentowego ze strony Cisco. Nowopowstały CARP nie zawiera błędów i niedoskonałości VRRP, wzbogacono go również o podstawowe funkcje kryptograficzne. Jak działa redundancja w najprostszym przypadku? Ruch sieciowy przechodzi przez główny firewall. Komputer ten wysyła również komunikaty CARP. Pozostałe firewalle jedynie nasłuchują. W sytuacji, kiedy komunikaty przestają nadchodzić, zaczynają je wysyłać firewalle zapasowe. Ten z nich, który będzie je wysyłał najczęściej, przejmuje rolę głównego firewalla. No dobrze, ale co w takim razie z regułami i tablicami stanu firewalla? Ich synchronizacją zajmuje się pfsync. Jest to pseudourządzenie odpowiedzialne za transfer danych między firewallami. Ze względu na specyfikę tego typu ruchu, w wersji podstawowej nie przewidziano szyfrowania, dlatego nie wolno używać pfsync w ogólnodostępnych segmentach sieci LAN – należy do tego celu stworzyć dedykowaną sieć (w najprostszej wersji wystarczy kabel krosowany między głównym a zapasowym firewallem). W przeciwnym wypadku napastnik z dostępem do sieci mógłby łatwo dodawać, usuwać i modyfikować reguły firewalla. Jakie są implikacje powszechnej dostępności CARP i pfsync? Przede wszystkim administratorzy sieci, którzy zdecydują się wprowadzić redundancję firewalli, będą mogli częściej aktualizować oprogramowanie na firewallu, zwłaszcza w sytuacji, kiedy od jego pracy zależy dostępność serwerów odpowiedzialnych za komunikację między firmą a Internetem. Częstsza aktualizacja oprogramowania to zwiększony poziom bezpieczeństwa. Nie należy jednak traktować CARP i pfsync jako panaceum – siłą rzeczy obydwa firewalle znajdują się w jednej sieci i w przypadku poważnego problemu fizycznego (uszkodzenie łącza, po- www.linux-magazine.pl żar) redundancja nie pomoże. Deweloperzy OpenBSD zwrócili się do IANA (amerykańskiej organizacji zajmującej się przyznawaniem numerów protokołów internetowych) o przydzielenie numeru dla CARP. IANA jednak odmówiło. Dlaczego? Organizacja chcąca uzyskać numer dla swojego protokołu ma dwa wyjścia: (1) protokół musi zostać uznany za standard przez IETF, (2) zapłacić ekspertom IANA, by ci ocenili przydatność protokołu. Pierwsza droga jest dla twórców CARP zamknięta, ponieważ mimo sporów na ten temat w IETF, przeważający głos na forum tej organizacji mają członkowie-korporacje, takie jak Cisco, Microsoft czy IBM, mocno broniący standardów zawierających ograniczenia patentowe, z których można czerpać bezpośredni zysk. OpenBSD nie stać z kolei na drugie rozwiązanie, które jest niezwykle kosztowne. Tak więc w OpenBSD CARP jest protokołem internetowym numer 112, poprzednio zarezerwowanym dla VRRP. Jest to w pewnym sensie wyzwanie rzucone IETF i Cisco, ponieważ CARP jest protokołem całkowicie pozbawionym ograniczeń patentowych, zaś jego implementacja dostępna jest na zasadach liberalnej licencji BSD – inne firmy mają więc coraz mniej powodów, by używać VRRP, zwłaszcza że CARP zawiera w stosunku do niego wiele usprawnień. Projekty Jako ciekawostkę należy odnotować fakt, że powstała wersja CARP działająca w przestrzeni użytkownika, czyli Userland Carp[2]. Dzięki temu z CARP mogą korzystać użytkownicy innych systemów operacyjnych, w tym Linuksa – i nie tylko po to, by uzyskać redundancję firewalli, ale i innych serwerów oferujących istotne usługi. Należy jednak pamiętać, że kod stanowiący część jądra jest bardziej zwięzły, przez co bardziej odporny na potencjalne błędy. Oczywiście jeśli zależy nam na redundancji innych usług, musimy sami zatroszczyć się o synchronizację danych między głównym serwerem a serwerami zapasowymi, choć czasem wystarczy jedynie identyczna konfiguracja wszystkich hostów. Kolejna interesująca funkcjonalność, dla której warto zaznajomić się z najnowszą wersją OpenBSD, to wprowadzenie obsługi tzw. szarych list. Jak wiadomo, w walce ze spamerami jednym z najbardziej popularnych mechanizmów działających na poziomie MTA są czarne listy (black lists), czyli listy adresów IP (i nie tylko) faktycznych i potencjalnych rozsiewaczy elektronicznych śmieci. Znacznie mniej popularne, i działające często na poziomie MUA, są białe listy -- czyli listy nadawców, od których nie spodziewamy się otrzymać niechcianej poczty. Czym są więc szare listy? Wbrew pozorom nawiązanie do czarnych i białych list nie jest wcale odległe. W praktyce chodzi o takie skonfigurowanie MTA, by odrzucał przyjęcie każdego listu przychodzącego z nowego adresu (a dokładniej – każdej nowej kombinacji adres IP-nadawca-odbiorca), prosząc o dostarczenie go później. List zostaje zaakceptowany dopiero przy kolejnej próbie. Dlaczego? Spamerzy zazwyczaj rozsyłają wiadomości z danego adresu IP dopóki nie zostaną pozbawieni tej możliwości – czy to przez odcięcie przez swojego ISP, czy też umieszczenie na jednej z popularnych czarnych list. Najczęściej atak z jednego adresu IP trwa stosunkowo krótko. Ponawianie wysyłki niedostarczonych listów to ogromny koszt, na który trudno w takiej sytuacji sobie pozwolić. Zmiana adresu IP nic nie pomoże, ponieważ zmieniony IP resetuje licznik kombinacji i list znów zostanie odrzucony. Oczywiście normalni użytkownicy nie powinni mieć problemów – wszystkie serwery zgodne z RFC muszą spróbować dostarczyć wiadomość ponownie, jeśli serwer adresata o to prosi. Jeśli list zostanie w ten sposób dostarczony za drugim razem, kolejne opóźnienia nie będą konieczne i użytkownicy nie powinni zauważyć żadnych anomalii. Istnieje oczywiście obawa, że spamerzy w ten czy inny sposób przystosują się do nowej sytuacji. Będzie się to jednak nieuchronnie wiązało ze zwiększeniem kosztów wysyłania spamu, dlatego warto rozważyć wykorzystanie tej metody w swojej sieci. Obsługą szarych list w OpenBSD zajmuje się demon spamd (odpowiedzialny również za czarne listy), który w połączeniu z filtrem pakietów stanowi potężne narzędzie marnujące zasoby spamerów i chroniące skrzynki użytkowników przed niechcianą pocztą. Asterisk Istnieje wiele projektów Open Source, które – choć mogą wiele zaoferować użytkownikom – są rozwijane bez rozgłosu, czekając na swój czas. Jednym z takich projektów jest Asterisk[3]: oprogramowanie, które bardzo trudno określić jednym słowem, choć najbliższy będzie zapewne termin „otwarta, programowa centrala telefoniczna” (Open Source PBX). Sponsorem projektu jest firma Digium[4], producent kart PCI, umożliwiających podłączenie zwykłego PC m.in. do różnego typu linii telefonicznych. Wiadomo jednak, że karty te przedstawiałyby sobą niewielką wartość bez odpowiedniego oprogramowania -- tak więc rozwój Asteriska jest ważnym czynnikiem zwiększającym sprzedaż sprzętu Digium. Co może Asterisk? Chciałoby się powiedzieć „wszystko”, bowiem lista zaimplementowanych funkcji to kilkaset pozycji. Nie wdając się w analizę bardziej egzotycznej funkcjonalności, powiedzmy tylko, że Asterisk umożliwia prowadzenie rozmów przy wykorzystaniu tradycyjnych linii telefonicznych, sieci IP oraz połączenia ich obu, obsługę numerów wewnętrznych, poczty głosowej, automatycznej sekretarki, przekazywania połączeń, konferencji, rozpoznawania numeru dzwoniącego (CallerID), określania uprawnień dzwoniącego i wiele innych – a wszyst- SPOŁECZNOŚĆ kim tym możemy sterować za pomocą skryptów i plików konfiguracyjnych, tworząc centralę najlepiej odpowiadającą naszym potrzebom. Przykładowo, możemy stworzyć bramkę, która -- w zależności od wybieranego numeru – połączy się z nim wykorzystując VoIP (Asterisk obsługuje SIP, H.323 i własny protokół IAX) lub tradycyjną linię telefoniczną. Możemy całościowo monitorować połączenia telefoniczne w firmie. W USA popularne stają się konfiguracje, w których automatycznie odrzucane są połączenia nie posiadające identyfikatora dzwoniącego, co pozwala uniknąć plagi telemarketingu. Nie bez znaczenia jest też niski koszt kart Digium – najtańsze możemy kupić już za około 100 USD. Jeśli dodamy do tego adapter do telefonów stacjonarnych, taki jak Cisco ATA-186, koszt minicentralki zamknie się w kwocie o rząd wielkości niższej, niż dostępne na rynku centrale sprzętowe. Jak mówi jeden z inżynierów Digium, Greg Vance, zarówno Cisco jak i Avaya (oferujący produkty, dla których Asterisk jest bezpośrednią konkurencją) testują Asteriska w swoich laboratoriach, do tej pory nie było jednak oficjalnych kontaktów między tymi firmami. Asterisk nie jest prosty w konfiguracji – wymaga nie tylko pewnej teoretycznej wiedzy teleinformatycznej, ale i praktycznej umiejętności radzenia sobie z zawiłościami protokołów, zwłaszcza w rozbudowanych instalacjach łączących kilka oddziałów firmy oraz różne sposoby komunikacji. W Internecie znaleźć można jednak sporą ilość materiału pomocnego w przygotowaniu Asteriska do wykonywania najbardziej wymyślnych zadań. Jak na tego typu aplikację przystało, większość funkcji można obsłużyć i rozszerzyć za pomocą skryptów. Skrypty te, zwane skryptami AGI, mogą być napisane w dowolnym języku (programista operuje na zmiennych środowiskowych, analogicznie jak w przypadku skryptów CGI). ■ INFO [1] Więcej informacji o wersji 3.5 można znaleźć na stronie http://www.openbsd.org/35.html [2] Strona domowa projektu Userland Carp: http://www.ucarp.org Implementacja ta jest dostępna na licencji BSD. [3] Strona domowa projektu Asterisk: http://www.asterisk.org Program Gnophone, programowy telefon [4] Strona domowa Digium: http://www.digium.com współpracujący z Asteriskiem. www.linux-magazine.pl Czerwiec 2004 103