Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00103 009738 11027986 na godz. na dobę w sumie
OpenBSD. Tworzenie firewalli za pomocą PF - książka
OpenBSD. Tworzenie firewalli za pomocą PF - książka
Autor: Liczba stron: 272
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-680-2 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> systemy operacyjne >> bsd
Porównaj ceny (książka, ebook, audiobook).

Tajniki zabezpieczania systemu OpenBSD

OpenBSD cieszy się sławą jednego z najbezpieczniejszych systemów operacyjnych wśród obecnie dostępnych. Twórcy systemu skoncentrowali się głównie na zapewnieniu najwyższego poziomu zabezpieczeń. Działa on na wielu różnych platformach sprzętowych, w tym również na standardowym komputerze Intel PC (i386), komputerach Macintosh (zarówno z procesorami serii MC68xxx, jak i z procesorami Power PC), Sun Sparc, Compaq Alpha i wielu innych. Twórcy systemu OpenBSD przywiązują dużą wagę do poprawności kodu, zakładając, że zmniejsza to prawdopodobieństwo nieprawidłowego działania systemu i podnosi poziom bezpieczeństwa.

Książka 'OpenBSD. Tworzenie firewalli za pomocą PF' przedstawia zaimplementowany w OpenBSD system PF -- unikatowe narzędzie do samodzielnego definiowania mechanizmów zabezpieczeń filtrujących pakiety. Opisuje metody filtrowania pakietów i sposoby ich konfigurowania. Prezentuje również zaawansowane możliwości systemu PF -- translację adresów sieciowych i zarządzanie przepustowością oraz narzędzia pozwalające na kontrolowanie jego pracy.

Jeśli chcesz, aby administrowany przez Ciebie system był nie do zdobycia -- przeczytaj tę książkę.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl OpenBSD. Tworzenie firewalli za pomoc¹ PF Autor: Jacek Artymiak T³umaczenie: Marek Pêtlicki (wstêp, rozdz. 1 – 7), Mateusz Michalski (rozdz. 8 – 16, dod. A – E) ISBN: 83-7361-680-2 Tytu³ orygina³u: Building Firewalls with OpenBSD and PF Format: B5, stron: 272 Tajniki zabezpieczania systemu OpenBSD • Konfigurowanie OpenBSD • Projektowanie firewalli • Definiowanie regu³ filtrowania pakietów OpenBSD cieszy siê s³aw¹ jednego z najbezpieczniejszych systemów operacyjnych wġród obecnie dostêpnych. Twórcy systemu skoncentrowali siê g³ównie na zapewnieniu najwy¿szego poziomu zabezpieczeñ. Dzia³a on na wielu ró¿nych platformach sprzêtowych, w tym równie¿ na standardowym komputerze Intel PC (i386), komputerach Macintosh (zarówno z procesorami serii MC68xxx, jak i z procesorami Power PC), Sun Sparc, Compaq Alpha i wielu innych. Twórcy systemu OpenBSD przywi¹zuj¹ du¿¹ wagê do poprawnoġci kodu, zak³adaj¹c, ¿e zmniejsza to prawdopodobieñstwo nieprawid³owego dzia³ania systemu i podnosi poziom bezpieczeñstwa. Ksi¹¿ka „OpenBSD. Tworzenie firewalli za pomoc¹ PF” przedstawia zaimplementowany w OpenBSD system PF — unikatowe narzêdzie do samodzielnego definiowania mechanizmów zabezpieczeñ filtruj¹cych pakiety. Opisuje metody filtrowania pakietów i sposoby ich konfigurowania. Prezentuje równie¿ zaawansowane mo¿liwoġci systemu PF — translacjê adresów sieciowych i zarz¹dzanie przepustowoġci¹ oraz narzêdzia pozwalaj¹ce na kontrolowanie jego pracy. • Rodzaje firewalli • Instalacja i konfiguracja OpenBSD • Struktura pliku konfiguracyjnego pf.conf • Normalizacja i przeadresowywanie pakietów • Regu³y filtrowania pakietów • Zarz¹dzanie firewallem • Wzorce regu³ dla typowych konfiguracji firewalli Jeġli chcesz, aby administrowany przez Ciebie system by³ nie do zdobycia — przeczytaj tê ksi¹¿kê. Spis treści Wstęp ...................................................z.......................................... 11 Rozdział 1. Wprowadzenie ...................................................z.............................. 13 1.1. Cel zabezpieczania sieci ...................................................p...................................... 13 1.2. Przeznaczenie zapór sieciowych...................................................p.......................... 15 1.3. Przyczyny wyboru oprogramowania open source .................................................. 15 1.4. Przyczyny wyboru OpenBSD oraz PF...................................................p................. 17 1.5. Kryptografia a prawo...................................................p........................................... 19 1.6. Organizacja książki...................................................p.............................................. 19 1.7. Konwencje typograficzne wykorzystane w książce................................................ 21 1.8. Kontakt ze społecznością OpenBSD ...................................................p................... 21 1.9. Kontakt z autorem ...................................................p............................................... 22 Rozdział 2. Projekty zapór sieciowych ...................................................z............. 23 2.1. Definicja lokalnej polityki filtrowania pakietów ...................................................p. 23 2.2. Definicja zapory sieciowej...................................................p................................... 24 2.3. Czym zapory sieciowe nie są...................................................p............................... 25 2.4. Zapory sprzętowe i programowe ...................................................p......................... 25 2.5. Wszystkie zapory duże i małe ...................................................p............................. 25 2.5.1. Odizolowany komputer ...................................................p............................. 26 2.5.2. Odizolowana sieć LAN lub segment sieci...................................................p. 27 2.5.3. Host bastionowy...................................................p........................................ 29 2.5.4. Strefa zdemilitaryzowana (DMZ)...................................................p.............. 30 2.5.5. Duże sieci LAN...................................................p......................................... 32 2.6. Niewidzialne systemy i zapory ...................................................p............................ 32 2.6.1. Mosty filtrujące ...................................................p......................................... 32 2.6.2. Network Address Translation (NAT) ...................................................p........ 34 2.7. Dodatkowa funkcjonalność ...................................................p................................. 34 Rozdział 3. Instalacja OpenBSD ...................................................z...................... 37 3.1. Wymagania programowe...................................................p..................................... 37 3.1.1. Kupujemy oficjalny zestaw dysków CD z systemem OpenBSD.................. 38 3.1.2. Dodatkowe wymagania programowe ...................................................p........ 38 3.2. Wymagania sprzętowe...................................................p......................................... 40 3.2.1. Wybór platformy sprzętowej...................................................p..................... 40 3.2.2. Płyty główne ...................................................p............................................. 41 3.2.3. BIOS ...................................................p...................................................p...... 42 3.2.4. Procesor ...................................................p...................................................p. 42 3.2.5. Pamięć...................................................p...................................................p.... 44 3.2.6. Przestrzeń dyskowa ...................................................p................................... 44 6 OpenBSD. Tworzenie firewalli za pomocą PF 3.2.7. Interfejsy sieciowe ...................................................p.................................... 45 3.2.8. Obsługa komputera podczas instalacji ...................................................p...... 48 3.2.9. Wybór sposobu instalacji OpenBSD ...................................................p......... 49 3.2.10. Napędy taśmowe ...................................................p....................................... 50 3.2.11. Diagnostyka sprzętu ...................................................p.................................. 50 3.2.12. Inne wymagania ...................................................p........................................ 51 3.2.13. Wykorzystanie podręcznika systemowego...................................................p 51 3.3. Pobieranie OpenBSD z internetu...................................................p......................... 52 3.4. Przygotowanie nośników instalacyjnych ...................................................p............. 52 3.5. Instalacja systemu OpenBSD...................................................p............................... 53 3.6. Fizyczne zabezpieczanie komputera zapory sieciowej ........................................... 63 Rozdział 4. Konfiguracja OpenBSD ...................................................z.................. 65 4.1. Zarządzanie kontami użytkowników ...................................................p................... 65 4.1.1. Dodawanie kont użytkowników ...................................................p................ 65 4.1.2. Udostępnianie praw roota (su) ...................................................p.................. 66 4.1.3. Zmiana hasła użytkownika...................................................p........................ 67 4.1.4. Udostępnianie prawa roota dla wybranych poleceń (sudo) .......................... 67 4.1.5. Usuwanie użytkownika ...................................................p............................. 68 4.2. Wzmacnianie systemu OpenBSD ...................................................p........................ 68 4.2.1. Wyłączanie zbędnych usług ...................................................p...................... 68 4.2.2. Instalacja poprawek...................................................p................................... 69 4.2.3. Inne źródła poprawek ...................................................p................................ 72 4.3. Konfiguracja sieci...................................................p................................................ 72 4.3.1. Wykorzystanie wielu adresów IP na jednym interfejsie............................... 75 4.3.2. Opcje konfiguracyjne mechanizmu PF ...................................................p..... 75 4.3.3. Opcje konfiguracji mostu ...................................................p.......................... 76 4.3.4. Przekazywanie ruchu IP ...................................................p............................ 79 4.3.5. Obsługa FTP ...................................................p............................................. 79 4.3.6. Kontrola protokołu ARP ...................................................p........................... 82 4.4. Automatyczne restartowanie systemu...................................................p.................. 87 4.5. Szyfrowanie przestrzeni wymiany ...................................................p....................... 88 4.6. Wykorzystanie poziomów zabezpieczeń ...................................................p............. 88 4.7. Ustawianie daty i czasu ...................................................p....................................... 89 4.8. Konfiguracja jądra w celu ominięcia problemów sprzętowych .............................. 89 4.8.1. Wykonywanie kopii zapasowej jądra ...................................................p........ 90 4.8.2. User Kernel Config (UKC) ...................................................p....................... 90 4.8.3. Przenoszenie jądra między systemami ...................................................p...... 92 4.9. Instalacja i kompilacja oprogramowania ...................................................p............. 93 4.10. Konfiguracja dysków...................................................p........................................... 93 4.10.1. RAID...................................................p...................................................p...... 94 Rozdział 5. Plik /etc/pf.conf ...................................................z.......................... 95 5.1. Zawartość pliku /etc/pf.conf ...................................................p................................ 95 5.1.1. Zmiana kolejności sekcji w pliku pf.conf...................................................p.. 97 5.1.2. Łamanie długich wierszy...................................................p........................... 97 5.1.3. Grupowanie elementów reguł w listy...................................................p........ 97 5.2. Makrodefinicje ...................................................p...................................................p. 97 5.3. Tablice ...................................................p...................................................p.............. 98 5.4. Kotwice ...................................................p...................................................p.......... 100 5.5. Najczęściej wykorzystywane elementy reguł PF.................................................. 101 5.5.1. Kierunek...................................................p.................................................. 101 5.5.2. Interfejsy ...................................................p................................................. 101 5.5.3. Rodziny adresów ...................................................p..................................... 102 5.5.4. Protokoły...................................................p................................................. 102 Spis treści 7 5.5.5. Adresy ...................................................p...................................................p.. 103 5.5.6. Dynamiczna alokacja adresów ...................................................p................ 105 5.5.7. Porty...................................................p...................................................p..... 106 5.5.8. Oznaczenia ...................................................p.............................................. 107 5.6. Narzędzia do zapisu i edycji pliku pf.conf...................................................p......... 108 5.6.1. Przygotowanie pliku pf.conf w innym systemie......................................... 109 5.6.2. Wyróżnianie składni...................................................p................................ 109 5.6.3. Narzędzia obsługiwane za pomocą myszki ................................................ 109 5.6.4. Generowanie pf.conf za pomocą skryptu ...................................................p 109 5.7. Zarządzanie plikiem pf.conf za pomocą CVS ...................................................p... 109 Rozdział 6. Normalizacja pakietów ...................................................z................ 113 6.1. Normalizacja pakietów ...................................................p...................................... 114 6.1.1. Składnia reguł normalizujących ...................................................p.............. 114 6.2. Uszczegóławianie reguł normalizujących...................................................p.......... 115 6.2.1. Opcje PF ...................................................p................................................. 115 6.2.2. Opcje reguł normalizacji ...................................................p......................... 116 6.3. Kto wysyła zniekształcone pakiety? ...................................................p.................. 118 Rozdział 7. Przeadresowanie pakietów ...................................................z.......... 119 7.1. Zastosowanie do celów bezpieczeństwa ...................................................p............ 119 7.2. Rozszerzanie dostępnej przestrzeni adresów IPv4................................................ 120 7.2.1. Czy IPv6 spowoduje, że NAT nie będzie potrzebny? ................................ 122 7.2.2. Problemy z mechanizmem NAT ...................................................p............. 122 7.3. Reguły NAT ...................................................p...................................................p... 123 7.3.1. Ukrywanie hostów za pojedynczym adresem publicznym ......................... 123 7.3.2. Przekierowanie pakietów na inne adresy i porty ........................................ 128 7.3.3. Wymuszanie wykorzystania pośrednika WWW ........................................ 131 7.3.4. Inne zastosowania reguł rdr...................................................p..................... 132 7.3.5. Reguły binat ...................................................p............................................ 132 7.4. Pośrednik ARP ...................................................p.................................................. 134 Rozdział 8. Filtrowanie pakietów...................................................z................... 135 8.1. Anatomia reguły filtrowania...................................................p.............................. 135 8.1.1. Co PF powinien robić?...................................................p............................ 136 8.1.2. Droga powrotna do nadawcy...................................................p................... 137 8.1.3. Wejściowe czy wyjściowe?...................................................p..................... 139 8.1.4. Rejestrowanie ruchu pakietów ...................................................p................ 139 8.1.5. Wczesne zakończenie...................................................p.............................. 140 8.1.6. Nazwy interfejsów sieciowych...................................................p................ 140 8.1.7. Opcje routingu ...................................................p........................................ 141 8.1.8. Rodziny adresów IP: IPv4 lub IPv6 ...................................................p........ 142 8.1.9. Protokoły...................................................p................................................. 143 8.1.10. Adresy źródłowe ...................................................p..................................... 143 8.1.11. Porty źródłowe ...................................................p........................................ 144 8.1.12. System operacyjny nadawcy ...................................................p................... 145 8.1.13. Docelowy adres IP ...................................................p.................................. 147 8.1.14. Port docelowy ...................................................p......................................... 147 8.1.15. Kontrola dostępu grupy i użytkownika ...................................................p... 147 8.1.16. Opcje TCP...................................................p............................................... 148 8.1.17. Pakiety ICMP...................................................p.......................................... 149 8.1.18. Filtrowanie z uwzględnieniem stanu ...................................................p....... 149 8.1.19. Opcje IP ...................................................p.................................................. 154 8.1.20. Etykiety ...................................................p...................................................p 154 8.2. Reguły przeciwdziałające fałszowaniu pakietów.................................................. 155 8.3. Reguły filtrowania dla pakietów przekierowywanych.......................................... 156 8 OpenBSD. Tworzenie firewalli za pomocą PF Rozdział 9. Dynamiczne zbiory reguł...................................................z.............. 159 9.1. Projektowanie zautomatyzowanej zapory sieciowej............................................. 159 Rozdział 10. Zarządzanie obciążeniem pasma i równoważenie obciążenia ............ 165 10.1. Równoważenie obciążenia ...................................................p................................ 165 10.1.1. Implementacja równoważenia obciążenia .................................................. 167 10.2. Zarządzanie obciążeniem pasma ...................................................p....................... 168 10.2.1. Anatomia reguły nadrzędnej ...................................................p................... 169 10.2.2. Anatomia reguły kolejkowej ...................................................p................... 170 10.2.3. Przypisywanie kolejek do reguł filtrowania pakietów................................ 171 10.2.4. Kolejkowanie priorytetowe (PRIQ) ...................................................p........ 172 10.2.5. Kolejkowanie oparte na klasach (CBQ) ...................................................p.. 176 10.2.6. Hierarchical Fair Service Curve (HFSC) ...................................................p 181 10.2.7. Kolejkowanie pakietów wejściowych ...................................................p..... 185 10.2.8. Który algorytm jest najlepszy?...................................................p................ 185 Rozdział 11. Zapis i analiza dziennika ...................................................z............. 187 11.1. Uaktywnienie dziennika pakietów...................................................p..................... 188 11.2. Analiza dziennika ...................................................p.............................................. 188 11.3. Które pakiety wyłapywać? ...................................................p................................ 189 11.4. Sekretne życie dzienników ...................................................p................................ 191 11.5. Szerokość pasma a wymagania dla przestrzeni dyskowej .................................... 194 11.6. Zapis dziennika na moście (porty span)...................................................p............. 196 Rozdział 12. Korzystanie z authpf................................................z....................... 197 12.1. Konfiguracja authpf...................................................p........................................... 198 12.2. Konfiguracja sshd...................................................p.............................................. 198 12.3. Konfiguracja powłoki logowania ...................................................p...................... 198 12.4. Tworzenie reguł dla authpf...................................................p................................ 199 12.5. Uwierzytelnianie użytkownika Joe ...................................................p.................... 199 Rozdział 13. Używanie spamd ...................................................z......................... 203 13.1. Konfiguracja spamd...................................................p........................................... 203 Rozdział 14. Optymalizacja zbioru reguł...................................................z........... 207 14.1. Zasady usprawniające pracę PF...................................................p......................... 207 14.2. Opcje mechanizmu optymalizacji w PF ...................................................p............ 209 Rozdział 15. Testowanie zapory ...................................................z...................... 211 15.1. Test z ołówkiem ...................................................p................................................ 211 15.2. Sprawdzanie dostępności komputera...................................................p................. 212 15.2.1. Kiedy ping nie pomaga ...................................................p........................... 213 15.3. Wyszukiwanie otwartych portów na zdalnych maszynach................................... 214 15.4. Testy wydajności sieci...................................................p....................................... 215 15.5. Czy pakiety przechodzą przez PF? ...................................................p.................... 217 15.6. Narzędzia dodatkowe ...................................................p........................................ 218 Rozdział 16. Zarządzanie zaporą ...................................................z..................... 221 16.1. Czynności podstawowe ...................................................p..................................... 221 16.2. Opcje sterowania wyjściem pfctl ...................................................p....................... 221 16.3. Zarządzanie zbiorem reguł ...................................................p................................ 222 16.4. Zarządzanie makrodefinicjami ...................................................p.......................... 222 16.5. Zarządzanie tablicami...................................................p........................................ 222 16.6. Zarządzanie opcjami...................................................p.......................................... 223 16.7. Zarządzanie kolejkami...................................................p....................................... 223 16.8. Zarządzanie regułami przekierowywania pakietów.............................................. 224 16.9. Zarządzanie regułami filtrowania pakietów...................................................p....... 224 Spis treści 9 16.10. Zarządzanie kotwicami...................................................p...................................... 224 16.11. Zarządzanie stanami ...................................................p.......................................... 225 16.12. Zarządzanie wzorcami identyfikacyjnymi systemów operacyjnych..................... 225 16.13. Statystyki...................................................p...................................................p........226 16.14. Dodatkowe narzędzia do zarządzania PF ...................................................p.......... 226 Dodatek A Strony podręcznika systemowego...................................................z 227 A.1. Używanie podręcznika OpenBSD ...................................................p...................... 227 A.1.1. Strony podręcznika OpenBSD w sieci ...................................................p... 228 A.2. Strony powiązane z PF ...................................................p....................................... 228 A.3. Inne interesujące strony ...................................................p...................................... 229 Dodatek B Reguły dla popularnych (i mniej popularnych) usług ........................ 231 B.1. Obsługa ICMP ...................................................p...................................................p. 233 B.2. Rozwiązywanie problemów z FTP ...................................................p..................... 234 B.3. Wzorce reguł dla usług używających TCP i UDP ................................................. 235 B.4. Adaptowanie wzorca do innych usług ...................................................p................ 239 Dodatek C Wzorce reguł dla typowych konfiguracji zapór sieciowych................ 241 C.1. Host bastionowy ...................................................p................................................. 241 C.2. Host bastionowy II (z zezwoleniem na pewne połączenia).................................... 242 C.3. Chroniony komputer lub sieć LAN (publiczne adresy IP) ..................................... 243 C.4. Chroniona sieć LAN (z zezwoleniem na pewne połączenia) ................................. 244 C.5. NAT plus chroniona sieć LAN ...................................................p........................... 245 C.6. NAT plus chroniona sieć LAN plus DMZ ...................................................p.......... 246 C.7. Niewidzialny most ...................................................p.............................................. 247 Dodatek D Wspieranie OpenBSD i PF ...................................................z........... 249 D.1. Kupowanie oficjalnych płyt CD-ROM, koszulek oraz plakatów........................... 249 D.2. Udzielanie małych, ale regularnych dotacji ...................................................p........ 250 D.3. Wynajmowanie twórców OpenBSD i PF ...................................................p........... 251 D.4. Dotowanie sprzętu ...................................................p.............................................. 252 D.5. Osobiste zaangażowanie w projekt...................................................p..................... 252 D.6. Sianie słowa...................................................p...................................................p..... 252 D.7. Seminaria szkoleniowe ...................................................p....................................... 252 Dodatek E Bibliografia ...................................................z................................. 253 Skorowidz ...................................................z.................................. 257 Rozdział 10. Zarządzanie obciążeniem pasma i równoważenie obciążenia Które z pakietów są ważniejsze niż inne? W jaki sposób równoważenie obciążenia może pomóc obleganym serwerom? Jak powstrzymać użytkowników przed zapychaniem łącza? Równoważenie obciążenia i zarządzanie obciążeniem pasma pozwalają uniknąć przeła- dowania sieci. pf(4) implementuje oba rozwiązania poprzez tzw. opcje puli, które są pewnym ulepszeniem reguł NAT oraz poprzez integrację mechanizmu kolejkowania ALTQ. Równoważenie obciążenia i zarządzanie obciążeniem pasma są do siebie po- dobne, ale są czymś innym. Pierwsze z nich jest używane w celu równomiernego rozło- żenia obciążenia przypadającego na intensywnie wykorzystywane komputery (np. jak ser- wery HTTP) na wiele maszyn, natomiast drugie jest używane w celu sterowania ruchem pakietów wyjściowych i w pewien sposób ograniczania ruchu pakietów wejściowych. 10.1. Równoważenie obciążenia Celem równoważenia obciążenia jest mniej więcej równomierna dystrybucja zadań po- między dwoma lub większą liczbą maszyn lub połączeń. Równoważenie obciążenia jest nowym dodatkiem do pf(4), ale sama koncepcja nie jest nowa, a na pewno nie dla tych Czytelników, którzy używali dystrybucji obciążenia typu round robin oferowanej przez serwer DNS named(8): YYYGZCORNGEQO+0#CCCC YYYGZCORNGEQO+0#CCCD YYYGZCORNGEQO+0#CCCE YYYGZCORNGEQO+0#CCCF 166 OpenBSD. Tworzenie firewalli za pomocą PF W chwili gdy BIND otrzyma zapytanie o www.example.com, zwróci następujące zbiory adresów: CCCCCCCDCCCECCCF następnie: CCCDCCCECCCFCCCC następnie: CCCECCCFCCCCCCCD następnie: CCCFCCCCCCCDCCCE następnie: CCCCCCCDCCCECCCF następnie: CCCDCCCECCCFCCCC i tak dalej. Program named równomiernie rozkłada obciążenie pomiędzy cztery oddzielne serwery HTTP udostępniające te same treści, odsyłając klienty pytające o www.example.com do każdego z tych serwerów po kolei. W wyniku tego poszczególne serwery powinny otrzymać tylko jedną czwartą zapytań kierowanych do www.example.com. Równoważenie obciążenia dokonywane przez pf(4) (patrz rysunek 10.1) działa według podobnych zasad, jakie przyjęto dla metody round-robin stosowanej w DNS. Pomiędzy nimi istnieją cztery zasadnicze różnice:     Nie ma potrzeby dokonywania edycji rekordów DNS. Równoważenie obciążenia dokonywane przez pf(4) jest przezroczyste. Większa elastyczność i lepsza kontrola. pf(4) jest w stanie stosować różne algorytmy równoważenia obciążenia w zależności od klasy adresowej, protokołu lub portu. Prędkość. Algorytm round-robin stosowany w DNS jest wolniejszy od metody użytej w pf(4). Oszczędzanie przestrzeni adresów IP. Aby korzystając z metody round-robin w DNS uruchomić publicznie dostępny serwer sieciowy, należy przydzielić mu publiczny adres IP. Nie jest to konieczne w przypadku pf(4). Można uruchomić dowolną liczbę serwerów sieciowych w DMZ (zobacz rozdział 2., „Projekty zapór sieciowych”), które zostaną udostępnione pod jednym, tym samym publicznym adresem IP. Równoważenie obciążenia oferowane przez pf(4) może działać jako uzupełnienie równo- ważenia DNS. Oba rozwiązania mogą być wykorzystywane jednocześnie i działać na róż- nym poziomie redundancji. Równoważenie z pf(4) nie zadziała jeśli zapora nie będzie w ogóle dostępna ze świata zewnętrznego. W takim przypadku sprawdzi się jednak równoważenie z DNS (pewien procent żądań będzie jednak nadal kierowany do nie- osiągalnych serwerów). Rozdział 10. ♦ Zarządzanie obciążeniem pasma i równoważenie obciążenia 167 Rysunek 10.1. Rozkład obciążenia zaimplementowany za pomocą pf(4) 10.1.1. Implementacja równoważenia obciążenia Równoważenie obciążenia może być zaimplementowane jedynie dla reguł typu PCV lub TFT (zobacz rozdział 7. „Przeadresowanie pakietów”). Reguły typu DKPCV nie mogą być do tego użyte, ponieważ przypisane są dokładnie dwóm adresom. Wyboru metody najlepiej pasującej do potrzeb dokonuje się poprzez użycie następu- jących słów kluczowych:  TQWPFTQDKP — implementuje algorytm o tej samej nazwie. W przypadku użycia więcej niż jednego adresu docelowego jest to jedyny dozwolony algorytm: TFTQPPGRTQVQVERHTQOCP[VQGZVACFRQTV  ]_TQWPFTQDKP QTC\ TFTQPPGRTQVQVERHTQOCP[VQGZVACFRQTV  ]_TQWPFTQDKP CVCMľG TFTQPPGRTQVQVERHTQOCP[VQGZVACFRQTV  ]_TQWPFTQDKP  TCPFQO — algorytm wybiera w sposób losowy adresy maszyn z podanej podsieci zamiast listy adresów (używanej w przypadku TQWPFTQDKP). Podsieć jest adresem sieciowym podanym w notacji adres/maska opisanej w rozdziale 5. „Plik /etc/pf.conf”. Na przykład następująca reguła losowo przekierowuje pakiety na osiem adresów w segmencie 10.4.3.6/29: TFTQPPGRTQVQVERHTQOCP[VQGZVACFRQTV  TCPFQO A jeśli nie posiada się ośmiu maszyn w swojej sieci? Można wtedy przypisać więcej niż jeden adres do poszczególnych interfejsów, zwracając uwagę, by nie przypisać tego sa- mego adresu do dwóch interfejsów. Tę czynność wykonuje się za pomocą opcji CNKCU w programie ifconfig(8). Następnie należy skonfigurować serwery tak, aby nasłuchiwały także na dodatkowych adresach. Ten sposób łamie nieco losową naturę samej metody, dlatego też serwer posiadający dodatkowe adresy musi charakteryzować się najlepszą wydajnością.  UQWTEGJCUJ — przy stosowaniu TQWPFTQDKP lub TCPFQO może się zdarzyć, że pf(4) za każdym razem kierować będzie połączenia z jednego komputera źródłowego do różnych komputerów docelowych, co nie zawsze jest pożądanym 168 OpenBSD. Tworzenie firewalli za pomocą PF zjawiskiem. Aby zapewnić stałe połączenie pomiędzy określoną maszyną źródłową a zawsze tym samym komputerem docelowym, należy użyć opcji UQWTEGJCUJ, która za pierwszym razem wybiera adres docelowy w sposób losowy i wiąże go z adresem źródłowym, a wszystkie kolejne połączenia z tego samego adresu źródłowego kierować będzie do tego samego adresu docelowego: TFTQPPGRTQVQVERHTQOCP[VQGZVACFRQTV  UQWTEGJCUJ Początkowe przypisanie jest losowe, chyba że poda się wartość mieszającą: TFTQPPGRTQVQVERHTQOCP[VQGZVACFRQTV  UQWTEGJCUJNCPEWEJOKGU\CLCE[OQ\GD[EFQYQNP[  DKVOCUM — metoda ta sama w sobie nie jest równoważeniem obciążenia. Wiąże adresy sieciowe w sposób „jeden-do-jednego” w PCV, lecz nie wykonuje dwukierunkowej translacji. Oba segmenty sieciowe muszą mieć równą wielkość: # przekierowanie połączeń: # od 192.168.1.1 do 10.4.3.1 # od 192.168.1.2 do 10.4.3.2 # od 192.168.1.3 do 10.4.3.3 # i tak dalej... PCVQPPGRTQVQVERHTQOVQCP[  DKVOCUM Niestety adresowanie dokonywane przez TQWPFTQDKP oraz TCPFQO zakłóca niektóre protokoły, jak np. SSL, co może być nie do przyjęcia. W takich wypadkach należy użyć translacji UQWTEGJCUJ lub DKVOCUM. Reguły TFT dostosowane są do połączeń wejściowych lub przekierowania portów dla wyjściowych połączeń z wieloma maszynami proxy. Czy można posiadać dwa łącza z internetem i spowodować, aby były równomiernie obciążone przez maszyny z sieci wewnętrznej? Tak, jeśli użyje się opcji UQWTEGJCUJ w regule typu PCV. W tym przy- padku adresy zewnętrznych interfejsów muszą należeć do tego samego segmentu, tj.: PCVQPGZVAKHHTQOVQCP[  UQWTEGJCUJ Innym rozwiązaniem mogłoby być zastosowanie opcji trasowania TGRN[VQ (patrz rozdział 8., „Filtrowanie pakietów”), powodującej wysyłanie odpowiedzi poprzez inny interfejs. Gdy używa się opcji puli w regułach PCV, opcja UVCVKERQTV pozwala wyłączyć zmiany przypisań portów dokonywane przez te reguły. 10.2. Zarządzanie obciążeniem pasma Zarządzanie obciążeniem pasma wykonuje się w systemach OpenBSD za pomocą ALTQ, który jest częścią projektu KAME. www.kame.net — KAME, siedziba ALTQ. Rozdział 10. ♦ Zarządzanie obciążeniem pasma i równoważenie obciążenia 169 ALTQ jest w szczególny sposób efektywny, jeśli chce się, aby pewne pakiety miały większą wagę niż pozostałe i były przetwarzane wcześniej. Rozwiązaniem przyję- tym w ALTQ jest zarządzanie pasmem w oparciu o zmodyfikowany mechanizm typu „pierwszy na wejściu, pierwszy na wyjściu” (FIFO) zaimplementowany domyślnie do przetwarzania pakietów w stosie TCP/IP systemu OpenBSD. Domyślny algorytm prze- twarza pakiety w takim porządku, w jakim one przychodzą. ALTQ przydziela poszcze- gólne pakiety do oddzielnych kolejek (list pakietów) o różnych priorytetach. Pakiety umieszczone w kolejkach o wyższym priorytecie przetwarzane są przed pakietami z ko- lejek o niższym priorytecie. Te ostatnie utrzymywane są w pamięci aż do chwili, gdy wszystkie pakiety z kolejek o wyższym priorytecie zostaną przetworzone. Zarządzanie kolejkami opiera się na kilku algorytmach. OpenBSD 3.4 wspiera trzy typy algorytmów: kolejkowanie priorytetowe (ang. Priority Queuing) PRIQ, kolejkowanie klasowe (ang. Class-Based Queuing) CBQ oraz HFSC (ang. Hierarchical Fair Service Curve). Główną różnicą pomiędzy nimi jest sposób traktowania pakietów oraz szero- kości pasma. PRIQ zarządza szerokością pasma przez przetwarzanie pakietów zgodnie z ich poziomami priorytetów. Im wyższy poziom, tym wcześniej pakiet zostanie prze- tworzony. CBQ pozwala na zorganizowanie kolejki w postaci złożonego drzewa różno- rodnych priorytetów i szerokości pasma, podobnie jak HFSC, który daje administratorowi daleko większy stopień kontroli nad drzewami kolejek. W obu przypadkach definicja kolejki rozpoczyna się pojedynczą regułą algorytmu, po którym następuje lista reguł de- finiujących kolejki. 10.2.1. Anatomia reguły nadrzędnej Wszystkie definicje kolejek rozpoczynają się pojedynczą regułą, która definiuje kolejkę nadrzędną:  Słowo kluczowe CNVS. Oznacza rozpoczęcie definicji kolejki nadrzędnej. Do jednego interfejsu można przypisać tylko jedną kolejkę nadrzędną. Ta część jest wymagana.  Specyfikacja interfejsu. Słowo kluczowe QP, za nim występuje nazwa interfejsu, któremu przypisuje się kolejkę nadrzędną. Część wymagana.  Algorytm. Należy podać: RTKS (PRIQ), EDS (CBQ) lub JHUE (HFSC). Wybiera typ algorytmu kolejek użytego dla kolejki nadrzędnej. Ta część jest obowiązkowa.  Maksymalna dostępna szerokość pasma. Słowo kluczowe DCPFYKFVJ, za którym następuje liczba zakończona jednym z następujących przyrostków: D (bitów na sekundę), -D (kilobitów na sekundę), /D (megabitów na sekundę) lub )D (gigabitów na sekundę). Jest to wartość oznaczająca maksymalną szerokość pasma interfejsu, któremu przypisywana jest kolejka nadrzędna. Podanie niższych wartości nie przeszkadza (powiedzmy 10 Mb zamiast 100 Mb), ale przypisanie wyższej od rzeczywistej nie pomoże (nie można zmusić interfejsu, aby pracował szybciej, niż pozwala na to sprzęt). Ta część nie jest wymagana. Jeśli zostanie pominięta, pfctl(8) spróbuje automatycznie użyć prędkości oferowanej przez interfejs, jeśli zdoła ją określić, w przeciwnym przypadku zgłosi błąd. 170 OpenBSD. Tworzenie firewalli za pomocą PF  Ograniczenie długości kolejki. Słowo kluczowe NKOKV, po którym następuje liczba całkowita. Wartość tego parametru oznacza dla ALTQ liczbę pakietów utrzymywanych w kolejce. Wartością domyślną jest 50. Można zmienić długość kolejki, jeśli połączenia są często zrywane (zobacz też rozdział 14. „Optymalizacja zbioru reguł”, gdzie zamieszczono informacje o wartościach stanowych czasów oczekiwania). Ta część nie jest wymagana.  Regulator koszyka żetonów. Słowo kluczowe VDTUK\G, po którym następuje liczba bajtów określająca szybkość, z jaką ALTQ powinien wysyłać pakiety z kolejki. Ta część nie jest obowiązkowa i jeśli jest pominięta, ALTQ automatycznie dopasuje się do optymalnego poziomu.  Lista kolejek. Słowo kluczowe SWGWG, po którym następuje lista kolejek podrzędnych umieszczona w nawiasach klamrowych. Nazwa każdej kolejki musi być unikalna, lecz nie trzeba umieszczać nazwy domyślnej kolejki w tym miejscu (którą tak czy inaczej należy zdefiniować). Nazwy kolejek mogą być dowolne, nie mogą być tylko zarezerwowanymi przez pf(4) słowami kluczowymi. Jest to część obowiązkowa. Poniżej zamieszczono przykłady definicji kolejki nadrzędnej: # definiuje kolejkę nadrzędną i daje jej pod zarządzanie # 45Mb z całego pasma; definiuje cztery kolejki podrzędne: ssh, # www, other (domyślna), ctrl (sterująca); zarządzana jest za # pomocą PRIQ CNVSQPGZVAKHRTKSDCPFYKFVJ/DSWGWG]UUJYYYQVJGTEVTN_ # definiuje kolejkę nadrzędną z pasmem 45 Mb i sześcioma # kolejkami podrzędnymi: accounting, developers, managers, # users, other (domyślna), ctrl (sterująca); zarządzana jest za # pomocą CBQ CNVSQPGZVAKHEDSDCPFYKFVJ/D SWGWG]CEEQWPVKPIFGXGNQRGTUOCPCIGTUWUGTUQVJGTEVTN_ # definiuje kolejkę nadrzędną z pasmem 45 Mb i sześcioma # kolejkami podrzędnymi: accounting, developers, managers, # users, other (domyślna), ctrl (sterująca); zarządzana jest za # pomocą HFSC CNVSQPGZVAKHJHUEDCPFYKFVJ/D SWGWG]CEEQWPVKPIFGXGNQRGTUOCPCIGTUWUGTUQVJGTEVTN_ 10.2.2. Anatomia reguły kolejkowej Po zdefiniowaniu kolejek nadrzędnych należy przejść do definicji kolejek podrzędnych przypisanych do każdej z kolejek nadrzędnych:  Słowo kluczowe SWGWG. Rozpoczyna definicję kolejki podrzędnej. Część wymagana.  Szerokość pasma kolejki. Słowo kluczowe DCPFYKFVJ, po którym następuje wartość maksymalnej szerokości pasma dostępnego dla danej kolejki podrzędnej. Wartość ta może być określona w bitach (D), kilobitach (-D), megabitach (/D), gigabitach ()D) lub w procentach () szerokości pasma kolejki bezpośrednio nadrzędnej. Ta część jest wymagana, ale nie jest dozwolona dla PRIQ. Rozdział 10. ♦ Zarządzanie obciążeniem pasma i równoważenie obciążenia 171  Priorytet kolejki. Słowo kluczowe RTKQTKV[, za którym występuje liczba całkowita (0 – 15 dla kolejek PRIQ, 0 – 7 dla kolejek CBQ). Im wyższa wartość tego argumentu, tym wyższy priorytet kolejki (15 oznacza najwyższy priorytet w PRIQ, 7 dla CBQ, 0 jest najniższym priorytetem dla obu przypadków). Ta część jest obowiązkowa.  Opcje algorytmu. Nazwa algorytmu, za którą następuje lista opcji ujęta w nawiasy okrągłe:      DQTTQY — (tylko CBQ i HFSC) bieżąca kolejka może pożyczać pasmo ze swojej kolejki nadrzędnej w momencie, gdy pasmo nie jest przez kolejkę nadrzędną w pełni wykorzystane. FGHCWNV — każda kolejka nadrzędna określa jedną kolejkę podrzędną, która domyślnie zarządza pakietami nienależącymi do innych kolejek podrzędnych. TGF — pakiety szeregowane są za pomocą RED (ang. Random Early Detection). Pakiety będą odrzucane w sposób proporcjonalny do długości kolejki. Pakiety w dłuższych kolejkach odrzucane są wcześniej niż pakiety z kolejek krótszych. W praktyce oznacza to, że komunikatory internetowe, SSH lub telnet będą działały szybciej, podczas gdy długotrwałe transfery w rodzaju FTP staną się wolniejsze. GEP — pakiety w takiej kolejce są szeregowane z użyciem ECN (ang. Excplicit Congestion Notification), co zostało opisane w [RFC 3168]. Można w skrócie powiedzieć, że ECN jest rozszerzeniem RED, umożliwiającym routerom powiadamianie klientów i serwerów o konieczności spowolnienia ruchu w sieci z powodu przeciążenia. TKQ — pakiet szeregowane są z użyciem RED IN/OUT. Użycie tej opcji wymaga uaktywnienia RIO w jądrze systemowym i przebudowania go. W tym celu należy dodać następujący wiersz w pliku konfiguracyjnym jądra: QRVKQP#.63A4+1 Więcej informacji na temat przebudowywania jądra można znaleźć w Upgrade-MiniFAQ: http://www.openbsd.org/faq/upgrade-minifaq.html. Ta część nie jest obowiązkowa.  Lista kolejek podrzędnych. Lista nazw kolejek podrzędnych danej kolejki umieszczona w nawiasach klamrowych. Każda nazwa musi być unikalna. Ta część nie jest wymagana dla CBQ i HFSC, a niedozwolona dla PRIQ (dla których można określić tylko jeden poziom kolejek podrzędnych). 10.2.3. Przypisywanie kolejek do reguł filtrowania pakietów Po zdefiniowaniu kolejki nadrzędnej i jej kolejek podrzędnych należy przypisać do nich pakiety dopasowywane przez różne reguły typu RCUU. Uzyskuje się to przez użycie słowa kluczowego SWGWG umieszczonego na samym końcu reguły, na przykład: 172 OpenBSD. Tworzenie firewalli za pomocą PF RCUUQWVSWKEMQPGZVAKHHTQOCP[VQCP[SWGWGWUGTU Dozwolone jest umieszczenie nazw dwóch kolejek: RCUUQWVSWKEMQPGZVAKHHTQOCP[VQCP[SWGWG]WUGTUCFOKPU_ Przy podaniu dwóch kolejek druga z nich zostanie użyta, jeżeli:  Pole 615 dopasowanych pakietów ustawiono na NQYFGNC[.  Dopasowane zostały pakiety 6 2# -, które nie posiadają żadnych danych. Pakiety nieprzypisane do innych kolejek zostaną automatycznie przypisane kolejce do- myślnej. 10.2.4. Kolejkowanie priorytetowe (PRIQ) Algorytm PRIQ używa prostego modelu płaskiego pasma, które podzielone jest na mniej- sze składowe posiadające różne priorytety. Jest to efektywny sposób implementacji prostej polityki kolejkowania w rodzaju „połączenia SSH są ważniejsze niż HTTP i NNTP” lub „połączenia do działu badań są ważniejsze od połączeń z biblioteką, lecz oba są mniej ważne niż połączenia z administratorami sieci”. Zobaczmy, w jaki sposób implementuje się następującą politykę:      Zapytania DNS mają najwyższy priorytet. Połączenia typu SSH oraz TELNET mają niższe priorytety niż DNS. Połączenia do serwerów pocztowych (SMTP, POP2, POP3, IMAP, IMAP3, POP3S) mają niższy priorytet niż połączenia SSH i TELNET. Połączenia z serwerami WWW (HTTP, HTTPS) mają niższy priorytet niż połączenia z serwerami pocztowymi. Wszystkie inne typy połączeń mają najniższy, domyślny priorytet. Przykładowy zbiór reguł oparty na algorytmie PRIQ umożliwiający nadanie różnych priorytetów różnym typom usług (patrz rysunek 10.2) pokazany został poniżej: # MAKRODEFINICJE # zewnętrzne interfejsy GZVAKHPG # DEFINICJA KOLEJKI NADRZĘDNEJ # definiuje kolejkę nadrzędną PRIQ: pasmo 45 Mb i pięć kolejek # podrzędnych: dns, ssh, www, mail, other (domyślna). # Kolejność kolejek podrzędnych jest nieistotna CNVSQPGZVAKHRTKSDCPFYKFVJ/D SWGWG]FPUUUJYYYOCKNQVJGT_ # DEFINICJE KOLEJEK PODRZĘDNYCH # Zapytania DNS posiadają wysoki priorytet, ponieważ muszą # być wykonane tak szybko, jak to możliwe SWGWGFPURTKQTKV[RTKS TGF # Połączenia SSH mają jeden z wysokich priorytetów, ponieważ # często używane są w celach administracyjnych Rozdział 10. ♦ Zarządzanie obciążeniem pasma i równoważenie obciążenia 173 Rysunek 10.2. Układ kolejkowania typu PRIQ dla ALTQ ustalony dla różnych zewnętrznych usług SWGWGUUJRTKQTKV[RTKS TGF # Połączeniom pocztowym nadaje się niższy priorytet niż SSH, # lecz wyższy niż HTTP/HTTPS, ponieważ chcemy wysyłać/odbierać # nasze listy tak szybko, jak to możliwe SWGWGOCKNRTKQTKV[RTKS TGF # Połączenia HTTP/HTTPS mają niższy priorytet, ponieważ nie są # tak bardzo czułe na opóźnienia jak inne SWGWGYYYRTKQTKV[RTKS TGF # Inne połączenia przypisane są domyślnej kolejce SWGWGQVJGTRTKQTKV[RTKS FGHCWNV # REGUŁY FILTROWANIA PRZYPISANE KOLEJKOM # Pakiety wysyłane na port 53 (DNS) zostaną przypisane kolejce # dns (należy zauważyć użycie keep state zamiast synproxy state # lub modulate state, ponieważ pakiety UDP mogą być poddane # filtrowania tylko z użyciem keep state). RCUUQWVSWKEMQPGZVAKHKPGVRTQVQWFR HTQOCP[VQCP[RQTVMGGRUVCVGSWGWGFPU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQOCP[VQCP[RQTVU[PRTQZ[UVCVGSWGWGFPU # pakiety wysłane na port 22 (SSH), 23 (TELNET) zostaną przypisane # do kolejki ssh RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQOCP[VQCP[RQTV  U[PRTQZ[UVCVGSWGWGUUJ # pakiety wysłane na port 25 (SMTP), 109 (POP2), 110 (POP3), # 143 (IMAP), 220 (IMAP3), 995 (POP3S) zostaną przypisane do # kolejki mail RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQOCP[VQCP[RQTV]_ U[PRTQZ[UVCVGSWGWGOCKN # pakiety wysłane na port 80 (HTTP), 443 (HTTPS) zostaną # przypisane kolejce www RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQOCP[VQCP[RQTV] U[PRTQZ[UVCVGSWGWGYYY 174 OpenBSD. Tworzenie firewalli za pomocą PF Inny przypadek: nadawanie różnych priorytetów połączeniom inicjowanym przez różne zewnętrzne maszyny.      Pakiety wysłane z maszyn używanych przez administratorów mają najwyższy priorytet. Pakiety wysłane z komputerów z działu finansów mają niższe priorytety niż pakiety wysyłane z maszyn administratorów. Pakiety wysyłane z komputerów programistów mają niższy priorytet niż pakiety z komputerów działu finansów. Pakiety z komputerów zwykłych użytkowników mają niższy priorytet niż pakiety wysyłane z maszyn programistów. Wszystkie inne połączenia maja najniższy, domyślny priorytet. Przykładowy zbiór reguł opartych na algorytmie PRIQ, nadający różne priorytety połą- czeniom wyjściowym z różnych komputerów pokazany został poniżej: # MAKRODEFINICJE # zewnętrzny interfejs GZVAKHPG # maszyny administratorów CFOKPUACF]CCCCCCCD_ # maszyny księgowych CEEQWPVUACF]CCCECCCFCCCG_ # maszyny programistów EQFGTUACF]CCCHCCCICCCJ_ # maszyny użytkowników WUGTUACF]CCCKCCCLCCCM_ # DEFINICJA KOLEJKI NADRZĘDNEJ # definiuje kolejkę nadrzędną PRIQ: pasmo 45 Mb i pięć kolejek # podrzędnych: admins, accounts, coders, users, other (domyślna) CNVSQPGZVAKHRTKSDCPFYKFVJ/D SWGWG]CFOKPUCEEQWPVUEQFGTUWUGTUQVJGT_ # DEFINICJE KOLEJEK PODRZĘDNYCH # administratorzy otrzymują najwyższy priorytet SWGWGCFOKPURTKQTKV[RTKS TGF # dział finansowy SWGWGCEEQWPVURTKQTKV[RTKS TGF # programiści SWGWGEQFGTURTKQTKV[RTKS TGF # zwykli użytkownicy SWGWGWUGTURTKQTKV[RTKS TGF # inne SWGWGQVJGTRTKQTKV[RTKS FGHCWNV # REGUŁY FILTROWANIA PRZYPISANE KOLEJKOM # administratorzy RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQOCFOKPUACFVQCP[U[PRTQZ[UVCVGSWGWGCFOKPU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQWFR HTQOCFOKPUACFVQCP[MGGRUVCVGSWGWGCFOKPU # księgowi RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQOCEEQWPVUACFVQCP[U[PRTQZ[UVCVGSWGWGCEEQWPVU Rozdział 10. ♦ Zarządzanie obciążeniem pasma i równoważenie obciążenia 175 RCUUQWVSWKEMQPGZVAKHKPGVRTQVQWFR HTQOCEEQWPVUACFVQCP[MGGRUVCVGSWGWGCEEQWPVU # programiści RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQOEQFGTUACFVQCP[U[PRTQZ[UVCVGSWGWGEQFGTU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQWFR HTQOEQFGTUACFVQCP[MGGRUVCVGSWGWGEQFGTU # użytkownicy RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQOWUGTUACFVQCP[U[PRTQZ[UVCVGSWGWGWUGTU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQWFR HTQOWUGTUACFVQCP[MGGRUVCVGSWGWGWUGTU Zaprezentowany powyżej zbiór reguł zakłada, że wewnętrzne maszyny mają prawi- dłowe adresy publiczne. Co zrobić z NAT, który ukrywa wszystkie maszyny za poje- dynczym interfejsem i wysyła wszystkie pakiety na zewnątrz z adresem źródłowym równym adresowi zewnętrznego interfejsu zapory? W dalszym ciągu można rozróżnić komputery, jeśli zdefiniuje się, które porty mogą być użyte przez poszczególne komputery: # MAKRODEFINICJE # zewnętrzny interfejs GZVAKHPG # maszyny administratorów CFOKPUACF]CCCCCCCD_ # maszyny księgowych CEEQWPVUACF]CCCECCCFCCCG_ # maszyny programistów EQFGTUACF]CCCHCCCICCCJ_ # maszyny użytkowników WUGTUACF]CCCKCCCLCCCM_ # DEFINICJA KOLEJKI NADRZĘDNEJ # definiuje kolejkę nadrzędną PRIQ: pasmo 45 Mb i pięć kolejek # podrzędnych: admins, accounts, coders, users, other (domyślna) CNVSQPGZVAKHRTKSDCPFYKFVJ/D SWGWG]CFOKPUCEEQWPVUEQFGTUWUGTUQVJGT_ # DEFINICJE KOLEJEK PODRZĘDNYCH # administratorzy otrzymują najwyższy priorytet SWGWGCFOKPURTKQTKV[RTKS TGF # dział finansów SWGWGCEEQWPVURTKQTKV[RTKS TGF # programiści SWGWGEQFGTURTKQTKV[RTKS TGF # zwykli użytkownicy SWGWGWUGTURTKQTKV[RTKS TGF # inne SWGWGQVJGTRTKQTKV[RTKS FGHCWNV # REGUŁY NAT # administratorzy PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOCCCCVQCP[  GZVAKH RQTV PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOCCCDVQCP[  GZVAKH RQTV # księgowi PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOCCCEVQCP[  GZVAKH RQTV 176 OpenBSD. Tworzenie firewalli za pomocą PF PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOCCCFVQCP[  GZVAKH RQTV PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOCCCGVQCP[  GZVAKH RQTV # programiści PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOCCCHVQCP[  GZVAKH RQTV PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOCCCIVQCP[  GZVAKH RQTV PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOCCCJVQCP[  GZVAKH RQTV # użytkownicy PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOCCCKVQCP[  GZVAKH RQTV PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOCCCLVQCP[  GZVAKH RQTV PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOCCCMVQCP[  GZVAKH RQTV # REGUŁY FILTROWANIA PRZYPISANE KOLEJKOM # administratorzy RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGCFOKPU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGCFOKPU # księgowi RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGCEEQWPVU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGCEEQWPVU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGCEEQWPVU # programiści RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGEQFGTU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGEQFGTU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGEQFGTU # użytkownicy RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGWUGTU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGWUGTU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGWUGTU Jak widać, reguły PRIQ nie pozwalają definiować wielkości pasma przypisanej każdej kolejce podrzędnej, tylko kontrolują jej priorytet. Jeśli chce się mieć lepszą kontrolę nad szerokością pasma dla poszczególnych kolejek, należy użyć algorytmu CBQ lub HFSC. 10.2.5. Kolejkowanie oparte na klasach (CBQ) Algorytm CBQ pozwala na lepszą kontrolę szerokości pasma. Można decydować nie tylko o priorytecie każdej kolejki, ale również o szerokości przypisanego jej pasma. Kolejki można zorganizować na kilku poziomach. Możliwe jest pożyczanie pasma od Rozdział 10. ♦ Zarządzanie obciążeniem pasma i równoważenie obciążenia 177 kolejek nadrzędnych. Ta cecha umożliwia implementację takich polityk jak: „finanse mu- szą mieć co najmniej pasmo 1 Mb, programiści nie mogą używać większego pasma niż 2 Mb, a menedżerowie nie mogą używać więcej niż 1 Mb, z tym że szef musi mieć co najmniej 200 Kb”. Najlepszym sposobem nauczenia się CBQ jest napisanie prostej konfiguracji. Załóżmy, że chcemy podzielić pasmo pomiędzy dwa segmenty sieci połączonej do zapory, która dokonuje translacji typu NAT (patrz rysunek 10.3): # MAKRODEFINICJE # zewnętrzny interfejs GZVAKHPG # interfejs DMZ FO\AKHPG # interfejs prywatny RTXAKHPG # DEFINICJA KOLEJKI NADRZĘDNEJ # definiuje kolejkę nadrzędną CBQ: pasmo 45 Mb z trzema kolejkami # podrzędnymi: dmznet (komputery w DMZ), # prvnet (komputery w prywatnym segmencie), # other (domyślna, połączenia z samej zapory) CNVSQPGZVAKHEDSDCPFYKFVJ/D SWGWG]FO\PGVRTXPGVQVJGT_ # DEFINICJE KOLEJEK PODRZĘDNYCH # nadaje wyjściu z DMZ 50 szerokości pasma kolejki # nadrzędnej SWGWGFO\PGVDCPFYKFVJRTKQTKV[EDS TGF # nadaje wyjściu z prywatnej sieci pasmo 45 szerokości pasma kolejki # nadrzędnej SWGWGRTXPGVDCPFYKFVJRTKQTKV[EDS TGF # przypisuje pasmo wyjściu z zapory SWGWGQVJGTUDCPFYKFVJRTKQTKV[EDS FGHCWNV # TRANSLACJA PAKIETÓW # dodaje reguły NAT ze zdefiniowanymi zakresami portów, tak abyśmy # wiedzieli, skąd przychodzą wejściowe pakiety (NAT zmieni ich adresy # źródłowe i numerami portów trzeba posłużyć się do rozpoznania, kto jest kim). # Wyłącz NAT dla połączeń pomiędzy prywatną siecią a segmentem DMZ PQPCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOFO\AKHPGVYQTMVQRTXAKHPGVYQTM PQPCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQORTXAKHPGVYQTMVQFO\AKHPGVYQTM # dokonuj translacji NAT pomiędzy segmentem DMZ a światem zewnętrznym PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQOFO\AKHPGVYQTMVQCP[ GZVAKHRQTV # dokonaj translacji NAT pomiędzy segmentem prywatnym a światem # zewnętrznym PCVQPGZVAKHKPGVRTQVQ]VERWFR_ HTQORTXAKHPGVYQTMVQCP[ GZVAKHRQTV # REGUŁY FILTROWANIA PAKIETÓW PRZYPISANE KOLEJKOM RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGFO\PGV RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[SWGWGRTXPGV OpenBSD. Tworzenie firewalli za pomocą PF 178 Rysunek 10.3. Podział pasma pomiędzy dwa wewnętrzne segmenty sieci za pomocą CBQ Przedstawiony powyżej zbiór reguł pokazuje podstawową implementację kolejkowa- nia pakietów, która nakłada ograniczenie na szerokość pasma pakietów wyjściowych wysłanych z segmentu DMZ i prywatnego. Pakiety te nie są poddawane żadnemu za- awansowanemu kolejkowaniu. Należy zauważyć, że kolejka nadrzędna używa 50 pasma swojego interfejsu. Zrobiono tak, aby pozostawić trochę miejsca dla połączeń wejściowych, inaczej użytkownicy komputerów podłączonych do segmentu prywatnego mogliby zużyć całe dostępne pasmo. Zobaczmy, w jaki sposób zaprezentowany zbiór reguł może zostać rozszerzony do postaci bardziej złożonego drzewa kolejek, które implementują następującą politykę kolejkowania pakietów (patrz rysunek 10.4):      Kolejka nadrzędna używa 50 całej szerokości pasma. Segment DMZ używa 50 pasma kolejki nadrzędnej. Pakiety kolejkowane są z użyciem algorytmu CBQ bez wyszczególnienia pasma, ale z podanym priorytetem (tak jak w przypadku PRIQ, ale nie można użyć więcej niż jednego algorytmu, a zakres priorytetów jest mniejszy: od 0 do 7). Prywatny segment używa 49 pasma swej kolejki nadrzędnej. Każdy z n prywatnych komputerów dostaje 1/n-tą szerokości pasma swej kolejki nadrzędnej (w tym przypadku 25 dla każdej maszyny z tego segmentu). Kolejkowanie pakietów dla każdej prywatnej maszyny jest wykonywane w sposób podobny do polityki kolejkowania zastosowanej dla maszyn z DMZ. Poniżej zamieszczono przykład zbioru reguł dla takiego podejścia: # MAKRODEFINICJE # zewnętrzny interfejs GZVAKHPG # interfejs DMZ FO\AKHPG # interfejs prywatny RTXAKHPG JQUVACF JQUVACF JQUVACF JQUVACF # DEFINICJA KOLEJKI NADRZĘDNEJ # definiuje kolejkę nadrzędną CBQ: pasmo 45 Mb z trzema kolejkami # podrzędnymi: dmznet (komputery w DMZ), # prvnet (komputery w prywatnym segmencie), # other (domyślna) Rozdział 10. ♦ Zarządzanie obciążeniem pasma i równoważenie obciążenia 179 Rysunek 10.4. Bardziej złożony układ kolejek CNVSQPGZVAKHEDSDCPFYKFVJ/D SWGWG]FO\PGVRTXPGVQVJGTU_ # DEFINICJE KOLEJEK PODRZĘDNYCH # nadaje wyjściu z DMZ 50 szerokości pasma kolejki # nadrzędnej SWGWGFO\PGVDCPFYKFVJRTKQTKV[EDS TGF  SWGWG]FPUUUJYYYOCKN_ # nadaje wyjściu z prywatnej sieci pasmo 49 szerokości pasma kolejki # nadrzędnej SWGWGRTXPGVDCPFYKFVJRTKQTKV[EDS TGF  SWGWG]JQUVJQUVJQUVJQUV_ # przypisuje pasmo do wyjścia z zapory SWGWGQVJGTUDCPFYKFVJRTKQTKV[EDS FGHCWNV # DEFINICJE KOLEJEK PODRZĘDNYCH: (dla dmznet) SWGWGFPURTKQTKV[EDS TGFDQTTQY SWGWGUUJRTKQTKV[EDS TGFDQTTQY SWGWGOCKNRTKQTKV[EDS TGFDQTTQY SWGWGYYYRTKQTKV[EDS TGFDQTTQY # DEFINICJE KOLEJEK PODRZĘDNYCH: (dla prvnet) SWGWGJQUVDCPFYKFVJEDS TGF ]FPUUUJOCKNYYY_ SWGWGJQUVDCPFYKFVJEDS TGF ]FPUUUJOCKNYYY_ SWGWGJQUVDCPFYKFVJEDS TGF ]FPUUUJOCKNYYY_ SWGWGJQUVDCPFYKFVJEDS TGF ]FPUUUJOCKNYYY_ 180 OpenBSD. Tworzenie firewalli za pomocą PF # DEFINICJE KOLEJEK PODRZĘDNYCH: (dla host1) SWGWGFPURTKQTKV[EDS TGFDQTTQY SWGWGUUJRTKQTKV[EDS TGFDQTTQY SWGWGOCKNRTKQTKV[EDS TGFDQTTQY SWGWGYYYRTKQTKV[EDS TGFDQTTQY # DEFINICJE KOLEJEK PODRZĘDNYCH: (dla host2) SWGWGFPURTKQTKV[EDS TGFDQTTQY SWGWGUUJRTKQTKV[EDS TGFDQTTQY SWGWGOCKNRTKQTKV[EDS TGFDQTTQY SWGWGYYYRTKQTKV[EDS TGFDQTTQY # DEFINICJE KOLEJEK PODRZĘDNYCH: (dla host3) SWGWGFPURTKQTKV[EDS TGFDQTTQY SWGWGUUJRTKQTKV[EDS TGFDQTTQY SWGWGOCKNRTKQTKV[EDS TGFDQTTQY SWGWGYYYRTKQTKV[EDS TGFDQTTQY # DEFINICJE KOLEJEK PODRZĘDNYCH: (dla host4) SWGWGFPURTKQTKV[EDS TGFDQTTQY SWGWGUUJRTKQTKV[EDS TGFDQTTQY SWGWGOCKNRTKQTKV[EDS TGFDQTTQY SWGWGYYYRTKQTKV[EDS TGFDQTTQY # REGUŁY NAT PQPCVQPGZVAKHHTQOFO\AKHPGVYQTMVQRTXAKHPGVYQTM PQPCVQPGZVAKHHTQORTXAKHPGVYQTMVQFO\AKHPGVYQTM PCVQPGZVAKHHTQOFO\AKHPGVYQTMVQCP[   GZVAKH RQTV PCVQPGZVAKHHTQOJQUVACFVQCP[   GZVAKH RQTV PCVQPGZVAKHHTQOJQUVACFVQCP[   GZVAKH RQTV PCVQPGZVAKHHTQOJQUVACFVQCP[   GZVAKH RQTV PCVQPGZVAKHHTQOJQUVACFVQCP[   GZVAKH RQTV # REGUŁY FILTROWANIA PRZYPISANE KOLEJKOM: (dla dmznet) RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[RQTVSWGWGFPU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQO GZVAKH RQTV VQCP[RQTV]_ SWGWGUUJ RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQO GZVAKH RQTV VQCP[ RQTV]_SWGWGOCKN RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQO GZVAKH RQTV VQCP[RQTV]_ SWGWGYYY # REGUŁY FILTROWANIA PRZYPISANE KOLEJKOM: (dla host1) RCUUQWVSWKEMQPGZVAKHKPGVRTQVQ]VERWFR_ HTQO GZVAKH RQTV VQCP[RQTVSWGWGFPU RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQO GZVAKH RQTV VQCP[RQTV]_ SWGWGUUJ Rozdział 10. ♦ Zarządzanie obciążeniem pasma i równoważenie obciążenia 181 RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQO GZVAKH RQTV VQCP[ RQTV]_SWGWGOCKN RCUUQWVSWKEMQPGZVAKHKPGVRTQVQVER HTQO GZVAKH RQTV VQCP[RQTV]_ SWGWGYYY # REGUŁY FILTROWANIA PRZYPISANE KOLEJKOM: (dla host2) RCUUQWVSWKEMQPGZVAKHKPG
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

OpenBSD. Tworzenie firewalli za pomocą PF
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: