Cała prawda o filtrowaniu pakietów

Kto pierwszy ten lepszy

W przypadku pomiaru wydajności transmisji, kryterium oceny jest jasne i łatwe do zdefiniowania: przepustowość łącza. Pięć spośród sześciu testowanych produktów osiągnęło maksymalną przepustowość łącza T-1, niezależnie od rozmiaru ramek, liczby reguł filtra pakietów i wielkości tabel rutowania (patrz wykres).

Nie powinno to zresztą budzić zdziwienia, zważywszy że wąskim gardłem w konfiguracji testowej były dwie łączące rutery linie T-1. W czasach, gdy nawet tanie biurkowe komputery są w stanie nasycić pasmo 100 Mb/s, możliwość przesyłania danych z szybkością 3 Mb/s wypada brać za pewnik, nawet gdy generowane obciążenie składa się w większości z niewielkich pakietów, a ruter musi przeglądać długie tabele trasowania i złożone reguły filtrujące.

Jedynym wyjątkiem okazał się ruter Cisco 2651. Podobnie jak pozostałe testowane urządzenia transmitował niewielkie pakiety z przepustowością łącza, ale tylko w podstawowej konfiguracji, w której nie były aktywne ani filtry pakietów i listy dostępu, ani dynamiczne tabele trasowania. Po uaktywnieniu obu mechanizmów przepustowość spadała dosłownie w oczach. Aktywacja samego tylko filtra pakietów spowodowała spadek przepustowości do 30% teoretycznego maksimum. Włączenie filtrowania i dynamicznego trasowania w przypadku dużych tabel spowodowało okresowe spadki wydajności nawet do 7% przepustowości łącza T-1. Gwoli sprawiedliwości trzeba dodać, że w dokumentacji produktu Cisco można znaleźć ostrzeżenie, iż aktywacja list kontroli dostępu może źle wpłynąć na wydajność. Uzyskane wyniki w pełni to potwierdzają.

Kłopoty rutera Cisco 2651 w tej fazie testów zasługują na krótki komentarz. Po pierwsze, aby oddać producentowi sprawiedliwość, trzeba przyznać, że żaden inżynier produktowy Cisco nie poleciłby modelu 2651 klientom o wymaganiach, które odpowiadałyby warunkom pracy symulowanym w testach. Po drugie, Cisco 2651 ma tylko 64 MB pamięci RAM. To niewiele w porównaniu z 256 MB pamięci, w które były wyposażone wszystkie konkurencyjne modele, uwzględnione w testach. Przy takiej ilości pamięci router 2651 nie był w stanie zakończyć testu z długimi tabelami trasowania, toteż - jak już wspomniano - testujący byli zmuszeni rozbudować pamięć do maksymalnej obsługiwanej w tym modelu pojemności 128 MB.

Ponieważ ruch w rzeczywistych sieciach nigdy nie składa się wyłącznie z 64-bajtowych ramek, wykonano dodatkowe testy, w których ramki miały większą długość. Ruch w Internecie składa się z niewielkich ramek tylko w przypadku pewnych szczególnych rodzajów transmisji (np. VoIP). Jednak przeciętny rozmiar ramki w sieciach IP oscyluje w granicach 300 bajtów. Są też aplikacje, które dla zwiększenia szybkości transmisji korzystają z maksymalnych obsługiwanych rozmiarów ramki. Toteż w dodatkowych testach zastosowano ramki o długości 256 i 1518 bajtów.

Cała prawda o filtrowaniu pakietów

Konfiguracja testowa

Przepustowość rutera Cisco 2651 przy transmisji 256-bajtowych ramek także znacznie odbiegała od maksymalnej teoretycznej przepływności łącza, jednak różnica nie była już tak dramatyczna jak w przypadku ramek 64-bajtowych. W najgorszym wypadku model 2651 osiągał 29% maksymalnej przepustowości łącza, co stanowi już pewną poprawę w stosunku do 7% dla ramek 64-bajtowych. Ruter Cisco wypełniał pasmo maksymalną prędkością transmisji jeszcze przy 64 aktywnych regułach filtrujących, zarówno w konfiguracji bez rutowania dynamicznego, jak i z niewielkimi tablicami trasowania. Jego wydajność spadła jednak do 29% teoretycznego maksimum, z chwilą, gdy uaktywniono długie tablice trasowania. W tej samej konfiguracji wszystkie pozostałe rutery wypełniały maksymalną przepustowość łącza. Dla ramek o długości 1518 bajtów wszystkie testowane urządzenia osiągały maksymalną przepustowość łącza, co nie powinno zaskakiwać, zważywszy że liczba rutowanych pakietów dla tej samej ilości danych jest w tym przypadku zaledwie ułamkiem liczby pakietów, jakie ruter musi przekierowywać, gdy ramki są krótsze.

Zabezpieczenia przed atakami typu "smurf" w ruterach Cisco

Do przeprowadzenia ataku smurf jest wykorzystywana postronna sieć (tzw. reflektor), która służy do zalania komputera ofiary komunikatami ICMP. Agresor wysyła na jej adres rozgłoszeniowy pakiety ICMP ECHO_REQUEST ze sfałszowanym polem źródła, zawierającym adres ofiary w miejsce rzeczywistego adresu nadawcy. W efekcie wszystkie urządzenia i komputery w sieci wykorzystanej do przeprowadzenia ataku, które są skonfigurowane, by odpowiadać na takie komunikaty, przesyłają do ofiary niechcianą "odpowiedź" ECHO_REPLY. Jeśli sieć wykorzystana jako pośrednik jest dostatecznie duża, komunikaty ICMP zalewają łącze lub blokują kolejki stosu IP w systemie operacyjnym ofiary, prowadząc do odmowy usług. Inna wersja tego ataku polega na wykorzystaniu, zamiast komunikatów ICMP, pakietów UDP, kierowanych na adres rozgłoszeniowy sieci stosowanej w roli reflektora do portu 7 (usługa echa).

Aby uchronić się od roli sieci pośredniczącej, należy w ruterach Cisco wyłączyć funkcję odpowiedzi na komunikaty rozgłoszeniowe poleceniem no ip directed-broadcast. Inny dostępny w ruterach Cisco mechanizm zabezpieczający przed atakami z wykorzystaniem pakietów ICMP to CAR (Committed Access Rate). Umożliwia on ograniczenie pasma na ruch ICMP i można z niego korzystać w wersjach 1.1CC, 11.1CE i 12.0 systemu IOS.

Nieocenionym narzędziem do automatycznego wykrywania źródła sfałszowanych pakietów ICMP jest działający na platformie ruterów Cisco skrypt Perla o nazwie dostracker. Szanse na powodzenie ataków bazujących na manipulowaniu komunikatami ICMP można też poważnie ograniczyć, stosując odpowiednie filtry, jak w poniższych przykładach.

access-list 101 permit icmp any 192.168.1.0 0.255.255.255 8

access-list 101 permit icmp any 192.168.1.0 0.255.255.255 0

access-list 101 deny ip any any log

Jak widać dopuszczamy ruch ICMP tylko w obrębie sieci 192.168.1 (wcześniejsze reguły zostały pominięte; adres nierutowany należy zamienić na rzeczywisty adres strefy zdemilitaryzowanej).

Właściwy atak poprzedza zwykle rekonesans, mający na celu zdalną identyfikację atakowanego systemu przez napastnika. Podstawą do takiej identyfikacji jest najczęściej analiza otwartych portów i charakterystyk czasowych stosu TCP/IP analizowanego systemu za pomocą narzędzi, takich jak nmap czy queso. Aby zmniejszyć szanse poprawnej identyfikacji ruterów Cisco, warto ograniczyć połączenia kierowane do charakterystycznego dla tych urządzeń portu 9001 (XRemote Service). Służy do tego np. polecenie:

access-list 101 deny tcp any any 9001

Oczywiście należy pamiętać, aby przedtem zezwolić na połączenia z portem 9001 z wybranej konsoli.


TOP 200