Tania i bezpieczna sieć bezprzewodowa z 802.1x

# SSG

client 192.168.2.1 {

secret = [hasło wykorzystywane podczas uwierzytelniania z access pointem]

shortname = 192.168.2.1

nastype = other

}

Jeszcze tylko punkt dostępowy

No, wreszcie mamy działający serwer FreeRADIUS! Ale to nie koniec. Na szczęcie reszta jest już znacznie prostsza. Skonfigurujmy nasz punkt dostępowy. W przypadku SSG 5, po zalogowaniu do interfejsu urządzenia (najprościej webowego), najpierw należy stworzyć serwer uwierzytelniania (sekcja Configuration -> Auth -> Auth Servers -> New) - zob. Ekran 2. Wypełniając formularz szczególną uwagę zwróćmy na dwie rzeczy. Po pierwsze, pamiętajmy o wskazaniu właściwego interfejsu, do którego "przypięty" zostanie nasz serwer (pole "Source Interface"). Po drugie, w sekcji "Radius" należy zmienić port komunikacyjny z 1645 na 1812 (z niego korzysta serwer FreeRADIUS) oraz wpisać właściwy "shared secret" - ten sam, który wskazaliśmy w pliku "clients.conf" podczas konfiguracji FreeRADIUS-a.

Tania i bezpieczna sieć bezprzewodowa z 802.1x

Ekran 7

Mając skonfigurowany serwer uwierzytelniania, można zacząć definiować ustawienia interfejsu bezprzewodowego - to w sekcji Wireless -> SSID (zob. Ekran 3).

Tutaj musimy zmienić trzy parametry. Ustawić protokół uwierzytelniania WPA lub WPA2, metodę szyfrowania danych (TKIP lub AES) oraz wskazać skonfigurowany w poprzednim kroku serwer Radius (pole Auth Server). Teraz tylko akceptujemy zmiany i klikamy OK oraz Activate Changes. Przed podjęciem decyzji o wyborze protokołów uwierzytelniania i algorytmów szyfrujących koniecznie trzeba wziąć pod uwagę możliwości kart sieciowych zainstalowanych w komputerach. Dwu-, trzyletnie karty mogą nie poradzić sobie z WPA2/AES (rekomendowany zestaw protokołów). Jeżeli więc mamy trochę starszy sprzęt, będziemy musieli pójść na kompromis i nieco obniżyć "pułap" do WPA/TKIP. Wypadałoby również skonfigurować politykę dostępową w sekcji Policy -> Policies (zob. Ekran 4). W poniższym przykładzie polityka zezwala na dowolny ruch z uwierzytelnionych stacji znajdujących się w sieci bezprzewodowej do sieci LAN.

Taka mocno liberalna polityka dobrze sprawdza się podczas prowadzenia testów. W środowisku produkcyjnym należy być znacznie bardziej rygorystycznym.

No i w końcu klient

Do kompletu i pełni szczęścia brakuje jeszcze konfiguracji klienta sieci bezprzewodowej - w naszym przykładzie w systemie Windows XP SP2. Jak już wspomnieliśmy, obsługa 802.1x jest wbudowana w tę wersję "okien". Definiując sieć bezprzewodową, trzeba pamiętać o wcześniejszym zaimportowaniu certyfikatu nowo stworzonego CA. Wybieramy zatem np. WPA2/AES lub WPA/TKIP jako protokoły uwierzytelniania i szyfrowania, PEAP jako typ protokołu EAP oraz EAP-MSCHAPv2 jako metodę uwierzytelniania podczas łączenia przy wykorzystaniu protokołu EAP. Klikając "Konfiguruj" w oknie "Właściwości chronionego protokołu EAP" - jeżeli komputer jest członkiem domeny - możemy wybrać "Automatycznie użyj nazwy logowania systemu Windows". Zwolni to nas z ciągłego wpisywania danych uwierzytelniających użytkownika - zob. Ekran 5, 6 i 7.

A co w przypadku popularnych urządzeń przenośnych z wbudowanymi modułami WLAN? Również tutaj w większości przypadków uda się uruchomić 802.1x. W ramce pokazano, w jaki sposób skonfigurować telefon komórkowy oparty na Symbianie (w przykładzie Nokia E61) i wbudowanego w niego klienta 802.1x bez instalacji dodatkowego oprogramowania.

Od tej pory powinniśmy móc bez przeszkód połączyć się z naszą siecią bezprzewodową. Wydawałoby się, że to już koniec "zabawy". Nie jest to jednak prawda. W budowaniu infrastruktury bezprzewodowej z udziałem 802.1x świat nie kończy się przecież na PEAP-ie. Można iść dalej w kierunku podnoszenia poziomu bezpieczeństwa i zamiast kombinacji PEAP-EAP-MSCHAPv2 zastosować np. PEAP-EAP-TLS, gdzie będą musiały zostać wygenerowane certyfikaty klienckie. Wymieniając starsze karty bezprzewodowe na nowsze, można również przejść na WPA2/AES. W miarę możliwości finansowych można pozwolić sobie na zakup dodatkowych gadżetów, jak chociażby kart inteligentnych (np. w postaci kluczyka USB), na których będą przechowywane certyfikaty (zamiast w lokalnym magazynie komputera). I tak dalej. Ograniczeniem w dążeniu do ciągle wyższego poziomu bezpieczeństwa są tylko zasoby gotówki i … zdrowy rozsądek, który powinien podpowiedzieć, kiedy zwolnić tempo.

Generowanie certyfikatów

Wygenerowanie własnych certyfikatów wymaga trochę "dłubania". Musimy wykonać następujące kroki:

  1. Przygotować plik xpextensions.
  2. Stworzyć własny Urząd Certyfikacji.
  3. Przekonwertować i  skopiować jego certyfikat (w formacie PKCS12) do zaufanych CA w magazynie certyfikatów klienta.
  4. Potem wygenerować CSR (Certificate Signing Request) - niepodpisany certyfikat serwera.
  5. Podpisać CSR kluczem naszego CA.
  6. Skopiować do katalogu FreeRADIUS-a np. /etc/raddb/certyfikaty wraz z certyfikatem CA.

Ad. 1 Plik xpextensions (nazwa dowolna) zawiera atrybuty konieczne do wygenerowania certyfikatów akceptowanych przez system Windows XP. Jego zawartość powinna wyglądać następująco:

[xpclient_ext]

extendedKeyUsage = 1.3.6.1.5.5.7.3.2

[xpserver_ext]

extendedKeyUsage = 1.3.6.1.5.5.7.3.1

Ad. 2 Stworzenie własnego CA jest proste. Z pomocą przychodzi skrypt CA znajdujący się w katalogu /usr/share/ssl/misc. Żeby uprościć cały proces, możemy uzupełnić poszczególne pola certyfikatów, modyfikując wpisy pliku openssl.cnf (katalog /usr/share/ssl). Najpierw katalog, w którym znajdą się informacje o naszym CA (sekcja [CA_default]):

dir = /Certyfikaty

Dalej sekcja [req_distinguished_name]:

countryName_default = PL

stateOrProvinceName_default = Warszawa

localityName_default = Warszawa

0.organizationName_default = TEST PL

emailAddress_default = [email protected]

Jeszcze tylko niewielka modyfikacja samego skryptu (/usr/share/ssl/misc/CA) i zamienienie wartości parametru CATOP na /Certyfikaty (lub inny katalog wskazany w linii "dir" w pliku openssl.cnf). Teraz tworzymy CA - przechodzimy do katalogu głównego i wywołujemy:

[root@radius /]# /usr/share/ssl/misc/CA -newca

Podajemy hasło do klucza prywatnego root certyfikatu i czekamy na wykonanie skryptu.

Ad. 3 Następnie konwertujemy certyfikat Urzędu do postaci PKCS12, który po wykonaniu tej operacji zaimportujemy w Windowsie i przeniesiemy do magazynu certyfikatów Zaufane urzędy certyfikacji:

[root@radius /]# openssl pkcs12 -export -in Certyfikaty/cacert.pem -inkey

Certyfikaty/private/cakey.pem -out Certyfikaty/radiusca.p12

Ad. 4 W kolejnym kroku tworzymy CSR-a dla naszego serwera Radius:

[root@radius /] # openssl req -new -nodes -keyout server_key.pem -out server_req.pem -days 700 -config ./openssl.cnf

Ad. 5 Następnie podpisujemy CSR-a kluczem naszego CA:

[root@radius /] # openssl ca -config /usr/share/ssl/openssl.cnf -policy policy_anything -out certy_radius/radius_certyfikat.pem -extensions xpserver_ext -extfile /usr/share/ssl/xpextensions -infiles /certy_radius/server_req.pem

Ad. 6 Kopiujemy pliki server_key.pem oraz radius_certyfikat.pem do katalogu /etc/raddb/certyfikaty. Kopiujemy też certyfikat naszego Urzędu Certyfikacji


TOP 200