Como configurar o Firewall do Windows para permitir todas as portas em uso pelo IIS Express

9

Meu entendimento deste artigo técnico , de acordo com a página que me trouxe até lá *, é que eu posso configurar o Firewall do Windows para permitir que todo o tráfego de entrada em qualquer porta seja usado por um executável especificado.

Sei que a resposta defacto provavelmente será "Não faça isso", então, por favor, entenda ; Estou executando o Visual Studio e o IIS Express em uma máquina virtual e quero poder me conectar a partir do SO host para fins de teste e, portanto, não estou realmente preocupado com as implicações de segurança da abertura de todas as portas usadas pelo IIS Express.

Criei uma regra de entrada com Programa definido como %ProgramFiles% (x86)\IIS Express\iisexpress.exe, que é o executável em execução de acordo com o gerenciador de tarefas. Todas as outras especificações de regra são deixadas em branco (qualquer endereço local, qualquer endereço remoto e porta local, qualquer porta remota, "qualquer" usuário permitido "" qualquer "computador permitido). No entanto, a conexão só funciona se eu tiver uma regra para a porta específica que está sendo atendida pelo IIS Express.

Como isso tornaria minha vida mais fácil (e principalmente por princípio, já que a technet diz que deveria funcionar), prefiro não ter que adicionar uma regra de firewall para cada aplicativo que criar.

* Tarefa "Crie uma regra que permita que um programa escute e aceite o tráfego de rede de entrada em todas as portas necessárias".

user1039855
fonte
11
Como você mencionou que a segurança não é uma preocupação, há algum problema com a abertura de todas as portas?
Abraxas
Simplesmente desligar o firewall no sistema operacional convidado .. :-) Eu sempre desativar tudo o que puder em meus sistemas operacionais hóspedes ..
Kody Brown

Respostas:

1

Há alguns problemas que você está enfrentando aqui. Uma é que iisexpress.exenão é realmente o processo responsável por ouvir o tráfego HTTP. Essa funcionalidade é implementada http.sys como parte do modo de kernel da pilha de rede do Windows . (Isso foi feito por motivos de desempenho. Para obter mais informações, consulte Introdução às arquiteturas do IIS .) Portanto, a criação de uma regra para iisexpress.exenão fará nada.

Em segundo lugar, http.syspor padrão, não permite que programas em execução como não administradores ouçam outros computadores. De acordo com Serving External Traffic with WebMatrix , você precisa executar este comando em um prompt de comando administrativo para permitir que todos os usuários escutem outras máquinas através de http.sys:

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

Substitua MACHNAMEpelo nome do host que será usado para entrar em contato com o site e PORTcom a porta do tráfego. Li que usar em *vez de um nome de host específico permite ouvir todos os nomes / interfaces, mas não testei pessoalmente isso, e alguma documentação é usada +. De qualquer forma, depois de definir a ACL, você poderá criar uma regra de firewall de entrada para a porta .

Leitura adicional: Configurando HTTP e HTTPS .

Comentário Side: Há uma variável de ambiente real que aponta para a versão de Arquivos de programas de 32 bits: %PROGRAMFILES(X86)%. (O caminho não foi problema seu.)

Ben N
fonte