Artykuły

A A A
Drukuj Ekportuj do PDF
Opublikowane: 2010.09.14 21:57 | Marek Kulczyk | Aktualizacja: 2011.10.02 10:45

Zarządzanie Windows Firewall przy wykorzystaniu Microsoft Excel

W artykule przedstawiony został sposób konfiguracji zapór sieciowych dla serwerów Windows 2003 i Windows 2008 w oparciu o zeszyt Microsoft Excel.

Wstęp

Istnieje wiele metod zarządzania zaporami sieciowymi Windows: ręcznie z GUI, przy użyciu GPO, poprzez wykorzystanie netshell'a lub innych narzędzi programistycznych, czy nawet przez bezpośrednią ingerencję w rejestr systemowy. Wszystkie będą skuteczne. Jak sprawnie zarządzać środowiskiem, w którym jest więcej niż kilka serwerów? Jak zarządzać nim tak, by w każdej chwili mieć pełną kontrolę i swobodny wgląd w zastosowane reguły? I w końcu, jak w łatwy sposób udostępnić tę wiedzę pozostałym członkom zespołu IT? Jak wdrożyć Windows Firewall? Najlepszym sposobem nie będzie szukanie zaawansowanych rozwiązań. Powinien wystarczyć prosty arkusz Excel'a, dzięki któremu wszystko stanie się uporządkowane i czytelne. W końcowej części artykułu znajdziecie krótki przykład wdrożenia Windows Firewall przy wykorzystaniu MS Excel i NetShell'a.

Zaczynamy

Najpierw trochę teorii odnośnie tego, czym tak naprawdę jest netshell.

Netshell to narzędzie wiersza poleceń, umożliwiające zarządzanie składnikami sieciowymi dla komputerów lokalnych i zdalnych. Umożliwia on nie tylko modyfikację wielu różnych parametrów sieciowych, ale również wykonanie zrzutu konfiguracji do pliku (np. w celu backup'u czy dokumentacji).

Więcej informacji o netsh można znaleźć na stronie:
http://technet.microsoft.com/pl-pl/library/cc785383(WS.10).aspx.

W tym artykule skupię się na wykorzystaniu netsh do zarządzania Windows Firewall na stacjach serwerowych. Istnieją różnice w firewall'u działającym pod kontrolą Windows 2003 i Windows 2008. Dla potrzeb tego opracowania i zabezpieczania serwerów zajmę się tylko firewall'em działającym na ruchu wejściowym (w Windows 2008 można już kontrolować ruch wyjściowy).

Konfiguracji Windows firewall dla Windows XP, Windows 2003 dokonuje się w kontekście netsh firewall a dla Windows Vista, Windows 7, Windows 2008 w kontekście netsh advfirewall. Więcej informacji można znaleźć na stronach:

 

Wykorzystane polecenia netsh

Najważniejsze polecenia netsh, które zostaną wykorzystywane do konfiguracji zapory sieciowej Windows.

Tabela 1 Wykorzystane polecenia netsh

table1

 

Arkusz MS Excel

Pierwszy arkusz w zeszycie (nazwijmy go „Konfiguracja") będzie zawierał informacje o standardowych adresach używanych w sieci. Już na tym etapie projektowania należy przemyśleć dokładnie strategię zapór sieciowych dla serwerów. Trzeba zastanowić się nad topologią sieci i różnymi rodzajami ruchu sieciowego, który może wystąpić. Przykładowo, dostęp ze stacji zarządzających, np. z podsieci administracyjnej, będzie mniej restrykcyjny niż z sieci użytkowników. Dostęp zdalny tak jak i dostęp do DMZ też powinien mieć ustalone odpowiednie polityki, w zależności od tego, komu i gdzie chcemy go umożliwić. Dla potrzeb tego opracowania przyjmuję następujący schemat sieci (oczywiście, odpowiednio wprowadzając i definiując zakresy, można ustalić całkiem inną strukturę sieci i ruchu sieciowego): schemat sieci

Rysunek 1 Schemat sieci

arkusz

Rysunek 2 Przykładowy arkusz konfiguracji

W arkuszu "Konfiguracja" powinny zostać zdefiniowane następujące zakresy, tak by było łatwiej przygotowywać kolejne arkusze z regułami dla serwerów. Użyte definicje to:

definiowanie nazw

Rysunek 3 Definicje nazw z arkusza konfiguracja

Dostęp będzie nadawany w następujący sposób: jeśli zostanie wybrany zakres serwerów, tylko dla niego usługa będzie dostępna. Analogicznie w przypadku zakresu administracyjnego. W sytuacji przypisania zakresu użytkowników, dostęp zostanie udzielony zarówno dla użytkowników, jak i administratorów, natomiast dla zakresu gości dostęp uzyskają wszyscy.

Dla każdego serwera zostanie utworzony osobny arkusz (najlepiej przygotować wcześniej i zostawić do późniejszego kopiowania standardowe szablony dla serwerów Windows 2003 i Windows 2008). Podstawowe pola, które będą potrzebne do utworzenia arkusza to:

Tabela 2 Pola użyte w arkuszach dotyczących serwerów

table2

naglowek

Rysunek 4 Nagłówek arkusza dla serwera

Po zdefiniowaniu pól należy określić ograniczenia („Sprawdzanie poprawności danych") dla danych w nich wartości (tak, aby nie trzeba było wprowadzać wartości ręcznie, lecz z listy wyboru).

poprawnosc danych

Rysunek 5 Przykład definicji sprawdzania poprawności dla kolumny „Rule Type"

Po zdefiniowaniu wszystkich warunków należy wprowadzić jeszcze tylko formułę dla obliczania zakresu dla reguły

=JEŻELI(G8=Konfiguracja!$A$27;H8;JEŻELI(DŁ(H8)=0;WYSZUKAJ.PIONOWO(G8;Scope_Values;2;0);ZŁĄCZ.TEKSTY(WYSZUKAJ.PIONOWO(G8;Scope_Values;2;0);",";H8)))

Następnie należy przygotować reguły przygotowujące reguły netsh dla Windows 2003:

=JEŻELI(A10=Konfiguracja!$A$35;ZŁĄCZ.TEKSTY(Konfiguracja!$B$6;" ";B10;" ";C10;" """;ZŁĄCZ.TEKSTY(D10;" ";B10;"_";C10);""" enable custom """;I10;"""");ZŁĄCZ.TEKSTY(Konfiguracja!$B$8;" name=""";D10;""" program=""";F10;"""";" enable custom """;I10;""""))

oraz dla Windows 2008:

=JEŻELI(A10=Konfiguracja!$A$35;ZŁĄCZ.TEKSTY(Konfiguracja!$B$15;"""";ZŁĄCZ.TEKSTY(D10;" ";B10;"_";C10);"""";" protocol=";B10;" dir=in ";"localport=";"""";C10;"""";" RemoteIP=";"""";I10;"""";" action = allow");ZŁĄCZ.TEKSTY(Konfiguracja!$B$15;"""";D10;""" dir=in program=""";F10;"""";" action=allow RemoteIP=""";I10;""""))

Gotowy zeszyt z przykładem zastosowania można pobrać tutaj.

 

Wdrożenie

Udane wdrożenie zapory sieciowej w systemie Windows powinno rozpocząć się od sprawdzenia, jaki ruch sieciowy dozwolony jest na danym serwerze. W przypadku, gdy nie ma dostępnej dokumentacji aplikacji/usług związanych z serwerem, można wspomóc się narzędziami do monitoringu ruchu sieciowego. Poniżej zamieszczam linki do kilku przydatnych stron, związanych z konfigurowaniem zapór sieciowych dla środowiska Windows.

Tabela 3 Przydatne strony MS

Przygotowanie analizy proponuje rozpocząć od zebrania podstawowych informacji:

netstat -ano - wykonanie komendy da w wyniku informację o otwartych portach
na danym serwerze w danym momencie. Aby łatwiej móc analizować wyniki można wyjście komendy przekierować do pliku, dzięki czemu będzie możliwe przeglądanie informacji np. w notatniku netstat -ano > ns.txt.

tasklist - informacja o uruchomionych procesach, tak samo jak w poprzednim narzędziu można przekierować wyjście komendy do pliku tasklist > ts.txt (połączone wyniki obu poleceń dostarczą informacji na temat uruchomionych procesów, otwartych portów oraz aktualnych połączeń). W większości wypadków analiza tych informacji wystarczy do implementacji reguł zapory sieciowej.

Po wykonaniu analizy nie wszystko zawsze będzie jasne. Wtedy dodatkowo można skorzystać z narzędzia Network Monitor lub podobnego. Narzędzie może zebrać ruch z wybranego okresu czasu, a następnie w przejrzysty sposób przeanalizować wyniki (uwaga! przy mocno obciążonych serwerach - duża liczba połączeń i narzędzie może znacznie obciążyć procesor maszyny powodując nawet niedostępność serwera).

Można też (w przypadku odpowiedniej infrastruktury sieciowej - przełączniki zarządzalne) przekierować ruch sieciowy z portu serwera (tzw. SPAN port) do monitora sieciowego np. WireShark i analizować pakiety, które dochodzą i wychodzą z danego serwera. Przed rozpoczęciem modyfikacji/wdrażania zapory sieciowej warto przeprowadzić skanowanie serwera nmap'em w celu sprawdzenia jakie otwarte porty są przed i po wdrożeniu zapory sieciowej.

Podsumowując, w pierwszej fazie należy przygotować analizę ruchu sieciowego, następnie należy zaimplementować odpowiednie reguły (odpowiednio dodając reguły w arkuszu danego serwera). W następnym kroku należy przeanalizować plik z logami odrzuconych pakietów serwera w celu ewentualnego dopasowania reguł zapory sieciowej. Proponuję rozpocząć wdrażanie od serwerów testowych (dopracowanie reguł dla tych serwerów przyspieszy i usprawni wdrażanie firewall na pozostałych serwerach), a następnie przejść do wdrażania zapór na kolejnych serwerach od tych najmniej krytycznych, do tych bez których przedsiębiorstwo nie jest w stanie funkcjonować prawidłowo.

Uwaga: implementacja tak przygotowanych reguł jest najbezpieczniejsza, gdy przygotowany skrypt (kolumna z poleceniami z arkusza) zostanie wklejony do notatnika lub innego edytora tekstu na danym serwerze, a następnie zapisany z rozszerzeniem bat lub cmd i wykonany.

Uwaga 2: pierwsza linia skryptu przywraca ustawienia domyślne dla zapory sieciowej. W związku z tym wszystkie istniejące reguły są kasowane i do momentu wykonania tych, nadających dostęp do serwera, jest on odcięty od ruchu przychodzącego.

Uwaga 3: w Windows 2008 domyślne reguły zapory sieciowej zezwalają na parę wyjątków. Aby się ich pozbyć, należy uruchomić przystawkę zarządzania Windows Firewall i je wyłączyć.

Przykład wdrożenia

Oryginalne środowisko, w którym zostały wdrożone zapory sieciowe, różni się od przedstawionego. Podane informacje zostały odpowiednio zmodyfikowane, np. usunięto reguły dla serwisów/aplikacji nie dostarczanych przez MS oraz tych specyficznych dla przedsiębiorstwa, w którym zostały wdrożone, ograniczono ilość serwerów.

W załączonym zeszycie MS Excel znajdują się następujące konfiguracje zapór:

  • szablon dla Windows 2003,
  • szablon dla Windows 2008,
  • serwer DC (AD, DNS, DHCP),
  • serwer WSUS/SMS 2003,
  • serwer HTTP (Sharepoint),
  • serwer SQL,
  • serwer DMZ - HTTP, FTP,
  • serwer RDP.

 

Podsumowanie

W artykule przedstawiony został sposób utworzenia zeszytu MS Excel, który pomaga zapanować nad większą ilością zapór sieciowych na serwerach Windows. Dodatkowo załączony plik może być bazą do wdrażania w ten sposób konfiguracji zapór sieciowych. W końcowej części tekstu znalazło się też kilka informacji o tym, jak można rozpocząć proces implementacji firewall w przedsiębiorstwie. Mam nadzieję, że przynajmniej dla części z Was artykuł będzie pomocny przy wdrażaniu zapór sieciowych dla serwerów MS.

foto

Autor: Marek Kulczyk (KulczykM)

Autor aktualnie pracuje na stanowisku Administratora baz danych i systemów operacyjnych w firmie produkcyjnej. Informatyką zawodowo zajmuje się od 1999 roku. Jeden z celów zawodowych to ciągłe podnoszenie kwalifikacji. Wolny czas spędza z rodziną lub grając w paintball.


Podobne artykuły

Komentarze 1 Masz uwagi do tej strony? Napisz

ldubicki 2010.09.15 15:32
0 oceń pozytywnie   oceń negatywnie 0
avatar
 

Super.

Podoba mi się sposób podejścia do tematu sprzyjający przygotowywaniu i utrzymaniu dokumentacji IT.

 

Dzięki

Dodaj komentarz

avatar

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Autor Marek Kulczyk
avatar
 

Załóż konto
WSS to serwis, który łączy dziesiątki tysięcy specjalistów IT w Polsce, zajmujących się szeroko pojętymi technologiami Microsoft. Portal działa od 2003 roku, i oprócz setek publikacji technicznych, rozwijającego się forum - portal to ludzie, którzy go tworzą. To właśnie z myślą o nich warto codziennie nas odwiedzać.

Dowiedz się więcej o WSS

vGuru - Zostań Guru Wirtualizacji

 

MetroOne

Idź na górę strony