De quais processos as portas (como terminais de conexão de comunicação) pertencem ao encaminhamento de porta SSH?

1

(1) Para encaminhamento remoto:

-R [bind_address:]port:host:hostport
         Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.  This works by
         allocating a socket to listen to port on the remote side, and whenever a connection is made to this port, the connection is forwarded over the
         secure channel, and a connection is made to host port hostport from the local machine.

         Port forwardings can also be specified in the configuration file.  Privileged ports can be forwarded only when logging in as root on the
         remote machine.  IPv6 addresses can be specified by enclosing the address in square brackets.

         By default, the listening socket on the server will be bound to the loopback interface only.  This may be overridden by specifying a
         bind_address.  An empty bind_address, or the address ‘*’, indicates that the remote socket should listen on all interfaces.  Specifying a
         remote bind_address will only succeed if the server's GatewayPorts option is enabled (see sshd_config(5)).

         If the port argument is ‘0’, the listen port will be dynamically allocated on the server and reported to the client at run time.  When used
         together with -O forward the allocated port will be printed to the standard output.

hostport especifica um ponto de extremidade de conexão para o processo de destino em execução no destino host .

É port um ponto de extremidade de conexão

  • no processo do servidor SSH ou
  • em um processo que é executado no mesmo host de origem que o servidor SSH e deseja usar o encapsulamento SSH anexando-se a port ?

(Meu palpite é o último)

(2) Para encaminhamento local:

 -L [bind_address:]port:host:hostport
         Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.  This works by
         allocating a socket to listen to port on the local side, optionally bound to the specified bind_address.  Whenever a connection is made to
         this port, the connection is forwarded over the secure channel, and a connection is made to host port hostport from the remote machine.  Port
         forwardings can also be specified in the configuration file.  IPv6 addresses can be specified by enclosing the address in square brackets.
         Only the superuser can forward privileged ports.  By default, the local port is bound in accordance with the GatewayPorts setting.  However,
         an explicit bind_address may be used to bind the connection to a specific address.  The bind_address of “localhost” indicates that the listen‐
         ing port be bound for local use only, while an empty address or ‘*’ indicates that the port should be available from all interfaces.

hostport especifica um ponto de extremidade de conexão para o processo de destino em execução no destino host .

É port um ponto de extremidade de conexão

  • no processo do cliente SSH ou
  • em um processo que é executado no mesmo host de origem que o cliente SSH e deseja usar o túnel SSH anexando-se a port ?

(Meu palpite é o último)

(3) Para o proxy SOCKS:

 -D [bind_address:]port
         Specifies a local “dynamic” application-level port forwarding.  This works by allocating a socket to listen to port on the local side, option‐
         ally bound to the specified bind_address.  Whenever a connection is made to this port, the connection is forwarded over the secure channel,
         and the application protocol is then used to determine where to connect to from the remote machine.  Currently the SOCKS4 and SOCKS5 protocols
         are supported, and ssh will act as a SOCKS server.  Only root can forward privileged ports.  Dynamic port forwardings can also be specified in
         the configuration file.

         IPv6 addresses can be specified by enclosing the address in square brackets.  Only the superuser can forward privileged ports.  By default,
         the local port is bound in accordance with the GatewayPorts setting.  However, an explicit bind_address may be used to bind the connection to
         a specific address.  The bind_address of “localhost” indicates that the listening port be bound for local use only, while an empty address or
         ‘*’ indicates that the port should be available from all interfaces.

É port um ponto de extremidade de conexão

  • no processo do cliente SSH,
  • no servidor SSH SOCKS ou
  • em um processo que é executado no mesmo host que o cliente SSH e deseja usar o servidor SOCKS conectando-se a port ?

(Meu palpite é o segundo. Eu acho que não é o primeiro porque o cliente SSH tem sua própria porta padrão (s). Eu não tenho certeza sobre o terceiro)

    
por Tim 15.10.2015 / 17:56

1 resposta

1

Esses esboços devem ajudá-lo a responder a todas as perguntas: link

Mas, para responder às suas perguntas explicitamente:

  1. Para encaminhamento remoto:

    port é um ponto de extremidade de conexão no servidor SSH.

  2. Para encaminhamento local:

    port é um ponto de extremidade de conexão no processo do cliente SSH

  3. Para o proxy SOCKS:

    port é um ponto de extremidade de conexão no processo do cliente SSH

Mas muito mais explicações visuais são realmente os esboços relacionados acima. Mas para resumir:

A primeira porta (para o proxy SOCK o único) é sempre a porta livre que você vai conectar usando a próxima etapa. A outra porta é a porta onde está executando seu serviço existente .

Editar:

A coisa mais fácil de descobrir, se eu entendi o que é realmente a questão é usar lsof . Sua porta está nos meus exemplos 12345 :

Para encaminhamento remoto:

[local ] $ ssh -R 12345:localhost:22 remote
[remote] $ lsof -P | grep 12345
sshd 27772 root  7u IPv6 1304283702 0t0 TCP localhost:12345 (LISTEN)
sshd 27772 root  8u IPv4 1304283703 0t0 TCP localhost.localdomain:12345 (LISTEN)

Para encaminhamento local:

[local] $ ssh -L 12345:localhost:22 remote
[local] $ lsof -p $(pidof ssh) -P | grep 12345
ssh  6779 jakuje    4u  IPv6 146565      0t0     TCP ip6-localhost:12345 (LISTEN)
ssh  6779 jakuje    5u  IPv4 146566      0t0     TCP localhost:12345 (LISTEN)

Para encaminhamento dinâmico de portas:

[local] $ ssh -D 12345 [email protected]
[local] $ lsof -p $(pidof ssh) -P | grep 12345
ssh     11388 jakuje    4u  IPv6 173537    0t0   TCP ip6-localhost:12345 (LISTEN)
ssh     11388 jakuje    5u  IPv4 173538    0t0   TCP localhost:12345 (LISTEN)
    
por 15.10.2015 / 18:59