determinando quais portas um programa usa

4

Estou tentando usar o wireshark para determinar quais portas um determinado programa usa. O programa conecta-se ao servidor bem se estivermos na mesma rede, mas obviamente eu preciso encaminhar as portas no firewall para usá-lo fora do escritório.

Eu ligo o wireshark e tento estabelecer a conexão do programa para 192.168.1.6. Eu então olho para os pacotes que estão indo e voltando do 192.168.1.6.

Eles são todos TCP e dizem:

Source: 192.168.1.130
Dest: 192.168.1.6
Service: TCP    
Info: 49716 > 808 [PSH, ACK] Seq=1102 Ack=395 Win=65304 Len=87

ou algum vindo para o outro lado

Source: 192.168.1.6 
Dest: 192.168.1.130 
Service: TCP    
Info: 808 > 49710 [ACK] Seq=2 Ack=320 Win=254 Len=0

Minha pergunta é:

  • Suponho que seja apenas a porta 808, a outra porta (porta de origem) muda ocasionalmente entre 49710 e 49716, o que isso significa?

  • o tráfego vem do outro lado como parte de uma conexão aberta? Ou eu preciso ter certeza de que o PC cliente tem a porta 808 conectada ao seu PC também?

por RodH257 04.05.2011 / 07:43

3 respostas

6
  • A porta de origem para aplicativos que não precisam de uma porta de origem específica tende a cair no intervalo efêmero, > 49152. Mais informações aqui .

  • Contanto que o firewall seja "stateful", em outras palavras, rastreia conexões reconhece pacotes do mesmo fluxo TCP como parte do mesmo fluxo (a grande maioria dos firewalls modernos faz isso), você só precisará para permitir a conexão em uma direção (para a porta 808).

por 04.05.2011 / 07:49
4

A porta de destino é a porta no servidor ao qual o programa se conecta, que é a porta TCP 808 nesse cenário. Se você quiser que os usuários externos consigam se conectar ao servidor atrás do seu firewall, então você precisa criar uma regra no seu firewall que permita conexões externas de entrada para a porta 808 do servidor. É mais do que provável que você também precise criar uma regra NAT que traduza um dos seus endereços IP roteáveis (públicos) para o endereço IP não-roteável (privado) do servidor. A porta no lado do cliente é alocada do pool de portas efêmeras e será principalmente diferente toda vez que o programa fizer uma nova conexão com o servidor. A conexão entre o cliente e o servidor é uma tupla 4, composta de endereço IP de origem / porta e endereço IP de destino / porta. O tráfego do servidor para o cliente para uma sessão estabelecida não precisa ser especificamente permitido pelo firewall (não é necessária nenhuma regra de saída), pois é um componente de uma sessão estabelecida, com base em sua regra de entrada.

    
por 04.05.2011 / 21:13
3

Eu acho que os outros pôsteres responderam às suas duas (mais ou menos) perguntas "conceituais", mas praticamente falando, no Windows você pode executar netstat -aon | find ":<portnumber>" , o que lhe dirá o ID do processo. Você pode usar o Gerenciador de Tarefas (com a coluna ID do Processo incluída em Exibir > Escolher Colunas que Acredito) para determinar qual processo está escutando em uma determinada porta.

Além disso, o TCPView da Sysinternals funciona bem.

    
por 04.05.2011 / 23:18