Download: CoverSspe
Transkrypt
Download: CoverSspe
SSPE TEMAT MIESIĄCA SSPE: Zarządzanie zasadami bezpieczeństwa wielu firewalli CENTRALNE STEROWANIE Simple Security Policy Editor (SSPE) pomaga w uporządkowaniu i ustalaniu zasad bezpieczeństwa w sieci z wieloma firewallami. Można określić centralną politykę generowania zestawów reguł do filtrów pakietów i bram VPN. CHRISTIAN NEY N iejedna sieć wymaga wielu firewalli. Strzegą one bramki internetowej, rozdzielają działy przedsiębiorstwa i pozwalają na łączenie się przy użyciu technologii VPN. W takim przypadku dobrze jest mieć centralne narzędzie zarządzające zasadami bezpieczeństwa w firewallach. Pionierem na tym polu był Checkpoint Firewall-1 GUI [3]. Jednak ten komercyjny pakiet jest zbyt skomplikowany, do czego dochodzi natłok różnych opcji, nie zawsze użytecznych. Darmowy Simple Security Policy Editor (SSPE) [1] jest dużo lżejszy. SSPE jest w zasadzie zbiorem skryptów Perla i powłoki służących do administrowania rozproszonym środowiskiem firewalli. Przy pierwszym uruchomieniu SSPE ukazuje prosty interfejs dialogowy ([6] i Rysu- nek 1), jednak za tym celowo spartańskim wyglądem kryje się nadspodziewanie potężne narzędzie. Tekstowy interfejs umożliwia zdalną administrację – można połączyć się modemem lub telefonem komórkowym, chociaż program próbuje sobie radzić z prostym przekazywaniem X11. Ale taki tekstowy interfejs nie oznacza, że musisz się obejść bez myszy. W zależności od emulacji terminala, może dać się wskazywać i klikać myszą w oknie tekstowym. Zamiast oferowania opcji menu do wszystkiego, SSPE wymaga od administratorów skonfigurowania zbioru plików konfiguracyjnych. Wielu użytkowników woli takie podejście, co bardziej odpowiada prawdziwej naturze firewalli (bardziej wyszukane interfejsy graficzne, jak Firewall Builder [2], służą po prostu jako nakładki na polecenia systemu operacyjnego, ukrywając przed użytkownikiem ich złożoność). Podejście holistyczne Rysunek 1: Główne menu SSPE jest czytelne. Prosty, tekstowy interfejs umożliwia administratorom zdalne sterowanie narzędziem. WWW.LINUX-MAGAZINE.PL Ponieważ każda dodatkowa funkcja to potencjalne zagrożenie bezpieczeństwa, praca bez skomplikowanego GUI zwiększa bezpieczeństwo zarządzającej stacji. Nawet jeśli ewentualna usterka w bezpieczeństwie nie dotyczy bezpośrednio firewalla, zagrożenie jest realne, NUMER 18 LIPIEC 2005 33 TEMAT MIESIĄCA SSPE gdyż atakujący mógłby zamienić reguły, które administrator potem prześle do firewalli. Autor SSPE zaleca minimalną instalację Debiana, zawierającą pakiety wymagane przez SSPE: Bash, Dialog i Perl. Ale z minimalnych wymagań wynika, że każdy Linux powinien być dobry jako podstawowy system. Nasze testy wykazały, że Debian Woody, nadchodzące wydanie Sarge, pochodna Debiana – Ubuntu, Gentoo i Red Hat Linux nadają się w zupełności. Instalacja SSPE Rozsądne jest umocnienie stacji administracyjnej. Oczywiście, jest to temat, który z łatwością mógłby zająć całą półkę na książki. Dokumentacja SSPE zawiera wiele przydatnych wskazówek, by włączać komputer do zaufanej sieci i instalować system z zaufanego źródła. Dokumentacja poucza również administratorów, które usługi powinni wyłączyć. Przed zainstalowaniem SSPE może być konieczna instalacja IPsec. Choć SSPE oparty jest na projekcie Freeswan [4], którego rozwoju zaniechano dwa lata temu, Openswan [5] jest dobrym zamiennikiem. Z początku niekompatybilność dawała się we znaki, ale problemy dało się łatwo rozwiązać dzięki dostępności kodów źródłowych. Instalowanie programu SSPE, z uwagi na skromność i niejasność przedstawianych informacji, nie jest procesem intuicyjnym. Zawarty w pakiecie dokument INSTALL nie daje nic ponad wskazówki dotyczące instalacji – zakłada, że administrator wie, co robi. Gdy wyczerpią się wskazówki, można skończyć przed pustym ekranem bez opisowych komunikatów o błędach, które by pomogły rozwiązać problem. Powód może być tak banalny, jak brak katalogu albo niewłaściwa ścieżka, ale skrypty nie wyłapują takich okoliczności. Konto administratora Należy unikać uruchamiania programów, w których ważne jest bezpieczeństwo, z po- ziomu użytkownika root. SSPE wystarcza konto zwykłego użytkownika. W katalogu domowym użytkownika musisz utworzyć katalog dla SSPE. Dokumentacja odnosi się do tego katalogu jako adm. Ponieważ niektóre skrypty odwołują się do katalogu $HOME/adm, należy się trzymać tego zalecenia. Następnym krokiem jest utworzenie drzewa podkatalogów w katalogu administracyjnym. Łatwo jest to zrobić przez skopiowanie podkatalogów z archiwum tar. SSPE oczekuje, że skrypty powłoki i Perla będą położone w katalogu adm/bin; skrypty korzystają z plików konfiguracyjnych z adm/etc. Katalog adm/desc zawiera podkatalogi dla każdej maszyny, którą SSPE będzie konfigurować. To tam przechowywane są reguły, tablice rutingu i inne szczegóły. W adm/software są programy, które SSPE rozsyła do swoich bramek. Pliki tymczasowe umieszczane są w adm/tmp. Potrzebny jest jeszcze plik adm/.config, definiujący zmienne potrzebne do działania SSPE. Na uwagę zasługuje zmienna BASEDIR – wiele skryptów będzie się gubić, jeśli ta zmienna nie będzie zdefiniowana prawidłowo. Upewnij się, że wskazuje na katalog adm. Oprócz zmiennych definiowanych w pliku .config, niektóre skrypty pomocnicze wymagają zmiennej powłoki o nazwie ADMROOT, wskazującej na katalog utworzony w pierwszym kroku. Najlepiej jest utworzyć plik profilu, który to wszystko poustawia. Cała procedura pokazana jest na Listingu 1. Ponieważ SSPE adresuje komputery po nazwie hosta, dobrze jest je wpisać do pliku /etc/hosts. Choć ten krok można pominąć w działającym środowisku DNS, zaleca się używanie /etc/hosts zamiast DNS ze względów bezpieczeństwa, by zmniejszyć ryzyko ataków DNS poisoning. Ponieważ komunikacja z bramkami odbywa się wyłącznie poprzez SSH z weryfikacją klucza publicznego, konto nowego użytkownika również wymaga pary kluczy SSH. Aby zlikwidować konieczność wpisywania hasła, administratorzy mogą do klucza przypisać puste hasło albo Listing 1: Plik profilu find sspe-0.2.5 -type d -exec cp {} adm \; # adduser sspe # su – sspe $ mkdir adm $ for DIR in bin etc desc software ; do cp -r sspe-0.2.5/$DIR adm/ ; done 34 NUMER 18 LIPIEC 2005 $ mkdir adm/tmp $ cp sspe-0.2.5/config adm/.config $ vi adm/.config # BASEDIR anpassen $ echo „export ADMROOT=/home/U sspe/adm” >> ~/.profile $ source ~/.profile WWW.LINUX-MAGAZINE.PL Listing 2: Sieci i hosty # nazwa adres sieci # komentarz ################################## ################################## ##### any 0.0.0.0/0 # wszystko jawnie nieU wyszczególnione # sieci wewnętrzne lan-dtm 192.168.0.0/24U # LAN roboczy DTM lan-muc 192.168.1.0/24U # LAN roboczy MUC dmz 192.168.2.0/24 # DMZ # szef ma więcej przywilejów odU innych boss 192.168.0.15/32U # pecet szefa # komputery administracyjneU potrzebują dostępu SSH admin 192.168.0.10/32U # pecet admina # specjalnych reguł wymaga stacjaU SSPE sspe 192.168.0.2/32U # komputer administrujący SSPE # definicje bram zewnętrznychU i wewnętrznych def-gw 192.168.0.1/32U # wewnętrzny NIC firewalla gw-all 192.168.0.1/32U # lokalizacja DTM firewalla gw-all 1.2.3.4/32U # zewnętrzna lokalizacja DTMU firewalla gw-all 2.3.4.5/32U # zewnętrzna lokalizacja MUCU firewalla użyć agenta SSH. Oczywiście, część publiczną pary kluczy trzeba będzie przenieść do docelowej maszyny, gdzie SSPE będzie się logował jako root. Dokumentacja SSPE wspomina o tym, ale nie daje żadnej faktycznej podpowiedzi. Konfiguracja podstawowa Do konfiguracji służy kilka plików, każdy z nich określa specyficzną jej część. Podane są również przykłady. Dokumentacja jest tu dużo bardziej szczegółowa, nawet opisuje współzależności pomiędzy poszczególnymi komponentami. Główny plik nosi nazwę hostnet. Znajduje się w adm/etc i grupuje maszyny sterowane podobnymi regułami. Grupy ułatwiają two- SSPE TEMAT MIESIĄCA Listing 5: Zbiór reguł #źródło cel kierunek protokółU port polityka opcje ################################## ########################### admin sspe Oneway TCP sshU accept LOG Rys. 2: Firewalle wymagające indywidualnej konfiguracji dodawane są do menu machines. SSPE dodaje indywidualne konfiguracje do ustawień ogólnych, wpływających na całą sieć. rzenie szczegółowej polityki bezpieczeństwa. Często stosuje się wspólną politykę w sieci wewnętrznej, do której dostęp ma tylko kilku specjalnych klientów. Zasady dostępu firewalli zwykle są takie same na większości maszyn, tylko komputer administracyjny wymaga specjalnej uwagi. Przykład na Listingu 2. NAT oraz IPsec Jeśli w Twojej sieci używane jest NAT (Network Address Translation), ważne jest, by Listing 3: sieci prywatne wcześniej zdefiniować sieci prywatne do użytku wewnętrznego (zwykle w oparciu o RFC 1918 [7]), aby mieć pewność, że reguły zostaną prawidłowo zastosowane. Do tego celu służy plik konfiguracyjny privates (Listing 3). Mapowania NAT sieci i adresów IP są definiowane w nathosts (Listing 4). Jeśli SSPE dodatkowo ma obsługiwać konfigurację IPsec, musisz zmodyfikować plik ipsecs. O szczegółach na temat pliku /etc/ipsec.conf powiemy później. Kolejne trzy pliki konfiguracyjne definiują kompletny zbiór reguł firewalla, i widać wyraźnie, że autor dobrze przemyślał, co do czego należy. Reguły dostępu administracyjnego w ru- les.admin i IPSec rules.ipsec są w większości statyczne i nie zmieniają się bardzo pomiędzy poszczególnymi maszynami. Same reguły przechowywane są w rules.user. Składnia wszystkich tych plików jest dosyć prosta (Listing 5). Reguły opisane w naszych przykładowych plikach pozwolą nawiązywać połączenie SSH z komputera admin do sspe (obie maszyny zdefiniowano w hostnet). Słowo kluczowe Oneway zapewnia komunikację jednokierunkową. Ponieważ reguły te mają zastosowanie do wszystkich bramek kontrolowanych przez SSPE, powinny być tak ogólne, jak to możliwe. Pojedyncze firewalle Po ukończeniu podstawowej konfiguracji, przejdźmy do pojedynczych firewalli. Możemy teraz skorzystać z interfejsu SSPE, uruchamianego poleceniem adm/bin/adm. Oczywiście, nic nam nie zabroni ręcznego modyfikowania plików konfiguracyjnych w katalogu desc, ale skorzystanie z opcji machine administration | add (Rysunek 1 i 2) jest chyba łatwiejszym sposobem. Komputery muszą nosić te same nazwy, jakie zostały zdefiniowane w pliku hostnet. Niestety, program nie odszu- # nazwa adres sieci # komentarz ################################### ########################### lan-dtm 192.168.0.0/24U # LAN roboczy DTM lan-muc 192.168.1.0/24U # LAN roboczy MUC dmz 192.168.2.0/24 # DMZ Listing 4: konfiguracja NAT # sieć lokalna adres NATU # komentarz ################################## ######################### 192.168.0.0/24 1.2.3.4U # DTM 192.168.1.0/24 2.3.4.5 # MUC Rys. 3: Menu rules zawiera mylącą pozycję machines configuration. W momencie pisania tego tekstu użytkownik może jedynie przeglądać konfigurację albo konfigurować ręcznie za pomocą vi. WWW.LINUX-MAGAZINE.PL NUMER 18 LIPIEC 2005 35 TEMAT MIESIĄCA SSPE kuje dla nazw numerów IP i wymaga od administratora podawania szczegółów. SSPE tworzy wymagany katalog z trzema plikami: desc, zawierającym opis; ip z adresem maszyny, i hw określającym system operacyjny uniksowy lub Cisco. Ma to wpływ np. na sposób, jak SSPE odnajduje trasy bramki. Oprócz tych trzech niezależnych plików, są tam trzy dowiązania do globalnych plików rules.*. Dowiązania zapewniają, że każdy firewall przestrzega globalnego zbioru reguł. W prostym przypadku z jednym firewallem wystarczą same reguły globalne; w bardziej złożonej konfiguracji do każdego firewalla istnieje osobny plik rules.user. Reguły w tym pliku mają priorytet nad plikiem globalnym. Menu pięciu dań Główny program SSPE służy przede wszystkim do wizualizowania konfiguracji. Pozycja rules administration (Rysunek 3) wyświetla zawartość pliku hostnet i umożliwia administratorowi uruchomienie vi, celem ręcznej edycji globalnego zbioru reguł (administrator może zdefiniować edytor wywoływany przez SSPE w skrypcie adm/bin/nethostrules). Jednak do zasad specyficznych dla pojedynczych komputerów potrzebna jest polityka indywidualna, co znowu wymaga trochę ręcznej pracy. Wywołanie pozycji menu apply (Rysunek 1) rozsyła założenia bezpieczeństwa do wszystkich lub tylko do wybranych maszyn docelo- wych. Tu się okaże, czy ustawienia są prawidłowe. Trochę nieszczęśliwie ta opcja jest na trzeciej pozycji w menu. Właściwie całe menu wygląda na nieuporządkowane, szczególnie że funkcja prepare distribution znajduje się na piątej pozycji. Jednak do takiego układu można się szybko przyzwyczaić. Pozycja ipsecs administration ukazuje zawartość pliku konfiguracyjnego ipsec, ale bez komentarzy. Jeśli na stacji administracyjnej nie ma pliku /etc/ipsecs, SSPE informuje o błędzie i kończy działanie. Jeśli nie będzie błędu, program czeka, aż administrator naciśnie klawisz [Enter]. Następnie generuje i rozsyła konfiguracje IPsec i statyczne dane tajne, które SSPE ustala przez obliczenie sumy MD5 na podstawie daty, czasu i liczby losowej. machine configuration (Rysunek 2) nie służy jedynie do dodawania nowych bram i listowania istniejących; można także wyłączać pojedyncze maszyny, które są w danej chwili niedostępne. Jeśli tego nie zrobisz, część skryptów zgłosi błąd dostępu do niektórych komputerów. Na zakończenie SSPE spełnia swoje zadanie, umożliwiając prostszą i efektywniejszą administrację i konfigurację rozproszonych systemów firewalli. Na początku może być trudno przywyknąć do interfejsu, ale jest on dobrze przemyślany i może obsłużyć całkiem złożone przypadki. Z drugiej strony, widok może stać się nieczytelny, jeśli musisz zarządzać dużą ilością maszyn. Projekt nie zyskał jeszcze sławy, na jaką zasługuje, ale ponieważ jego popularność rośnie, można mieć tylko nadzieję, że więcej programistów pozna się na jego potencjale, i wniosą innowacje oraz popracują nad ulepszeniem niektórych szczegółów. ■ INFO [1] SSPE: http://sspe.sourceforge.net [2] FW-Builder: http://www.fwbuilder.org [3] Checkpoint Firewall-1:http://www.checkpoint.com/products/firewall-1/ [4] Freeswan: http://www.freeswan.org [5] Openswan: http://www.openswan.org [6] Dialog: http://hightek.org/dialog/ [7] RFC 1918, „Address Allocation for Private Internets”: http://www.ietf.org/rfc/rfc 1918.txt AUTOR Christian Ney jest administratorem Uniksa i firewalli zatrudnionym przez regionalne linie lotnicze. W wolnym czasie Christian prowadzi serwis Wiki RootieWiki.de i bierze udział w licznych projektach Open Source.