Sieci komputerowe. Wykład 12: Bezpieczeństwo sieci. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Podobne dokumenty
Sieci komputerowe. Wykład 11: Podstawy bezpieczeństwa sieci. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe. Wykład 11: Podstawy bezpieczeństwa: ataki i tunele. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Bezpieczeństwo sieci. Sieci komputerowe. Wykład 13. Marcin Bieńkowski

Bezpieczeństwo sieci. Sieci komputerowe. Wykład 13. Marcin Bieńkowski

Router programowy z firewallem oparty o iptables

Wdrażanie i zarządzanie serwerami zabezpieczającymi Koncepcja ochrony sieci komputerowej

iptables -F -t nat iptables -X -t nat iptables -F -t filter iptables -X -t filter echo "1" > /proc/sys/net/ipv4/ip_forward

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat zapory sieciowej (firewall) oraz oprogramowania iptables.

Zarządzanie bezpieczeństwem w sieciach

Sieci komputerowe. Zajęcia 4 Bezpieczeństwo w sieciach komputerowych

SSH. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Zapory sieciowe i techniki filtrowania danych

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

dostępu do okręslonej usługi odbywa się na podstawie tego adresu dostaniemu inie uprawniony dostep

Przesyłania danych przez protokół TCP/IP

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat zapory sieciowej.

iptables/netfilter co to takiego?

Pakiet Iptables. Filtrowanie pakietów i filtrowanie stanowe

Sieci Komputerowe Translacja adresów sieciowych

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Tomasz Greszata - Koszalin

Metody zabezpieczania transmisji w sieci Ethernet

Wykład 6: Bezpieczeństwo w sieci. A. Kisiel, Bezpieczeństwo w sieci

Wykład 3 Filtracja i modyfikacja pakietów za pomocą iptables.

Warsztaty z Sieci komputerowych Lista 9

Firewalle, maskarady, proxy

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Protokoły sieciowe - TCP/IP

Warsztaty z Sieci komputerowych Lista 8

Najprostsza odpowiedź, jaka przychodzi mi do głowy to, z powodu bezpieczeństwa.

Instalacja i konfiguracja pakietu iptables

Iptables informacje ogólne

Problemy z bezpieczeństwem w sieci lokalnej

ZiMSK. Konsola, TELNET, SSH 1

Pakiet Iptables. Filtrowanie pakietów i filtrowanie stanowe

Metody ataków sieciowych

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 25

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

4. Podstawowa konfiguracja

Firewalle, maskarady, proxy

Bezpieczeństwo w M875

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 24

Usługi sieciowe systemu Linux

Co to jest iptables?

Zadania do wykonania Firewall skrypt iptables

Tomasz Greszata - Koszalin

Najbardziej popularne metody włamań

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Którą normę stosuje się dla okablowania strukturalnego w sieciach komputerowych?

Sieci komputerowe. Wykład 11: Podstawy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Bazy Danych i Usługi Sieciowe

Spoofing. Wprowadzenie teoretyczne

Protokół IPsec. Patryk Czarnik

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

Firewalle, maskarady, proxy

BEZPIECZEŃSTWO W SIECIACH

Adresy w sieciach komputerowych

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Problemy z bezpieczeństwem w sieci lokalnej

Protokoły zdalnego logowania Telnet i SSH

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Wybrane metody obrony przed atakami Denial of Service Synflood. Przemysław Kukiełka

Problemy techniczne SQL Server

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

Laboratorium Sieci Komputerowych - 2

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

SSH - Secure Shell Omówienie protokołu na przykładzie OpenSSH

Protokół IPsec. Patryk Czarnik. Bezpieczeństwo sieci komputerowych MSUI 2010/11. Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski

Zarządzanie bezpieczeństwem w sieciach dr inż. Robert Banasiak, mgr inż. Rafał Jachowicz, Instytut Informatyki Stosowanej PŁ, 2013

Sieci komputerowe - administracja

Firewalle, maskarady, proxy

Protokół DHCP. DHCP Dynamic Host Configuration Protocol

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Telnet. Telnet jest najstarszą i najbardziej elementarną usługą internetową.

ZiMSK. Charakterystyka urządzeń sieciowych: Switch, Router, Firewall (v.2012) 1

Bezpieczeństwo systemów informatycznych

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

IP Spoofing is still alive... Adam Zabrocki ( nie działa ;) ) pi3@itsec.pl (lub oficjalnie: adam@hispasec.com)

Firewall bez adresu IP

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 11

ZiMSK NAT, PAT, ACL 1

Metody uwierzytelniania klientów WLAN

Przełączanie i Trasowanie w Sieciach Komputerowych

Ping. ipconfig. getmac

CONFidence 13/05/2006. Jarosław Sajko, PCSS

Pytanie 1 Z jakich protokołów korzysta usługa WWW? (Wybierz prawidłowe odpowiedzi)

DHCP + udostępnienie Internetu

Bazy danych i usługi sieciowe

ANALIZA BEZPIECZEŃSTWA SIECI MPLS VPN. Łukasz Polak Opiekun: prof. Zbigniew Kotulski

ARP Address Resolution Protocol (RFC 826)

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Transkrypt:

Sieci komputerowe Wykład 12: Bezpieczeństwo sieci Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 12 1 / 57

Spis treści 1 Ataki Złe protokoły Błędy implementacji Czynnik ludzki Ataki typu DoS 2 Szyfrowanie 3 Zapora Filtry pakietów Podstawy konfiguracji iptables Sieci komputerowe (II UWr) Wykład 12 2 / 57

Ataki Ataki Sieci komputerowe (II UWr) Wykład 12 3 / 57

Ataki Poruszane kwestie: Nieuprawniony dostęp do informacji przechowywanych na komputerach wysyłanych przez sieć Zakłócanie pracy systemu/systemów (ataki DoS) Atak = próba uzyskania nieuprawnionego dostępu do usług lub/i informacji Sieci komputerowe (II UWr) Wykład 12 4 / 57

Ataki Poruszane kwestie: Nieuprawniony dostęp do informacji przechowywanych na komputerach wysyłanych przez sieć Zakłócanie pracy systemu/systemów (ataki DoS) Atak = próba uzyskania nieuprawnionego dostępu do usług lub/i informacji Sieci komputerowe (II UWr) Wykład 12 4 / 57

Ataki Złe protokoły Źródło ataków nr 1: Źle zaprojektowane protokoły Sieci komputerowe (II UWr) Wykład 12 5 / 57

Podsłuchiwanie (1) Ataki Złe protokoły Ethernet Koncentratory (huby) tryb nasłuchu (promiscous mode). Przełaczniki sieciowe: przepełnianie pamięci CAM. Przełacznik ma sprzętowa tablicę haszujac a (CAM = content addressable memory) z wpisami adres MAC port. Zmieniajac adres MAC można zalać CAM nowymi wpisami przełacznik przejdzie w tryb uczenia się. ARP spoofing animacja. Częściowe rozwiazanie: dobre i drogie przełaczniki. Sieci komputerowe (II UWr) Wykład 12 6 / 57

Podsłuchiwanie (2) Ataki Złe protokoły Wyższe warstwy: ataki typu man-in-the-middle Podsłuchujemy przez wstawienie swojego komputera pomiędzy strony nieszyfrowanej komunikacji. Jak przekierowac ruch przez siebie? Jesteśmy odpowiednim routerem. RIP spoofing Własny serwer DHCP. Własny bezprzewodowy punkt dostępowy (własny punkt nazywajacy się stud-wifi?) Zatruwanie pamięci podręcznej serwera DNS.... Sieci komputerowe (II UWr) Wykład 12 7 / 57

IP spoofing Ataki Złe protokoły Fałszowanie adresu źródłowego IP Jedyny problem: sprawić, żeby taki pakiet został przepuszczony przez routery. Rozwiazanie: weryfikacja (tzw. ingress filtering). Przykładowo z interfejsu sieciowego podłaczonego do sieci 192.168.0.0/24 nie powinien nadejść pakiet z źródłowym IP 200.200.200.200 Skuteczne jeśli router jest blisko nadawcy. Sieci komputerowe (II UWr) Wykład 12 8 / 57

Ataki Błędy implementacji Źródło ataków nr 2: Zła implementacja Sieci komputerowe (II UWr) Wykład 12 9 / 57

Błedy implementacji Ataki Błędy implementacji Brak sprawdzania poprawności wprowadzanych danych Błędy przepełnienia bufora,../, SQL injection... Atakujacy zmusza nasza aplikację do wykonania pewnych nieprzewidzianych operacji. Sieci komputerowe (II UWr) Wykład 12 10 / 57

adresy rosną Ataki Błędy implementacji Przykład 1: przepełnienie bufora void wczytaj_dane () { char str[12]; scanf ("\%s", str); } stos procesu adres powrotu z wczytaj dane() Atakujacy wpisuje Jakieś 12 znaków Odpowiedni adres powrotu Kod maszynowy do uruchomienia str[12] Sieci komputerowe (II UWr) Wykład 12 11 / 57

adresy rosną Ataki Błędy implementacji Przykład 1: przepełnienie bufora void wczytaj_dane () { char str[12]; scanf ("\%s", str); } stos procesu złosliwy kod adres powrotu z wczytaj dane() Atakujacy wpisuje Jakieś 12 znaków Odpowiedni adres powrotu Kod maszynowy do uruchomienia str[12] Sieci komputerowe (II UWr) Wykład 12 11 / 57

Przykład 2: atak typu../ Ataki Błędy implementacji Pomocniczy skrypt WWW skrypt jest w katalogu /var/www/. skrypt jest programem wyświetlajacym zawartość pliku. Przykładowo http://jakas.domena/skrypt?plik=test wyświetla zawartość pliku /var/www/test. Co zrobi wejście na stronę http://jakas.domena/skrypt?plik=../../etc/passwd? Sieci komputerowe (II UWr) Wykład 12 12 / 57

Przykład 2: atak typu../ Ataki Błędy implementacji Pomocniczy skrypt WWW skrypt jest w katalogu /var/www/. skrypt jest programem wyświetlajacym zawartość pliku. Przykładowo http://jakas.domena/skrypt?plik=test wyświetla zawartość pliku /var/www/test. Co zrobi wejście na stronę http://jakas.domena/skrypt?plik=../../etc/passwd? Sieci komputerowe (II UWr) Wykład 12 12 / 57

Ataki Błędy implementacji Przykład 3: bład typu SQL injection Aplikacja WWW odwołujaca się do bazy Skrypt dostaje przez formularz argument $user i wykonuje polecenie mysql_query("select * FROM tab WHERE user = $user "); Podajemy w tym polu: x OR 1 = 1 Albo lepiej: x ; DROP TABLE tab; - - Sieci komputerowe (II UWr) Wykład 12 13 / 57

Ataki Błędy implementacji Przykład 3: bład typu SQL injection Aplikacja WWW odwołujaca się do bazy Skrypt dostaje przez formularz argument $user i wykonuje polecenie mysql_query("select * FROM tab WHERE user = $user "); Podajemy w tym polu: x OR 1 = 1 Albo lepiej: x ; DROP TABLE tab; - - Sieci komputerowe (II UWr) Wykład 12 13 / 57

Ataki Błędy implementacji Przykład 3: bład typu SQL injection Aplikacja WWW odwołujaca się do bazy Skrypt dostaje przez formularz argument $user i wykonuje polecenie mysql_query("select * FROM tab WHERE user = $user "); Podajemy w tym polu: x OR 1 = 1 Albo lepiej: x ; DROP TABLE tab; - - Obrazek ze strony http://xkcd.com/ Sieci komputerowe (II UWr) Wykład 12 13 / 57

Ataki Błędy implementacji Przykład 4: wysyłanie części RAM procesu Protokół definiuje, że możemy otrzymać od serwera jakiś fragment przechowywanej przez niego tablicy. Klient prosi go o więcej niż rozmiar tablicy + serwer nie sprawdza tego rozmiaru. Serwer odsyła część pamięci procesu. Przykład: SSL heartbleed Inny wariant: standardy określaja minimalna ilość danych do wysłania (np. ramka ethernetowa). Jeśli pamięć na wypełnienie nie zostanie wyzerowana, to wyślemy część pamięci procesu. Sieci komputerowe (II UWr) Wykład 12 14 / 57

Błędy w implementacji Ataki Błędy implementacji Programista: ZAWSZE sprawdzać poprawność danych od użytkownika W szczególności nigdy nie zakładać, że użytkownik używa przepisowego klienta usługi. Administrator: Częsta aktualizacja systemu Różne ogólne techniki zapobiegawcze, np. zabronienie wykonywania programów na stosie. Program A działajacy z uprawnieniami B ma lukę atakujacy może wykonać to, na co pozwalaja uprawnienia B złota zasada minimalnych uprawnień. Tylko potrzebne usługi i tylko tym, którym sa one konieczne. Sieci komputerowe (II UWr) Wykład 12 15 / 57

Exploits Ataki Błędy implementacji Luki i gotowe sposoby ich wykorzystania (exploits) sa publikowane na specjalistycznych stronach (np. Security Focus). Te programy sa często wykorzystywane przez niedoświadczonych włamywaczy. Często wystarczy drobna zmiana, typu zmiana portu na którym nasłuchuje SSH, żeby taki program nie działał (security by obscurity). Sieci komputerowe (II UWr) Wykład 12 16 / 57

Ataki Robaki internetowe (worms) Błędy implementacji Luki wykorzystywane sa też w automatyczny sposób przez robaki internetowe. Zainfekowane komputery staja się częścia większej sieci (botnet) rozsyłanie spamu przeprowadzanie ataków DDoS Sieci komputerowe (II UWr) Wykład 12 17 / 57

Skanowanie portów Ataki Błędy implementacji Wyszukiwanie otwartych portów nmap Przykładowe rodzaje: connect scan, SYN scan, ustawianie różnych dziwnych flag (np. sama flaga ACK). Najczęściej wykorzystywane narzędzie w filmach! https://nmap.org/movies/ Sieci komputerowe (II UWr) Wykład 12 18 / 57

Podatność na ataki Ataki Czynnik ludzki Omówiliśmy dwie przyczyny: Złe zaprojektowanie protokołów komunikacyjnych......i zła ich implementacja. Ale po co to wszystko? Każdy system jest tak bezpieczny jak jego najsłabsze ogniwo... Sieci komputerowe (II UWr) Wykład 12 19 / 57

Podatność na ataki Ataki Czynnik ludzki Omówiliśmy dwie przyczyny: Złe zaprojektowanie protokołów komunikacyjnych......i zła ich implementacja. Ale po co to wszystko? Każdy system jest tak bezpieczny jak jego najsłabsze ogniwo... Sieci komputerowe (II UWr) Wykład 12 19 / 57

Czynnik ludzki Ataki Czynnik ludzki Po co włamywać się na serwer, skoro można zadzwonić i spytać o hasło? Kevin Mitnick Sieci komputerowe (II UWr) Wykład 12 20 / 57

Phishing Ataki Czynnik ludzki Uwaga! Użytkownik???? wiadomość: przesyła Tobie następującą Witaj!, KOCHAJMY SIĘ Dalsza część wiadomości dostępna jest tutaj: http://www5.nasza-klasa.pl/profile/872276 (http://www5.nasza-klasa.pl.rdir84.com/profile/?873105 Copyright (c) 2006-2008 nasza-klasa.pl, korzystanie z serwisu oznacza akceptacje regulaminu. Sieci komputerowe (II UWr) Wykład 12 21 / 57

Czynnik ludzki, cd. Ataki Czynnik ludzki Wykorzystanie tańczacych świnek daje 95% szansy na uruchomienie złośliwego kodu na cudzym komputerze! Obrazek ze strony http://www.securingjava.com/chapter-one/chapter-one-7.html Sieci komputerowe (II UWr) Wykład 12 22 / 57

Ataki Ataki typu DoS Denial of Service czyli blokowanie dostępu do usług Sieci komputerowe (II UWr) Wykład 12 23 / 57

Ataki Blokowanie dostępu do usługi Ataki typu DoS Denial of service Cel: wyczerpanie zasobów systemu operacyjnego albo zatkanie łacza. Jakie zasoby możemy wyczerpać: moc obliczeniowa, limit jednoczesnych połaczeń (connect()), SYN flood = wysyłanie samych segmentów SYN zapełnienie tworzonej przez listen() kolejki połaczeń oczekujacych na nawiazanie. Sieci komputerowe (II UWr) Wykład 12 24 / 57

Odmiany DoS Ataki Ataki typu DoS DoS wykonywany z już przejętych komputerów lub/i ze sfałszowanych adresów źródłowych IP. DDoS = rozproszony DoS (wykorzystanie wielu komputerów, np. uprzednio zainfekowanych robakiem internetowym). Odbity (reflected) DoS Wysyłamy do różnych komputerów komunikat z fałszywym adresem źródłowym = adres IP ofiary komputery odpowiadaja ofierze. Komunikat = segment SYN, ICMP echo request (ping). Przykład: smurf attack = wysyłamy ping na adres broadcast z podmienionym adresem IP ofiary. Sieci komputerowe (II UWr) Wykład 12 25 / 57

Odmiany DoS Ataki Ataki typu DoS DoS wykonywany z już przejętych komputerów lub/i ze sfałszowanych adresów źródłowych IP. DDoS = rozproszony DoS (wykorzystanie wielu komputerów, np. uprzednio zainfekowanych robakiem internetowym). Odbity (reflected) DoS Wysyłamy do różnych komputerów komunikat z fałszywym adresem źródłowym = adres IP ofiary komputery odpowiadaja ofierze. Komunikat = segment SYN, ICMP echo request (ping). Przykład: smurf attack = wysyłamy ping na adres broadcast z podmienionym adresem IP ofiary. Sieci komputerowe (II UWr) Wykład 12 25 / 57

Obrona przed DDoS Ataki Ataki typu DoS Przed DDoS można się bronić tylko jeśli pochodzi z jednego geograficznego obszaru Problem: ustalenie źródła ataków (źródłowe adresy IP sa podrobione), potem można zadzwonić do odpowiedniego administratora ICMP Traceback Każdy router dla przesyłanego pakietu, z małym prawdopodobieństwem (ok. 1/20.000), wysyła do odbiorcy dodatkowo komunikat ICMP Komunikat zawiera informacje o przesyłanym właśnie przez router pakiecie, informacje o routerze, etc. Sieci komputerowe (II UWr) Wykład 12 26 / 57

Szyfrowanie Szyfrowanie = sposób na podsłuchiwanie Sieci komputerowe (II UWr) Wykład 12 27 / 57

SSL Szyfrowanie Warstwa szyfrujaca pomiędzy warstwa transportowa a warstwa aplikacji. Większość popularnych usług ma swoje warianty wykorzystujace SSL działajace na tym samym lub innym porcie (HTTPS, POP3+SSL, SMTP+SSL,...) Sieci komputerowe (II UWr) Wykład 12 28 / 57

Szyfrowanie SSL (przypomnienie) Standardowe podejście oparte od kryptografię asymetryczna Serwer wysyła klientowi swój klucz publiczny Klient generuje symetryczny klucz sesji (np. AES) i wysyła go szyfrujac go kluczem publicznym serwera. Od tej pory połaczenie szyfrowane jest kluczem sesji. Klient się uwierzytelnia podajac swoje hasło. Uwierzytelnianie serwera Za pomoca certyfikatu (klucz publiczny serwera jest podpisany przez CA i możemy zweryfikować autentyczność tego podpisu). Sieci komputerowe (II UWr) Wykład 12 29 / 57

Szyfrowanie SSH (Secure SHell) Standardowe narzędzie pracy zdalnej (w terminalu tekstowym). Następca nieszyfrowanego telneta. Proste użycie: ssh user@host Mechanizmy szyfrowania jak przy SSL. Co z uwierzytelnianiem serwera? Sieci komputerowe (II UWr) Wykład 12 30 / 57

Szyfrowanie Serwerze, czy to ty? Znowu nie wiemy, czy łaczymy się z dobrym serwerem! Przy pierwszym połaczeniu: The authenticity of host ssh-server.example.com (12.18.429.21) can t be established. RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d. Are you sure you want to continue connecting? tzn. serwer przesyła nam klucz publiczny, program klienta oblicza funkcje skrótu klucza. Czynnik ludzki: kto dzwoni do administratora serwera i weryfikuje, czy funkcja skrótu (fingerprint) ma poprawna wartość? Po zaakceptowaniu klucz publiczny serwera zapisany w /.ssh/known_hosts. Sieci komputerowe (II UWr) Wykład 12 31 / 57

Szyfrowanie Serwerze, czy to ty? Znowu nie wiemy, czy łaczymy się z dobrym serwerem! Przy pierwszym połaczeniu: The authenticity of host ssh-server.example.com (12.18.429.21) can t be established. RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d. Are you sure you want to continue connecting? tzn. serwer przesyła nam klucz publiczny, program klienta oblicza funkcje skrótu klucza. Czynnik ludzki: kto dzwoni do administratora serwera i weryfikuje, czy funkcja skrótu (fingerprint) ma poprawna wartość? Po zaakceptowaniu klucz publiczny serwera zapisany w /.ssh/known_hosts. Sieci komputerowe (II UWr) Wykład 12 31 / 57

Szyfrowanie Uwierzytelnianie klienta Może po prostu podać hasło do konta. Albo... tak, to już było: klient = Alicja serwer = Bob Serwer zna klucz publiczny klienta, bo klient go uprzednio zapisał w pliku authorized_keys na serwerze. Sieci komputerowe (II UWr) Wykład 12 32 / 57

Szyfrowanie Uwierzytelnianie klienta Może po prostu podać hasło do konta. Albo... tak, to już było: To ja, Alicja. X Y = E a (X) klucz prywatny: a klucz publiczny: A zna: A sprawdza, czy E A (Y ) = X klient = Alicja serwer = Bob Serwer zna klucz publiczny klienta, bo klient go uprzednio zapisał w pliku authorized_keys na serwerze. Sieci komputerowe (II UWr) Wykład 12 32 / 57

Zastosowania Szyfrowanie Za pomoca ssh można też: uruchamiać zdalnie polecenia: ssh serwer "polecenie_zdalne" kopiować pliki na zdalny serwer: scp plik_lokalny serwer:/katalog/zdalny/ albo z powrotem: scp -r serwer:/katalog/zdalny/ /katalog/lokalny/ Sieci komputerowe (II UWr) Wykład 12 33 / 57

Szyfrowanie Co z innymi usługami, nie posiadajacymi wariantu SSL? Sieci komputerowe (II UWr) Wykład 12 34 / 57

Tunelowanie Szyfrowanie Model warstwowy protokół warstwy i + 1 jest przesyłany jako dane protokołu warstwy i. Tunelowanie Przesyłanie pewnych usług sieciowych za pomoca innych usług sieciowych w sposób łamiacy standardowy model warstwowy. Cel: zestawianie wirtualnego bezpośredniego połaczenia między dwoma odległymi komputerami. Sieci komputerowe (II UWr) Wykład 12 35 / 57

Szyfrowanie Przykład 1: Segmenty TCP w SSH Jeśli mamy konto na zdalnej maszynie, możemy szyfrować połaczenia z tymi usługami za pomoca ssh. Przykładowo ssh -L 4025:localhost:25 user@zdalny-serwer przekazuje segmenty TCP skierowane do portu 4025 lokalnego komputera w (zaszyfrowanych) danych SSH do zdalny-serwer (do portu 22) a następnie do portu 25 zdalny-serwer. Obrazek ze strony http://www.ssh.com/support/documentation/online/ssh/adminguide/32/port_forwarding.htm Sieci komputerowe (II UWr) Wykład 12 36 / 57

Przykład 2: VPN Szyfrowanie VPN = Wirtualna sieć prywatna (Virtual Private Network) Zadanie: mamy dwie sieci połaczone Internetem i chcemy zrobić z nich jedna logiczna sieć. Transmisja wewnatrz każdej z nich jest bezpieczna, ale transmisja w Internecie już nie. Przykład: dostęp do firmowej sieci z domu. Sieci komputerowe (II UWr) Wykład 12 37 / 57

Szyfrowanie Przykład 2: VPN, cd. Obrazek ze strony http://openmaniak.com/openvpn.php Sieci komputerowe (II UWr) Wykład 12 38 / 57

Zapora Zapora (firewall) Sieci komputerowe (II UWr) Wykład 12 39 / 57

Po co? Zapora Pierwsza linia obrony Rejestrowanie i kontrolowanie dostępu do usług Rejestrowanie ataków i skanów portów Sieci komputerowe (II UWr) Wykład 12 40 / 57

Gdzie? Zapora Często zapora jest osobnym komputerem, pełniacym też funkcję routera: Sieci komputerowe (II UWr) Wykład 12 41 / 57

Polityka Zapora Zapora realizuje pewna politykę bezpieczeństwa. Przykładowo: Wpuszcza pakiety do serwerów organizacji (do określonych portów). Wpuszcza pakiety do portu SSH serwerów tylko z sieci wewnętrznej. Nie wpuszcza pakietów do sieci wewnętrznej.... Sieci komputerowe (II UWr) Wykład 12 42 / 57

Zapora = filtr pakietów Zapora Filtry pakietów Podział ze względu na warstwę działania: (3) filtry proste (4) filtry stanowe (5) filtry działajace w warstwie aplikacji Sieci komputerowe (II UWr) Wykład 12 43 / 57

Zapora Klasyfikacja filtrów pakietów Filtry proste Analizuja tylko nagłówki IP. Szybkie, bardzo nieprecyzyjne. Filtry stanowe Filtry pakietów Analizuja nagłówki IP i TCP Śledza trójstanowe uzgodnienie, pamiętaja stan połaczenia Rozumieja numery sekwencyjne lepsza odporność na fałszowanie nagłówków. Filtry działajace w warstwie aplikacji Analizuja zawartość segmentów i datagramów Np. w przypadku FTP rozumieja że trzeba otworzyć odpowiedni port na dane. To coś innego niż zapory aplikacji (które analizuja wywołania systemowe aplikacji) Sieci komputerowe (II UWr) Wykład 12 44 / 57

Zapora Klasyfikacja filtrów pakietów Filtry proste Analizuja tylko nagłówki IP. Szybkie, bardzo nieprecyzyjne. Filtry stanowe Filtry pakietów Analizuja nagłówki IP i TCP Śledza trójstanowe uzgodnienie, pamiętaja stan połaczenia Rozumieja numery sekwencyjne lepsza odporność na fałszowanie nagłówków. Filtry działajace w warstwie aplikacji Analizuja zawartość segmentów i datagramów Np. w przypadku FTP rozumieja że trzeba otworzyć odpowiedni port na dane. To coś innego niż zapory aplikacji (które analizuja wywołania systemowe aplikacji) Sieci komputerowe (II UWr) Wykład 12 44 / 57

Zapora Klasyfikacja filtrów pakietów Filtry proste Analizuja tylko nagłówki IP. Szybkie, bardzo nieprecyzyjne. Filtry stanowe Filtry pakietów Analizuja nagłówki IP i TCP Śledza trójstanowe uzgodnienie, pamiętaja stan połaczenia Rozumieja numery sekwencyjne lepsza odporność na fałszowanie nagłówków. Filtry działajace w warstwie aplikacji Analizuja zawartość segmentów i datagramów Np. w przypadku FTP rozumieja że trzeba otworzyć odpowiedni port na dane. To coś innego niż zapory aplikacji (które analizuja wywołania systemowe aplikacji) Sieci komputerowe (II UWr) Wykład 12 44 / 57

Netfilter / iptables Zapora Filtry pakietów Netfilter / iptables = filtr pakietów w Linuksie Filtr stanowy. Elementy filtra działajacego w warstwie aplikacji (możliwość śledzenia połaczeń niektórych protokołów (np. FTP). Sieci komputerowe (II UWr) Wykład 12 45 / 57

Zapora Przetwarzanie pakietów (1) Podstawy konfiguracji iptables Sieci komputerowe (II UWr) Wykład 12 46 / 57

Zapora Przetwarzanie pakietów (2) Podstawy konfiguracji iptables 5 głównych modułów (chains) filter INPUT filter OUTPUT filter FORWARD nat PREROUTING nat POSTROUTING Każdy moduł to ciag reguł (warunek + akcja). Reguły sprawdzane po kolei. Domyślna polityka modułu (niepasujace pakiety). Sieci komputerowe (II UWr) Wykład 12 47 / 57

Zapora Podstawy konfiguracji iptables Przykład: Stacja robocza z usługa SSH Przykład iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -p tcp --dport 22 -j ACCEPT Czy to bedzie działać? Połaczenia z zewnatrz do portu SSH: tak. Pakiety wychodzace np. do portu 80 beda wypuszczane, ale odpowiedzi na nie beda odrzucane! Jak sobie z tym radzić? Sieci komputerowe (II UWr) Wykład 12 48 / 57

Zapora Podstawy konfiguracji iptables Przykład: Stacja robocza z usługa SSH Przykład iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -p tcp --dport 22 -j ACCEPT Czy to bedzie działać? Połaczenia z zewnatrz do portu SSH: tak. Pakiety wychodzace np. do portu 80 beda wypuszczane, ale odpowiedzi na nie beda odrzucane! Jak sobie z tym radzić? Sieci komputerowe (II UWr) Wykład 12 48 / 57

Stan połaczeń Zapora Podstawy konfiguracji iptables W przypadku filtrów prostych: heurystyki Zazwyczaj lokalne porty sa >= 32678. Można zatem dodać regułę iptables -A INPUT -p tcp -m multiport - -dports 32768:65535 -j ACCEPT Nieprecyzyjne i nie bardzo bezpieczne. W przypadku filtrów stanowych iptables -A INPUT -m state - -state ESTABLISHED -j ACCEPT Sieci komputerowe (II UWr) Wykład 12 49 / 57

Odrzucanie połaczeń Zapora Podstawy konfiguracji iptables Pakiety można odrzucać na dwa sposoby: Zgodny z RFC: przez -j REJECT. Nasz serwer odpowie wtedy komunikatem IMCP icmp-port-unreachable Ciche porzucenie pakietu przez -j DROP. Serwer nie odpowiada nic. Utrudnia to pracę skanerów portów, gdyż musza wtedy czekać na timeout dla połaczenia. Sieci komputerowe (II UWr) Wykład 12 50 / 57

Przykładowe warunki Zapora Podstawy konfiguracji iptables W cześci warunku reguły moga znajdować się następujace elementy: -i eth0: pakiet przychodzi z interfejsu eth0 -o eth1: pakiet wychodzi przez interfejs eth1 -p tcp udp icmp: pakiet jest pakietem danego protokołu -s 10.1.2.0/24: pakiet pochodzi z danego adresu IP (klasy adresów) -d 10.0.2.0/24: pakiet idzie do danego adresu IP - -dport: pakiet jest wysłany na określony port - -sport: pakiet jest wysłany z określonego portu Sieci komputerowe (II UWr) Wykład 12 51 / 57

Zapora Podstawy konfiguracji iptables Przykład: zapobieganie fałszowaniu adresów IP Na interfejsie eth0 należacym do sieci zewnętrznej nie powinny pojawiać się pakiety z adresami źródłowymi należacymi do lokalnej sieci (192.168.0.0/24). iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j DROP Sieci komputerowe (II UWr) Wykład 12 52 / 57

Zapora Podstawy konfiguracji iptables Analizowanie danych warstwy aplikacji Po właczeniu odpowiednich modułów, za pomoca reguły iptables -A INPUT -m state -state RELATED -j ACCEPT wpuszczane będa pakiety jakoś zwiazane z istniejacymi połaczeniami. Przykładowo moduł ip_conntrack_ftp analizuje transmisję sterujac a protokołu FTP i otwiera odpowiednie porty dla połaczenia, którym będa przesyłane dane. Sieci komputerowe (II UWr) Wykład 12 53 / 57

Moduły nat Zapora Podstawy konfiguracji iptables Operacje zwiazane z NAT Moduł nat POSTROUTING: podmiana źródłowych adresów IP (ostatnia czynność przed wysłaniem pakietu) Moduł nat PREROUTING: podmiana docelowych adresów IP (np. przekierowanie do innego komputera) Sieci komputerowe (II UWr) Wykład 12 54 / 57

Źródłowy NAT Zapora Podstawy konfiguracji iptables Podmiana adresu źródłowego pakietu: iptables -t nat -A POSTROUTING -o eth0 -j SNAT - -to 1.2.3.4 Maskarada = szczególny przypadek źródłowego NAT. Niech eth1 będzie połaczony z siecia lokalna (z prywatnymi adresami), zaś eth0 z Internetem. Polecenie: iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j MASQUERADE Źródłowy adres pakietów będzie równy adresowi IP eth0. Przeznaczone dla interfejsów, których adresy moga zmieniać się dynamicznie. Sieci komputerowe (II UWr) Wykład 12 55 / 57

Docelowy NAT Zapora Podstawy konfiguracji iptables Podmiana adresu docelowego pakietu: iptables -t nat -A PREROUTING -i eth0 -j DNAT - -to 5.6.7.8 Przekierowanie = szczególny przypadek DNAT. Przykładowo przekierowanie ruchu wychodzacego do serwerów WWW do lokalnego serwera proxy: iptables -t nat -A PREROUTING -i eth0 -p tcp - -dport 80 -j REDIRECT - -to-port 8080 Sieci komputerowe (II UWr) Wykład 12 56 / 57

Lektura dodatkowa Zapora Podstawy konfiguracji iptables Kurose, Ross: rozdział 8 Sieci komputerowe (II UWr) Wykład 12 57 / 57