Come configurare Windows Firewall per consentire tutte le porte in uso da IIS Express


9

La mia comprensione di questo articolo tecnico , per la pagina che mi ha portato lì *, è che posso configurare Windows Firewall per consentire tutto il traffico in entrata su qualsiasi porta utilizzata da un eseguibile specificato.

Mi rendo conto che la risposta defacto è probabilmente "Non farlo", quindi per favore capisci ; Sto eseguendo Visual Studio e IIS Express all'interno di una macchina virtuale e desidero essere in grado di connettermi dal sistema operativo host a scopo di test, quindi non sono realmente interessato alle implicazioni di sicurezza dell'apertura di tutte le porte utilizzate da IIS Express.

Ho creato una regola in entrata con Program impostato su %ProgramFiles% (x86)\IIS Express\iisexpress.exe, che è l'eseguibile in esecuzione secondo il task manager. Tutte le altre specifiche delle regole vengono lasciate vuote (qualsiasi indirizzo locale, qualsiasi indirizzo remoto e porta locale, qualsiasi porta remota, "qualsiasi" utente autorizzato, "qualsiasi" computer autorizzato). Tuttavia, la connessione funziona solo se ho una regola per la porta specifica offerta da IIS Express.

Dato che mi semplificherebbe la vita (e in gran parte in linea di principio poiché Technet afferma che dovrebbe funzionare), preferirei non dover aggiungere una regola firewall per ogni app che creo.

* Attività "Creare una regola che consenta a un programma di ascoltare e accettare il traffico di rete in entrata su tutte le porte richieste".


1
Dato che hai detto che la sicurezza non è un problema, c'è qualche problema con l'apertura di tutte le porte?
Abraxas,

Disattiva il firewall nel sistema operativo guest .. :-) Disattivo sempre tutto ciò che posso nei sistemi operativi guest ..
Kody Brown

Risposte:


1

Ci sono un paio di problemi che stai incontrando qui. Uno è che in iisexpress.exerealtà non è il processo responsabile dell'ascolto del traffico HTTP. Tale funzionalità è implementata http.sys come parte in modalità kernel dello stack di rete di Windows . (Ciò è stato fatto per motivi di prestazioni. Per ulteriori informazioni, vedere Introduzione alle architetture IIS .) Pertanto, la creazione di una regola per iisexpress.exenon farà nulla.

In secondo luogo, http.sysper impostazione predefinita non consente ai programmi in esecuzione mentre i non amministratori ascoltano altri computer. In base al servizio di traffico esterno con WebMatrix , è necessario eseguire questo comando in un prompt dei comandi amministrativo per consentire a tutti gli utenti di ascoltare altri computer tramite http.sys:

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

Sostituisci MACHNAMEcon il nome host che verrà utilizzato per contattare il sito e PORTcon la porta del traffico. Ho letto che l'utilizzo al *posto di un nome host specifico consente di ascoltarlo su tutti i nomi / interfacce, ma non l'ho testato personalmente e +invece utilizza una documentazione . Ad ogni modo, una volta impostato l'ACL, è quindi possibile creare una regola firewall in entrata per la porta .

Per ulteriori approfondimenti: Configurazione HTTP e HTTPS .

Commento a margine: C'è una variabile d'ambiente reale che punta alla versione a 32 bit di file di programma: %PROGRAMFILES(X86)%. (Il percorso non è stato un tuo problema, però.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.