
Ich bin auf meinem BTGuard VPN und habe gerade zufällig ein Verbindungsverweigerungs-Popup von Little Snitch erhalten. Die Anmerkungen aus dem Eintrag in LS lauten:
Am 29. Mai 2019 versuchte vpn.btguard.com, eine eingehende Verbindung zu openvpn herzustellen. Die Anfrage wurde automatisch abgelehnt, da diese Art von Verbindung nicht verzögert werden kann.
Antwort1
Es handelt sich wahrscheinlich um ein verlorenes Paket von Ihrer letzten Verbindung. Beispielsweise wurde der OpenVPN-Client neu gestartet, aber der Server hat trotzdem versucht, Daten über die vorherige Sitzung zu senden.
OpenVPN (standardmäßig und in der Konfiguration von BTGuard) läuft über UDP, ein zustandsloses Transportprotokoll, bei dem esNEINexplizite „Verbindung herstellen“- oder „Verbindung trennen“-Pakete, keine Sequenznummern, nichts außer einem Portnummernpaar.
Bei TCP beginnen Hosts und Firewalls mit der Verfolgung einer Verbindung, sobald sie die SYN-Pakete (Handshake-Pakete) sehen. Bei UDP hingegen gibt es kein Verbindungspaket irgendeiner Art (nur Datenpakete), und Firewalls beginnen einfach mit der Verfolgung von „Verbindungen“, nachdembeliebigPaket, das sie sehen.
Bei TCP vergessen Hosts und Firewalls eine Verbindung, sobald sie die FIN-Pakete (Disconnection-Pakete) sehen. Bei UDP hingegen müssen Firewalls Timeouts verwenden, um alte „Verbindungen“ ablaufen zu lassen, da es keinerlei Disconnect-Pakete gibt (z. B. wird der Eintrag entfernt, wenn er 60 Sekunden, 180 Sekunden, 10 Minuten oder so lange inaktiv ist).
Programme wie OpenVPN verfügen natürlich möglicherweise über „Connect“-/„Disconnect“-Befehle in ihrem Anwendungsschichtprotokoll, aber eine Firewall weiß davon nichts – sie sieht nur UDP mit einigen darin enthaltenen Daten.
Manchmal passiert Folgendes:
Entweder wird OpenVPN neu gestartet bzw. beendet und die Firewall vergisst alle Einträge, die mit dem alten Prozess in Zusammenhang stehen, oder die VPN-Verbindung bleibt so lange im Leerlauf, dass die Firewall sie aufgrund des Erreichens der Ablaufzeit vergisst.
Der BTGuard-Server hat jedoch das OpenVPN-Disconnect-Paket nicht erhalten und die Verbindung auch nicht aufgrund einer Zeitüberschreitung vergessen. Daher versucht er, Ihnen über die alte Sitzung einige Daten zurückzusenden.
Die Firewall erkennt das eingehende Paket und hatkeine Möglichkeit zu wissenob es sich um eine neue „Verbindung“ handelt oder ob sie zu einer zuvor hergestellten gehört. (Und es gibt auch keine Möglichkeit zu wissen, ob sie ursprünglich nach außen oder nach innen hergestellt wurde.)
Da sich die Firewall dieses Portpaar nicht merkt (weil sie es in Teil 1 vergessen hat), geht sie einfach davon aus, dass es neu sein muss. Und da es sich um ein eingehendes Paket handelt, zeigt die Firewall eine Warnung über „eingehende Verbindung“ an.
Es ist eine Vermutung, aber eine gute Vermutung.