Zum Inhalt springen

iptables

aus Wikipedia, der freien Enzyklopädie
{{#if: iptables | iptables | {{#invoke:WLink|getArticleBase}} }}

{{#if: |

colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | {{{Logo}}} |
 {{#if: {{#invoke:Wikidata|claim|P154}} | 
[[Datei:{{#invoke:Wikidata|claim|P154}}|150px]]
 }}

}}{{#if: |

{{#if: |
}}|

}}

Basisdaten

{{#if: |

Hauptentwickler
 {{#if: {{#invoke:Wikidata|claim|P126}} | 
Maintainer claim|P126|parameter=link|references=ja|list=, }}
 }}

}}{{#if: Netfilter-Projekt-Team |

Entwickler
 {{#if: {{#invoke:Wikidata|claim|P178}} | 
Entwickler claim|P178|parameter=link|references=ja|list=, }}
 }}

}}{{#if: |

Erscheinungsjahr
 {{#if: {{#invoke:Wikidata|claim|P577}} | 
Erscheinungsjahr claim|P577|references=ja|list=, }} |
   {{#if: {{#invoke:Wikidata|claim|P571}} | 
Erscheinungsjahr claim|P571|references=ja|list=, }}
   }}
 }}

}}{{#ifeq: | KEINE_ANGABE || {{#if: |

Aktuelle Version
({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.
format | {{#timefl:now|date}}}} {{{2}}} | T._Monat JJJJ}} lang= {{#switch: -|=de #default=de-AT
            }}
   }}

}}) }}

 {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813}} | 
Aktuelle Version claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}} |
({{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}}) }}}}}}

}}{{#ifeq: {{{AktuelleVorabVersion}}} | KEINE_ANGABE || {{#if: |

Aktuelle Vorabversion
({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.
format {{{AktuelleVorabVersionFreigabeDatum}}} | {{#timefl:now|date}}}} {{{2}}} | T._Monat JJJJ}} lang= {{#switch: -|=de #default=de-AT
            }}
   }}

}}) }}

 {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724}} | 
Aktuelle Vorabversion claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}} |
({{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}}) }}}}}}

}}{{#if: |

Ausführungsumgebung
 {{#if: Linux | 
Betriebssystem Linux |
   {{#if: {{#invoke:Wikidata|claim|P306}} | 
Betriebssystem claim|P306|parameter=link|references=ja|list=, }}
   }}
 }}

}}{{#if: |

Programmier­sprache
 {{#if: {{#invoke:Wikidata|claim|P277}} | 
Programmier­sprache claim|P277|parameter=link|references=ja|list=, }}
 }}

}}{{#if: Firewall |

Kategorie Firewall

}}{{#if: GPL (Freie Software) |

Lizenz GPL (Freie Software) |
 {{#if: {{#invoke:Wikidata|claim|P275}} | 
Lizenz claim|P275|parameter=link|references=ja|list=, }}
 }}

}}{{#if: nein |

deutschsprachig faculty|nein}} | ja | nein }}

}}{{#if: |

Sonstiges {{{Sonstiges}}}Vorlage:Infobox Software/Wartung/Sonstiges

}}{{#if: netfilter.org |

netfilter.org |
 {{#if: {{#invoke:Wikidata|claim|P856|notdeprecated=1}} | 
{{#invoke: WLink | formatURL | {{#invoke:Wikidata|claim|P856|parameter=link|notdeprecated=1}}}}
 }}

}}{{#if: |

Dateien [[c:Category:Created with {{{Dateien}}}|{{{Dateien}}}]]

}}

iptables ist ein Userspace-Programm zur Konfiguration der Tabellen (tables), die durch die Firewall im Linux-Kernel (bestehend aus einer Reihe von Netfilter-Modulen) bereitgestellt werden. Diese Tabellen enthalten Ketten (chains) und Regeln (rules). Verschiedene Programme werden gegenwärtig für unterschiedliche Protokolle verwendet; iptables beschränkt sich auf IPv4, für IPv6 gibt es ip6tables, für ARP ist es arptables, und mit ebtables gibt es eine Sonderkomponente für Ethernet-Frames.

Da iptables erweiterte Systemprivilegien benötigt, muss es als root ausgeführt werden. Auf den meisten Linux-Systemen ist iptables als /usr/sbin/iptables installiert. Dokumentation ist in den Manpages mittels <syntaxhighlight lang="bash" style="white-space:nowrap" inline>man iptables</syntaxhighlight> einsehbar, sofern installiert.

Der Begriff iptables wird auch oft verwendet, um ausschließlich die Kernel-Komponenten zu beschreiben. x_tables ist der Name des Kernelmoduls, der den gemeinsamen Code aller vier Module (v4, v6, arp und eb) trägt, und das API für iptables-Erweiterungen bereitstellt. Folglich ist mit Xtables oft die gesamte Firewall-Infrastruktur gemeint.

Geschichte

Netfilter und iptables wurden ursprünglich zusammen entwickelt, sodass es Überschneidungen in der früheren Entwicklung gab. Siehe dazu den Netfilter-Artikel.

Linux besitzt ab Version 1.0 einen Paketfilter. Dieser stammte zunächst von BSD ab und wurde in der Linux-Version 2.0 unter dem Namen ipfwadm erweitert. Rusty Russell überarbeitete den Paketfilter nochmals und stellte ihn als ipchains zur Verfügung. Er wurde in Linux 2.2 integriert. Gegen 1999 wurde der Kernel und damit auch ipchains komplett überarbeitet. Aus ipchains ging iptables hervor, das seit Kernel 2.4 zum „Lieferumfang“ gehört.

iptables behält die ursprüngliche Grundidee von ipfwadm: Listen von Regeln, wovon jede angibt, was in einem Paket überprüft wird und was dann mit diesem Paket geschehen soll. ipchains brachte das Konzept von Ketten (chains) ein, und iptables erweiterte dies hin zu Tabellen (tables). Eine Tabelle ist für NAT zuständig, eine weitere zur Filterung. Zusätzlich wurden die drei Punkte, wo Pakete auf ihrer „Reise“ gefiltert werden, so geändert, dass jedes Paket nur durch einen Filterpunkt gelangt.

Diese Aufteilung ermöglichte iptables wiederum, Informationen zu verwenden, die das Connection-Tracking-Subsystem erarbeitet hatte – diese Information war zuvor an NAT gebunden. Somit hat iptables mehr Möglichkeiten als ipchains, da es zusätzlich den Zustand einer Verbindung überwachen, diese umleiten, oder Datenpakete basierend auf dem Zustand stoppen und manipulieren kann, statt dies nur mittels Quell- oder Zieladresse zu tun. Eine Firewall wie iptables, die diese Voraussetzungen erfüllt, wird als stateful bezeichnet, während ipchains außer in sehr begrenzten Ausnahmefällen doch nur stateless war.

Die aktuelle Version 1.8.5 ist am 3. Juni 2020 veröffentlicht worden.<ref>{{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:|{{{autor}}}: }}{{#if:|{{#if:iptables – iptables tree|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=iptables – iptables tree}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:https://git.netfilter.org/iptables/tag/?h=v1.8.5%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=iptables – iptables tree}}}}|[{{#invoke:URLutil|getNormalized|1=https://git.netfilter.org/iptables/tag/?h=v1.8.5}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=iptables – iptables tree}}}}]}}{{#if:| ({{{format}}}{{#if:{{#if: 2020-06-14 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}

          | )
          | {{#if:{{#ifeq:en|de||{{#if:en|1}}}}| ; 
              | )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:https://git.netfilter.org/iptables/tag/?h=v1.8.5%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=https://git.netfilter.org/iptables/tag/?h=v1.8.5}}%7C%7C}}}}{{#if:iptables – iptables tree|{{#if:{{#invoke:WLink|isValidLinktext|1=iptables – iptables tree|lines=0}}||}}}}{{#if: | In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{{werk}}}}}}}{{#if: | {{{hrsg}}}{{#if: |,|{{#if: 2020-06-14 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | {{#if:{{#invoke:DateTime|format|{{{datum}}}|noerror=1}}
            |{{#invoke:DateTime|format|{{{datum}}}|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum={{{datum}}}|class=Zitationswartung}} }}{{#if: |,|{{#if: 2020-06-14 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2020-06-14 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:484646||(?)}}}}}}{{#if: 2020-06-14|;}}}}{{#if: 2020-06-14| {{#if:{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2020-06-14 |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2020-06-14|class=Zitationswartung}} }} {{#invoke:DateTime|format|2020-06-14|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:en|de||{{#if:en|1}}}}|{{#if:{{#if: 2020-06-14 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
       |  (
       | {{#if: | |  (}}
       }}{{#ifeq:{{#if:en|en|de}}|de||
          {{#invoke:Multilingual|format|en|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:en|en|de}}|de||, }}{{{kommentar}}}}})}}{{#if: {{#if: 2020-06-14 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}en|{{#if: |: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: {{{zitat}}}

   | {{#if: 
       | {{#if: {{{zitat}}}
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: https://git.netfilter.org/iptables/tag/?h=v1.8.5
       | {{#if:  | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: https://git.netfilter.org/iptables/tag/?h=v1.8.5
      | {{#if:{{#invoke:URLutil|isWebURL|https://git.netfilter.org/iptables/tag/?h=v1.8.5}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://git.netfilter.org/iptables/tag/?h=v1.8.5 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: https://git.netfilter.org/iptables/tag/?h=v1.8.5
       | {{#if:{{#invoke:URLutil|isWebURL|https://git.netfilter.org/iptables/tag/?h=v1.8.5}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[https://git.netfilter.org/iptables/tag/?h=v1.8.5 }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: https://git.netfilter.org/iptables/tag/?h=v1.8.5
       | {{#if:  | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: https://git.netfilter.org/iptables/tag/?h=v1.8.5
      | {{#if:{{#invoke:URLutil|isWebURL|https://git.netfilter.org/iptables/tag/?h=v1.8.5}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://git.netfilter.org/iptables/tag/?h=v1.8.5 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: https://git.netfilter.org/iptables/tag/?h=v1.8.5
       | {{#if:{{#invoke:URLutil|isWebURL|https://git.netfilter.org/iptables/tag/?h=v1.8.5}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[https://git.netfilter.org/iptables/tag/?h=v1.8.5 }} }}}}}}}}}}{{#if:|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref>

Der Nachfolger von iptables ist nftables, das seit der Linux-Kernelversion 3.13 verfügbar ist.<ref>Die Neuerungen von Linux 3.13c't Magazin, am 20. Januar 2014</ref><ref>Die Neuerungen von Linux 4.10c't Magazin, am 17. Januar 2017</ref><ref>Linux 3.13: 1.2. nftables, the successor of iptables (englisch) – Linux Kernel Newbies, am 19. Januar 2014</ref>

{{#invoke:Vorlage:Siehe auch|f}}

Zusammenfassung der Funktion

Iptables ermöglicht dem Systemadministrator, Tabellen zu laden, die Ketten von Regeln für die Behandlung von Paketen enthalten. Jede Tabelle dient einem eigenen Zweck. Pakete werden durch sequenzielles Abarbeiten von Regeln innerhalb einer Kette weitergereicht. Eine Regel kann einen Sprung (jump) oder einen Aufruf (goto) in eine andere Kette erwirken, und dies kann mehrfach verschachtelt werden. (Eine Rückkehr (return) kehrt zur nächsten Regel nach dem Sprung zurück.) Jedes Netzwerkpaket, das den Computer erreicht oder diesen verlässt, durchläuft mindestens eine Kette.

Datei:Netfilter-packet-flow.svg
Graph zum Paketfluss. Pakete beginnen in einem bestimmten Kasten und werden entsprechend den Umständen (z. B. Routing) einen gewissen Pfad nehmen.

Der Ursprung des Pakets bestimmt, in welcher Kette die Abarbeitung beginnt. Es gibt fünf vordefinierte Ketten (die den fünf Netfilter-Hooks entsprechen), auch wenn eine Tabelle nicht unbedingt alle Ketten haben muss. Vordefinierte Ketten haben eine Policy, z. B. DROP, die greift, wenn ein Paket das Ende der Kette erreicht hat (also ohne auf eine Regel gepasst zu haben). Es können weitere benutzerdefinierte Ketten angelegt werden, jedoch haben diese keine Policy; trifft ein Paket auf deren Ende, geht die Abarbeitung in der Kette weiter, die ursprünglich den Sprung ausgelöst hat. Leere Ketten sind zulässig.

PREROUTING
Pakete landen in dieser Kette, bevor eine Routing-Entscheidung getroffen wird.
INPUT
Paket wird lokal zugestellt. (N. B.: Dies hat wenig mit Prozessen zu tun. Lokale Zustellung wird durch die local-Routingtabelle kontrolliert: <syntaxhighlight lang="bash" style="white-space:nowrap" inline>ip route show table local</syntaxhighlight>)
FORWARD
Alle Pakete, die geroutet und nicht lokal zugestellt wurden, passieren diese Kette.
OUTPUT
Pakete, die vom eigenen Computer erzeugt wurden, tauchen hier auf.
POSTROUTING
Routing-Entscheidung wurde getroffen. Pakete laufen hier nochmals durch, kurz bevor sie an die Hardware abgegeben werden.

Jede Regel in einer Kette enthält Spezifikationen (matches), auf welche Pakete sie zutrifft. Regeln können außerdem ein Ziel (target, für Erweiterungen) bzw. Urteil (verdict) enthalten. Mit dem Durchlaufen eines Paketes durch eine Kette werden Regeln nacheinander geprüft. Falls eine Regel auf das Paket nicht zutrifft, wird zur nächsten Regel übergegangen. Trifft sie hingegen zu, wird die mit Ziel/Urteil gelistete Aktion durchgeführt, welche darin resultieren kann, dass das Paket weiter durch die Kette läuft oder nicht. Spezifikationen stellen den größten Teil von Regelwerken dar, da sie die Bedingungen enthalten, auf die ein Paket getestet wird. Diese Tests können für jeden Layer im OSI-Model durchgeführt werden, zu nennen sind die <syntaxhighlight lang="bash" style="white-space:nowrap" inline>--mac-source</syntaxhighlight> und <syntaxhighlight lang="bash" style="white-space:nowrap" inline>-p tcp --dport</syntaxhighlight> Parameter. Jedoch gibt es auch protokollunabhängige Optionen, z. B. -m time.

Ein Paket avanciert in einer Kette, bis entweder eine Regel auf das Paket zutrifft und ein endgültiges Urteil für das Paket gefällt wird (z. B. mittels ACCEPT oder DROP) oder bis eine Regel als Urteil RETURN enthält (wodurch es in der übergeordneten Kette wieder weitergeht) oder bis das Ende der Kette erreicht wird.

Frontends

Zur Erleichterung beim Aufsetzen von Regeln wird Software von vielen Herstellern angeboten. Frontends in textbasierter oder grafischer Manier erlauben es Benutzern, einfache Regelwerke mit wenigen Mausklicks anzulegen; Skripte sind oftmals Shell-Skripte (aber auch andere Sprachen sind möglich), die iptables oder (das schnellere) iptables-restore mit einer Reihe von vordefinierten Regeln aufrufen. Dabei können auch Vorlagen zum Einsatz kommen, die mittels Konfigurationsdateien angelegt werden. Linux-Distributionen verwenden oft Vorlagen, bieten dem Anwender aber auch die Möglichkeit, eigene Regeln zu definieren.

Beispiele:

Solche Frontends, Generatoren und Skripte sind oft durch ihre Vorlagen und Bauweise beschränkt. Hinzu kommt, dass die so generierten Regelwerke meist nicht für den jeweiligen Einsatz der Firewall optimiert sind, da eine automatische Optimierung im Frontend einen hohen Entwicklungsaufwand darstellen würde. Benutzern, die ein gutes Verständnis von iptables haben und ein optimiertes Regelwerk wünschen, wird daher angeraten, die Regeln selbst zu konstruieren.

Siehe auch

Literatur

  • Gregor N. Purdy: Linux iptables – kurz & gut. O’Reilly, 2004, ISBN 3-89721-506-3.
  • Gregor N. Purdy: Linux iptables Pocket Reference. O’Reilly Media, 2004, englisch, ISBN 0-596-00569-5.
  • Ralf Spenneberg: Linux-Firewalls mit iptables & Co., mit CD-ROM. Addison-Wesley, München, 2006, ISBN 3-8273-2136-0.

Weblinks

[[b:{{#if:|{{{lang}}}:}}{{#if:Linux-Praxisbuch/ Linux-Firewall mit IP-Tables|Linux-Praxisbuch/ Linux-Firewall mit IP-Tables|Iptables}}|Wikibooks: {{#if:Linux-Praxisbuch: Linux-Firewall mit IP-Tables|Linux-Praxisbuch: Linux-Firewall mit IP-Tables|{{#if:Linux-Praxisbuch/ Linux-Firewall mit IP-Tables|Linux-Praxisbuch/ Linux-Firewall mit IP-Tables|Iptables}}}}]]{{#switch: 1

|1|= – Lern- und Lehrmaterialien |0|-= |X|x={{#switch: 0

      |0|4|10|12|14|100=}}

|#default= – {{{suffix}}}

}}{{#if: | ({{#invoke:Multilingual|format|{{{lang}}}|slang=!|shift=m}}) }}

{{#invoke:TemplatePar|check

  |opt= 1= 2= lang= suffix=
  |template=Vorlage:Wikibooks
  |cat=Wikipedia:Vorlagenfehler/Schwesterprojekt
  }}

Einzelnachweise

<references />

{{#ifeq: s | p | | {{#if: 4796978-7 | |

}} }}{{#ifeq:||{{#if: | [[Kategorie:Wikipedia:GND fehlt {{#invoke:Str|left|{{{GNDCheck}}}|7}}]] }}{{#if: | {{#if: | | }} }} }}{{#if: | {{#ifeq: 0 | 2 | | }} }}{{#if: | {{#ifeq: 0 | 2 | | }} }}{{#ifeq: s | p | {{#if: 4796978-7 | | {{#if: {{#statements:P227}} | | }} }} }}{{#ifeq: s | p | {{#if: 4796978-7 | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P227}} | | }} }} }} }}{{#ifeq: s | p | {{#if: | | {{#if: {{#statements:P244}} | | }} }} }}{{#ifeq: s | p | {{#if: | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P244}} | | }} }} }} }}{{#ifeq: s | p | {{#if: | | {{#if: {{#statements:P214}} | | }} }} }}{{#ifeq: s | p | {{#if: | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P214}} | | }} }} }} }}Vorlage:Wikidata-Registrierung