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 Udzielić dostępu NIE Zgodność wzorca Koniec listy 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) Data offset (4) Sequence number (32) Acknowledgment number (32) Reserv ed (6) U A P R S F R C S S Y I G K H T N N Window (16) Checksum (16) Urgent Pointer (16) Options (Variable) Padding DATA (Variable)
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ść 32- bitowych 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 Padding pole uzupełniające; główka TCP musi być parzysta wielokrotnością 32 bitów.
Format UDP 32 bits SOURCE PORT DESTINATION PORT LENGTH CHECKSUM 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 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 Anna Jacek Marek Router wykrywa WWW Video 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 2,1 Classifier 2,D,C,B,A,1 Telnet Queue 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 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 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 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 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