Następna strona Poprzednia strona Spis treści

6. Jak pakiety podróżują przez filtry

Kernel rozpoczyna pracę z trzema listami reguł w tabeli filtrującej; nazywane sa one łańcuchami ściany ogniowej, lub po prostu łańcuchami. Te trzy nazwane zostały INPUT (wejściowy), OUTPUT (wyjściowy) i FORWARD (przekazujący).

Dla fanów ASCII-art, łańcuchy ułożone są w następujący sposób: (UWAGA: Wygląda to zupełnie inaczej niż w kernelach 2.0 i 2.2!

                          _____
Incoming                 /     \         Outgoing
       -->[Decyzja ]--->|FORWARD|------->
          [Rutingu ]     \_____/        ^
               |                        |
               v                       ____
              ___                     /    \
             /   \                   |OUTPUT|
            |INPUT|                   \____/
             \___/                       ^
               |                         |
                ----> Proces lokalny  ----

Trzy koła reprezentują trzy łańcuchy o których wspomniałem wyżej. Kiedy pakiet dociera do koła na diagramie, sprawdzany jest łańcuch reguł by zdecydować o losie pakietu. Jeśli łańcuch mówi że należy odrzucić (DROP) pakiet, jest on odrzucany tutaj, ale jeśli łańcuch mówi by zaakceptować pakiet (ACCEPT), kontynuuje on swoją podróż po diagramie.

Łańcuch to lista reguł. Każda reguła mówi 'jeśli nagłówek pakietu wygląda tak, to zrobimy z tym pakietem następującą rzecz'. Jeśli reguła nie pasuje do pakietu, sprawdzana jest następna. Na koniec, jeśli nie ma więcej reguł, kernel sprawdza politykę (ang. policy) danego łańcucha. W systemie w którym dba się o bezpieczeństwo, polityka mówi zwykle kernelowi by odrzucić (DROP) pakiet.

  1. Kiedy pakiet dociera do maszyny (powiedzmy, przez kartę Ethernetową), kernel sprawdza najpierw adres przeznaczenia pakietu: nazywa się to routingiem.
  2. Jeśli pakiet przeznaczony jest do tego kompuera, pakiet zostaje przepuszczony do łańcucha INPUT (wejściowego). Jeśli przejdzie go, otrzymuje go proces do którego był adresowany.
  3. W innym przypadku, jeśli kernel nie ma włączonego przekazywania (ang. forwarding), lub nie wie jak przekazać pakiet, jest on odrzucany. Jeśli przekazywanie jest włączone i pakiet jest przeznaczony do innego interfejsu sieciowego (jeśli w ogóle masz jeszcze jeden), pakiet przechodzi w prawo na naszym diagramie do łańcucha FORWARD (przekazującego). Jeśli zostaje zaakceptowany (ACCEPT), zostanie wysłany dalej.
  4. Na koniec, program pracujący na tym komputerze może również wysyłać własne pakiety. Przejdą one od razu do łańcucha OUTPUT (wyjściowego): jeśli stwierdzi on że zaakceptuje pakiet (ACCEPT), pakiet przechodzi do właściwego interfejsu sieciowego.


Następna strona Poprzednia strona Spis treści