O que faz a opção L do SSH?

3

Para tornar o VNC seguro, devo usar isso

ssh -L 5901:127.0.0.1:5901 [email protected]

do cliente. Use 5901 se a exibição do servidor for 1; use 5900 para o display 0. Este comando foi retirado de um tutorial .

A descrição da opção é

-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 with an alternative syntax:
             [bind_address/]port/host/hostport or 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.

A descrição dos arquivos ssh_config inclui este

GatewayPorts
         Specifies whether remote hosts are allowed to connect to local
         forwarded ports.  By default, ssh(1) binds local port forwardings
         to the loopback address.  This prevents other remote hosts from
         connecting to forwarded ports.  GatewayPorts can be used to spec-
         ify that ssh should bind local port forwardings to the wildcard
         address, thus allowing remote hosts to connect to forwarded
         ports.  The argument must be ''yes'' or ''no''.  The default is
         ''no''.

Por favor, explique este comando ou diagrave-o.

    
por H2ONaCl 09.02.2017 / 15:46

3 respostas

1

Esta é simplesmente uma maneira de aplicar segurança bem testada ao protocolo VNC inseguro. O SSH é amplamente utilizado, tem protocolos de criptografia bem testados e suporta uma variedade de protocolos de autenticação. O VNC é apenas amplamente usado, e não tanto quanto o SSH.

A opção L do SSH encaminha o tráfego do sistema local para o sistema remoto, sob a proteção do SSH. Portanto, quando o VNC não é seguro ou flexível o suficiente por si só, ao encaminhar o tráfego VNC pelo SSH, você obtém o poder total do SSH para protegê-lo.

Ao encaminhar a porta do host local para o host remoto, você garante que nenhum de seu tráfego VNC não criptografado vaze nas redes locais (ou remotas). Para interceptar qualquer coisa, um invasor terá que interromper o SSH ou ter acesso root aos sistemas envolvidos, caso em que você já perdeu.

    
por muru 09.02.2017 / 15:57
1

Basicamente isso torna a porta 5902 no example.com acessível como estava sendo executada em sua máquina local

ssh -L 5901:127.0.0.1:5902 [email protected]

Depois de executar este comando, você pode acessar o que está sendo executado em example.com:5902 em sua máquina local 127.0.0.1:5901

[email protected] - usuário / servidor ao qual você está se conectando

5902 - a porta de destino que você deseja encaminhar

5901 - o número da porta que a porta de destino deve estar acessível em

    
O
por D-unit 09.02.2017 / 16:53
1

O SSH normalmente fornece um shell remoto acessível com segurança em um terminal local. O comando com a opção -L parece oferecer o recurso de encapsulamento seguro para as portas nas duas extremidades.

Suponha que o comando seja

ssh -L 5901:127.0.0.1:5901 user@remoteIP

Na opção acima, há duas instâncias de 5901 .

Na opção acima, a primeira instância de 5901 determina a configuração na máquina que é o LOCAL HOST, o que não quer dizer "localhost". O LOCAL HOST é a máquina que está executando o comando ssh . Na opção acima, o restante da string, 127.0.0.1:5901 , determina a configuração na máquina que é o REMOTE HOST em remoteIP .

Um aplicativo no REMOTE HOST pode acessar o túnel seguro via 127.0.0.1:5901, onde o 127.0.0.1 é explícito, de modo que somente um aplicativo na mesma máquina terá permissão para acessar o túnel.

Um aplicativo no LOCAL HOST pode acessar o túnel seguro via 127.0.0.1:5901, onde o 127.0.0.1 é por padrão. Se GatewayPorts for 'yes', então, um * pode ser especificado na opção para indicar que qualquer host (com qualquer IP) pode acessar o túnel seguro. A forma do comando seria então

ssh -L *:5901:127.0.0.1:5901 user@remoteIP

Uma ilustração com 4 hosts:

App Host A <---> Host Running 'ssh' <---> Host At 'remoteIP' <---> App Host B

O Anfitrião de Aplicações A pode estar no mesmo computador que o Anfitrião a Executar ssh .

O Host de Aplicativo B pode estar na mesma máquina que o Host em remoteIP .

Adendo: Observe que este comando faz parecer que a porta 5901 está sendo usada, mas na verdade o túnel é o substituto da porta 5901 em ambas as extremidades. Assim, você pode desativar a porta 5901. Na verdade, se nenhum outro for necessário, você poderá desabilitar todas as portas, exceto a que está sendo usada por ssh , que é por convenção 22.

    
por H2ONaCl 09.02.2017 / 20:46