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.