
Wenn Ihr ISP oder Ihre Firewall alle eingehenden Verbindungen blockiert, wie können Webserver Ihnen dann noch Daten an Ihren Browser senden? Sie senden die Anfrage (ausgehend) und der Server sendet Daten (eingehend). Wenn Sie alle eingehenden Verbindungen blockieren, wie kann der Webserver dann antworten?
Und was ist mit Video-Streaming und Multiplayer-Spielen, bei denen UDP verwendet wird? UDP ist verbindungslos, es kann also keine Verbindung hergestellt werden. Wie gehen also die Firewall oder der ISP damit um?
Antwort1
„Eingehende Sperre“ bedeutet, dass eingehendeneue Verbindungensind blockiert, abergegründetVerkehr ist erlaubt. Wenn also ausgehenderneue Verbindungenerlaubt sind, dann ist die eingehende Hälfte dieses Gesprächs in Ordnung.
Die Firewall verwaltet dies, indem sie den Verbindungsstatus verfolgt (eine solche Firewall wird oft als „Stateful Firewall“ bezeichnet). Sie sieht das ausgehende TCP-SYN und lässt es zu. Sie sieht ein eingehendes SYN/ACK und kann überprüfen, ob es mit dem erkannten ausgehenden SYN übereinstimmt, und lässt es durch, und so weiter. Wenn sie einen Drei-Wege-Handshake zulässt (z. B. wenn dies gemäß den Firewall-Regeln zulässig ist), lässt sie diese Konversation zu. Und wenn sie das Ende dieser Konversation sieht (FINs oder RST), nimmt sie diese Verbindung aus der Liste der zuzulassenden Pakete.
Bei UDP funktioniert es ähnlich, allerdings muss sich die Firewall dabei genug merken, um vorzutäuschen, dass bei UDP eine Verbindung oder Sitzung besteht (was bei UDP nicht der Fall ist).
Antwort2
@gowenfawr hat das Gesamtbild im Griff. Ich dachte jedoch, ich würde einige Details hinzufügen, wie das „Matching“ für die Verbindungsverfolgung durchgeführt wird, da es für den Uneingeweihten wie Zauberei klingen könnte.
Jede TCP-Verbindung hat für jede Seite eine Portnummer. Wie die meisten Techniker wissen, laufen HTTP-Server auf Port 80. Wenn Ihr Browser eine Verbindung zu einem Webserver herstellt, fordert er das Betriebssystem auf, eine „lokale“ Portnummer zu generieren, die zufällig ist, z. B. 29672, und die von keiner anderen TCP-Verbindung dieses Computers verwendet wird (und das Betriebssystem kann dies tun, da es alle aktiven TCP-Verbindungen kennt). Dann wird ein erstes TCP-Setup-Paket von der IP-Adresse Ihres Computers (IP_YOURS) und Portnummer 29672 an die IP-Adresse des Webservers (IP_WEBSERVER) und Portnummer 80 gesendet. An diesem Punkt sagt die Stateful Firewall: „Aha, zukünftige Pakete von IP_WEBSERVER Port 80, die an IP_YOURS Port 29672 gehen, sind keine neuen Verbindungen, sondern Antworten auf eine bestehende Verbindung und müssen zugelassen werden.“ Stateful Firewalls pflegen eine Tabelle, und ganze Teile dieser Tabelle verfallen schließlich, wenn über einen längeren Zeitraum keine Pakete in die eine oder andere Richtung gesendet werden.
Antwort3
Ich vermute, dass die Firewall nur dazu dient, nicht autorisierte eingehende Verbindungen zu blockieren. Wenn Sie eine Anfrage an den DNS senden, antwortet der DNS, dass dies keine nicht autorisierte eingehende Verbindung ist.
Antwort4
Ich betreibe keinen Server, sondern greife auf bestimmte Server zu. Ich möchte, dass die Verbindungen sicherer sind. Meine Idee ist, den Server immer über den Port anzurufen, der Ihnen zugewiesen wurde. Lassen Sie den Server niemals anrufen.