Linuks

Firewall w Linuksie cz1

Najpierw musimy zacząć od zrozumienia działania sieci komputerowej, ponieważ wszystko w niej tzn. przepływ danych odbywa się za pomocą protokołu Ipv4. Każda sieć komputerowa składa się oprócz kabli, routerów itp. z hostów. Na wstępie możemy przyjąć że host to komputer, ale jest to duże uproszczenie. Każdy host posiada swój adres czyli numer IP, dzięki temu mogą się wzajemnie komunikować i przesyłać między sobą dane. Odbywa się to za pomocą protokołów IP. Jest też coś takiego jak TCP i UDP, to także sa protokoły na wyższej warstwie, odpowiadają one za przekazywanie numerów portów. Dzięki temu pod jednym numerem IP może być uruchomionych wiele usług. Każdy z tych pakietów jest klasyfikowany  i tak przyjęło się że portowi 80 odpowiada usługa HTTP itd. Pierwszy z protokołów jest protokołem strumieniowym, polega to na tym że jeśli mają być przesłane jakieś dane to najpierw musi nastąpić połączenie, gwarantuje też on odbiór danych w takiej kolejności w jakiej zostały one wysłane. TCP odpowiada także za ponowne wysłanie pakietu jeśli poprzedni został utracony. UDP jest zupełnie innym pakietem, nie ma pewności że pakiety dojdą w takiej kolejności w jakiej zostały wysłane a w ogóle nie wiadomo czy dojdą. dla celów komunikacji stworzono dwa rodzaje akcji jest to nasłuch i działanie logiczne.
Wszystkie ataki dzielimy na kilka grup. Pierwszą jest atak typu trojan. Jest on prosty do zrealizowania, na szczęście równie łatwo można się przed nim obronić. Atak ten polega na wgraniu odpowiedniego oprogramowania na komputer który ma zostać zaatakowany. Taki program pozwala na zdalną kontrolę nad serwerem. Kolejną grupę stanowią ataki typu DoS, polegają one najprościej mówiąc na zapychaniu łącza prze kilka komputerów tzw. zombie. Często są to zdalnie sterowane komputery za pomocą Trojana, właściciel często nie wie że jego komputer pomógł w ataku. Można to wytłumaczyć jako zalewanie komputera ofiary przez olbrzymia liczbę pakietów wysyłanych z kilku a nawet kilkudziesięciu maszyn. Kolejna grupa to tzw Exploity – to nic innego jak wykorzystanie dziur w oprogramowaniu znajdującym się na komputerze ofiary. Często dziura taka pozwala na wgranie swojego kodu który da dostęp do komputera. Ataki tego typu sa niebezpieczne. Znalezienie takiej dziury w oprogramowaniu jest bardzo trudne. Jeśli już tak się zdaży to w niedługim czasie wychodzi uaktualnienie które pozbędzie się problemu. Kolejny rodzaj to Phishing atak ten nie polega na wywołaniu szkód w komputerze, jest to podszycie się pod ten komputer i preparowanie odpowiednich pakietów. Przy tym wyglądają one jak by zostały wysłane z komputera ofiary. Komputer pod który podszywa się atakujący może gać role atakowanego lub umożliwić dostęp do innego hosta. Ostatnim rodzajem ataku jest Sniffing to nic innego jak kradzież pakietów przez agresora, po prostu są one przechwytywane. W ten sposób mogą zostać przechwycone hasła lub inne ważne dane.

Firewall w Linuksie cz2

Jak działa zapora?
Poprzez zaporę ogniowa rozumiemy program który filtruje pakiety, wychwytuje te niepożądane. Dzieje się to wszystko na zasadzie reguł które musimy wprowadzić do zapory. Zapora może też być dedykowanym sprzętem. Najbardziej popularną zaporą jest iptables. Mechanizm ten posiadają jądra Linuksa począwszy od wersji 2.4. Program ten działa między stosem sieciowym a warstwą gniazdek. To jej bezpośrednio używają programy użytkowe. Filtruje on pakiety wychodzące i przychodzące do serwera. Za pomocą polecenia netstat –t zobaczymy aktywne połączenia typu TCP. Do używania tej zapory potrzebujemy narzędzi userspace.. Przystępujemy do instalacji będzie to polecenie: apitude install iptables. Firewall ten działa na zasadzie łańcuchów, sa ich trzy rodzaje INPUT, OUTPUT, FORWARD. Pierwsze dwa filtrują pakiety przychodzące, wchodzące i wychodzące a ostatni analizuje pakiety które nie są do niego adresowane tylko na przykład przesyłane do innej podsieci. Konfigurację iptables można przeprowadzić za pomocą odpowiednich komend z linni poleceń. Przykładowa reguła:

sudo iptables –A OUTPUT –d 207.46.197.32 –j DROP

Polecenie to zabrania dostępu do komputera 207.46.197.32
Iptables może usuwać pakiety ale i logować je do LOG. Oprócz rozpoznawania pakietów iptables posiada wiele dodatkowych modułów używa się je w następujący sposób:

Iptables … –m moduł –moduł-parametry_modułu …

Liczba modółow jest bardzo duża postaram się przedstawić kilka najbardziej przydatnych. Pierwszym niech będzie addrtype rozpoznaje on pakiet po typie adresu może to być np. LOCAL. Kolejny moduł to connbytes, rozpoznaje on pakiet po ilości danych przesłanych w jednej sesji protokołu TCP. Można w ten sposób określić reguły dla pobierania dużych plików. Moduł odpowiadający za rozpoznanie pakietów tego samego typu a właściwie ich ilości to connlimit. Jeśli moduł wykryje za dużo połączeń to może je przekserować.
NAT czyli Network Address Translation jest technologią powszechnie używaną a odpowiada za to brak możliwości połączenia z komputerem (który jest w wewnętrznej sieci) oraz ograniczenie malejącej póli adresów Ipv4. Można użyć tej technologii posługując się iptables. Kolejnym sposobem na ochronę jest port knocking. Każdy serwer ma uruchomiony kilka portów, minimum jeden który służy do jego administracji np. SSh czy telnet. Aby zminimalizować ryzyko ataku można zastosować właśnie port knocking

Czym jest linux?

Linux jest to system operacyjny klasy UNIX, jednak UNIX to system płatny natomiast Linux jest darmowy i rozpowszechniany na zasadzie wolnego oprogramowania. Jest on tworzony przez użytkowników dlatego jest nowoczesny, wielozadaniowy do tego stabilny i bezpieczny. Systemy te są zazwyczaj rozpowszechniane na licencji GNU GPL. Gwarantuje ona użytkownikom swobodę mogą oni dowolnie rozpowszechniać oprogramowanie i modyfikować je. Poszczególne systemy mają różne nazwy np. Debian zatem linuks nie jest tak naprawdę systemem operacyjnym a jedynie jego jądrem. Jądro te wraz z oprogramowaniem dodatkowym tworzy właśnie dystrybucje o różnych nazwach. Większość oprogramowania dla systemów klasy Linux jest darmowa ale zdarzają się i komercyjne. Jednak głównym celem programistów którzy pracują nad rozbudową dystrybucji jest to by system był darmowy i jego oprogramowanie też. Często zdarza się tak że oprogramowanie dostępne za darmo często jest lepsze od tego komercyjnego. Te zalety sprawiają że nad oprogramowaniem darmowym dla systemów Linux pracuje tysiące programistów na całym świecie. Coraz więcej producentów sprzętu dostosowuje swoje produkty tak by dobrze działały na nowym systemie. Linux zrobił wielką furorę wśród systemów operacyjnych które zarządzają serwerami internetowymi. Wiele dużych firm takich jak hotele a nawet jednostki wojskowe wykorzystuję ten system do swoich potrzeb. W naszym kraju korzysta z niego Biuro Bezpieczeństwa Narodowego oraz Kancelaria Sejmu. Linuxa możemy nabyć w postaci najróżniejszych dystrybucji. Jedne są przeznaczone dla zaawansowanych użytkowników inne dla amatorów. Dla początkowych można polecić system Debian oraz Mandrake. Instalacje oraz ich konfiguracja nie powinna być kłopotliwa. W języku polskim występują różne odmian nazwy Linuxa pisane różnie, mimo tego że są używane one przez specjalistów wysokiego poziomu. Odmiana na Linux-a, Linuxem, Linuxie jest niepoprawna. Powinniśmy pisać Linux, Linuksa, Linuksie itp. Użytkownicy często po pierwszej instalacji mają problemy z polskimi znakami. Jeśli wybierzemy coś źle podczas instalacji to możemy to później poprawić za pomocą programu lokale_config. Powinien on się standardowo znajdować w każdej dystrybucji Linuksa. Jeśli zainstalujemy środowisko graficzne to od razu powinniśmy mieć w nim polskie znaki zarówno w środowisku GNOME jak i KDE.

Slackware cz1

Slackware jest to wyjątkowy system z rodziny Linux, daje się on konfigurować w stopniu większym od całej reszty sytemów z tej rodziny. Jednak potrzebna jest do tego spora wiedza, niedoświadczonym użytkownikom raczej nie jest polecana ta dystrybucja.  Z założenia Linux ma być jak najbardziej konfigurowalny, a cały ten zabieg osiągamy za pomocą konsoli. Dystrybucja ta jest najstarszą rozwijaną z dostępnych, ale powstała ona w tym samym roku co Debian – 1993, i Debian też jest jeszcze rozwijany. Jednak te systemy bardzo się różnią, Debian posiada obsługę zależności a Slackware nie. Jeden pakiet nie będzie działał bez innego, a ten co instalujemy wymaga np. 4 innych, debian nas o tym poinformuje i je zainstaluje. Czasem jednak to co wydaje się minusem może zostać plusem. Można powiedzieć że razem z syetmem Debian jest to najbardziej stabilna dystrybucja.
Slackware powinien mieć nowe jądro więc nie będzie on miał problemów z rozpoznaniem sprzętu, mam na myśli jądro o wersji 2.6.  Slackware ma do dyspozycji dwa środowiska graficzne KDE oraz Xfee. Zaczynając przygodę z tym systemem najlepiej zainstalować go jako drugi system operacyjny na partycji. W ten sposób unikniemy utraty danych. Poprzez zapoznanie się z tym systemem posiądziemy sporą wiedze na temat linuksa. Oczywiście zaczynamy od zdobycia płytki instalacyjnej, nie będzie z tym problemu ponieważ w sieci jest mnóstwo źródeł, więc pobieramy obraz płyty. Możemy go pobrać chociażby ze strony projektu slackware. Minimalne wymagania systemu to32 MB ram 1GB miejsca na dysku. Procesorem nie należy się przjmować bowiem wystarczy ten klasy 586. Jeśli mamy potrzebę instalacji większej ilości oprogramowania to możemy z powodzeniem zostawić nawet 10GB miejsca na naszego linuksa. Po uruchomieniu komputera z płyty ukaże nam się ekran powitalny, wciskamy enter i zabieramy się za partycjonowanie. Program do partycjonowania to fdisk. Partycjonowanie naszego dysku nie jest zbyt skomplikowane, dla mniej wprawnych polecam cdisk, jest on prostszy w obsłudze. Partycjonowaniu towarzyszą te same zasady co w innych systemach Linuks. Pierwszą z nich jest stworzenie osobnej partycji dla naszych dokumentów, w dalszej kolejności można stworzyć kolejne, osobne partycje dla systemu (/), dokumentów użytkowników (/home) i oczywiście partycje wymiany czyli swap. Dla nieobeznanych z tematem napiszę że dyski linuksie nie mają takich i oznaczeń jak w Windows, bowiem przez system są traktowane jako pliki. Dyski znajduja się w katalogu /dev i maja oznaczenia hda itd. Dla przykładu hda2 to druga partycja pierwszego dysku, hdb1 to pierwsza partycja dysku drugiego.  Zasada jest taka hdX to kolejna litera . Podczas uruchamiania fdisk musimy podac ścieżkę do dysku który chcemy partycjonować, jeśli to ma być pierwszy dysk to piszemy /dev/hda, następnie wciskając przycisk p otrzymamy informację o partycjach na dysku. Jeśli mamy jakieś partycje to musimy jest usunąć opcja d. Wpisujemy d potem będziemy zapytani o numer partycji którą chcemy usunąć. Musimy ten proces powtórzyć dla każdej istniejącej partycji.  Jeli nie chcemy tworzyć wielu osobnych partycji to minimalnie musimy zrobić dwie, podstawową i jedna partycję wymiany. Partycja wymiany to plik gdzie system przechowywuje dane gdy zabraknie pamięci RAM.  Teraz tworzymy partycję czyli n i ENTER. Wybieramy Primary partition i numer 1. Program zapyta nas o pierwszy cylinder, podajemy 0.  To będzie partycja wymiany, dajmy jej pojemność 500MB więc wpiszmy +500M. Resztę dysku zagospodarowywujemy analogicznie.  Partycji wymiany nadajemy formatowanie swap a drugiej ext3. Aby to zrobić wpisujemy t, zaznaczmy pierwszą utworzoną partycję i wpisujemy numer odpowiadający typowi swap a jest to 82. Dla drugiej wybieramy 83 czyli ext3.  Poleceniem p sprawdzamy efekt naszej pracy a poleceniem w zakańczamy. Aby uruchomić instalację wpisujemy setup.

Naszym oczom ukaże się menu:

HELP – oczywiście pomoc

KEYMAP – układ klawiatury

ADDSWAP – ta pozycja odpowiada za wykrycie partycji wymiany

TARGET – słuzy do wskazania miejsca instalacji

SOURCE – żródło instalacji

SELECT – wybieramy pakiety które chcemy zainstalować

INSTALL – instalujemy wybrane pakiety

CONFIGURE – konfiguracja modemu, klawiatury itp.

EXIT – oczywiście opcja nam nie potrzebna czyli wyjście.

Pierwsze pozycje w menu nie powinny stwarzac problemu. Programiści podzielili pakiety na kilka grup po to by łatwiej było zainstalować dodatkowe pakiety. Jeśli instalujemy Slackware na domowym kompie i ma on być komputerem domowym to wystarczą pakiety z grup A, AP, KDE, KDEI, L, X, XAP. Spacją zaznaczamy. Po wybraniu instalator zaproponuje nam kilka opcji instalacji wybranych przez nas pakietów: full, newibe,menu,expert,custrom. My wybieramy wersję expert. Instalator zapyta o każdą grupę a my dokonamy wyboru. Jeśli w środowisku graficznym chcemy mieć język polski to musimy wybrać kde-i18n-pl-x.x.x-noarch i koffice-110n-pl-x.x.x-noarxh-1. W sekcji konfigure mamy możliwość wyboru jądra systemu, chyba że będzie dostępne tylko jednp. Dokonujemy wyboru muszki itd. Musimy koniecznie zainstalować program rozruchowy czyli bootloader LILO. Odpowiada on za wybór sytemu operacyjnego i jego uruchomienie. Jeśli na dysku jest tylko jeden linuks to powinien zainstalować się nam LILO jeśli więcej to GRUB. Ten drugi jest nowszy i ma większe możliwości jak LILO, jest on przeznaczony dla linuksów natomiast GRUB może współpracować także z innymi systemami operacyjnymi, rozpoznaje wiele typów partycji. Zakładam że na dysku mamy np. windowsa więc zajmiemy się GRUBEM. Plik konfiguracyjny jest w /boot/grub/menu.1st, ogólny schemat wygląda tak: na początku jest deklarowny tytuł, będzie on wyświetlony podczas startu. Dane sa odzielone tabulatorem, spotkamy się z taką sytuacją w wielu innych plikach konfiguracyjnych. Linijka oznaczona jako Root odpowiada za wskazanie partycji z systememoperacyjnym. Zera oznaczają pierwszy dysk i pierwszą partycję.kolejny wpis zaczyna się od słowa Kernel i wskazuje śieżkę do niego

Początki Debiana

Debian jest to system ogólnego przeznaczenia, zawiera on ogromna liczę pakietów czyli oprogramowania przeznaczonego do bardzo szerokich zastosować. Jednak autorami tych pakietów nie są tylko programiści Debiana a programiści z całego świata. Zadaniem projektu jest tworzenie oprogramowania wolnego i darmowego poprzez łączenie tych że pakietów oprogramowania. Takie podejście sprzyja użytkownikom oprogramowania. Systemu Debian możemy używać jako stacji roboczej, serwera sieci Internet, serwera sieci intranet oraz platformy dla programistów i deweloperów. Niezależnie od tego do czego przeznaczamy komputer odbioru poczty email, modelowania grafiki czy też do grania w gry – Debian jest do tego idealny. Aplikacje są funkcjonalne i łatwe jeśli chodzi o kolejne zastosowanie czyli o serwer internetowy to Linux jest chyba najbardziej rozpowszechnionym system do tego zastosowania. Debian jest bardzo dobrą dystrybucja która nadaje się na serwer pocztowy, serwer nazw, serwer FTP, serwer stron WWW. Łatwo zarządzać Debianem dlatego jest on często wybierany jako system operacyjny dla serwerów. Ogromnym plusem Debiana są spójne i sprawdzone pakiety. To wszystko razem minimalizuje czas i wysiłek niezbędny do działania serwerów. Serwer z systemem Debian może funkcjonować także w sieci intranet czyli może pracować w wewnętrznej sieci przedsiębiorstwa i zapewniać usługi niedostępne dla komputerów nie będących w sieci. Serwery takie często pełną funkcję dzielenia połączenia z Internetem przez kilka komputerów. Linux jest stosowany także w sieciach domowych. Ze względu na duże archiwum oprogramowania Debian może być bardzo dobrą platformą dla programistów i deweloperów. Oprogramowanie Debiana pracuje na jądrze systemu Linux, dlatego ma on wiele wspólnych cech z innymi systemami tej rodziny. System Linux został stworzony przez Linusa Torwaldsa. Do dziś dnia człowiek ten liczy się w tej dziedzinie i pomaga w wyznaczaniu nowych kierunków rozwojowych. Linux powstał na bazie tradycyjnego UNIX. Jednak nie zawiera on żadnego oprogramowania które byłoby obwarowane licencjami. Jądro systemu zostało opracowane na ogólnie dostępnym środowisku. Już na początku jego budowy założono że będzie ono powszechnie dostępne co umożliwiło rozwój i dopracowanie tego systemu. Warto zaznaczyć że systemy UNIX są systemami komercyjnymi. Każdy z producentów tego systemu dąży do dotarcia do jak największej liczby użytkowników. Dlatego finałem tych rozgrywek między systemami UNIX w wojnie o klienta a Linux było pojawienie się innych systemów operacyjnych. Wtedy to zadebiutował Microsoft. W tamtych latach na rynku rządziły systemy UNIX, dzisiejszy moloch czyli Micrsoft był nikomu nieznaną mała firmą. Plusem systemów windowsowskich jest to ze mogą pracować na wielu rodzajach komputerów które były oferowane przez różne firmy. Dlatego system ten zyskał poparcie i tak bardzo się rozwinął. Za upadkiem systemów UNIX nie stoi zły system lecz jego sprzedawcy. Role UNIXA przejął Linux. Wiele rozwiązań pochodzi z tych systemów. Debian już od chwili poznania był krytykowany za swój program instalacyjny. Wersja 3.1 instalowana była z dyskietek podobnie wersja woody jak i wcześniejsze wydanie. Stary instalator prawie nie wykrywał żadnego sprzętu. Jednocześnie zadawał bardzo dużo pytań które odstraszały potencjalnych użytkowników dlatego powstał Debia Installer. Tak więc na tym etapie zdecydowano że instalacja dyskietkowa przestanie istnieć wraz z wersja 3.0. Wydanie Debian 3.1 posiadało już nowa wersje Instalatora nad którym prace trwały bardzo długo. Jednak przez to ze program instalacyjny pojawił się późno wielu użytkowników przeszło na inne wersje Linuxa.