Por que o Firewall do Windows pede para desbloquear um aplicativo que não possui conexões de entrada?

1

Eu tenho um aplicativo que se conecta a um servidor de licenças. O aplicativo aciona a solicitação para permitir conexões no Windows XP e superior. Não importa se eu bloquear ou desbloquear o aplicativo, ele obtém sua licença. As regras parecem estar corretas (tanto negar quanto permitir).

Por padrão, o Firewall do Windows permite conexões de saída e impede todas as conexões de entrada. Eu redefinir o Firewall do Windows para as configurações padrão. Então, isso não deve ser problema.

Usando o TCPView da Sysinternals, não consegui ver o aplicativo abrindo portas de escuta.

Usando o Wire Shark, pude confirmar que não havia esquecido nada que aconteceu rápido demais para o TCPView.

Portanto, o Firewall do Windows não deve pedir permissão. Mas isso acontece! Por quê?

    
por Sascha 06.03.2013 / 14:37

1 resposta

0

Dando uma segunda olhada na captura do Wire Shark, vi que o aplicativo usa uma solicitação de portmap para obter a porta do servidor de licença real. Esse pedido de portmap usa uma porta de origem (aparentemente aleatória) abaixo 1024 - o que é incomum ou talvez errado. O portmapper responde devidamente a essa porta. Para dar um exemplo, digamos que o diálogo entre o cliente e o servidor seja assim:

Fonte: Client.Domain: 1001 Destino: Server.Domain: 111 Dados: "Onde encontro o servidor de licenças?"

Fonte: Server.Domain: 111 Destino: Cliente.Domínio: 1001 Dados: "Na porta 12345. De nada."

111 é a porta bem conhecida do Portmapper. Tudo bem. 1001 está abaixo de 1024 que parece incomum para uma porta de origem.

Primeiro palpite

O Firewall do Windows parece seguir uma lógica simples: se algo fala com alguma porta local abaixo de 1024, ela está chegando e eu tenho que pedir permissão. Assim, a janela aparece.

Segundo palpite

Antes de o Firewall do Windows descartar um pacote, ele faz uma verificação melhor e reconhece que a conexão foi realmente iniciada por um processo local. Assim, é reconhecido como uma conexão de saída e, portanto, permitido (não importa o que o usuário respondeu, porque a regra criada só se aplica a pacotes de entrada)

    
por 06.03.2013 / 14:37