Raspberry PI – Túnel SSH a servir de proxy SOCKS5

11 Comentários

Faça você mesmo…é simples 

O Raspberry PI é hoje um dos mini PCs mais populares. Com mais de 2 milhões de unidades vendidas, este é sem duvida um caso de sucesso, à escala mundial, que tem ser servido de base a muitos e interessantes projectos.

No seguimento da nossa parceria com a INMotion, e depois de lançarmos a nossa distribuição Pipplware, hoje vamos ensinar como podem criar um Túnel SSH a servir de proxy SOCKS5.

rasp_11

O que é o SSH?

O SSH (Secure Shell) também conhecido como Secure Socket Shell é um protocolo/aplicação que permite de forma segura aceder remotamente a uma máquina. Este protocolo é muito semelhante ao obsoleto e antigo telnet, mas com encriptação (garantindo assim uma comunicação segura).

ssh_00

Depois de termos apresentado aqui como transformar o vosso Raspberry PI num Web Proxy (com o squid), hoje ensinamos como podem usar o Putty para criar um proxy server e assim reencaminhar todos os pedidos HTTP via Túnel SSH, de forma segura/cifrada.

1) Como criar Túnel SSH a servir de proxy SOCKS5?

A primeira coisa que é necessário fazer é instalar e configurar o serviço SSH (SSHD – Secure Shell Daemon) activo para configuramos o nosso futuro túnel. A instalação do SSH pode ser feita com base neste tutorial. Depois de instalado, basta permitir “Tunneling”. Para isso, editamos o ficheiro /etc/ssh/sshd_config

ssh_01

Depois de editar, gravamos e saímos do editor. Em seguida reiniciamos o SSH

service ssh restart

Agora o vosso servidor SSH está pronto para tunneling. Vamos já passar para a configuração do lado cliente.

2) Configuração do Putty

Neste exemplo vamos usar o PuTTY como cliente SSH.

O primeiro passo é colocar o IP ou o domínio do vosso servidor (atenção em primeiro redireccionar as portas no router caso estejam no exterior – saber mais aqui).

ssh_02

(Opcional) Depois caso tenham um servidor proxy local porque estão por exemplo num centro comercial e querem bloquear a rede para permitir apenas HTTP, preencham no “Connections – Proxy”:

ssh_03

Em seguida, expandam o menu SSH e em Tunnels preencham da seguinte forma:

ssh_04

O que tem que fazer aqui é simples. A source port irá ser a porta em que a placa “loopback” irá ficar à escuta para fazer de proxy. É neste ponto em que a magia acontece. O “Destination” irá ser “dynamic” porque iremos aceder a vários IPs, servidores, websites, etc.

Caso tenham algo em especifico, coloquem por exemplo: Souce port 6565; Destination: ip_servidor_rdp:3389 – Local;

Estando isto feito, vamos voltar ao inicio e colocamos o nome para gravar o nosso perfil para não voltar a fazer tudo novamente:

clip_image002

3) Configuração browser cliente

Agora só falta configurar o nosso browser. Para isso basta ir a  “Internet options” ou “opções de Internet”:

ssh_07

Acedemos ao separador “Ligações”, e depois “Definições de LAN”.

Depois carregamos para utilizar um servidor proxy, e vamos a avançadas:

ssh_06

Agora colocamos apenas na parte que diz: SOCKS a seguinte informação:

ssh_05

Atenção! O serviço que corre no localhost na porta 6565 é um servidor Socks versão 5, e não funciona se colocarmos HTTP, ou SSL, ou FTP!

Por hoje ficamos por aqui. O próximo tutorial, como sempre, será surpresa, por isso estejam atentos. Entretanto estamos receptivos a apresentar os vossos tutoriais com este mini PC. Enviem-nos um e-mail com a informação que nós publicamos. Um agradecimento especial ao Vítor Silva por partilhar esta informação connosco.

Comentários

11

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Boneko
    Boneko

    Tenho um freenas a fazer exactamente de servidor ssh… A minha ideia era conseguir aceder a websites restritos pela empresa usando um tunnel… no entanto, as portas estão todas fechadas =/ já tentei usar a 443 em vez da 22 e o putty ligou-se, no entanto usando o internet explorer / firefox / Chrome embora se liguei pelo socks (consigo aceder aos serviços internos (192.168.x.x) mas não consigo aceder à internet (nenhum website) alguém sabe a razão?

    1. Avatar de int3
      int3

      faz ping http://www.google.pt a partir do servidor SSH.
      Se não conseguir pingar e dizer que não foi possivel resolver o dominio “www.google.pt” quer dizer que o FreeNAS tem as configurações de DNS mal feitas 🙂

    2. Avatar de Tunnel
      Tunnel

      Precisas de um HTTP TUNNEL.

      Garantidamente a empresa deixa-te fazer pedidos para o exterior para a porta 80.

      1. Avatar de int3
        int3

        Consegues mandar qualquer protocolo pelo SOCKS5 desde que o browser (neste caso) suporte.
        Por isso, o problema aqui é se o DNS do freenas está a funcionar direito ou não, visto que eles tem acesso á rede local do NAS por IP, e não acede á rede internet (com dominios). Perguntei então se ele consegue resolver dominios, porque se não conseguir é mesmo o DNS.

  2. Avatar de ze
    ze

    Grande partilha !! muito mais facil que o squid 🙂 obrigado

  3. Avatar de Ricardo Cigano Quaresma
    Ricardo Cigano Quaresma

    É um prodigio este meu primo Vitor, da-lhe primaxo da reta

  4. Avatar de R
    R

    gostei Vitor, espetaculo digo eu

  5. Avatar de Bradel
    Bradel

    No meu caso não tenho a opção “AllowTCPForwarding yes” e “PermitTunnel yes” e funciona na mesma. Estranho?

    1. Avatar de int3
      int3

      vê em sshd_config e também no ssh_config
      Tem que estar num destes dois.
      Se não tiver, acrescenta ao sshd_config (conforme está no texto)

  6. Avatar de kekes
    kekes

    EU perfiro usar PPTP, é basico e está build-in em quase todos os Sistemas Operativos. Não deixa de ser uma optima partilha.

    1. Avatar de int3
      int3

      Vai haver mais artigos interessantes que vão ser lançados 🙂