SPIS TREŚCI 1
Geneza powstania Internetu 2
Czym jest TCP/IP 11
HISTORIA TCP/IP 12
JAK DZIAŁA TCP/IP 14
PORTY 20
Adresy IP 24
Topologie Sieci Komputerowych 25
Rys historyczny systemu Linux 31
Zasady działania Linuxa jako systemu operacyjnego. 35
Instalacja Red Hat Linux 36
Podział dysku na partycje 36
Podstawowy system zabezpieczeń 38
Parametry jądra systemu 49
Konfiguracja jądra systemu (Kornel configuration) 54
FIREWALL 60
Architektury zapór ogniowych 63
Network Adress translation 70
Wymagania sprzętowe 76
Kryteria wyboru 77
Wady i zalety firewalli 78
SSH 79
Instalacja SSH pod Linuxem: 83
Konfiguracja serwera SSH: 85
Konfiguracja klienta SSH: 87
LINUX I WIRUSY 89
Geneza powstania Internetu
Początki: 1962-1969
W obliczu wybuchu wojny atomowej, Siły Powietrzne Stanów Zjednoczonych obarczyły niewielką grupę naukowców arcytrudnym zadaniem: stworzyć sieć transmisji danych odporną na atak nuklearny. Wysunięto rewolucyjną koncepcję sieci bez scentralizowanej kontroli. W wypadku zniszczenia jednego, dziesięciu czy stu węzłów system wciąż miał działać. Sieć taka, projektowana wyłącznie na potrzeby wojska, miała przetrwać choćby i apokalipsę - nawet gdyby nie udało się to ludziom. Nazwisko Paula Barana już zawsze kojarzone będzie z początkami Internetu. W 1962 roku pracował on w Rand Corporation, firmie której zlecono opracowanie koncepcji niezniszczalnej sieci. Pomysłem Barana była sieć, w której każdy komputer mógł komunikować się z dowolnym innym. Wtedy stanowiło to ideę rewolucyjną, zdającą się przeczyć zdrowemu rozsądkowi. Baran wiedział jednak dobrze, że sieci scentralizowane nie miały szans na przetrwanie ataku. W swojej słynnej publikacji „O komunikacji rozproszonej: I. Wprowadzenie do sieci rozproszonych” (tyt. org. On Distributed Communications: I. Introduction to Distributed Communications Network) pisze:
„Bez wątpienia sieci scentralizowane są podatne na ataki, ponieważ zniszczenie jednego, centralnego węzła oznacza koniec komunikacji pomiędzy stacjami końcowymi”[1]
Baran miał na myśli sposób, w jaki budowana była większość sieci w tamtych czasach. Opierały się one na potężnych maszynach zawierających scentralizowane informacje, tzw. Mainframe. Z czasem komputery typu mainframe określa się mianem „duży komputer’, „wielki system’, „komputer” - w odróżnieniu od mikrokomputera - czy nawet „superkomputer’; obecne odpowiedniki tej nazwy to „serwery przedsiębiorstw”, „serwery korporacyjne’, itp.) Użytkownicy mieli dostęp do informacji poprzez terminale (urządzenia z klawiaturą, monitorem i minimalnym oprogramowaniem) podłączone bezpośrednio do komputera głównego. Dane wędrowały kablem z terminala do komputera centralnego, który z kolei kierował je do innych terminali. Sieć scentralizowana działała wydajnie, ale bezpieczeństwo takiej konstrukcji było żałosne. Terminale nie mogły porozumiewać się bezpośrednio ze sobą, dlatego w przypadku uszkodzenia komputera centralnego przestawała pracować cała sieć. Baran miał na to proste rozwiązanie: zaprojektować taką sieć, w której każda jednostka będzie mogła porozumieć się z każdą inną. W założeniach przypominała to pod wieloma względami sieć telefoniczną. Autor pomysłu tłumaczył:„W praktyce sieci telekomunikacyjne składają się z elementów sieci kratowej i sieci gwiaździstej. Twór taki nazywany jest czasem siecią zdecentralizowaną, ponieważ nie zawsze odpowiedzialność za działanie sieci oparta jest na jednym tylko punkcie”[2]
Propozycja Barana była dobrze obmyślona - opracował on nawet sposób trasowania danych routingu - czyli funkcji odpowiedzialnej za dostarczenie danych do adresata. Wynalazł system, w którym dane określały swoją własną trasę dynamicznie - w przypadku napotkania na przeszkodę znajdowały inną drogę dotarcia do celu. System ten opierał się na określonych zasadach. Na przykład węzeł sieci (jeden z komputerów biorących udział w przesyłaniu danych) przyjmował porcję danych tylko wtedy, gdy miał wystarczająco dużo miejsca na ich przechowanie. Jeśli wszystkie możliwe połączenia były zajęte, dane oczekiwały na zwolnienie którejś z marszrut (path - ścieżek, po których poruszają się dane w sieci}. W ten sposób powstawał inteligentny system wymiany informacji. Baran szczegółowo opracował również inne aspekty sieci, a w tym:
· system priorytetów (oraz sposoby na uniknięcie przeciążenia sieci)
· sprzęt
Niestety, idee Barana wybiegały zbyt daleko w przyszłość. W Pentagonie nie ufano tak radykalnym koncepcjom i oficjale w Departamencie Obrony natychmiast odłożyli jedenastotomowy raport Barana na półkę. Dopiero jakiś czas później okazało się, że krótkowzroczność Pentagonu opóźniła narodziny Internetu. Do pomysłu powrócono w 1965 roku zorganizowano fundusze i w 1969 roku istnienie zdecentralizowanej sieci komputerowej stało się faktem. System nazwano ARPANET.
W rozumieniu współczesnych technologii sieciowych ARPANET był siecią o dość nieskomplikowanej konstrukcji. Składał się z połączonych komputerów czterech uniwersytetów (Instytut Badań w Stanford, Uniwersytet w Utah Uniwersytet Kalifornijski w Los Angeles oraz Uniwersytet w Santa Barbara). Jedną z tych maszyn był DEC PDP-10. Niegdyś potęgi wśród maszyn liczących, dziś komputery te posłużyć mogą co najwyżej jako wątpliwe ozdoby.
W każdym razie ARPANET zaczynał skromnie: cztery komputery połączone dzierżawioną linią telefoniczną. W tamtym czasie wydawało się to niesamowitym osiągnięciem, jednakże euforia towarzysząca powstaniu ARPANET-u szybko ucichła gdy inżynierowie zdali sobie sprawę z kilku poważnych problemów. Jednym z nich był brak systemu operacyjnego odpowiedniego dla ogromnej sieci Barana.
Główną rolę miał teraz odegrać przypadek. W innej części Stanów Zjednoczonych naukowcy opracowywali właśnie tajemniczy system operacyjny. System ten - który ujrzał światło dzienne wraz z APRANET-em miał na zawsze zmienić świat. Nazywał się UNIX. W roku 1969, tym samym, w którym powstał ARPANET. Człowiek o nazwisku Ken Thompson (wraz z Dennisem Ritchie i Josephem Ossanna) z firmy Bell Labs opracowują pierwszą wersję UNIX-a. Autorskie oprogramowanie Thompsona instalowane jest na maszynie DEC (Digital Equipment Corporation) PDP-7.
UNIX Thompsona nie przypominał współczesnych UNIX-ów, które między innymi są systemami wielodostępnymi - jednocześnie na tym samym komputerze może pracować wielu użytkowników. Prototyp Thompsona był systemem jednostanowiskowym, w dodatku zupełnie „nagim”. Przybliżę może, co rozumiem pod pojęciem „nagi’.
System operacyjny kojarzymy z programem, który zawiera podstawowe narzędzia, edytory tekstów, pliki pomocy, interfejs okienkowy, narzędzia sieciowe i tak dalej. Przyzwyczajeni jesteśmy do środowiska rozbudowanego i przyjaznego użytkownikowi. Pierwszy, „nagi” UNIX zawierał wyłącznie te narzędzia, których istnienie konieczne było do poprawnego funkcjonowania. Thompson w ogóle nie myślał o żadnych innych udogodnieniach. Miał na głowie nieco inny problem - jak w ogóle swój system uruchomić!
Gdy pierwszy UNIX wreszcie wystartował, narodziły się nowe problemy. Po pierwsze, język programowania, w którym pracowali twórcy systemu nie bardzo nadawał się do takich zastosowań. I znów przypadek odegrał dużą rolę: mniej więcej w tym samym czasie inni naukowcy w Bell Labs (Dennis Ritchie i Brian Kernighan) opracowali nowy język programowania o nazwie C.
Język C
Z języka C często korzysta się do pisania kompilatorów i systemów operacyjnych.
„Dziś niemal wszystkie aplikacje wspomagające komunikację poprzez Internet napisane są w języku C. Zarówno system operacyjny UNIX, na którym oparta jest podstawowa struktura Internetu, jak i protokół TCP/IP sterujący wymianą danych zostały napisane w języku C. Gdyby nie C, nie istniałby Internet w takiej postaci, w jakiej go teraz znamy”[3]
Popularność języka C wynika z kilku faktów: · ma niewielkie wymagania i jest wydajny
· kod C może być bez trudu kompilowany na różnych systemach operacyjnych
· można się go szybko i łatwo nauczyć
Naukowcy Bell Labs byli świadomi tylko pierwszego z tych faktów, gdy podejmowali decyzję o przepisaniu kodu systemu w C. Wspólnie z Ritchiem, Thompson przeniósł UNIX-a na komputer DEC PDP-11/20. Od tamtego czasu rozpoczął się właściwy rozwój systemu. W latach 1970-1973 w języku C został przepisany cały kod. Pozwoliło to przy okazji na wyeliminowanie wielu błędów istniejących w oryginalnej wersji systemu.
Lata kształtowania się Internetu: 1972-1975
W latach 1972-1975 poczyniono postępy w innych dziedzinach. Ich analiza pozwala zrozumieć, dlaczego to właśnie UNIX został wybrany jako system operacyjny Internetu.
W roku 1972 ARPANET składał się z około 40 hostów (tak potocznie nazywa się komputery, na których oparty jest Internet). Dzisiaj niejedna sieć lokalna ma ich więcej. Właśnie w tym roku Ray Tomlinson, członek Bolt, Beranek, and Newman, inc. zrewolucjonizował komunikację za pośrednictwem sieci. Stworzył pocztę elektroniczną.
Prawdopodobnie był to najważniejszy wynalazek dziesięciolecia. Poczta elektroniczna (e-mail) pozwoliła na prostą, wydają i niedrogą komunikację - co pozwoliło na wymianę idei i międzystanową współpracę osób pracujących nad różnymi technologiami. Można było określić wielu odbiorców jednej wiadomości, prace nad technologiami zaczęły posuwać się szybciej. Od tej pory już na zawsze sieć zakwitła życiem.
Kolejny kluczowy wynalazek powstał w roku 1974, gdy Vinton Cerf i Robert Khan opracowali protokół sterowania transmisją w sieci TCP (Transmission Control Protocol). Protokół wprowadzał nowy sposób przesyłu danych: wysyłane one były bit po bicie i dopiero na drugim końcu łączone w całość.
TCP jest głównym protokołem używanym w dzisiejszym Internecie. Został opracowany we wczesnych latach siedemdziesiątych i zintegrowany z dystrybucją (dystrybucjami nazywamy różne wersje systemu UNIX) BSD ( Berkeley Software Distribution), stając się standardem internetowym. Dzisiaj niemal wszystkie komputery połączone z Internetem obsługują którąś z odmian TCP.[4]W roku 1975 ARPANET był już w pełni funkcjonalną siecią. Najważniejsze zostało zrobione - rząd amerykański mógł zacząć zbierać plony swoich inwestycji. Kontrolę nad ARPANET-em przekazano organizacji znanej dzisiaj pod nazwą Biura Systemów Informacji Obronnej (Defense Information Systems Agency).
Pozostało tylko zdecydować się na oficjalny system operacyjny dla ARPANET-u. Postawiono na UNIX. Powody tej decyzji były dość złożone; poniżej postaramy się je przybliżyć:
UNIX osiąga pełnoletność
W latach 1974-1980, kod źródłowy systemu UNIX został rozesłany do uniwersytetów w całym kraju. To zaważyło na jego sukcesie. Środowiska akademickie i naukowe doceniły system i zaczął on być używany do ćwiczeń naukowych. To miało z kolei wpłynęło na jego zastosowanie w przedsiębiorstwach:„Uczelnie wychowywały ogromną liczbę doświadczonych użytkowników komputerowych i programistów systemowych, którzy wy chodząc z uczelni już znali system UNIX. Można więc było sobie „kupić” gotowych do pracy informatyków bez konieczności szkolenia ich w jakimś nieznanym systemie”.[5]
Dzięki temu, że źródła UNIX-a udostępniano darmowo - system rozwijany był przez studentów, co wkrótce doprowadziło do przeniesienia go na inne platformy i jeszcze powiększyło bazę użytkowników.
Ponieważ system operacyjny UNIX jest znany i szeroko dostępny, znanych jest także więcej błędów w strukturze zabezpieczeń. Stanowi to wyraźny kontrast z systemami firmowymi (opracowanymi na konkretną platformę lub do konkretnego zastosowania). Producenci takiego oprogramowania ujawniają kod źródłowy swoich produktów tylko wybranym osobom, co pozostawia wiele wątpliwości co do bezpieczeństwa takich systemów.
UNIX zyskiwał coraz większą popularność, a w 1978 roku firma AT&T postanowiła skomercjalizować system i zażądać opłat licencyjnych za swoją wersję systemu. Spowodowało to różne reakcje środowisk informatycznych. Najbardziej zaskakującym posunięciem, mającym na celu zachowanie twórczej niezależności było stworzenie przez Uniwersytet Kalifornijski w Berkeley własnej wersji UNIX-a. Dystrybucja Berkeley
okazała się bardzo popularna i wyznaczyła kierunki rozwoju stając się podstawą wielu dzisiejszych dystrybucji komercyjnych.
Tak więc wybór padł na system UNIX z kilku powodów, m.in: wytyczał kierunki rozwoju systemów operacyjnych
· był systemem otwartym
· każdy miał dostęp do kodu źródłowego
· miał wbudowane potężne narzędzia sieciowe
UNIX rozwija się wraz z Internetem
Kiedy już wybrano UNIX-a na system operacyjny sieci globalnej, kolejne etapy rozwoju systemu odbijały się na konstrukcji Internetu i od 1975 UNIX i Internet ewoluowały wspólnie. Skorzystało na tym wielu producentów oprogramowania i sprzętu wypuszczając własne wersje UNIX-a. Najpopularniejsze z nich wymienione są poniżej.
· Wersja systemu UNIX Produceet
· SunOS i Solaris Sun Microsystems HP-UX Hewlett Packard
· AIX IBM
· IRIX Silicon Graphics (SGI)
· Digital UNIX Digital Equipment Corporation (DEC)
Wiele z powyższych odmian systemu UNIX przeznaczonych jest do instalacji na wysokowydajnych maszynach zwanych stacjami roboczymi (ang. workstations). Różnią się one od komputerów osobistych pod kilkoma względami. Przede wszystkim zbudowane są z najlepszych dostępnych części, co czyni je dużo droższymi. Wpływ na cenę ma także fakt, iż stacji roboczych produkuje się niewiele, podczas gdy komputery osobiste wytwarzane są masowo, a firmy szukają każdego możliwego sposobu obniżenia kosztów. Dlatego też klient kupujący nową płytę główną do swojego PC ma dużo większą szansę natrafienia na produkt wadliwy. Ponadto stacje robocze są zazwyczaj bardziej zaawansowane technologicznie od komputerów domowych. Przykładowo, już w 1989 roku standardem w stacjach roboczych były: wbudowana karta dźwiękowa, sieciowa oraz adapter SCSI (interfejs do podłączania urządzeń zewnętrznych oferujący dużą przepustowość). Obsługę ISDN dodano tuż po opracowaniu standardu tej usługi.
Jakie aplikacje można uruchomić w systemie UNIX?
W UNIX-ie można uruchomić wiele różnych programów. Są wśród nich wysokowydajne aplikacje do badań naukowych oraz prac nad sztuczną inteligencją, ale są też programy mniej wyspecjalizowane. Dla platformy tej zaadoptowano także znane, komercyjne programy w rodzaju Adobe Photoshop, Corel WordPerfect, czy . inne znane z platformy Windows (dla Linuxa - odmiany UNIX-a przeznaczonej dla komputerów osobistych - stworzono nawet pakiet bardzo przypominający Microsoft Office. Nazywa się StarOffice, jest bezpłatny dla użytkowników indywidualnych i w wersji 5.0 zawiera edytor tekstów pozwalający na zapis w formacie edytora Word, arkusz kalkulacyjny, narzędzia graficzne, do obsługi poczty oraz tworzenia stron WWW).
UNIX to po prostu taka platforma, jak każda inna. Działające na nim systemy okienkowe dostarczane są zazwyczaj z całymi pakietami programów, zawierającymi m.in.: menedżery plików, edytory tekstowe, programy pocztowe, zegary, kalendarze, kalkulatory itd. Dostępny jest także bogaty wybór programów multimedialnych, jak: odgrywarki plików filmowych, odtwarzacze płyt CD audio, programy do cyfrowej rejestracji dźwięków i obrazów, aplikacje do korzystania z poczty multimedialnej i wiele innych przydatnych i nieprzydatnych drobiazgów. W zasad...
sliwak