<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Stateful_Packet_Inspection</id>
	<title>Stateful Packet Inspection - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Stateful_Packet_Inspection"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Stateful_Packet_Inspection&amp;action=history"/>
	<updated>2026-05-22T03:33:05Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Stateful_Packet_Inspection&amp;diff=749144&amp;oldid=prev</id>
		<title>imported&gt;Rlfy: /* growthexperiments-addlink-summary-summary:3|0|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Stateful_Packet_Inspection&amp;diff=749144&amp;oldid=prev"/>
		<updated>2025-01-17T13:55:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:3|0|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Belege fehlen|2=Dieser Artikel|1=Der Artikel gibt Spezialwissen wieder; es liegt auch nicht auf der Hand, wo dies nachgelesen werden kann [[WP:Q|=&amp;gt; Belege erforderlich.]]}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Stateful Packet Inspection&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;SPI&amp;#039;&amp;#039;&amp;#039;; deutsch &amp;#039;&amp;#039;Zustandsorientierte Paketüberprüfung&amp;#039;&amp;#039;) ist bei [[Firewall]]s eine [[Paketfilter]]technik, bei der jedes [[Datenpaket]] dynamisch einer [[Sitzung (Informatik)|Sitzung]] zugeordnet wird. Der Sitzungszustand wird in die Filterentscheidung mit einbezogen, wodurch ein größeres Schutzniveau erreicht wird als es mit einer zustandslosen Paketfilterung möglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei dieser Technik werden die ein- und ausgehenden Datenpakete auf [[Internetschicht|Internet-]] und [[Transportschicht]] analysiert und deren zugehöriger Sitzungszustand in einer dynamischen Zustandstabelle gespeichert. Für die Entscheidung über die Weiterleitung eines Datenpakets wird neben statischen Paketfilterregeln auch der aktuelle Sitzungszustand herangezogen.&amp;lt;ref&amp;gt;{{Literatur |Autor=William Stallings |Titel=Cryptography and Network Security: Principles and Practice |TitelErg=Global Edition. |Auflage=8. |Verlag=Pearson Education |Ort=Harlow, Vereinigtes Königreich |Datum=2023 |ISBN=1292437480 |Seiten=676f }}&amp;lt;/ref&amp;gt; So kann beispielsweise bei einem aus dem [[Internet]] erhaltenen Datenpaket berücksichtigt werden, ob bereits eine aufgebaute Verbindung zu dieser [[Netzwerkadresse]] existiert. Stateful Packet Inspection ist bei verbindungsorientierten [[Netzwerkprotokoll]]en wie dem [[Transmission Control Protocol]] (TCP) am wirkungsvollsten, kann mit Einschränkungen aber auch bei verbindungslosen Protokollen wie dem [[User Datagram Protocol]] (UDP) eingesetzt werden. In Verbindung mit [[Deep Packet Inspection]] kann Stateful Packet Inspection auch auf der [[Anwendungsschicht]] angewandt werden.&lt;br /&gt;
&lt;br /&gt;
Der Firewall-Hersteller [[Check Point]] nimmt für sich in Anspruch, diese Technik im Jahr 1993 erfunden zu haben.&amp;lt;ref name =&amp;quot;pat5606668&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
[[Bild:Stateful inspection udp.svg|upright=2.5|thumb|Stateful Inspection: die Eigenschaften ausgehender Datenpakete werden in einer Statustabelle gespeichert. Mit dieser werden eingehende Datenpakete verglichen]]&lt;br /&gt;
Kommuniziert beispielsweise ein Client &amp;#039;&amp;#039;A&amp;#039;&amp;#039; mit einem Webserver &amp;#039;&amp;#039;B&amp;#039;&amp;#039; über einen zustandslosen [[Paketfilter]] (also &amp;#039;&amp;#039;ohne&amp;#039;&amp;#039; Stateful Packet Inspection), so muss dieser in seinem [[Firewall-Regelwerk|Regelwerk]] zwei Verkehrsströme erlauben:&lt;br /&gt;
* Quelle &amp;#039;&amp;#039;A&amp;#039;&amp;#039; nach Ziel &amp;#039;&amp;#039;B&amp;#039;&amp;#039; mit Zielport 443 für den Dienst [[Hypertext Transfer Protocol Secure|HTTPS]], um die Anfrage an den Server zu senden.&lt;br /&gt;
* Quelle &amp;#039;&amp;#039;B&amp;#039;&amp;#039; nach Ziel &amp;#039;&amp;#039;A&amp;#039;&amp;#039; mit Quellport 443, um die HTTPS-Antwort vom Server zu empfangen.&lt;br /&gt;
Ein statisches Regelwerk erlaubt mehr als eigentlich nötig, da &amp;#039;&amp;#039;B&amp;#039;&amp;#039; jederzeit an &amp;#039;&amp;#039;A&amp;#039;&amp;#039; senden darf, auch wenn &amp;#039;&amp;#039;A&amp;#039;&amp;#039; gar keine Anfrage gestellt hat. Wenn &amp;#039;&amp;#039;A&amp;#039;&amp;#039; zudem mit beliebigen Webservern im Internet kommunizieren möchte, deren einzelne Adressen vorab nicht bekannt sind, müssten sämtliche Quelladressen für eingehende Pakete erlaubt werden, was den Sicherheitsgewinn des Paketfilters reduziert.&lt;br /&gt;
&lt;br /&gt;
Bei der zustandsgesteuerten Filterung (also &amp;#039;&amp;#039;mit&amp;#039;&amp;#039; Stateful Packet Inspection) kann der Zustand der Verbindung in das Regelwerk mit einbezogen werden:&lt;br /&gt;
* Quelle &amp;#039;&amp;#039;A&amp;#039;&amp;#039; darf Pakete an Ziel &amp;#039;&amp;#039;B&amp;#039;&amp;#039; mit Zielport 443 senden, wenn sie zu einer neuen oder zu einer bestehenden Verbindung gehören.&lt;br /&gt;
* Quelle &amp;#039;&amp;#039;B&amp;#039;&amp;#039; darf nur Pakete an Ziel &amp;#039;&amp;#039;A&amp;#039;&amp;#039; senden, wenn sie zu einer bestehenden Verbindung gehören.&lt;br /&gt;
Der Paketfilter merkt sich, welche Verbindungen der Client &amp;#039;&amp;#039;A&amp;#039;&amp;#039; aufgebaut hat und erlaubt nur die passenden Antwortpakete von Quelle &amp;#039;&amp;#039;B&amp;#039;&amp;#039;. Dadurch kann &amp;#039;&amp;#039;B&amp;#039;&amp;#039; nicht von sich aus neue Verbindungen zu &amp;#039;&amp;#039;A&amp;#039;&amp;#039; initiieren. Neben den [[IP-Adresse]]n und [[Port (Netzwerkadresse)|Ports]] kann der Paketfilter auch weitere Parameter prüfen, beispielsweise ob die [[Sequenznummer]] und die weiteren [[Header]]-Informationen des [[Transmission Control Protocol]]s zum erwarteten Verbindungszustand passen. Dadurch erschwert der Paketfilter das [[IP-Spoofing]].&lt;br /&gt;
&lt;br /&gt;
Neben dem Sicherheitsgewinn kann durch die zustandsbasierte Paketfilterung auch der Regelsatz wesentlich übersichtlicher gestaltet werden. Anstatt für Hin- und Rückweg separate Regeln zu konfigurieren, genügt eine Regel für den Hinweg, die eine neue Verbindung zulässt. Für den Rückweg genügt eine allgemeine Regel, die Antwortpakete zu bereits bestehenden Verbindungen zulässt (im Linux [[Netfilter]] als „ESTABLISHED“ und „RELATED“ bezeichnet).&lt;br /&gt;
&lt;br /&gt;
Zustandsbasierte Paketfilterung ist aufwendiger und erzeugt daher mehr [[CPU]]-Last als statische Paketfilterung. Der Verbindungszustand wird in einer Zustandstabelle im [[Random-Access Memory|RAM]] gespeichert, was die maximale Anzahl gleichzeitiger Verbindungen limitiert. Die Löschung eines Eintrags in der Zustandstabelle erfolgt entweder, sobald die Verbindung von den Kommunikationspartnern abgebaut wurde, oder automatisch nach einem [[Timeout (Netzwerktechnik)|Timeout]] infolge von Inaktivität.&lt;br /&gt;
&lt;br /&gt;
== Stateful Inspection bei UDP-Paketen ==&lt;br /&gt;
Auf den ersten Blick sieht eine &amp;#039;&amp;#039;Stateful Packet Inspection&amp;#039;&amp;#039; bei [[User Datagram Protocol|UDP]]-Paketen wie ein Widerspruch aus, da UDP im Gegensatz zu [[Transmission Control Protocol|TCP]] zustandslos arbeitet. Die meisten Implementierungen (z.&amp;amp;nbsp;B. Linux-Netfilter) behandeln UDP trotzdem als stateful, in dem Sinne, dass beim Versenden einer Anforderung per UDP für kurze Zeit eine dynamische Firewall-Regel für die Antwortpakete erzeugt wird. Im Beispiel [[Domain Name System|DNS]]-Anfragen werden dadurch nur Antwortpakete von den Nameservern erlaubt, die man selbst gefragt hat.&lt;br /&gt;
&lt;br /&gt;
Manche Programme – z.&amp;amp;nbsp;B. [[Skype]] – benutzen dies in einem als [[Hole Punching (Rechnernetz)|Hole Punching]] bezeichneten Verfahren, um durch Firewalls Punkt-zu-Punkt-Verbindungen aufzubauen. Beide Teilnehmer erfahren vom Skype-Server, auf welcher IP-Adresse und welchem Port Skype bei der Gegenseite arbeitet. Dann schicken beide ein UDP-Paket an die Gegenseite. Dort werden diese Pakete beim Eintreffen zwar verworfen, weil keine Input-Regel existiert, erzeugen aber auf der Firewall des ausgehenden Rechners eine Regel, die ab dann &amp;#039;Antworten&amp;#039; erlaubt. Danach können beide Seiten miteinander kommunizieren. Mit TCP würde das (trivial) nicht funktionieren, da die Firewall aufgrund von Sequenznummern echte Antwortpakete erkennen kann.&lt;br /&gt;
&lt;br /&gt;
== Stateful Inspection bei ICMP ==&lt;br /&gt;
Wer [[Ping_(Datenübertragung)|Ping]]-Anfragen senden will, aber nicht auf Ping-Anfragen antworten möchte, definiert zuerst eine ausgehende Regel für [[Internet Control Message Protocol|ICMP]], und danach eine eingehende Regel, die generell alle eingehenden Pakete zulässt, für die es bereits eine bestehende Sitzung gibt (RELATED). Die Ping-Antwort wird durchgelassen, wenn die Firewall anhand der Parameter aus dem Antwortpaket einen Zusammenhang zu der Ping-Anfrage erkennt. Dies funktioniert, obwohl es sich bei ICMP um ein verbindungsloses Protokoll handelt.&lt;br /&gt;
&lt;br /&gt;
== Stateful Inspection bei FTP ==&lt;br /&gt;
[[File Transfer Protocol|FTP]] ist problematisch. Es werden zwei Ports, &amp;#039;ftp&amp;#039; und &amp;#039;ftp-data&amp;#039; (21 und 20), verwendet. &amp;#039;ftp&amp;#039; wird für die Übertragung von Kommandos verwendet, während ftp-data für Datenübertragung (Dateiinhalte oder Verzeichnisinhalte) verwendet wird. Hierbei gibt es zwei verschiedene Arten (active mode und passive mode), in welcher Richtung die Datenverbindung (ftp-data) aufgebaut wird. Im Linux-Kernel gibt es ein Kernelmodul, welches das Zusammenspiel beider Ports beherrscht.&lt;br /&gt;
&lt;br /&gt;
== Timeout ==&lt;br /&gt;
Sowohl [[Transmission Control Protocol|TCP]]- als auch [[User Datagram Protocol|UDP]]-Verbindungen haben bei Stateful Packet Inspection immer einen zugewiesenen [[Timeout (Netzwerktechnik)|Timeout]]. Bei UDP, weil nicht erkennbar ist, wenn eine Verbindung beendet worden ist; bei TCP, weil es passieren kann, dass Verbindungen nicht ordnungsgemäß abgebaut werden. Der UDP-Timeout liegt üblicherweise im Bereich 20–40 Sekunden, bei TCP 15–60 Minuten.&lt;br /&gt;
&lt;br /&gt;
Ist der Timeout nicht lang genug und werden legitime Verbindungen dadurch von der Firewall beendet, gibt es zwei Lösungsmöglichkeiten. Eine Verlängerung des Timeouts hilft zwar, erhöht aber auch den Speicherbedarf des Systems und reduziert die Sicherheit. Die bevorzugte Methode sollte daher der Einsatz von [[Keep-Alive]]-Paketen sein. Diese lassen sich in manchen Applikationen wie [[Secure Shell|SSH]]-Clients oder auch im [[Betriebssystem]] konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Setzen des TCP-Keep-Alives unter [[Linux]] auf alle 120 Sekunden:&lt;br /&gt;
&lt;br /&gt;
 echo 120 &amp;gt; /proc/sys/net/ipv4/tcp_keepalive_time&lt;br /&gt;
&lt;br /&gt;
== Beispiele für die Implementierung von Stateful Firewalls ==&lt;br /&gt;
*[[Check Point]] [[Firewall-1]] (Solaris, Windows, IPSO, [[RHEL]], [[SPLAT]])&lt;br /&gt;
*[[Pf (Paketfilter)]] ([[OpenBSD]])&lt;br /&gt;
*[[Ipfw]] ([[FreeBSD]])&lt;br /&gt;
*[[Iptables]] (Linux ab 2.4)&lt;br /&gt;
*[[Fritzbox]]&lt;br /&gt;
*[[OPNsense]] (basierend auf FreeBSD und [[ASLR]] von HardenedBSD)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name =&amp;quot;pat5606668&amp;quot;&amp;gt;&lt;br /&gt;
{{Patent&lt;br /&gt;
 | Land = US&lt;br /&gt;
 | V-Nr = 5606668&lt;br /&gt;
 | Typ = &lt;br /&gt;
 | Titel = System for securing inbound and outbound data packet flow in a computer network&lt;br /&gt;
 | A-Datum = 1993-12-15&lt;br /&gt;
 | V-Datum = 1997-02-25&lt;br /&gt;
 | Erfinder = Gil Shwed&lt;br /&gt;
 | Anmelder = Checkpoint Software Technologies Ltd.&lt;br /&gt;
 | DB =&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Rechnernetze]]&lt;br /&gt;
[[Kategorie:Paketfilter]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Rlfy</name></author>
	</entry>
</feed>