Wprowadzenie do systemu OpenBSD
Transkrypt
Wprowadzenie do systemu OpenBSD
OpenBSD www.OpenBSD.org • • • • • Uniksopodobny system operacyjny Opracowany na Uniwersytecie kalifornijskim w Berkley Bazuje na BSD (Berkley Software Distribution) z lat ’80 Wieloplatformowy (PC, Macintosh, Sun Sparc, Compaq Alpha) System dostepny nieodplatnie • • • • System mozna uruchomic na komputerach klasy 386 jak i na nowoczesnych serwerach Przez wielu uznawany za najbezpieczniejszy system operacyjny Twórcy stawiaja na niezawodnosc, stabilnosc, bezpieczenstwo Inne systemy BSD: NetBSD, FreeBSD, Mac OS X, BSD/OX Literatura: Ksiazka dostepna jest w bibliotece instytutowej (zakup na prosbe naszego Kola) Zagadnienia: • • • • • Instalacja Podstawowa konfiguracja Przykladowa siec Firewall – konfiguracja, filtrowanie pakietów za pomoca systemu PF Proces kolejkowania powody stosowanie kilku partycji: • • • • Partycja bezpiecznie ogranicza wielkosc plików dziennika Uniemozliwienie zapelnienia calego dysku Zapelnienie jednej partycji umozliwia latwe rozwiazanie problemu Partycje izoluja obszary z uszkodzonym systemem plików Partycje: / (root) • • • Partycja podstawowa, przechowuje pliki konfiguracyjne Umieszczona jako pierwsza(najszybszy dostep) Nie musi byc bardzo pojemna (np. 500MB) /swap • • • • Partycja wymiany Przestrzen dyskowa traktowana jako pamiec wirtualna Pojemnosc – 2 x pojemnosc pamieci fizycznej Przenoszenie bezuzytecznych danych z pamieci na dysk Pozostale partycje: • /temp - systemowa przestrzen na pliki tymczasowe • /var – zawiera czesto zmieniajace sie dzienniki serwera www, kolejki poczty, tymczasowe pliki uruchamialne, domyslna strone www itd. Pozostale partycje: • /usr – przechowywane sa programy systemu operacyjnego, systemowy kod zródlowy, kompilatory, biblioteki • /home – prywatne pliki uzytkowników Instalacja Kazdy z wymienionych katalogów tj. /root, /home, /tmp, /var, /usr, /swap zostal zamontowany na odzielnej partycji • Caly system zaintalowany na odzielnej rozszerzonej partycji dysku • Program GAG umozliwial nam wybór systemu operacyjnego • Konfiguracja interfejsu Ethernet: • Z kazda z kart sieciowych zwiazany jest osobny plik konfiguracyjny: /etc/hostname.nazwa_interfejsu • Komputer LAB_C z zainstalowanym OpenBSD posiadal 2 karty: xl0 oraz rl0, tak wiec pliki konfiguracyjne: /etc/hostname.xl0 /etc/hostname.rl0 Konfiguracja sieci w pracowni: Konfiguracja interfejsu Ethernet: Wpis do /etc/hostname.nazwa_interfejsu: inet adres_ip maska_sieci adres_rozgloszeniowy opcje /etc/hostname.rl0: inet 192.168.0.1 255.255.255.0 NONE NONE etc/hostname.xl0: inet 192.168.1.1 255.255.255.0 NONE NONE Konfiguracja interfejsu Ethernet: • Wpisanie NONE w miejsce adresu rozgloszeniowego oznacza, ze system wyznaczy adres rozgloszeniowy na podstawie podanego adresu IP oraz maski • Jesli komputer ma dzialac jako klient DHCP to w pliku /etc/hostname.rl0: nalezy wpisac slowo dhcp Konfiguracja interfejsu Ethernet: • Adres bramy domyslnej mozna podac w jednym wierszu w pliku /etc/mygate • Konfiguracja DNS: edytujemy plik: etc/resolv.conf wpis: domain nazwa_domeny_do_której_podlaczony_jest_komputer nameserver adres_serwera_nazw Filtrowanie pakietów– firewall: • • • system PF PF uruchamiany po starcie systemu po ustawieniu 2 zmiennych w pliku /etc/rf.conf: pf=YES pf_rules=/etc/pf.conf Wszystkie funkcje PF konfiguruje sie w pliku /etc/pf.conf Funkcje pojawiajace sie w PF: • • • • • • • • Makra Tabele Opcje Normalizacja ruchu Sterowanie przepustowoscia Translacja Przekierowania Filtracja pakietów Firewall – format wprowadzanej reguly: pass in on nazwa_interfejsu proto protokól from any to adres port numer_portu keep state pass/block- slowo kluczowe, filtracja pakietów (przepusc, zablokuj) in/out – kierunek przeplywu pakietów (in oznacza ruch wchodzacy do chronionej sieci) on nazwa_interfejsu – wskazuje interfejs przez który przechodza pakiety (np. rl0, xl0) przyklad dalszej czesci: protokól – TCP, UDP from any to 192.168.1.1 port 22 keep state – wskazanie iz nalezy przechowywac informacje o stanie tego polaczenia Konfiguracja firewalla: • W pliku /etc/services mamy zawarty spis uslug wraz z numerami portów np.:ssh 22 telnet 23 smtp 25 www 80 pop3 110 • Zaladowanie regul z pliku /etc/pf.conf poleceniem: #pfctl –f /etc/pf.conf (control the packet filter and network address translation) Przykladowy wpis do PF: pass in on xl0 proto tcp from 192.168.1.2 to any port 22 Powyzszy zapis oznacza, ze firewall bedzie przepuszczal pakiety do routera (z Lab_D) zwiazane z protokolem ssh, przez interfejs xl0 (192.168.1.1) na porcie 22 PF • Operatory logiczne: =, !=, <,<=,>,<=,<>,>< np. pass in proto tcp from any to any port 5000><6000 regula zezwala na przesylanie pakietów TCP do dowolnego portu powyzej 5000, ale ponizej 6000. • Nawiasy klamrowe sluza do laczenia wpisów w jeden np. pass in proto {tcp, udp} from any to any port 53 PF – makra To zmienne , które mozna definiowac na potrzeby regul • Korzystajac z makra ewentualne zmiany wprowadzamy tylko w jednym miejscu Przyklad: External_if=„xl0” Internal_ip=„rl0” Block in on $External_if from $Internal_ip • PF – tabele: • • • • Przechowuja dlugie listy adresów sieciowych (np. róznych zródel spamu) Dzialaja szybciej niz wpisy w nawiasach klamrowych Mozna je uruchamiac takze podczas pracy systemu Definicja tabeli: table <nazwa_tabeli> {adresy} PF – tabele: • Przyklad: table <spam> {234.32.3.4/16, 243.45.23.2/24} • Liste adresów do umieszczenia w tabeli mozna zapisac w pliku zewnetrznym; pobranie listy z pliku: table<spam> file „/etc/plik1” (w pliku kazdy adres zapisujemy w oddzielnej linii, znaki # oznaczaja komentarz) Regulacja przepustowoscia • • • • Jedna z funkcji zapór sieciowych Udostepnianie czesc pasma dla okreslonego zadania Rezerwowanie miejsca dla szczególnie waznych funkcji System PF zawiera system zarzadzania przepustowoscia ALTQ Kolejki • • • • • • ALTQ zarzadza dostepnym pasmem za pomoca kolejek Kolejka jest jakby lista pakietów oczekujacych na przetworzenie Caly ruch sieciowy mozna podzielic na rózne kolejki, które reguluja przepustowosc serwera Korzystaja z algorytmu FIFO Mozliwosc kolejkowania opartego o priorytety (PRIQ) lub kolejkowania opartego o klasy (CBQ) PRIQ i CBQ wzajemnie sie wykluczaja i nie mozna ich jednoczesnie uaktywnic na jednym interfejsie Kolejkowanie oparte o klasy • • • • • W przypadkach, kiedy trzeba wplywac na dostepnosc pasma Alokowanie okreslonych przedzialów pasma dla pakietów róznego typu poprzez system hierarchicznych klas Kazda klasa ma swoja wlasna kolejke o niezaleznej charakterystyce Róznego rodzaju ruch sieciowy mozna przypisywac do róznych klas (np. ruch zwiazany z ssh do jednej klasy, z http do innej klasy) Mozliwosc pozyczania pasma od klas znajdujacych sie wyzej w hierarchii (jesli jest dostepne) Opcje kolejek • • • • • Default Control RED ECN Borrow Obydwa systemy: PRIQ oraz CBQ wymagaja utworzenia kolejki nadrzednej definiujacej podstawowe parametry regulacji przeplywu danych Opcje kolejek – Default i Control • • Kolejka nadrzedna moze miec tylko jedna kolejke podrzedna default – funkcja domyslnej kolejki, gdy dany pakiet nie jest przydzielony do zadnej innej kolejki Kolejka typu Control uzywana jest przez pakiety kontrolne jak ICMP, IGMP Opcje kolejek – RED oraz ECN • • RED jest mechanizmem wczesnego wykrywania przepelnienia kolejki; gdy kolejka sie zapelni, pakiety zaczna byc pomijane ECN jest uzupelnieniem RED jest mechanizmem jawnego powiadomienia o przeciazeniu; wysylanie do urzadzen znajdujacych sie na drodze pomiedzy serwerem a klientem informacji o przeciazeniach wystepujacych w sieci i koniecznosci zmniejszenia ilosci przesylanych miedzy nimi pakietów Opcje kolejek – Borrow • Tylko w powiazaniu z CBQ, dzieki tej opcji kolejka moze „pozyczyc” pasmo z kolejki nadrzednej (jesli dostepne) • Pozyczona nadwyzka jest zwracana w momencie ponownego zwiekszenia natezenia ruch w kolejce nadrzednej Konfiguracja kolejki nadrzednej altq on nazwa_intrerfejsu typ_kolejki bandwidth pasmo qlimit limit tbrsize rozmiar_tbr queue {kolejka2, kolejka3} altq on – slowo kluczowe bandwidth – calkowita przepustowosc kolejki nadrzednej qlimit – liczba pakietów przetrzymywanych w kolejce (domyslnie 50) tbrsize (opcjonalnie) – jak szybko pakiety maja byc usuwane z kolejki queue – lista kolejek podrzednych Definiowanie kolejek priorytetowych PRIQ Przyklad: Kolejka nadrzedna: altq on rl0 priq bandwidth 100Mb queue {ssh, other} Definicje kolejek podrzednych: queue nazwa_kolejki priority priorytet priq (opcje) priority – od 0 do 15 (0-brak priorytetu, 15 max. priorytet) opcje – np. RED, default Definiowanie kolejek opartych na klasach Przyklad: Kolejka nadrzedna: altq on rl0 cbq bandwidth 100Mb queue {kolejka, kolejka2} Definicje kolejek podrzednych: queue nazwa_kolejki bandwidth pasmo priority priorytet cbq (opcje) {kolejka_podrzedna4, kolejka_podrzedna5} queue kolejka_podrzedna_4 bandwidth 5% prioryty 7 cbq(borrow) Priority(opcjonalnie) – od 0 do 7 (0-brak priorytetu, 7 max. priorytet) Opcje(opcjonalnie) – np. RED, default Kolejkowanie – przyklad w laboratorium • • Przydzielenie przepustowosci dwu sieciom LAN Kolejkowanie oparte o klasy Kolejkowanie – przyklad w laboratorium – zawartosc PF Definicje kolejek: altq on rl0 cbq bandwidth 896Kb queue {lab_b, lab_h} queue lab_b bandwidth 768Kb cbq (red ecn) queue lab_h bandwidth 128Kb cbq (default red ecn) Kolejkowanie – przyklad w laboratorium – zawartosc PF Przypisanie ruchu do kolejek: Pass in proto tcp from any to 192.168.0.2 keep state queue lab_b Pass in proto tcp from any to 192.168.0.3 keep state queue lab_h DZIEKUJE ZA UWAGE Przygotowal: Lukasz Ogrodowczyk