Como túnel SSH para evitar ataques MITM? [fechadas]

1

Digamos que eu tenha um computador dentro de um roteador doméstico típico (mas diga que o acesso de firewall / encaminhamento de porta ao roteador não está disponível). Seu IP interno pode ser 192.168.1.81. Há uma máquina atacante naquela LAN com o IP 192.168.1.85 que quer fazer um típico ataque MITM de spoofing ARP em 192.168.1.81 (digamos que ele queira executar algo como urlsnarf para farejar sites visitados). A máquina 192.168.1.81 quer impedir qualquer forma de ataque MITM e permanecer seguro ao navegar na Internet no Chrome. Ele tem um servidor com acesso SSH que ele deseja usar para criptografar sua navegação na Web, para que o invasor não possa detectá-lo com um ataque MITM. Como posso (o usuário que deseja usar o encapsulamento SSH para ficar seguro) usar o encapsulamento SSH no meu servidor (em IP público 162.xx.xxx.xx) para evitar o possível ataque MITM? Isto é para um projeto de feira de ciências. Quais configurações (se houver) eu teria que fazer no meu servidor (tenho acesso root completo)? Minha porta SSH é diferente da norma, portanto, faça a porta SSH 25512 como referência. Eu também abri a porta 4567 no firewall para o servidor, então por favor use essa porta para referência também. Por favor, use 72.xxx.xx.xxx como o IP público da rede doméstica. Por favor, inclua todos os comandos necessários. Deixe-me saber se preciso ser mais claro. Muito obrigado a quem puder ajudar!

    
por DrDinosaur 01.01.2014 / 08:56

1 resposta

4

A maneira mais fácil é executar um proxy (fe squid) em seu servidor remoto e fazê-lo ouvir apenas na interface local 127.0.0.1 (porque você não quer abrir um proxy para a internet).

Em seguida, você ssh no servidor remoto e criar um encaminhamento tcp para a interface de proxy local no servidor remoto.

Por exemplo, digamos que seu proxy no servidor remoto 162.xx.xx.xx esteja escutando em tcp 127.0.0.1:3128 . Agora você pode se conectar a ele com ssh com este comando:

ssh -p 25512 -L 3128:127.0.0.1:3128 -C 162.xx.xx.xx

Isso abre um túnel do 127.0.0.1:3128 do seu cliente para os hosts remotos 127.0.0.1:3128 . Então você pode simplesmente configurar seu navegador no cliente para usar o proxy 127.0.0.1:3128 , que é então encapsulado via ssh para o host remoto e passado para o proxy lá.

O parâmetro -C ativa a compactação e deve facilitar sua navegação um pouco mais rápido, porque menos dados precisam ser transmitidos.

Estas são as partes relevantes de man 1 ssh :

 -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 
         listening port be bound for local use only, while an empty address or ‘*’ 
         indicates that the port should be available from all interfaces.

 -C      Requests compression of all data (including stdin, stdout, stderr, and data for
         forwarded X11 and TCP connections).  The compression algorithm is the same used
         by gzip(1), and the “level” can be controlled by the CompressionLevel option 
         for protocol version 1.  Compression is desirable on modem lines and other slow 
         connections, but will only slow down things on fast networks.  The default 
         value can be set on a host-by-host basis in the configuration files; see the 
         Compression option.

 -p port
         Port to connect to on the remote host.  This can be specified on a per-host 
         basis in the configuration file.
    
por 01.01.2014 / 09:02

Tags