El núcleo empieza con tres listas de reglas en la tabla de «filtros»; estas listas se llaman cadenas cortafuegos o sencillamente cadenas. Se llaman INPUT, OUTPUT y FORWARD
ˇEsto es muy diferente a la manera de trabaja de los núcleos 2.0 y 2.2!
Para los fans del «ASCII-art», las cadenas están dispuestas de esta manera:
_____
Entrada / \ Salida
-->[Decisión de ]--->|FORWARD|------->
[Encaminamiento] \_____/ ^
| |
v ____
___ / \
/ \ |OUTPUT|
|INPUT| \____/
\___/ ^
| |
-------> Proceso Local -------
Estos tres círculos representan las tres cadenas que mencioné antes. Cuando un paquete alcanza un círculo en el diagrama, se examina esa cadena para decidir la suerte del paquete. Si la cadena dice que hay que descartar (DROP) el paquete, se le mata ahí mismo, pero si la cadena dice que hay aceptarlo (ACCEPT), continúa su camino por el diagrama.
Una cadena es una lista de reglas. Cada regla dice «si el paquete se parece a esto, entonces esto otro es lo que hay que hacer con él». Si la regla no se ajusta al paquete, entonces se consulta la siguiente regla en la lista. Al final, si no hay más reglas por consultar, el núcleo mira la política de la cadena para decidir qué hacer. En un sistema consciente de la seguridad, esta política suele decirle al núcleo que descarte (DROP) el paquete.