420 likes | 571 Views
Informatyka MPDI2. Wykład 6 System operacyjny Linux Bezpieczeństwo sieci. PODSTAWOWE SYSTEMY SIECIOWE. Unix system operacyjny napisany w 1969 r. w Bell Labs Linux – rodzina " uniksopodobnych " systemów operacyjnych opartych o jądro Linux.
E N D
Informatyka MPDI2 Wykład 6 System operacyjny Linux Bezpieczeństwo sieci
Unix system operacyjny napisany w 1969 r. w Bell Labs Linux – rodzina "uniksopodobnych" systemów operacyjnych opartych o jądro Linux. Linux jest jednym z przykładów wolnego i otwartego oprogramowania (opensource) Posiada wersje – tzw. dystrybucje: RedHat, Debian, Ubuntu, Fedora i inne Rola podstawowa – sieciowy system plików, usługi sieciowe (serwery), ale może także posiadać aplikacje użytkowe. Są nakładki "okienkowe" ułatwiające administrację
Serwer – scentralizowany komputer świadczący usługi dla innych - magazyn plików, m.in. dokumentów HTML, - aplikacji - mechanizmy udostępniania Modele architektury komunikacyjnej klient-serwer – – rozdzielenie funkcji komputera żądającego i komputera świadczącego usługi P2P (od ang. peer-to-peer – równy z równym) – model komunikacji bezpośredniej komputerów – kążdy może pełnić rolę klienta lub serwera
Klient/serwer– asymetryczna architektura oprogramowania w celu zwiększenia elastyczności, ułatwienia wprowadzania zmian w każdej z części. Serwer zapewnia usługi dla klientów, którzy mogą komunikować się z serwerem wysyłając żądanie (request). Np. serwer pocztowy, serwer WWW, serwer plików, serwer aplikacji. Z usług jednego serwera może zazwyczaj korzystać wielu klientów, jeden klient może korzystać jednocześnie z usług wielu serwerów. P2P- gwarantuje obydwu stronom równorzędne prawa. Każdy komputer może jednocześnie pełnić zarówno funkcję klienta jak i serwera. Implementacje modelu P2P: jaką są programy do wymiany plików w Internecie (Napster, eDonkey, eMule – czasem serwery katalogują pliki do wymiany), także Skype (protokół UDP), IRC Uwaga: Ochrona praw autorskich przy wymianie plików
Typy architektury klient/serwer: • architekturadwuwarstwowa – przetwarzanie i składowanie danych odbywa się w jednym module • np. przeglądarka klienta (1 warstwa), żąda strony statycznej od serwera HTTP (2 warstwa) • architekturatrójwarstwowa – przetwarzanie i składowanie danych następuje w dwóch osobnych modułach • np. przeglądarka klienta (1 warstwa), żąda od serwera HTTP (2 warstwa) , a ten współpracuje z bazą danych SQL (3 warstwa) – czyli serwer HTTP jest jednocześnie klientem serwera SQL • architekturawielowarstwowa – przetwarzanie, składowanie i inne operacje na danych odbywają się w wielu osobnych modułach.
Zalety • wszystkie informacje przechowywane są na serwerze - bezpieczeństwo danych. • serwer może decydować kto ma prawo do odczytywania i zmiany danych. Wady • przepustowość (duża liczba klientów) • awaria serwera
System UNIX jest: • wielodostępny • wielozadaniowy może obsługiwać jednocześnie wielu użytkowników i wykonywać jednocześnie wiele zadań
System UNIX składa się z: • jądra, • powłoki • z wielu podsystemów i programów zapewniających określone usługi np. obsługę systemu plików, urządzeń. • Jądro (ang. kernel) • Jądro zawiera zbiór programów - zarządzanie zasobami. Jądro ma kontrolę nad komputerem, a użytkownik komunikuje się z jądrem przez tzw. powłokę. • Powłoka (ang. shell)- dostęp do jądra systemu, istnieje wiele powłok (języków powłok) - powłoka Bourne'a (sh), powłoka Korna (ksh), powłoka C (csh) • Kiedy użytkownik się zaloguje, system operacyjny umieszcza go w katalogu osobistym (ang. homedirectory) i uruchamia program powłoki. Powłoka przekazuje polecenia użytkownika do jądra.
Praca zdalna na komputerze odległym • Programy komunikacyjne • telnet • putty • i inne Autoryzacja dostępu (login i hasło) Niektóre serwery umożliwiają nieautoryzowany dostęp (login : anonymous bez hasła) Bezpieczeństwo (protokoły szyfrowania transmisji (np. SSH)
System plików w Linux-ie Podobny do Windows – jeden katalog główny i drzewiasta, wspólna struktura katalogów Jeśli jest kilka dysków (także napędów optycznych) mogą być reprezentowane jako osobne katalogi (montowanie - mount) / symbol katalogu głównego (bez nazwy) . symbol katalogu bieżącego .. symbol katalogu nadrzędnego
Nazwy plików i katalogów • odróżnialne małe i duże litery! czyli mogą być dwa pliki o nazwach x i X (w Windows nie), Windows i Linux nie pozwolą na plik i katalog o tej samej nazwie) • mogą się zaczynać od cyfry, niektóre znaki różne od cyfr i liter są dozwolone, np. _, kropka (może być wiele kropek w nazwie) • nazwa zaczynająca się od kropki to plik ukryty • nie wolno używać SPACJI! wewnątrz nazwy
Ogólna składnia polecenia: polecenie-opcje parametry opcjonalne (czasem można pominąć) jak robić co robić
Podstawowe polecenia pwd wyświetla nazwę katalogu bieżącego Spis pozycji katalogu ls-l wyświetla pełną zawartość katalogu bieżącego – opcja -l pełne informacje o prawach, rozmiarze, dacie utworzenia, właścicielu ls–li - opcja i – dodatkowo numer i-węzła ll– krótki odpowiednik ls -l (nie we wszystkich systemach unixowych)
Poruszanie się po strukturze katalogów cd – change directory cd ścieżka - zmiana katalogu bieżącego cd .. - zmiana katalogu bieżącego na nadrzędny cd / - zmiana katalogu na główny cd - zmiana katalogu bieżącego na domowy użytkownika (powrót do domowego) lub cd~
Operacje na katalogach make remove move mkdir nazwa- tworzenie katalogu rmdir nazwa- usunięcie katalogu (pustego!) Usunięcie katalogu niepustego rm–rkatalog_podrz Zmiana nazwy katalogu mv nazwa_stara nazwa nowa
Operacje na plikach Tworzenie nowego pliku pustego touch plik Tworzenie nowego pliku z treścią cat>plik piszemy treść …… naciskamyCTRL+D (koniec!)
rm nazwa- usunięcie pliku rmwzorzec - usunięcie plików według wzorca znaki specjalne wzorca * zastępuje dowolny ciąg znaków ? zastępuje jeden znak
Przykłady wzorców rm * - usuwa wszystkie pliki w bieżącym katalogu ls –l p* - wyświetla pliki - nazwa na literę p (reszta dowolna) rm a?? - usuwa pliki na literę a i dwa dowolne znaki w nazwie (razem 3)
Kopiowanie plików - copy cp źródło cel Przykłady cp plik1 plik2 - źródło i cel w tym samym katalogu (bieżącym) cp ../plik1 plik2 - źródło w katalogu nadrzędnymi a cel w tym samym katalogu (bieżącym) cp plik1 ./KAT/plik2 - źródło w katalogu bieżacym a cel w podrzednym do bieżącego katalogu KAT
Zmiana nazwy (przeniesienie) pliku - move mv źródło cel Przykłady unikalna nazwa w katalogu mv plik1 plik2 - zmiana nazwy (pliku lub katalogu) (muszą być w katalogu bieżącym) mv plik1 ./katalog - przeniesienie do katalogu podrzędnego istnieje! istnieje! w katalogu bieżącym
Jeśli chcemy kopiować (przenosić, zmieniać nazwy) pliki z innych katalogów niż bieżący – trzeba podać ścieżkę np: ../plik - plik jest w katalogu nadrzędnym ../katalog/plik - plik jest w katalogu "sąsiednim" /plik – plik jest w katalogu głównym /root/plik – plik jest w katalogu root podrzędnym do głównego Dla kopiowania (przenoszenia) grupy plików można stosować wzorce nazw
Inne polecenia cat plik – listowanie zawartości pliku more plik – listowanie zawartości pliku partiami head plik – listowanie początkowej zawartości pliku tail plik – listowanie końcowej części pliku ps – lista procesów serwera find – wyszukiwanie plików cmp – porównywanie plików grep – wyszukiwanie plików wg treści df – wyświetla wielkość dostępnej przestrzeni dyskowej du – wyświetla informację o zajętości dysku who – spis zalogowanych użytkowników exit– koniec pracy w powłoce
find – wyszukiwanie plików find / -name "p*" szukaj w całym systemie plików (poczynając od katalogu głównego /) plików o nazwie na literę p find ~ -name "p*" szukaj tylko w katalogu bieżacym i strukturze folderów podrzędnych cmp – porównywanie plików cmp p1 p2 - znajdzie 1-szą różnicę cmp –l p1 p2 - znajdzie wszystkie różnice
Strumienie– kierowanie wejściem/wyjściem – domyślnie wejscie to klawiatura a wyjście to ekran ls -l > dir.txtzawartość katalogu zapisz do pliku ls -l >> dir.txt dopisanie do pliku sort < dir.txtsort (program sortujący) pobiera dane z pliku cat > plik plik ze standardowego wejścia (klawiatura) do nowego pliku – znamy to Potoki– efekty jednego polecenia przekazane dla innego ls -l | more Można łączyć strumień i potok sort <plik.txt | more
Prawa dostępu Każdy plik (katalog) ma swojego właścicielaindywidualnego (najczęściej jest to użytkownik, który utworzył plik) oraz właściciela zbiorowego (grupę). Właściciel pliku jest automatycznie członkiem grupy (czasami jest to grupa jednoosobowa).Użytkownik i grupa posiadają określone prawa do pliku Pozostałym użytkownikom mogą być przypisane określone prawa do danego pliku. Wyjątkowym użytkownikiem jest root, który posiada wszystkie prawa dostępu do każdego pliku - może je zawsze zmienić, nawet gdy nie jest właścicielem pliku. W odniesieniu do konkretnego pliku określony użytkownik może posiadać dane prawo dostępu lub też nie.
W systemie wielodostępnym istotna jest organizacja, selektywna ochrona dostępu do danych. • W Linuksie (UNIX-ie) wyróżniamy trzy rodzaje praw dostępu do pliku: • prawo czytania (r - read) • prawo pisania (w - write) • prawo wykonywania (x - execute) • Powyższe prawa w stosunku każdego pliku (katalogu) są niezależnie nadawane w trzech kategoriach: • prawa właściciela pliku • prawa użytkowników należących do określonej grupy • prawa pozostałych użytkowników
Informacja o prawach -rwxrwxrwx właściciel grupa inni d - katalog
Litera Znaczenie Parametr Liczbowy r prawo odczytu 4 w prawo zapisu 2 x prawo uruchomienia 1 - brak praw dostępu 0 W poleceniu zmiany praw sumujemy liczby chmod 000 plik ustawienie braku praw chmod 777 plik ustawienie wszystkich praw chmod 770 plik ustawienie braku praw dla innych chmod 774 plik ustawienie braku praw wykonywania i zapisu dla innych (rwxrwxr--)
Drugi sposób – metoda symboliczna u użytkownik (user) g grupa o inni + nadać - zabrać chmod o-w plik - odebranie innym prawa zapisu chmod g+x plik - nadanie grupie prawa wykonania
Posiadanie prawa dla pliku: * czytania- umożliwia otwieranie pliku i przeglądanie jego zawartości * pisania- umożliwia otwieranie pliku i modyfikację jego zawartości * wykonywania- umożliwia wykonywanie programu (jeżeli jest to plik binarny) lub skryptu powłoki Dla katalogu: prawo czytania umożliwia listowanie zawartości, prawo wykonywania dostęp do zawartości katalogu
Skrypt powłoki Tworzymy plik, którego tekstem jest ciąg poleceń, np.: • cat > plik_skryptu • mkdirnowy_kat • ls –l • ^D • Musimy jeszcze nadać plikowi prawo x(wykonania) !!! • Wówczas uruchamiamy plik: • ./plik_skryptu • Wykonywane są polecenia będące treścią pliku
Dowiązania Dowiązanie to inna nazwa tego samego pliku (pewna analogia do skrótów w Windows). Dowiązania dzielimy na sztywnewykonywane poleceniem: ln nazwa_pliku nazwa_dowiązania i dowiązania miękkie, inaczej zwane symbolicznymiwykonywane poleceniem: ln –s nazwa pliku nazwa_dowiązania
i-węzeł (ang. i-node) Struktura, w której jądro systemu przechowuje informacje o pliku. Każdy plik ma dokładnie jeden unikatowy i-węzeł - nazwę pliku skojarzoną wprost z i-węzłem nazywamy dowiązaniem sztywnym Każdy plik ma co najmniej jedno sztywne dowiązanie, utworzenie nowego dowiązania sztywnego to niejako stworzenie innej nazwy dla tego samego pliku – ma ten sam i-węzeł Dowiązanie symboliczne to skojarzenie nazwy pliku nie z jego i-węzłem, lecz z istniejącą już nazwą (ściślej: ścieżką dostępu) pliku – plik dowiązania symbolicznego jest mały i ma inny i-węzeł – to jest podobne do „skrótu” w Windows
Bezpieczeństwo w sieci Zagrożenia: • dostęp do przechowywanych danych (odtajnienie, podmiana-fałszerstwo, utrata) • dostęp do transmitowanych danych – odtajnienie, podszycie Wykorzystanie • wady protokołu TCP/IP i innych • błędy systemu – oprogramowania • zaniechania administratora
Sniffing (podsłuch transmisji danych) np. sesje TELNET czy FTP,można przechwycić hasło wymagane przy logowaniu Spoofing - podszywanie się pod legalną "zarejestrowaną" maszynę) Cracking - łamanie haseł metodą słownikową (czyli bardzo dużo prób) - "brut force" Hijacking (przechwytywanie zdalnej sesji legalnego użytkownika systemu), Keyloger - program przechwytujący wszelkie kombinacje znaków wprowadzonych z klawiatury (np. kawiarenki internetowe)
Metody przeciwdziałania Skuteczne metody autoryzacji (autentykacji) – silne hasła, autentykacja wielopoziomowa Firewalle – ściany ogniowe – oprogramowanie blokujące niechciane programy, niepożądane operacje, niebezpieczne porty transmisyjne. Dobre oprogramowanie antywirusowe Szyfrowanie przesyłanych danych – kryptografia (np. szyfrowanie asymetryczne RSA, certyfikaty, podpis elektroniczny), protokół SSL – strony https (banki!)
Ręczne urządzenia uwierzytelniające Uwierzytelnianie silne:uwierzytelnianie oparte na tym, co użytkownik posiada a nie na tym co wie (lub nie wyłącznie na tym) Ręczne urządzenia uwierzytelniające (ang. Handhold Authentication Devices): przenośne urządzenia (zwykle formatu karty kredytowej), które maja możliwość lokalnego przechowywania i przetwarzania informacji. Stosują one rozmaite techniki wytwarzania unikalnych haseł jednorazowych
Zaliczamy tu: ·tokeny ·karty kodów jednorazowych ·karty chipowe ·karty magnetyczne Prawdopodobieństwozłamania systemu zabezpieczonego jedynie hasłem jest znacznie większe niż prawdopodobieństwo złamania systemu opartego na tokenie i haśle.
Banki elektroniczne hasło znanym tylko użytkownikowi transmisja szyfrowana jest poprzez protokół SSL ze 128‑bitową długością klucza - NIEWYSTARCZAJĄCE Trzeci poziom zabezpieczeń – możliwości: • tokeny, • podpis cyfrowy, • karta kodów, • jednorazowe hasła