Eine Linux-Paketfilter Firewall besteht aus sogenannten Regelketten (chains). Standardmäßig existieren drei solcher Ketten:
- Die input-chain, die alle Pakete betrifft, die den Rechner verlassen
- Die output-chain, die alle Pakete betrifft, die der Rechner empfängt
- Die forward-chain, die alle Pakete betrifft, die der Rechner routen soll.
Alle drei Regelketten können unterschiedliche Grundeinstellungen haben, gemeinsam ist ihnen, dass sie eine Sammlung (Verkettung) von Regeln besitzen, die nacheinander abgearbeitet werden, solange bis eine Regel zutrifft oder das Ende der Kette erreicht wurde.
Es stehen drei Grundeinstellungen zur Verfügung:
- ACCEPT – Ein Paket wird akzeptiert
- DENY – Ein Paket wird wortlos abgewiesen
- REJECT – Ein Paket wird mit Fehlermeldung abgewiesen.
Hat eine Kette die Grundeinstellung (Policy) ACCEPT, so bedeutet das, das grundsätzlich alles erlaubt ist, was nicht explizit verboten ist. Hat sie aber DENY oder REJECT als Grundeinstellung, so ist alles verboten, was nicht explizit erlaubt wurde.
Der zweite Fall ist mit Sicherheit die bessere Wahl, wenn es darum geht, ein System richtig abzusichern, auch wenn es zunächstmal mehr Arbeit bedeutet. Schematisch dargestellt könnte man die Grundeinstellung ACCEPT folgendermaßen darstellen:
Die DENY-Grundeinstellung hingegen sähe so aus: