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)
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)