Wie unterbreche ich eine UDP-Konversation von einem Remote-Client zu einem lokalen Serverprozess unter Windows?

560
Griffon26

Ich habe eine UDP-Server-Software mit geschlossenem Quellcode, die unter Windows ausgeführt wird, und ich möchte in der Lage sein, fehlerhafte Clients zu verbieten, selbst wenn der Server und der Client bereits miteinander kommunizieren.

Das verwendete Protokoll ist UDP. Es gibt also keinen serverseitigen Socket, den ich mit etwas wie TCPview oder Currports schließen kann.

Ich habe versucht, die Verbindungen zum und vom Serverport mithilfe der Windows-Firewall mit erweiterter Sicherheit zu blockieren. Wenn jedoch zum Zeitpunkt des Blockierens eine Kommunikation stattfindet, wird die Konversation nicht unterbrochen. Laut den Dokumenten zum Stateful-Filtering sind alle UDP-Pakete, die zwischen zwei Hosts ausgetauscht werden, Teil eines Flusses und werden weiterhin autorisiert, sofern keine Richtlinienänderung vorliegt. Ich habe im Ereignisprotokoll bestätigt, dass das Hinzufügen der Regeln in der Firewall zu einem Richtlinienänderungsereignis 5447 führt und dass meine Filter sich auf dem erforderlichen Layer FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V4 befinden. Warum stoppt das also nicht die Kommunikation?

Wenn die obige Route keine Option ist, gibt es einen anderen Weg, über den ich nicht nachgedacht habe? Es muss kein vorhandenes Programm sein, ich bin bereit, selbst Code dafür zu schreiben.

0
UDP ist ein zustandsloses Protokoll. Es genügt, den Port für eine bestimmte IP-Adresse zu sperren, und die Auswirkungen sollten sofort eintreten. Appleoddity vor 6 Jahren 0
@Appleoddity Dies wäre der Fall für eine zustandslose Firewall. In einer zustandslosen Firewall können Sie jedoch nicht den gesamten eingehenden Datenverkehr blockieren und trotzdem Antworten auf ausgehenden Datenverkehr erhalten. Aus diesem Grund führen Stateful-Firewalls Verbindungsverfolgung durch. [Eingehender Datenverkehr, der sich auf ausgehenden Datenverkehr bezieht, ist zulässig] (https://en.wikipedia.org/wiki/Stateful_firewall#Description). In meinem Test mit der Windows-Firewall habe ich gesehen, dass auch eine von außen initiierte Verbindung nicht durch Blockierungsregeln für beide Richtungen abgebrochen wird. Griffon26 vor 6 Jahren 0
Die Richtlinienänderung kann sich auf die lokale Sicherheitsrichtlinie beziehen. In diesem Artikel (https://www.ultimatewindowssecurity.com/securitylog/book/page.aspx?spid=chapter11) finden Sie eine Liste der Ereignisse, die als solche betrachtet werden. harrymc vor 6 Jahren 0

0 Antworten auf die Frage