[Wstecz: Opcje w czasie działania]
[Spis treści]
[Dalej: Zakotwiczenia i nazwane zestawy (pod)reguł]
PF: Scrub (normalizacja pakietów)
Spis treści
Wprowadzenie
"Scrubbing" jest normalizacją pakietów, dzięki której nie ma wątpliwości co do
ich interpretacji po stronie odbiorcy. Dyrektywa 'scrub' defragmentuje także
pakiety, chroniąc niektóre systemy przed różnymi formami ataku, oraz odrzuca
pakiety TCP, które mają ustawione niepoprawne kombinacje
flag. Najprostszą formą dyrektywy
scrub jest:
scrub in all
Co oznacza normalizację wszystkich przychodzących pakietów na wszystkich
interfejsach sieciowych.
Jedynym powodem nie normalizowania pakietów na interfejsie sieciowym może
być przepuszczanie NFS przez PF na tym interfejsie. Niektóre, różne od
OpenBSD, platformy wysyłają (i oczekują na) dziwne pakiety - sfragmentowane
datagramy z ustawionym bitem "nie fragmentować", które są (słusznie)
odrzucane przez scrub. Problem ten może jednak być rozwiązany poprzez
użycie opcji no-df. Innym powodem mogą być kłopoty z połączeniem
w niektórych sieciowych grach komputerowych, których ruch przechodzi
przez PF z włączonym scrub. Poza tymi, skądinąd marginalnymi
przypadkami, normalizacja wszystkich pakietów jest bardzo wskazaną
praktyką.
Składnia dyrektywy scrub jest bardzo podobna do składni dyrektyw
filtrujących, która pozwala w prosty sposób
selektywnie normalizować poszczególne pakiety, i nie normalizować innych.
Więcej o koncepcji i zasadach normalizacji znajdziesz tutaj:
Network Intrusion Detection: Evasion, Traffic Normalization, and
End-to-End Protocol Semantics.
Opcje
scrub ma następujące opcje:
- no-df
- Usuwa bit nie fragmentować z nagłówka pakietu IP.
Niektóre systemy znane są z generowania sfragmentowanych pakietów
z ustawionym bitem nie fragmentować. Jest to szczególnie
prawdziwe dla NFS. Scrub będzie porzucać takie pakiety,
chyba że jest ustawiona opcja no-df. Ponieważ niektóre
systemy operacyjne generują nie fragmentowalne pakiety z
zerowym nagłówkiem identyfikacyjnym IP, jest zalecane używanie
no-df wraz z random-id.
- random-id
- Zastępuje pole identyfikacyjne IP wychodzących pakietów losową
wartością. Opcja ta odnosi się jedynie do wychodzących pakietów,
które nie są fragmentowane po opcjonalnym zdefragmentowaniu.
- min-ttl num
- Wymusza minimalne Time To Live (TTL) dla nagłówków pakietów IP.
- max-mss num
- Wymusza maksymalne Maximum Segment Size (MSS) dla nagłówków pakietów TCP.
- fragment reassemble
- Buforuje przychodzące fragmenty pakietów i defragmentuje je do całych
pakietów przed przekazaniem ich do filtra pakietów. Zaletą tego rozwiązania
jest to, iż reguły filtrujące operują jedynie na kompletnych pakietach i mogą
ignorować pojedyńcze fragmenty. Wadą jest zwiększone zużycie pamięci,
niezbędne do przechowywania fragmentów pakietów. Jest to domyślne zachowanie,
jeśli żadna opcja fragment nie jest podana. Jest to zarazem jedyna
opcja fragment, która współpracuje z NAT.
- fragment crop
- Powoduje, że duplikaty fragmentów są porzucane, a nakładające się
są kadrowane. W odróżnieniu do fragment reassemble, fragmenty
nie są buforowane, lecz są przekazywane dalej jak tylko dotrą.
- fragment drop-ovl
- Ta opcja jest podobna do fragment crop, z tą różnicą, że
wszystkie zduplikowane i nakładające się fragmenty będą porzucane, łącznie
z wszystkimi powiązanymi z nimi fragmentami.
- reassemble tcp
- Normalizuj połączenia TCP w trybie śledzenia stanów.
Korzystając z scrub reassemble tcp, kierunek (wchodzący/wychodzący)
(ang. in/out) nie musi być określony.
Następujące normalizacje mają miejsce:
- Żadna ze stron połączenia nie jest uprawniona do zredukowania swojego
TTL nagłówka IP. Dzieje się tak, aby zabezpieczyć nas przed napastnikami
wysyłającymi pakiet, który dociera do firewall`a, ma wpływ na przechowywane
w pamięci informacje o połączeniu stanowym, a następnie jego TTL jest
niewystarczające aby dotrzeć do węzła docelowego.
Wartość TTL dla wszystkich pakietów jest podnoszona do najwyższej
odnotowanej dla danego połączenia wartości.
- Modulowanie
RFC1323
znaczników czasowych w nagłówkach pakietów TCP przy pomocy liczb losowych.
Może to zapobiec domyśleniu się przez obserwatora czasu pracy maszyny
(ang. uptime) lub zgadnięciu ile maszyn jest za bramką NAT.
Przykłady:
scrub in on fxp0 all fragment reassemble min-ttl 15 max-mss 1400
scrub in on fxp0 all no-df
scrub on fxp0 all reassemble tcp
[Wstecz: Opcje w czasie działania]
[Spis treści]
[Dalej: Zakotwiczenia i nazwane zestawy (pod)reguł]
www@openbsd.org
Originally [OpenBSD: scrub.html,v 1.8 ]
$Translation: scrub.html,v 1.4 2004/01/12 17:37:45 pl-team Exp $
$OpenBSD: scrub.html,v 1.4 2004/01/16 21:01:34 jufi Exp $