Compreendendo e visualizando como as portas são alocadas por túneis ssh?

1

Eu estava tentando descobrir um pequeno problema com a conexão ao vnc por meio de um túnel SSH hoje em dia, em que um dos possíveis problemas era que alguém já estava em um túnel para a porta. Sem entrar nas especificidades desse problema, percebi que não tenho tanto conhecimento de como os túneis ssh estão alocando recursos e como visualizá-los.

Então eu tenho duas perguntas. Primeiro, se eu criar um túnel SSH, mas não estiver usando esse túnel (ou seja, nada no meu sistema local está conectado à porta do túnel) quais portas estão atualmente bloqueadas e indisponíveis para outras pessoas usarem? Tenho certeza que a minha porta de origem será de propriedade do meu túnel e, portanto, não estará disponível para ser vinculado por outro aplicativo, mas o que acontece com a porta de destino? Essa porta já está vinculada ao encapsulamento ou só é conectada quando tento conectar-me à porta local e a conexão é encapsulada por meio do SSH para a porta de destino?

Em segundo lugar, como posso ver quais túneis ssh existem no meu sistema? Se eu criei o tunel localmente eu posso fazer um ps e grep para o programa apropriado, mas se eu tiver um cliente criando um tunel local para a porta do meu servidor existe uma maneira que, do meu servidor, eu possa ver que esse tunel existe; mesmo que o cliente ainda não tenha se conectado a um programa através do túnel?

    
por dsollen 03.02.2016 / 20:49

3 respostas

1

netstat e lsof ou fuser são programas típicos para ver quais portas são abertas por que (embora possa exigir root ou tal acesso, dependendo e variar pelo sabor do unix). Uma porta de destino compartilhada está bem. Pode ajudar a trabalhar, por exemplo, Guia da Beej para redes para entender as chamadas do sistema envolvidas.

Se o cliente não se conectou, então quaisquer portas nos túneis não estão vinculadas, já que essa etapa só acontecerá quando uma conexão for feita. (Exceção: pode haver portas remanescentes de uma conexão agora fechada em TIME_WAIT ou algo semelhante.)

    
por 03.02.2016 / 21:12
1

Em um cliente Linux, você pode visualizar as portas de escuta com netstat -lnp |less .

Dentro de uma sessão ssh, você pode pressionar enter duas vezes e digitar ~# . Isso listará as portas atualmente encaminhadas para essa sessão.

    
por 03.02.2016 / 21:11
0

Existem Túneis e Portas de porta . Você está falando sobre o segundo deles. Só não confundir termos, ok?

(1) Para Encaminhamento de porta local , a combinação encaminhada host:port no computador local é bloqueada (aceita conexões). Do outro lado, remote_host:remote_port está disponível para diferentes conexões. Os dados são enviados depois que você inicia a conexão a partir do final local.

Para encaminhamento remoto de portas , ocorre o contrário.

(2) Como outras propostas em outras respostas, você pode usar netstat para ver portas de escuta locais e ao usar conexão multiplexada / de dentro, há ~# , que imprime sessões ativas e encaminhamentos TCP.

    
por 03.02.2016 / 21:35