OpenBSD - aegis.et.put.poznan.plaegis.et.put.poznan.pl/old_site/pub/auto/96openBSD.pdf · /swap •...

Post on 28-Feb-2019

218 views 0 download

Transcript of OpenBSD - aegis.et.put.poznan.plaegis.et.put.poznan.pl/old_site/pub/auto/96openBSD.pdf · /swap •...

OpenBSDwww.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 prosbenaszego 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 wielkoscplikó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 siedzienniki 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, /swapzostal zamontowany na odzielnejpartycji

• 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=YESpf_rules=/etc/pf.conf

• Wszystkie funkcje PF konfiguruje siew 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 przechodzapakiety (np. rl0, xl0)

przyklad dalszej czesci:protokól – TCP, UDPfrom any to 192.168.1.1port 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ównp.:ssh 22

telnet 23smtp 25www 80pop3 110

• Zaladowanie regul z pliku /etc/pf.confpoleceniem:#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 przepuszczalpakiety 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><6000regula zezwala na przesylanie pakietów TCP do dowolnego portu powyzej 5000, ale ponizej 6000.

• Nawiasy klamrowesluza do laczenia wpisów w jedennp. 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 miejscuPrzyklad: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ódelspamu)

• 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 nadrzednejdefiniujacej 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 bycpomijane

• ECN jest uzupelnieniem RED jest mechanizmem jawnego powiadomienia o przeciazeniu; wysylanie do urzadzenznajdujacych 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 bandwidthpasmo qlimit limit tbrsize rozmiar_tbrqueue {kolejka2, kolejka3}

altq on – slowo kluczowebandwidth – calkowita przepustowosc kolejkinadrzednejqlimit – liczba pakietów przetrzymywanych w kolejce (domyslnie 50)tbrsize (opcjonalnie) – jak szybko pakiety maja bycusuwane 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_bPass in proto tcp from any to 192.168.0.3 keep state queue lab_h

DZIEKUJE ZA UWAGE

Przygotowal:Lukasz Ogrodowczyk