So konfigurieren Sie die Windows-Firewall so, dass alle von IIS Express verwendeten Ports zugelassen werden

9

Mein Verständnis von diesem TechNet - Artikel , pro der Seite , die mich dorthin gebracht *, ist , dass ich die Windows - Firewall so konfigurieren , dass alle eingehenden Datenverkehr auf einem beliebigen Port zu ermöglichen , um eine bestimmte ausführbare Datei verwendet wird.

Mir ist klar, dass die defacto-Antwort wahrscheinlich "Tu das nicht" lautet. Bitte verstehe . Ich führe Visual Studio und IIS Express in einer virtuellen Maschine aus und möchte zu Testzwecken eine Verbindung vom Host-Betriebssystem herstellen können. Daher bin ich nicht wirklich besorgt über die Sicherheitsauswirkungen des Öffnens aller von IIS Express verwendeten Ports.

Ich habe eine eingehende Regel mit dem Programm auf erstellt. Dies %ProgramFiles% (x86)\IIS Express\iisexpress.exeist die ausführbare Datei, die gemäß dem Task-Manager ausgeführt wird. Alle anderen Regelspezifikationen bleiben leer (jede lokale Adresse, jede entfernte Adresse und jeder lokale Port, jeder entfernte Port, "alle" zulässigen Benutzer, "alle" zulässigen Computer). Die Verbindung funktioniert jedoch nur, wenn ich eine Regel für den bestimmten Port habe, der von IIS Express bereitgestellt wird.

Da dies mein Leben erleichtern würde (und im Prinzip, da Technet sagt, dass es funktionieren sollte), möchte ich lieber nicht für jede von mir erstellte App eine Firewall-Regel hinzufügen.

* Aufgabe "Erstellen Sie eine Regel, mit der ein Programm eingehenden Netzwerkverkehr an allen erforderlichen Ports abhören und akzeptieren kann."

user1039855
quelle
1
Gibt es ein Problem beim Öffnen aller Ports, da Sie erwähnt haben, dass die Sicherheit kein Problem darstellt?
Abraxas
Schalten Sie einfach die Firewall im Gastbetriebssystem aus .. :-) Ich deaktiviere immer alles, was ich in meinen Gastbetriebssystemen kann ..
Kody Brown

Antworten:

1

Es gibt ein paar Probleme, auf die Sie hier stoßen. Einer ist , dass iisexpress.exeist nicht wirklich der Prozess verantwortlich für den Verkehr HTTP hören. Diese Funktionalität wird http.sys als Kernel-Modus-Teil des Windows-Netzwerkstapels implementiert . (Dies wurde aus Leistungsgründen durchgeführt. Weitere Informationen finden Sie unter Einführung in IIS-Architekturen .) Das Erstellen einer Regel für iisexpress.exewird daher nichts bewirken.

Zweitens http.syskönnen Programme standardmäßig nicht ausgeführt werden, wenn Nicht-Administratoren andere Computer abhören. Gemäß Serving External Traffic mit WebMatrix müssen Sie diesen Befehl in einer administrativen Eingabeaufforderung ausführen, damit alle Benutzer andere Computer abhören können über http.sys:

netsh http add urlacl url=http://MACHNAME:PORT/ user=everyone

Ersetzen Sie ihn MACHNAMEdurch den Hostnamen, der für die Kontaktaufnahme mit der Site verwendet wird, und PORTdurch den Port des Datenverkehrs. Ich habe gelesen, dass die Verwendung *eines bestimmten Hostnamens das Abhören aller Namen / Schnittstellen ermöglicht, aber ich habe dies nicht persönlich getestet, und einige Dokumentationen verwenden +stattdessen. In beiden Fällen können Sie nach dem Festlegen der ACL eine eingehende Firewall-Regel für den Port erstellen .

Weiterführende Literatur: Konfigurieren von HTTP und HTTPS .

Nebenbemerkung: Es gibt eine tatsächliche Umgebungsvariable, die auf die 32-Bit-Version von Programmdateien verweist : %PROGRAMFILES(X86)%. (Der Weg war jedoch nicht dein Problem.)

Ben N.
quelle