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

9

Meu entendimento de este artigo de technet , por a página que me trouxe lá *, é que eu posso configurar o Windows Firewall para permitir todo o tráfego de entrada em qualquer porta que esteja sendo usada por um executável especificado.

Eu sei que a resposta correta é "Não faça isso", então, por favor, entenda ; Estou executando o Visual Studio e o IIS Express dentro de uma máquina virtual e quero poder conectar-me a partir do SO host para fins de teste e, portanto, não estou realmente preocupado com as implicações de segurança de abrir todas as portas usadas pelo IIS Express. p>

Eu criei uma regra de entrada com o Programa definido como %ProgramFiles% (x86)\IIS Express\iisexpress.exe , que é o executável que está sendo executado de acordo com o gerenciador de tarefas. Todas as outras especificações de regra são deixadas vazias (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 sendo atendida pelo IIS Express.

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

* Tarefa "Crie uma regra que permita que um programa escute e aceite tráfego de rede de entrada em qualquer porta que seja necessária."

    
por user1039855 21.12.2014 / 03:31

1 resposta

1

Existem alguns problemas que você está enfrentando aqui. Uma é que iisexpress.exe não é realmente o processo responsável por ouvir o tráfego HTTP. Essa funcionalidade é implementada em http.sys como uma parte do modo kernel da pilha de rede do Windows . (Isso foi feito por motivos de desempenho. Para obter mais informações, consulte Introduction Arquiteturas do IIS . Portanto, criar uma regra para iisexpress.exe não fará nada.

Em segundo lugar, http.sys por padrão não permite programas em execução, pois não administradores ouvem outros computadores. De acordo com Servindo tráfego externo com WebMatrix , você precisa executar este comando em um prompt de comando administrativo para permitir que todos os usuários ouçam outras máquinas via http.sys :

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

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

Outras leituras: Configurando HTTP e HTTPS .

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

    
por 21.01.2016 / 01:08