Download: Sysadmin_nocat

Transkrypt

Download: Sysadmin_nocat
No Cat Auth
SYSADMIN
Autoryzacja w sieciach WLAN przy użyciu No Cat Auth
No Cat Auth
Bezprzewodowy dostęp do Internetu
nie jest już technicznym wyzwaniem,
chociaż sieci bezprzewodowe nadal
spotykają się z problemami związanymi z bezpieczeństwem. Niezbyt
dobrym pomysłem jest udostępnianie Internetu za darmo klientom
przydrożnych kawiarni. Zabezpieczeniem może być wybranie odpowiedniej metody autoryzacji – najlepiej niezależnej od platformy.
JOCHEN STÄRK
W
iadomo powszechnie, że techniki
kodowania i autoryzacji dla
WLAN posiadają tyle dziur, co
ser szwajcarski [1] i mogą być łatwo złamane
[2]. Wystarczają do tego narzędzia typu Airsnort, D-Wepcrack czy Kismet [3]. Sieci
WLAN powinny być zatem traktowane jako
zewnętrzne i niebezpieczne. Jeżeli więc zamierzamy używać WLAN do łączenia się
laptopem z wewnętrzną siecią, wskazane jest
zastosowanie technologii, takich jak IPsec
czy Open VPN [4].
Tak czy inaczej, jeżeli potrzebujemy węzła
WLAN do udostępniania Internetu wielu
użytkownikom, konieczne jest zastosowanie
VPN. Użytkownicy powinni sami wybrać odpowiednią metodę zabezpieczeń. Nie eliminuje to jednak potrzeby autoryzacji. Odpowiedzią na te problemy jest pakiet No Cat Auth
[5]. Klienci (komputery), którzy będą chcieli
użyć tego narzędzia, będą potrzebować jedynie
przeglądarki internetowej.
No Cat Auth potrafi autoryzować użytkowników, o których informacje zapisane są w ba-
Table 1: Autoryzacja
Funkcjonalność
Opis
Radius
Autoryzacja za pośrednictwem serwera Radius
LDAP
Autoryzacja przez LDAP
DBI::MySQL
Baza użytkowników w MySQL
Status
Narzędzia administracyjne
eksperymentalny
niedostępne
niedostępne
nie
Pełne wsparcie
niedostępne
zach MySQL, plikach z hasłami, usługach
LDAP, IMAP, PAM, Samba i NIS (Tabela 1)
oraz ograniczać dostępne pasmo. Program zawiera bramkę i serwer do autoryzacji. Bramka
posiada konfigurowalny firewall kontrolujący
łączenie pomiędzy WLAN i Internetem, pozwalając na przesyłanie pakietów jedynie od
użytkowników autoryzowanych przez stronę
internetową.
Jeżeli serwer No Cat Auth używa tabeli MySQL lub PostgreSQL jako bazy danych użytkowników, to dla uzyskania dostępu są oni
proszeni o wypełnienie formularza rejestracyjnego. Administratorzy mogą później ustalać
prawa do kont tworzonych w ten sposób. W administrowaniu kont w No Cat pomocne będzie
narzędzie admintool.
Kiedy użytkownik w sieci No Cat używa
Baza użytkowników w MySQL
z pełną obługą autoryzacji i rejestracji
Pełne wsparcie
niedostępne
Passwd
Autoryzacja przy użyciu lokalnych plików
Pełne wsparcie
Pełne wsparcie
PAM
Autoryzacja poprzez PAM
niedostępne
niedostępne
Samba
Autoryzacja poprzez serwer Samba lub
Windows (Primary Domain Controller)
niedostępne
nie
IMAP
Autoryzacja poprzez konta IMAP
niedostępne
nie
NIS
Autoryzacja przez NIS
niedostępne
nie
AUTOR
z pełną obługą autoryzacji i rejestracji
DBI::PostgreSQL
Jochen Stärk studiuje
i pracuje jako inżynier
sprzedaży w firmie
Borland GmbH
w Niemczech, gdzie
zajmuje się głównie
pakietami C++ Builder i Kylix.
www.linux-magazine.pl
Kwiecień 2004
69
SYSADMIN
No Cat Auth
przeglądarki do obejrzenia strony internetowej, bramka No Cat, bazująca na IPTables,
przekazuje najpierw żądanie do serwera autoryzacji. Użytkownik proszony jest o podanie
ID i hasła. Jeżeli dane się zgadzają, użytkownik (a raczej komputer) otrzymuje zgodę na
dostęp do Internetu przez bramkę. Demon
bramki uruchamia NAT (maskowanie adresów) i pozwala na użycie powszechnie stosowanych protokołów, takich jak SSH, POP3,
IMAP, HTTP, HTTPS, pasywny FTP i innych. Domyślnie, dla ochrony przed spamem
wyłączony jest SMTP.
Łatwa konfiguracja
dzięki Webmin
Dzięki modułowi Webmin [9] nie ma potrzeby ręcznego ustawiania otoczenia No Cat.
Mimo swojej względnie niskiej wersji (0.51),
moduł ten jest dość stabilny i gotowy do użycia od razu. Wystarczy zmienić ścieżki w pliku konfiguracyjnym.
Poniższy przykład zakłada zakres adresów
serwera DHCP od 192.168.0.10 do
192.168.0.254. Baza danych użytkowników
znajduje się na serwerze o wewnętrznym adresie 192.168.0.1. Na serwerze działa też MySQL, PHP-My-Admin oraz Apache z modułem Mod_SSL. Na początek nie stawiajmy sobie jednak zbyt dalekich celów, wszystko czego
potrzebujemy, to otworzyć bramkę. Jest ona
łatwa w instalacji, ale należy uważać na błędy –
zarówno bramka jak i serwer autoryzujący są
instalowane w katalogu /usr/local/nocat. Pakiety różnią się od siebie swoim przedrostkiem.
tar xvfz NoCatAuth-0.82.tar.gz
cd NoCatAuth-0.82
make PREFIX=/usr/local/nocat/gw §§
Serwer autoryzacji
Ramka 1:
Skąd nazwa projektu?
Nazwa No Cat oznacza społeczność, która
uruchomiła swoje węzły w Sonoma County
(USA), w Kaliforni. Członkowie mają wspólny, bezprzewodowy dostęp do Internetu.
Rzut oka na stronę projektu http://nocat.net
daje wyjaśnienie tej niespotykanej nazwy,
pochodzi ona od znanego cytatu. Otóż kiedy zapytano Alberta Einsteina, jak działa radio, odpowiedział: „Telegraf kablowy jest
jak bardzo długi kot, kiedy ciągniecie go za
ogon w Nowym Yorku, on obraca głowę
w Los Angeles. Rozumiecie to? Radio działa
dokładnie tak samo: sygnał wysłany w jednym miejscu jest odbierany w innym. Jedyną różnicą jest to, że nie ma już kota.”
gateway
Bramkę otwieramy wpisując GatewayMode
Open w pliku konfiguracyjnym /usr/local/nocat/gw/nocat.conf. Dla No Cat możliwe są trzy
tryby pracy:
■ Open: bramka wyświetla stronę powitalną
i czeka na akceptację przez użytkownika
warunków użytkowania.
■ Passive: wymaga od użytkownika autoryzacji i jest to polecane ustawienie.
■ Captive: tak jak Passive, ale nie wspiera
maskowania adresów (NAT).
Następnie, w celu uruchomienia bramki
wpisujemy /usr/local/nocat/gw/bin/gateway.
Baza użytkowników
Sensownym posunięciem jest utworzenie bazy danych użytkowników. W trybie GatewayMode Passive bramka umożliwia dostęp do
serwera autoryzującego i pyta go o sprawdzenie dostępu dla użytkownika. Zapis AuthServiceAddr 192.168.0.1 wskazuje bramce, gdzie
szukać serwera.
W większym środowisku nie jest wskazane, aby każdy udostępniający węzeł uruchamiał własny serwer autoryzujący. Centralny
serwer to jedno konto dla każdego użytkownika i jeden podpis, co ułatwia życie wszystkim użytkownikom. Pierwszym krokiem do
uruchomienia serwera autoryzującego jest
jego kompilacja:
make PREFIX=/usr/local/nocat/as §§
authserv
make PREFIX=/usr/local/nocat/as§§
pgpkey
chown -R wwwrun /usr/local§§
/nocat/as/pgp
cp /usr/local/nocat/as/§§
trustedkeys.gpg /usr/local/§§
nocat/gw/pgp
Aby zezwolić na dostęp tylko autoryzowanym użytkownikom, wyłączając dostęp publiczny, dodajemy w pliku /usr/local/nocat/gw/nocat.conf linie MembersOnly 1. Trzeba
też wprowadzić kilka zmian w serwerze autoryzacyjnym: serwer Apache musi mieć możliwość uruchamiania skryptów CGI oraz
tworzenia odpowiednich plików HTML.
Szablon do tych zmian znajdziemy w /usr/local/nocat/as/httpd.conf.
Baza danych użytkowników wymaga również poświęcenia pewnej uwagi. Użyjemy do
tego celu PHP-My-Admin. Dostęp do MySQL
pozwala administratorom na utworzenie bazy
danych dla użytkowników oraz dla No Cat, następnie utworzenie odpowiednich tabel (zo-
Gateway No-Cat-Auth
WLAN
Na przykład
Radius,
NIS lub
LDAP
Internet
Rysunek 1: Do korzystania z Internetu bezprzewodowi klienci używają węzła dostępowego. Zanim jednak otrzymają dostęp, muszą poprosić o autoryzację z bramki No Cat. Serwer autoryzacyjny decyduje, czy zezwolić na dostęp, czy też nie.
70
Kwiecień 2004
www.linux-magazine.pl
No Cat Auth
Rysunek 2: Osobom odwiedzającym sieć No Cat
ukazuje się na początku ekran powitalny. Użytkownicy mogą się zarejestrować i korzystać z Internetu za pośrednictwem bramki No Cat. Administratorzy mogą oczywiście dowolnie modyfikować kod HTML tej strony i zmieniać komunikaty
o błędach według własnych potrzeb.
bacz polecenie dump w pakiecie źródłowym
pod katalogiem etc/nocat.schema), a także zmianę konfiguracji bramki autoryzującej (/usr/local/nocat/as/nocat.conf):
DataSource DBI
Database dbi:mysql:database§§
=nocat
DB_User nocat
DB_Passwd strokethecat
Możemy teraz uruchomić Apache jako serwer autoryzujący (apachectl startssl). Wstępnie bramka przekazuje żądania użytkowników do serwera Apache (Rysunek 1), gdzie
są oni proszeni o zarejestrowanie się lub
przynajmniej o akceptacje warunków użytkowania. Więcej szczegółów na ten temat
w dokumencie HOWTO Toni Diaz [6] oraz na
stronie domowej No Cat [5]. Zadziwiającym
jest, że pomysłodawca No Cat poświęcił temu
projektowi jedynie trzy strony w swojej własnej książce [10].
Sieci kablowe
Program No Cat został zaprojektowany dla
węzłów dostępowych skonfigurowanych jako
mosty (bridges). Oznacza to, że może on być
też zastosowany w przypadku innych technologii sieciowych. Struktura No Cat pozwala
na zcentralizowaną autoryzacje dla rozrzuconych geograficznie grup użytkowników, potrafi rozróżniać zalogowanych/nie zalogowanych użytkowników i obsługuje Quality of
Service (QoS). Kontrola przepływu danych
(TC), obecnie będąca jeszcze w fazie eksperymentalnej, pozwala administratorom na
ograniczenie przepustowości dla grup (total –
bez ograniczeń, owner – użytkownik konta,
public – podstawowy dostęp).
Łatka [7] daje dodatkowo możliwość
generowania raportów, umożliwiając administratorom rejestrowanie w logach
wielkości transferu. Funkcja ta jest niezależna od użytej metody autoryzacji
i zapisuje informacje do Radius-a lub do
plików (File). Niestety, nie udało się nam
potwierdzić, czy raportowanie do plików
działa poprawnie. Zapisywanie do logów
No Cat (Log) i baz danych (DBI) jest planowane, lecz jeszcze nie zostało zaimplementowane.
Rejestracja i wyrejestrowywanie się
użytkowników jest zapisywane w pliku
nocat.log. Nazwę i ścieżkę do tego pliku
można konfigurować używając do tego
opcji GatewayLog oraz opcji Verbosity.
Można też użyć LogFacility, aby nakazać
No Cat zapisywanie informacji do standardowego logu demona Syslog. Trudność
w tworzeniu centralnych statystyk skłoniła
mnie do napisania łaty [8], dającej możliwość zapisywania w logach czasu autoryzacji,
adresu MAC i IP oraz odświeżania czasu logowania na bazie osobnych plików dla każdego użytkownika. W osobnym pliku znajduje się raport pokazujący status każdego
użytkownika (zalogowany czy nie).
Administratorzy mogą więc użyć strony ze
statystykami (przykład dostępny pod adresem
Ramka 2:
Zabezpieczenia
Żadna z metod zabezpieczeń, używanych
przez No Cat Auth, nie może być porównywana z dobrym rozwiązaniem VPN typu
client-to-site VPN. Wynika to z faktu, że
No Cat nie zapewnia szyfrowanego połączenia dla przesyłania informacji. Sama
autoryzacja jest co prawda chroniona
przez SSL (zakładając poprawne postępowanie z certyfikatami). No Cat nie umożliwia jednak kontroli przepływu danych i ich
szyfrowania. Wszystkie dane przesyłane
z węzła mogą być podglądane (sniffed),
dlatego zalecane jest użycie dodatkowej
metody zabezpieczania.
Po autoryzacji użytkownika bramka No
Cat uaktywnia adresy IP i MAC użytkowników. Włamywacz mógłby podejrzeć (sniff)
te dane i próbować podmienić (spoof) adres MAC oraz IP, uzyskując do czasu wygaśnięcia autoryzacji użytkownika dostęp do
wewnętrznej sieci z pominięciem bramki.
Jest to poważne ryzyko dla większości środowisk WLAN. Jeśli potrzebne jest większe
bezpieczeństwo, należy użyć IPSec, OpenVPN i innych technologii dla VPN [4].
SYSADMIN
[8]) do śledzenia, kto obecnie znajduje się
w sieci i czy użytkownik nie zezwolił przypadkiem komuś innemu na użycie swojego konta
(co jest łatwe do wykrycia po adresach MAC)
oraz jak długo użytkownik był zalogowany do
danego węzła.
Wnioski
Program No Cat sprawdza się w sieciach,
w których może i powinna być zastosowana
centralna kontrola dostępu. Użytkownicy potrzebują jedynie przeglądarki WWW. Jest
też i ciemniejsza strona: brak oprogramowania klienta, który mógłby się rejestrować automatycznie i brak mechanizmu ochrony
przed wygaśnięciem konta. Aby utrzymywać
połączenie, użytkownicy muszą mieć stale
otwarte okno przeglądarki.
Na szczęście trwa rozwój nowej implementacji – No Cat Splash. Podczas gdy No Cat
Auth został napisany w Perlu, No Cat Splash
używa ANSI C oraz jest wielowątkowy, będzie
zatem szczególnie odpowiedni dla aplikacji typu embedded. Tak czy inaczej, wsparcie dla
No Cat Auth będzie kontynuowane.
■
INFO
[1] Scott Fluhrer, Itsik Mantin i Adi Shamir,
„Weaknesses in the Key Scheduling
Algorithm of RC4”: http://www.crypto.com/
papers/others/rc4_ksaproc.ps
[2] Adam Stubblefield, John Ioannidis i Aviel
D. Rubin, „Using the Fluhrer, Mantin, and
Shamir Attack to Break WEP”:
http://www.cs.rice.edu/~astubble/wep/
[3] Mark Vogelsberger, „Kismet and Co:
Focus on WLAN Security”,
Linux Magazine UK, 38
[4] Technologie VPN, „Czy oprogramowanie
VPN jest bezpieczne?”,
Linux Magazine 1/2004
[5] No Cat Auth: http://nocat.net/wiki/
[6] HOWTO dla No Cat Auth:
http://blyx.com/public/wireless/
nocatbox/nocatbox-howto-en.pdf
[7] Łatki dla IPFW2, Accounting, Radius
i SNMP-Monitoring:
http://www.pogozone.net/projects/nocat/
[8] Łatka dla rejestrowania dostępu
użytkowników:
http://www.usegroup.de/software/nocat/
[9] Moduł Webmin dla No Cat: http://
sourceforge.net/projects/nocat-webmin/
[10] Rob Flickenger, „Building Wireless
Community Networks. Planning and
Deploying Wireless Local Networks”,
O’Reilly 2003
www.linux-magazine.pl
Kwiecień 2004
71

Podobne dokumenty