Next Previous Contents

6. Wie Pakete die Filter passieren

Der Kernel beginnt mit drei Listen von Regeln in der Filtertabelle; diese Listen werden Firewall-Ketten oder nur Ketten (von englisch "chain" = Kette, And.d.Uebersetzerin) genannt. Diese drei Ketten heissen INPUT, OUTPUT und FORWARD.

Das unterscheidet sich sehr davon, wie der 2.0er oder 2.2er Kernel funktionierte!

Fuer Ascii-Art Fans, die Ketten sind so arrangiert:

                        _____
  Eingehend                  /     \       Ausgehend
       -->[Routing ]   ---> |FORWARD|------->
          [Entscheidung]     \_____/      ^
                 |                        |
                 v                       ____
                ___                     /    \
               /   \                   |OUTPUT|
              |INPUT|                   \____/
               \___/                      ^
                 |                        |
                  ----> Lokaler Prozess ---

Die drei Kreise repraesentieren die drei oben erwaehnten Ketten. Wenn ein Paket einen Kreis im Diagramm erreicht, wird diese Kette untersucht, um ueber das Schicksal des Pakets zu entscheiden. Wenn die Kette besagt, dass das Paket zu DROPPEN ist, wird das Paket hier gekillt. Wenn die Kette jedoch sagt, dass das Paket zu akzeptieren (ACCEPT) ist, kann es weiter durch das Diagramm reisen.

Eine Kette ist eine Checkliste von Regeln. Jede Regel sagt `Wenn der Paket-header so-und-so aussieht, ist das-und-das mit dem Paket zu tun'. Wenn die Regel nicht auf das Paket zutrifft, wird die naechste Regel befragt. Wenn es endlich keine Regeln zum Befragen mehr gibt, sieht sich der Kernel die Policy der Kette an und entscheidet, was zu tun ist. In einem sicherheitsbewussten System sagt diese Policy dem Kernel normalerweise, dass er das Paket DROPPEN soll.

  1. Wenn ein Paket eingeht (z.B. durch die Netzwerkkarte), sieht sich der Kernel zunaechst die Zieladresse des Pakets an: Das wird 'Routing' genannt.
  2. Wenn das Paket fuer diesen Rechner bestimmt ist, wandert es im Diagramm an die INPUT-Kette. Wenn es diese passiert, wird es der auf dieses Paket wartende Prozess erhalten.
  3. Andernfalls, wenn der Kernel Forwarding nicht aktiviert hat, oder er nicht weiss, wie er das Paket weiterleiten soll, wird das Paket verworfen. Wenn Forwarding aktiviert ist und das Paket fuer eine andere Netzwerkschnittstelle (wenn Du eine hast) bestimmt ist, geht das Paket in unserm Diagramm direkt zur FORWARD-Kette. Wenn es dort akzeptiert (ACCEPT) wird, wird es weitergeleitet.
  4. Schliesslich kann ein Programm, das auf dem Rechner laeuft, auch Netzwerkpakete verschicken. Diese Pakete gehen direkt zur OUTPUT-Kette. Wenn diese das Paket akzeptiert, wandert es weiter zu der Schnitt- stelle, fuer die es bestimmt ist.


Next Previous Contents