Jesteś tutaj

OpenBSD. Tworzenie firewalli za pomocą PF

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 (11)
Rozdział 1. Wprowadzenie (13)

  • 1.1. Cel zabezpieczania sieci (13)
  • 1.2. Przeznaczenie zapór sieciowych (15)
  • 1.3. Przyczyny wyboru oprogramowania open source (15)
  • 1.4. Przyczyny wyboru OpenBSD oraz PF (17)
  • 1.5. Kryptografia a prawo (19)
  • 1.6. Organizacja książki (19)
  • 1.7. Konwencje typograficzne wykorzystane w książce (21)
  • 1.8. Kontakt ze społecznością OpenBSD (21)
  • 1.9. Kontakt z autorem (22)

Rozdział 2. Projekty zapór sieciowych (23)

  • 2.1. Definicja lokalnej polityki filtrowania pakietów (23)
  • 2.2. Definicja zapory sieciowej (24)
  • 2.3. Czym zapory sieciowe nie są (25)
  • 2.4. Zapory sprzętowe i programowe (25)
  • 2.5. Wszystkie zapory duże i małe (25)
    • 2.5.1. Odizolowany komputer (26)
    • 2.5.2. Odizolowana sieć LAN lub segment sieci (27)
    • 2.5.3. Host bastionowy (29)
    • 2.5.4. Strefa zdemilitaryzowana (DMZ) (30)
    • 2.5.5. Duże sieci LAN (32)
  • 2.6. Niewidzialne systemy i zapory (32)
    • 2.6.1. Mosty filtrujące (32)
    • 2.6.2. Network Address Translation (NAT) (34)
  • 2.7. Dodatkowa funkcjonalność (34)

Rozdział 3. Instalacja OpenBSD (37)

  • 3.1. Wymagania programowe (37)
    • 3.1.1. Kupujemy oficjalny zestaw dysków CD z systemem OpenBSD (38)
    • 3.1.2. Dodatkowe wymagania programowe (38)
  • 3.2. Wymagania sprzętowe (40)
    • 3.2.1. Wybór platformy sprzętowej (40)
    • 3.2.2. Płyty główne (41)
    • 3.2.3. BIOS (42)
    • 3.2.4. Procesor (42)
    • 3.2.5. Pamięć (44)
    • 3.2.6. Przestrzeń dyskowa (44)
    • 3.2.7. Interfejsy sieciowe (45)
    • 3.2.8. Obsługa komputera podczas instalacji (48)
    • 3.2.9. Wybór sposobu instalacji OpenBSD (49)
    • 3.2.10. Napędy taśmowe (50)
    • 3.2.11. Diagnostyka sprzętu (50)
    • 3.2.12. Inne wymagania (51)
    • 3.2.13. Wykorzystanie podręcznika systemowego (51)
  • 3.3. Pobieranie OpenBSD z internetu (52)
  • 3.4. Przygotowanie nośników instalacyjnych (52)
  • 3.5. Instalacja systemu OpenBSD (53)
  • 3.6. Fizyczne zabezpieczanie komputera zapory sieciowej (63)

Rozdział 4. Konfiguracja OpenBSD (65)

  • 4.1. Zarządzanie kontami użytkowników (65)
    • 4.1.1. Dodawanie kont użytkowników (65)
    • 4.1.2. Udostępnianie praw roota (su) (66)
    • 4.1.3. Zmiana hasła użytkownika (67)
    • 4.1.4. Udostępnianie prawa roota dla wybranych poleceń (sudo) (67)
    • 4.1.5. Usuwanie użytkownika (68)
  • 4.2. Wzmacnianie systemu OpenBSD (68)
    • 4.2.1. Wyłączanie zbędnych usług (68)
    • 4.2.2. Instalacja poprawek (69)
    • 4.2.3. Inne źródła poprawek (72)
  • 4.3. Konfiguracja sieci (72)
    • 4.3.1. Wykorzystanie wielu adresów IP na jednym interfejsie (75)
    • 4.3.2. Opcje konfiguracyjne mechanizmu PF (75)
    • 4.3.3. Opcje konfiguracji mostu (76)
    • 4.3.4. Przekazywanie ruchu IP (79)
    • 4.3.5. Obsługa FTP (79)
    • 4.3.6. Kontrola protokołu ARP (82)
  • 4.4. Automatyczne restartowanie systemu (87)
  • 4.5. Szyfrowanie przestrzeni wymiany (88)
  • 4.6. Wykorzystanie poziomów zabezpieczeń (88)
  • 4.7. Ustawianie daty i czasu (89)
  • 4.8. Konfiguracja jądra w celu ominięcia problemów sprzętowych (89)
    • 4.8.1. Wykonywanie kopii zapasowej jądra (90)
    • 4.8.2. User Kernel Config (UKC) (90)
    • 4.8.3. Przenoszenie jądra między systemami (92)
  • 4.9. Instalacja i kompilacja oprogramowania (93)
  • 4.10. Konfiguracja dysków (93)
    • 4.10.1. RAID (94)

Rozdział 5. Plik /etc/pf.conf (95)

  • 5.1. Zawartość pliku /etc/pf.conf (95)
    • 5.1.1. Zmiana kolejności sekcji w pliku pf.conf (97)
    • 5.1.2. Łamanie długich wierszy (97)
    • 5.1.3. Grupowanie elementów reguł w listy (97)
  • 5.2. Makrodefinicje (97)
  • 5.3. Tablice (98)
  • 5.4. Kotwice (100)
  • 5.5. Najczęściej wykorzystywane elementy reguł PF (101)
    • 5.5.1. Kierunek (101)
    • 5.5.2. Interfejsy (101)
    • 5.5.3. Rodziny adresów (102)
    • 5.5.4. Protokoły (102)
    • 5.5.5. Adresy (103)
    • 5.5.6. Dynamiczna alokacja adresów (105)
    • 5.5.7. Porty (106)
    • 5.5.8. Oznaczenia (107)
  • 5.6. Narzędzia do zapisu i edycji pliku pf.conf (108)
    • 5.6.1. Przygotowanie pliku pf.conf w innym systemie (109)
    • 5.6.2. Wyróżnianie składni (109)
    • 5.6.3. Narzędzia obsługiwane za pomocą myszki (109)
    • 5.6.4. Generowanie pf.conf za pomocą skryptu (109)
  • 5.7. Zarządzanie plikiem pf.conf za pomocą CVS (109)

Rozdział 6. Normalizacja pakietów (113)

  • 6.1. Normalizacja pakietów (114)
    • 6.1.1. Składnia reguł normalizujących (114)
  • 6.2. Uszczegóławianie reguł normalizujących (115)
    • 6.2.1. Opcje PF (115)
    • 6.2.2. Opcje reguł normalizacji (116)
  • 6.3. Kto wysyła zniekształcone pakiety? (118)

Rozdział 7. Przeadresowanie pakietów (119)

  • 7.1. Zastosowanie do celów bezpieczeństwa (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 (122)
  • 7.3. Reguły NAT (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 (132)
    • 7.3.5. Reguły binat (132)
  • 7.4. Pośrednik ARP (134)

Rozdział 8. Filtrowanie pakietów (135)

  • 8.1. Anatomia reguły filtrowania (135)
    • 8.1.1. Co PF powinien robić? (136)
    • 8.1.2. Droga powrotna do nadawcy (137)
    • 8.1.3. Wejściowe czy wyjściowe? (139)
    • 8.1.4. Rejestrowanie ruchu pakietów (139)
    • 8.1.5. Wczesne zakończenie (140)
    • 8.1.6. Nazwy interfejsów sieciowych (140)
    • 8.1.7. Opcje routingu (141)
    • 8.1.8. Rodziny adresów IP: IPv4 lub IPv6 (142)
    • 8.1.9. Protokoły (143)
    • 8.1.10. Adresy źródłowe (143)
    • 8.1.11. Porty źródłowe (144)
    • 8.1.12. System operacyjny nadawcy (145)
    • 8.1.13. Docelowy adres IP (147)
    • 8.1.14. Port docelowy (147)
    • 8.1.15. Kontrola dostępu grupy i użytkownika (147)
    • 8.1.16. Opcje TCP (148)
    • 8.1.17. Pakiety ICMP (149)
    • 8.1.18. Filtrowanie z uwzględnieniem stanu (149)
    • 8.1.19. Opcje IP (154)
    • 8.1.20. Etykiety (154)
  • 8.2. Reguły przeciwdziałające fałszowaniu pakietów (155)
  • 8.3. Reguły filtrowania dla pakietów przekierowywanych (156)

Rozdział 9. Dynamiczne zbiory reguł (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 (165)
    • 10.1.1. Implementacja równoważenia obciążenia (167)
  • 10.2. Zarządzanie obciążeniem pasma (168)
    • 10.2.1. Anatomia reguły nadrzędnej (169)
    • 10.2.2. Anatomia reguły kolejkowej (170)
    • 10.2.3. Przypisywanie kolejek do reguł filtrowania pakietów (171)
    • 10.2.4. Kolejkowanie priorytetowe (PRIQ) (172)
    • 10.2.5. Kolejkowanie oparte na klasach (CBQ) (176)
    • 10.2.6. Hierarchical Fair Service Curve (HFSC) (181)
    • 10.2.7. Kolejkowanie pakietów wejściowych (185)
    • 10.2.8. Który algorytm jest najlepszy? (185)

Rozdział 11. Zapis i analiza dziennika (187)

  • 11.1. Uaktywnienie dziennika pakietów (188)
  • 11.2. Analiza dziennika (188)
  • 11.3. Które pakiety wyłapywać? (189)
  • 11.4. Sekretne życie dzienników (191)
  • 11.5. Szerokość pasma a wymagania dla przestrzeni dyskowej (194)
  • 11.6. Zapis dziennika na moście (porty span) (196)

Rozdział 12. Korzystanie z authpf (197)

  • 12.1. Konfiguracja authpf (198)
  • 12.2. Konfiguracja sshd (198)
  • 12.3. Konfiguracja powłoki logowania (198)
  • 12.4. Tworzenie reguł dla authpf (199)
  • 12.5. Uwierzytelnianie użytkownika Joe (199)

Rozdział 13. Używanie spamd (203)

  • 13.1. Konfiguracja spamd (203)

Rozdział 14. Optymalizacja zbioru reguł (207)

  • 14.1. Zasady usprawniające pracę PF (207)
  • 14.2. Opcje mechanizmu optymalizacji w PF (209)

Rozdział 15. Testowanie zapory (211)

  • 15.1. Test z ołówkiem (211)
  • 15.2. Sprawdzanie dostępności komputera (212)
    • 15.2.1. Kiedy ping nie pomaga (213)
  • 15.3. Wyszukiwanie otwartych portów na zdalnych maszynach (214)
  • 15.4. Testy wydajności sieci (215)
  • 15.5. Czy pakiety przechodzą przez PF? (217)
  • 15.6. Narzędzia dodatkowe (218)

Rozdział 16. Zarządzanie zaporą (221)

  • 16.1. Czynności podstawowe (221)
  • 16.2. Opcje sterowania wyjściem pfctl (221)
  • 16.3. Zarządzanie zbiorem reguł (222)
  • 16.4. Zarządzanie makrodefinicjami (222)
  • 16.5. Zarządzanie tablicami (222)
  • 16.6. Zarządzanie opcjami (223)
  • 16.7. Zarządzanie kolejkami (223)
  • 16.8. Zarządzanie regułami przekierowywania pakietów (224)
  • 16.9. Zarządzanie regułami filtrowania pakietów (224)
  • 16.10. Zarządzanie kotwicami (224)
  • 16.11. Zarządzanie stanami (225)
  • 16.12. Zarządzanie wzorcami identyfikacyjnymi systemów operacyjnych (225)
  • 16.13. Statystyki (226)
  • 16.14. Dodatkowe narzędzia do zarządzania PF (226)

Dodatek A Strony podręcznika systemowego (227)

  • A.1. Używanie podręcznika OpenBSD (227)
    • A.1.1. Strony podręcznika OpenBSD w sieci (228)
  • A.2. Strony powiązane z PF (228)
  • A.3. Inne interesujące strony (229)

Dodatek B Reguły dla popularnych (i mniej popularnych) usług (231)

  • B.1. Obsługa ICMP (233)
  • B.2. Rozwiązywanie problemów z FTP (234)
  • B.3. Wzorce reguł dla usług używających TCP i UDP (235)
  • B.4. Adaptowanie wzorca do innych usług (239)

Dodatek C Wzorce reguł dla typowych konfiguracji zapór sieciowych (241)

  • C.1. Host bastionowy (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 (245)
  • C.6. NAT plus chroniona sieć LAN plus DMZ (246)
  • C.7. Niewidzialny most (247)

Dodatek D Wspieranie OpenBSD i PF (249)

  • D.1. Kupowanie oficjalnych płyt CD-ROM, koszulek oraz plakatów (249)
  • D.2. Udzielanie małych, ale regularnych dotacji (250)
  • D.3. Wynajmowanie twórców OpenBSD i PF (251)
  • D.4. Dotowanie sprzętu (252)
  • D.5. Osobiste zaangażowanie w projekt (252)
  • D.6. Sianie słowa (252)
  • D.7. Seminaria szkoleniowe (252)

Dodatek E Bibliografia (253)
Skorowidz (257)
 

openSuSE Linux

openSuSE jest dystrybucją Linuksa sponsorowaną przez firmę Novell. Jest to Linux doskonale sprawdzający się jako system serwerowy, choć głównym zamierzeniem jego twórców było stworzenie Linuksa typu desktop. OpenSuSE Linux jest doskonałą alternatywą dla systemów Microsoft. Zawiera dopracowane graficzne narzędzia konfiguracyjne YaST i SaX2. Doskonale nadaje się dla początkujących użytkowników Linuksa.

Mandriva Linux

Mandriva Linux jest jedną z najpopularniejszych dystrybucji ogólnego użytku ostatnich lat. Dzięki swojej innowacyjności zdobyla uznanie zarówno początkujących jak i zaawansowanych użytkowników Linuksa. W kolejnych, wydawanych cyklicznie w odstępach półrocznych wersjach Mandriva Linux jest liderem we wprowadzaniu nowych narzędzi i funkcjonalności, niedostępnych jeszcze w innych dystrybucjach Linuksa.

Slackware Linux

Slackware Linux jest jedną z najstarszych dystrybucji Linuksa, rozwijaną aktywnie aż do chwili obecnej. Pierwsza wersja Slackware Linux została wydana w lipcu 1993 roku jako dystrybucja dla zaawansowanych użytkowników. Do chwili obecnej, jako jedna z niewielu dystrybucji, Slackware Linux wykorzystuje podczas instalacji tekstową wersję instalatora, przez co uznawana jest niesłusznie za trudniejszą w instalacji niż inne popularne dystrybucje.

Copyright 2003-2011 PHU Altkomp

stat4u