Verder Terug Inhoud

6. Hoe de filters werken

Je kan je pakket filter vorm geven door regels toe te voegen aan reeksen. Zulke reeksen (chains in het Engels) worden regel voor regel nagelopen om te kijken of er een regel is voor het huidige pakketje.

Er zijn standaard drie reeksen in de kernel, namelijk INPUT (inkomend), OUTPUT (uitgaand) en FORWARD (doorsturen).

De reeksen zijn als volgt gerangschikt:

                          _____
Inkomend                 /     \         Uitgaand
       -->[ Router ]--->|FORWARD|------->
          [ keuze  ]     \_____/        ^
               |                        |
               v                      ____
              ___                    /    \
             /   \                  |OUTPUT|
            |INPUT|                  \____/
             \___/                      ^
               |                        |
               --> Lokale programma's --^

De drie rondjes staan voor de drie reeksen. Als een pakketje bij zo'n cirkel aankomt worden de regels nagelopen om het lot van het pakketje te bepalen. Als hieruit blijkt dat het pakketje moet worden genegeerd (DROP) dan wordt het pakketje gelijk daar gestopt. Als uit de reeks blijkt dat er niets mis is met het pakketje (ACCEPT) dan doorloopt het pakketje de rest van het schema.

Elke reeks bestaat uit een aantal regels en een beleid (policy). Elke regel heeft de vorm van: "Als het pakketje deze eigenschappen heeft, doe dan dit en dat met het pakketje.". Als deze regel niet van toepassing is op het pakketje (het pakketje heeft niet de eigenschappen voor deze regel), dan wordt de volgende regel gelezen. Als de laatste regel is gelezen en er is geen regel die van toepassing is op dit pakketje, dan wordt de actie uitgevoerd die het beleid is. Dit is dus een standaard actie die van toepassing is op alle pakketjes die niet door een regel gespecifeerd zijn. Het beleid is meestal het pakketje negeren (DROP) zodat onbekende pakketjes niet door kunnen dringen.

  1. Als een pakketje binnenkomt (via een modem of ethernetkaart bijvoorbeeld), bepaalt de kernel eerst waar het pakketje heen moet. Dit heet routing.
  2. Als het pakketje voor deze computer bedoeld is, wordt het pakketje doorgegeven aan de INPUT reeks. Als het hierdoor komt, wordt het doorgegeven aan de programma's op de computer.
  3. Als het pakketje voor een andere computer bedoeld is, en de kernel kan niet forwarden of het weet niet hoe het geforward moet worden, wordt het pakketje genegeerd. Als er wel geforward kan worden, dan komt het pakketje in de FORWARD reeks. Komt het hierdoor, dan wordt het doorgestuurd naar een andere machine.
  4. Als een programma op de computer een pakketje verstuurd, moet het eerst door de OUTPUT reeks om verzonden te kunnen worden.


Verder Terug Inhoud