Comment configurer le pare-feu Windows pour autoriser tous les ports utilisés par IIS Express

9

Ma compréhension de cet article technet , par la page qui m'a amené là-bas *, est que je peux configurer le pare-feu Windows pour autoriser tout le trafic entrant sur n'importe quel port utilisé par un exécutable spécifié.

Je me rends compte que la réponse de facto est susceptible d'être "Ne faites pas cela", alors veuillez comprendre ; J'exécute Visual Studio et IIS Express à l'intérieur d'une machine virtuelle, et je veux pouvoir me connecter à partir du système d'exploitation hôte à des fins de test, et donc pas vraiment concerné par les implications de sécurité de l'ouverture de tous les ports utilisés par IIS Express.

J'ai créé une règle entrante avec Program défini sur %ProgramFiles% (x86)\IIS Express\iisexpress.exe, qui est l'exécutable exécuté selon le gestionnaire de tâches. Toutes les autres spécifications de règle sont laissées vides (toute adresse locale, toute adresse distante et port local, tout port distant, "tous" les utilisateurs autorisés, "tous" les ordinateurs autorisés). Pourtant, la connexion ne fonctionne que si j'ai une règle pour le port spécifique desservi par IIS Express.

Comme cela me faciliterait la vie (et en grande partie par principe, car Technet dit que cela devrait fonctionner), je préfère ne pas avoir à ajouter une règle de pare-feu pour chaque application que je crée.

* Tâche "Créer une règle qui permet à un programme d'écouter et d'accepter le trafic réseau entrant sur tous les ports dont il a besoin."

user1039855
la source
1
Puisque vous avez mentionné que la sécurité n'était pas un problème, y a-t-il un problème avec l'ouverture de tous les ports?
Abraxas
Il suffit de désactiver le pare-feu dans le système d'exploitation invité .. :-) Je désactive toujours tout ce que je peux dans mes systèmes d'exploitation invités ..
Kody Brown

Réponses:

1

Il y a quelques problèmes que vous rencontrez ici. La première est que ce iisexpress.exen'est pas réellement le processus responsable de l'écoute du trafic HTTP. Cette fonctionnalité est implémentée en http.sys tant que partie en mode noyau de la pile de mise en réseau Windows . (Cela a été fait pour des raisons de performances. Pour plus d'informations, consultez Introduction aux architectures IIS .) Par conséquent, la création d'une règle pour iisexpress.exene fera rien.

Deuxièmement, http.syspar défaut, les programmes exécutés en tant que non-administrateurs n'écoutent pas les autres ordinateurs. Selon Serving External Traffic with WebMatrix , vous devez exécuter cette commande dans une invite de commande administrative pour permettre à tous les utilisateurs d'écouter d'autres machines via http.sys:

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

Remplacez MACHNAMEpar le nom d'hôte qui sera utilisé pour contacter le site et PORTpar le port du trafic. J'ai lu que l'utilisation *au lieu d'un nom d'hôte spécifique lui permet d'écouter sur tous les noms / interfaces, mais je n'ai pas personnellement testé cela, et une documentation utilise à la +place. Dans les deux cas, une fois que vous avez défini la liste de contrôle d'accès, vous pouvez ensuite créer une règle de pare-feu entrante pour le port .

Pour en savoir plus: Configurer HTTP et HTTPS .

Commentaire côté: Il y a une variable d'environnement réel qui pointe vers la version 32 bits de Program Files: %PROGRAMFILES(X86)%. (Le chemin n'était pas votre problème, cependant.)

Ben N
la source