ACL
Transkrypt
ACL
BSI – wykład 3 Proxy, protokoły, Serwer pośredniczący (PROXY) • Anonimowość w sieci? • Poprzez serwer pośredniczący łączymy się z siecią za pomocą specjalnego oprogramowania • Serwery pośredniczące mają za zadanie przyśpieszyć proces ładowania się stron www, poprzez trzymanie ich w pamięci. Rodzaje Proxy • high anonymous (całkowicie anonimowe) – serwer odbierający nie otrzymuje informacji, że korzystamy z serwera proxy, ale nie ma naszego IP • anonymous (anonimowe) - serwer odbierający otrzymuje informację, że korzystamy z serwera proxy, ale nie ma naszego IP • transparent (przezroczyste) - nasz adres IP jest jawny; szybciej ładujemy strony Inne zalety Proxy • • • • blokowanie niebezpiecznych skryptów blokowanie niechcianych reklam możliwość zarządzania cookies Czyli pewne zwiększenie bezpieczeństwa dla użytkownika • ALE: wiele stron nie dopuszcza serwerów proxy (anonimowość) Listy dostępu (Access Control List - ACL) • ACL pozwala ruterowi na decyzję, czy pozwolić wejść i/lub wyjść pakietowi w oparciu o podane kryteria. Jest konfigurowana w trybie globalnym (numery IP), ale stosowana jest na danym interfejsie; PAKIETY SĄ FILTROWANE • Filtracja rozpoczyna się od góry listy. Po „trafieniu”, zostaje podjęta przepisana akcja i dalsze przetwarzanie ACL zostaje dla danego pakietu przerwane. ACL - standardowe • Na podstawie numeru IP (wyłącznie) podejmowana jest akcja: PERMIT (pozwalaj) lub DENY (odmawiaj) • Standardowo, jeżeli nie nastąpi dopasowanie, ostatnia linijka (dla pozostałych) jest DENY Inne funkcje ACL • Ograniczenie uaktualnień przesyłanych przez protokoły tras rutingu • Definiowanie przynależności pakietów do odpowiednich kolejek (mechanizmy QoS) • Kontrolowanie dostępu do linii ssh • itp. ACL – rozszerzona – c.d. • Oprócz IP można również uwzględniać źródło i/lub przeznaczenie pakietu (ale wtedy trzeba wejść wyżej niż do warstwy transportu) • Np. pozwalaj lub nie na używanie telnet, FTP, interaktywne przeglądanie stron Listy dostępu (ACL) • Przygotowanych list na danym ruterze może być dużo. Każda musi mieć swój unikalny numer lub nazwę • Zakres numeracji dla list standardowych: 1-99 oraz 1300 – 1399 • Zakres numeracji dla list rozszerzonych : 100-199 oraz 2000 - 2699 Numeracja list dla innych systemów i protokołów • RouterA(config)#access-list ? <1-99> IP standard access list <100-199> IP extended access list <200-299> Protocol type-code access list <300-399> DECnet access list <400-499> XNS standard access list <500-599> XNS extended access list <600-699> Appletalk access list <700-799> 48-bit MAC address access list <800-899> IPX standard access list <900-999> IPX extended access list <1000-1099> IPX SAP access list <1100-1199> Extended 48-bit MAC address access list <1200-1299> IPX summary address access list ACL – c.d. • Może istnieć tylko jedna lista na interfejs, na protokół lub na kierunek (np. jedna ACL na IP przychodzące i jedna na wychodzące). Musi być zainstalowana. • Każda lista musi mieć przynajmniej jedną komendę „permit”, inaczej byłoby to zamknięcie interfejsu (jako ‘default’ wszystkie pozostałe IP są odrzucane) • Gdy przypisana lista dostępu jest pusta – przepuszczany jest cały ruch Schemat blokowy ACL START TAK NIE NIE Zgodność wzorca Udzielić dostępu Koniec listy NIE TAK TAK PERMIT DENY KONIEC Model TCP/IP - protokoły • 5. Application layer (DHCP – Dynamic Host Configuration Protocol, DNS – Domain Name Service, FTP – File Transfer Protocol, TELNET, SSH – Secure Shell Encryption…) • 4. Transport layer (TCP – Transport Control Protocol, UDP – User Datagram Protocol, IGMP – Internet Group Management Protocol, ICMP – Internet Control Message Protocol (also v. 6), …) • 3. Network/Internet Layer (IPv4, IPv.6, OSPF – Open Shortest Path First, ARP – Address Resolution Protocol, …) • 2. Data link layer (Token Ring, Ethernet, GPRS – General Packet Radio Service, …) • 1. Physical layer ACL standardowe • „sięgają” tylko do zawartości protokołu IP (warstwa sieci) • Funkcje IP: • • • • • Source routing Operacje routingu Loose and strict routing Opcja zapisywania trasy (Route-Recording Option) Opcja zapisywania czasu (Timestamp Option) – w milisekundach, wg Greenwitch • Moduł ICMP (Internet Control Message Protocol ) IP – Datagram nagłówka VERSION (4) HEADER LENGTH (4) TYPE OF SERVICE (8) TOTAL LENGTH (16) FLAGS (3) FRAGMENT OFFSET (13) TIME TO LIVE (8) PROTOCOL (8) c.d. HEADER CHECKSUM (16) SOURCE ADDRESS (32) DESTINATION ADDRESS (32) OPTIONS AND PADDING (Variable) DATA (Variable) Struktura pakietu IP po 32 bity • • • • • • • Bity 0-3 wersja IP 4-7 długość nagłówka 8-15 typ usługi (Type of Service) 16-31 całkowita długość pakietu + (0-15) numer ID + (16-18) Flagi + (19-31) Offset (przesunięcie) c.d. • • • • • • • ++ (0-7) TTL – czas życia pakietu ++ (8-15) – protokół warstwy wyższej ++ (16-31) – Suma kontrolna nagłówka +++ (0-31) adres źródłowy IP ++++(0-31) adres docelowy IP +++++(0-18) opcje (19-31) uzupełnienie Od 192 bitu - dane Długość nagłówka • Pole zawiera 4 bity; ilość 32-bitowych słów składających się na nagłówek. Typowo nagłówek zawiera 20 bajtów, więc wartość w polu zazwyczaj wynosi 5 (0101) TOS (Type of Service) • Ustalanie priorytetu i klasy usługi (pierwsze 2 bity dają rodzaj usługi – np. ssh, ftp; „1” w trzecim bicie – to prosba o opóźnienie, w czwartym – żądanie zwiększenia przepływności, w 5 – tzw bit niezawodności – żądanie zwiększenia jakości, dwa ostatnie – zależnie od operatora; nie są ustandaryzowane) Całkowita długość pakietu • 16 bitów pozwala na ustawienie wielkości maksymalnej na 65.536 bajtów • Wszystkie bramki w sieci globalnej „muszą dać sobie radę” przynajmniej z 576 bajtów • Minimalna długość pakietu: 20 bajtów (czyli typowa długość nagłówka) ID • Potrzebny do fragmentacji i defragmentacji (pozwala odbiorcy zidentyfikować, skąd pochodzi fragment) Flagi • Wskazują, czy wolno dzielić fragment, a jeżeli tak – ostatni bit mówi, czy to jest ostatni fragment pakietu; Offset pokazuje numer fragmentu (od 0 w górę) Time to live - TTL • Liczba (8 bitów) zostaje zmniejszana przy przejściu przez każdy router. Po osiągnięciu 0 pakiet nie jest dalej przekazywany – zapobiega to nieskończonemu błąkaniu się pakietów po sieci Protokół warstwy wyższej Na przykład: • TCP – to wartość 6 • ICMP – to 1 • UDP – to 17 • OSI transport layer - 20 Główne usługi IP • Source routing (protokół warstwy wyższej [ULP] może dać listę kolejnych adresów IP aż do końcowego skoku) • Routing operations – decyzje co do soku zgodnie z listą lub tabelą dostępnych bramek (statycznych lub dynamicznych); obliczanie drogi najkrótszej • Informację o niedostępności może przesłać ICMP, IP nie ma takich mechanizmów Główne usługi IP – c.d. • Loose and strict routing • Loose – dopóki „da się”, wykorzystana jest ‘source list’, jeżeli nie ma możliwości, droga i najbliższy skok wykonywany jest zgodnie z innymi algorytmami • Strict – tylko zgodnie z ‘source list’, jeżeli nie – to wcale Główne usługi IP – c.d. • Route-Recording Option – tak, jak ‘source routing’, ale z zapisywaniem ścieżki • Timestamp Option – każdy moduł IP daje swój czas z dokładnością do milisekund, wg czasu Greenvich • ICMP module (internet control message protocol) – BO IP JEST BEZPOŁĄCZENIOWY (CONECTIONLESS) I NIE MA ŻADNYCH MECHANIZMÓW KONTROLI Aby „obsłużyć” listy rozszerzone • Pakiet musi wejść do warstwy transportu (ponad IP). Jest tam protokół TCP (obsługuje nie tylko IP) • TCP odpowiada za realizację wirtualnego kanału (end-to-end), niezawodność, pełen duplex, komunikaty ACK i NACK itd. • Daje możliwość ustalenia priorytetów i poziomu bezpieczeństwa Segment TCP (PDU) 32 bits H E A D E R P A R T Source port (16) Destination port (16) Sequence number (32) Acknowledgment number (32) Data offset Reserv ed (6) (4) UAPRSF RCSSYI GKHTNN Checksum (16) Options (Variable) DATA (Variable) Window (16) Urgent Pointer (16) Padding • Source port & Destination port – identyfikuje programy z wyższej warstwy (aplikacji), które uzywają połączenia TCP • Sequence number –numer kolejny pierwszego bajtu w polu danych użytkownika (specyfikuje położenie strumienia bajtów) • W ramach zarządzania połączeniem – podaje initial send sequence (ISS) – numer, który ma być użyty jako następna numeracja danych użytkownika • Acknowledgment number ustawiany jest na wartość, która potwierdza ostatnie otrzymane dane (wszystkie bajty do bieżącego minus jeden) • Data offset pole, które podaje ilość 32bitowych słów w nagłówku TCP; określa, gdzie zaczyna się pole danych • Reserved field –zawiera 6 bitów, które najczęściej są ustawione na 0 (zarezerwowane) Flagi • URG wskazuje, że wskaźnik (urgent pointer) jest znaczący • ACK wskazuje, czy pole potwierdzenia (acknowledgment ) jest znaczące • PSH wskazuje , że moduł wymaga ręcznej obsługi (przycisku) • RST wskazuje, że połączenie musi zostać zresetowane Flagi – c.d. • SYN wskazuje, że numery kolejne muszą być zsynchronizowane • FIN wskazuje, że wysyłający nie ma już danych do wysłania (rodzaj EOT) • Window – ustawione na wartość wskazującą ilość bajtów, które odbiornik chce przyjmować • Checksum – zawiera 16-bitowe uzupełnienie ‘1’ (uwzględnia nagłówek i dane) • Urgent pointer – wskazuje bajt z pilnymi danymi. • Options – pole umożliwia rozwój protokołu TCP; 3 opcje: 0: koniec listy opcji 1: żadnej operacji 2: maksymalny rozmiar segmentu • Padding – pole uzupełniające; główka TCP musi być parzysta wielokrotnością 32 bitów. Format UDP 32 bits SOURCE PORT DESTINATION PORT CHECKSUM LENGTH DATA Source Port: port aplikacji wysyłającej (pole opcjonalne). Jeżeli nie jest używane – wypełnione zerami • Destination Port: identyfikuje port na hoście przeznaczenia • Length – identyfikuje długość datagramu użytkownika, włącznie z główka i danymi (wartość minimalna – 8 X 8 bitów) • Checksum – 16-bitów DHCP – Dynamic Host Configuration Protocol • Znajduje się w warstwie aplikacji • Został opublikowany jako standard w roku 1993 (RFC 2131); DHCPv6 opisany w RFC 3315 jest integralną częścią opisu IPv6 • Protokół komunikacyjny - umożliwia uzyskanie od serwera danych konfiguracyjnych (adres IP hosta, bramy sieciowej, DNS, maski podsieci…) Protokół DHCP opisuje trzy techniki przydzielania adresów IP: • Ręczne • Automatyczne • Dynamiczne Przydzielanie ręczne • Prawo do pracy w sieci mają tylko komputery zarejestrowane wcześniej przez obsługę systemu. • Przydzielanie oparte jest na tablicy adresów MAC i ich odpowiednich adresów IP (tworzonej przez administratora serwera DHCP). Przydzielanie automatyczne • Przydzielanie, gdzie wolne adresy IP (z zakresu ustalonego przez administratora) są przydzielane kolejnym zgłaszającym się po nie klientom na cały czas podłączenia. Przydzielanie dynamiczne • Administrator sieci nadaje zakres adresów IP do rozdzielenia, (zwykle mniejszy niż ilość klientów). • Po starcie systemu klienci automatycznie pobierają swoje adresy ale tylko na pewien czas. (potem z tego samego adresu może skorzystać następny klient) • Taka konfiguracja powoduje, że zwykły użytkownik ma ułatwioną pracę z siecią • Niektóre serwery DHCP dodatkowo przydzielają każdemu klientowi własny adres DNS, przekazywany na serwer nazw protokołem zgodnym ze specyfikacją RFC 2136 TCP Slow Start • Procedura wolnego startu oznacza, że w protokole TCP przy rozpoczęciu sesji (nawiązaniu lub wznowieniu) stacja wysyła (lub ponownie wysyła) bardzo mało pakietów. Stopniowo prędkość jest zwiększana, jeżeli pakiety są dostarczane bez odrzucania. • ALE: jeżeli wiele strumieni TCP równocześnie rozpoczyna (i przyspiesza) transmisję, ruch w sieci załamuje się gwałtownie (kształt piły) Cykl ruchu wznoszenie do nasycenia i załamanie Główna przyczyna – kiedy kolejka w interfejsie jest pełna, ruter „nie ma wyboru” – odrzuca pakiety - TAIL DROP • ‘Tail drop’ – nadchodzące do kolejki pakiety zostają odrzucane • TCP dokona retransmisji odrzuconych pakietów, (ale, np., UDP – nie) • Najczęstsza konfiguracja kolejki, gdzie na pewno występuje to zjawisko: FIFO (firstin, first-out); ale inne algorytmy kolejkowania też mogą go doświadczać (przy priorytecie można początkowo zamiast odrzucania przenosić pakiety do kolejek o niższych priorytetach…) Weighted Fair Queuing (WFQ) • „Ważone uczciwe kolejkowanie” dynamicznie wykrywa poszczególne strumienie od różnych aplikacji i automatycznie nimi zarządza („ważone” pozwala na nadanie oddzielnym kolejkom różnych priorytetów) • W algorytmie WFQ strumienie nazywane są konwersacjami (conversations). Pojedyncza rozmowa to np. sesja Telnet, transfer FTP transfer, transmisja strony itp. • WFQ zarządza wieloma kolejkami, jedna dla danej rozmowy; sortuje nadchodzące pakiety do kolejek w oparciu o aplikację • WFQ „ujawnia” swój algorytm działania w momencie pojawienia się zatoru w wychodzącym łączu • fair-queue ustawia WFQ, no fair-queue zakazuje i ustawia strategię kolejkowania na FIFO • W niektórych interfejsach konfiguruje się WFQ jako podstawowe kolejkowanie; należy więc sprawdzić interfejs komendą: show runningconfig Oddzielne kolejki dla każdej konwersacji Marek WWW Anna Video Jacek Marek Router wykrywa Telnet FTP „czat” Anny Dla WFQ (weighed) różne prędkości opróżniania kolejek, dla FQ (fair queing) jednakowe (po kolei) Fair Queuing Versus FIFO FIFO Fair Queuing 2,D,C,B,A,1 2,D,C,B,A,1 Classifier 2,1 Telnet Queue 2,D,C,B,A,1 D,C,B,A,2,1 FTP Queue • Jeżeli pakiety 1 i 2 są małymi pakietami w porównaniu do wielkich pakietów od A do D, wtedy opróżnianie jednakowej ilości bajtów z każdej kolejki po kolei oznacza, że wiele małych pakietów może wyjść jednocześnie z oddzielnej kolejki, podczas gdy wychodzi jeden duży • Nawet, jeżeli priorytet kolejki z dużymi pakietami jest wyższy (i duże pakiety wysyłane są z większą prędkością), to nie wpływa to znacząco na kolejki z pakietami krótkimi, które są obsługiwane. fair-queue 64 128 • Taka komenda ustawia maksymalną liczbę kolejek na 128 oraz 64 jako maksymalna liczba pakietów mieszczaca się w jednej kolejce • „ważenie” i „priorytet” dają WFQ • WFQ sprawdza priorytet (the IP precedence value) pakietu, aby obliczyć wagę (weight ) i określić jak szybko pakiet będzie opuszczał swoją kolejkę. Random Early Detection (RED) • RED odrzuca pakiety losowo, w oparciu o ilość pakietów już znajdujących się w danej kolejce interfejsu; odrzucanie staje się bardziej intensywne wraz z zapełnianiem się kolejki. Gdy kolejka zostaje zapełniona – odrzucane są wszystkie nadchodzące pakiety (tail drop) • RED pozwala uniknąć kształtu zębów piły (the sawtooth pattern) spowodowanego TCP Slow Start Dlaczego walczymy z „the sawtooth pattern” : • Wykorzystanie łącza nie wynosi 100% a całkowita transmisja nie osiąga prędkości optymalnych • Prędkość transmisji wciąż się zmienia (start – wolno – szybciej – stop); Przepływność nie jest maksymalna • Trudne jest rozpoznanie, planowanie, aktualizacja sieci Procedura RED przedstawiana jest graficznie jako wolniejsze dolewanie płynu do lejka, gdy zaczyna się zapełniać WRED – Weighted RED • Kombinacja RED oraz poziomu pierwszeństwa (IP precedence): aplikacje o wysokim priorytecie doświadczają odrzucania bardzo rzadko, odrzucanie zaczyna się od kolejek o najniższych priorytetach. Committed Access Rate (CAR) • Algorytm podawania wielkości przepływu pozwala na kontrolę przepływności do lub z danego interfejsu (również np. poprzez ograniczenie prędkości, prowadzenie polityki cenowej itp.) • CAR może zostać użyty dla danego źródła lub aplikacji • Ruch, który przewyższa podany próg, może zostać odrzucony, lub przeklasyfikowany (do niższego priorytetu) Polityka prędkości Należy zdefiniować progi • Konfiguracja wskazuje na progi (thresholds), przy których podejmowane są konkretne działania Działania, które można zdefiniować przy przekraczaniu progu: • DROP – odrzuć pakiet • TRANSMIT – transmituj pakiet • CONTINUE – idź do następnego progu prędkości na liście • SET PRECEDENCE & TRANSMIT – ustaw pierwszeństwo pakietu na daną wartość i transmituj go • SET PRECEDENCE & CONTINUE – ustaw pierwszeństwo pakietu na daną wartość a potem idź do następnego progu prędkości na liście Aby zdefiniować limit prędkości, należy podać 3 liczby: • Average rate (bps) – wszystkie przepływności poniżej są zgodne z warunkiem (conform). Ruch powyżej może zostać przerywany; definiowany jest jako przekraczający (exceed) • Normal burst size (bajty) – wartość w bajtach (przedział tolerancji), po przekroczeniu jej router rozpoczyna procedurę przewidzianą w (exceed action) w stosunku do niektórych pakietów • Excess burst size (bajty) – wartość w bajtach (przedział tolerancji), po przekroczeniu jej router rozpoczyna procedurę przewidzianą w (exceed action) w stosunku do wszystkich pakietów Jeżeli wartość ustawiona jest na zero – nie ma „przedziałów tolerancji”; procedura exceed rozpoczyna się z przekroczeniem prędkości średniej. Ruch pomiędzy the normal burst size oraz the excess burst size odrzucany jest losowo (podobnie do RED), co pomaga zapobiegać całkowitemu zatkaniu się i osiągnięciu the excess burst size Działanie exceed może zostać skonfigurowane jako odrzucenie (drop), lub przeklasyfikowanie do niższego priorytetu Przykład konfiguracji: Przychodzący ruch z FTP na host Hssi0/0/0 jest ograniczony na 240 kbps przepływności, z tolerancją (burst) 32 kB. • Interface Hss0/0/0 rate-limit input access-group 101 240000 32000 32000 conform-action transmit exceed-action drop Albo: output Albo: exceed-action set-prectransmit Definicja wielu polityk (Multiple Rate Policies) dla jednego interfejsu Interface Hss0/0/0 rate-limit input access-group 101 240000 32000 32000 conform-action transmit exceed-action drop rate-limit input access-group 102 600000 24000 32000 conform-action set-prec-transmit 4 exceed-action set-prectransmit 0 rate-limit input 160000 16000 24000 conform-action transmit exceed-action drop ! access-list 101 permit tcp any any eq ftp-data access-list 102 permit tcp any any eq www Mechanizmy kontrolne w TCP dla zapobiegania przeciążeniom • Opisane w RFC 5681 (rok 2009) • • • • Slow start Congestion avoidance Fast retransmit Fast recovery Wolny start i unikanie przeciążeń • Algorytmy wolnego startu i unikania przeciążeń MUSZĄ być zastosowane przez wysyłającego w TCP, aby kontrolować ilość pozostających danych wstawianych do sieci. Zmienne sterujące • „Congestion window” – cwnd – limit po stronie wysyłającego wskazujący na ilość danych, które może wysłać do sieci przed otrzymaniem „ACK” • „Receiver’s advertised window” – rwnd – limit po stronie odbierającego wskazujący na maksymalną ilość pozostających u niego danych • Transmisję danych kontroluje wartość mniejsza • „Slow start treshold” – sstresh – wskazuje czy o transmisji decyduje algorytm wolnego startu (cwnd < ssthresh), czy zapobiegania przeciążeniom (cwnd > ssthresh) Kontrola transmisji • Dokładne algorytmy obliczania wartości zmiennych podane są w normie (RFC 5681) • Wartości te zależą od warunków transmisji, czasu czekania na „ACK”, itd. (przeliczane są „na bieżąco”) Szybka retransmisja/ szybkie odzyskiwanie • Odbiornik TCP POWINIEN przesłać natychmiast „duplicate ACK”, gdy otrzyma segment „nie-po-kolei”. • POWINIEN również przesłać natychmiast „ACK”, gdy całkowicie lub częściowo zapełni mu się luka w kolejności. • Na podstawie ilości i kolejności tych potwierdzeń nadawca TCP stosuje algorytm szybkiej retransmisji. Kontrola transmisji • Dokładne algorytmy zastosowania „fast retransmit/fast recovery” podane są w normie (RFC 5681) • Algorytmy te zależą od warunków transmisji, ilości potwierdzeń z duplikatem, czasu czekania na „ACK” bez duplikatu, itd. (wartości przeliczane są „na bieżąco”) Bezpieczeństwo wobec kontroli przeciążeń • TCP zmniejszy szybkość wysyłania przy pojawianiu się duplikowanych potwierdzeń oraz upłynięciu czasu czekania na potwierdzenie przy retransmisji – „pole do działania dla ataku” powodującego przeciążenie sieci powtórnymi pakietami Podsumowanie • Podyskutujmy o „mobilnych danych” i „mobilnych urządzeniach” i ich bezpieczeństwie (oraz bezpieczeństwie użytkowania) • Co chcemy chronić? • Jakie ryzyko niosą niejednakowe technologie i media? • Jakie są najważniejsze atrybuty bezpieczeństwa i czy zawsze takie same? Zagrożenia dla organizacji • Utrata danych • Ujawnienie danych niepowołanym osobom (lub upublicznienie) • Strata finansowa • Strata zaufania • Szkoda dla reputacji