Fazendo tunelamento em um computador para acessar a Internet

0

Eu tenho uma compreensão básica do tunelamento

O sistema Remoto possui um servidor da Web instalado e se conecta à Internet usando um servidor proxy de LAN.

Eu posso fazer um túnel para o computador remoto (Dynamic Port Forwarding) usando o putty. Usando o proxy SOCKS, obtenho acesso ao servidor instalado no sistema remoto, mas não à Internet.

Como obtenho acesso à internet?

    
por Rishabh Upadhyay 23.09.2014 / 10:38

3 respostas

0

Como você diz que pode fazer o tunelamento para a máquina, eu recomendaria a execução de um servidor proxy na máquina em que você está, mapeando uma porta na máquina remota para a porta do proxy local. Em seguida, na máquina remota, defina o proxy para si próprio na porta mapeada. Qualquer pedido de internet será mapeado através do seu servidor proxy para a internet.

    internet --- your machine with proxy on port 8080 --- ssh tunnel mapping 8080(local) to 8080(remote) ---- remote machine (http://localhost:8080 as proxy)

    SSH -L 8080:1.2.3.4:8080

seu ip como visto pela máquina remota = 1.2.3.4

    
por 23.09.2014 / 14:15
0

Um túnel SSH só pode se conectar a um host da Internet escolhido. Não há como criar apenas um túnel para servir várias conexões à Internet, como um proxy. Ou eu não conheço nenhuma tecnologia existente.

    
por 23.09.2014 / 11:40
0

Você está na maior parte do caminho, eu acho, desde que você mencionou o uso de um proxy SOCKS. Com ssh , você pode configurar seu próprio servidor proxy SOCKS local em sua máquina local, encapsulado através da conexão ssh; por exemplo. :

ssh -D 3128 [email protected]

Em seguida, você precisa dizer ao seu navegador para usar esse servidor proxy local para se conectar à Internet. Para o Firefox, essas configurações estão em Preferências > > Avançado > > Rede > > Conexão . Em seguida, você pode definir a Configuração manual de proxy> > > Host SOCKS para localhost e 3128 .

Note que é estático e você precisará atualizá-lo toda vez que se conectar / desconectar.

Além disso, você disse que o seu servidor remoto ...

... connects to internet using a LAN proxy server.

Eu entendo que a rede que você conecta via SSH tem seu próprio servidor proxy para conexões de rede, caso em que você pode precisar ser complicado com suas configurações; difícil ser definitivo sem mais informações.

Como alternativa, dependendo do sistema operacional, você pode usar as configurações de proxy do sistema ou, se for realmente aventureiro, pode definir "URL de configuração automática de proxy: para um arquivo. Eu costumava fazer isso quando trabalhava para uma empresa com um proxy draconiano "net-nanny" no meu caminho. Por exemplo, aqui está o arquivo de configuração que usei - muitos exemplos, mas você terá que descobrir as configurações certas para você.

// Personal/Portable Proxy Auto Config -- in -*- conf -*- mode
//
// Point your web-browser or good mail client (e.g. Thunderbird)
// at this automatic configuration script.
//
// Reasonable references for PAC stuff:
// - http://en.wikipedia.org/wiki/Proxy_auto-config
// - http://findproxyforurl.com/example-pac-file/
//
// This is not for the weak of heart.  If you want something
// user friendly and still configurable, try:
// - https://addons.mozilla.org/en-us/firefox/addon/foxyproxy-standard
////

// normal, non-firewalled, non-proxied...
var PROXY = "DIRECT";
var SOCKS = "DIRECT";
var DOMAIN = ".nomatch"; 
var IPCACHE = "bogus";

var LOCALPROXY = "PROXY localhost:3128";

function MyPACSetup() {
  alert("MY IP = " + myIpAddress());

  PROXY = "PROXY proxy.corporation.com:8080;" +
    "DIRECT";
  SOCKS = "DIRECT";
  DOMAIN = ".nomatch"; 
  IPCACHE = myIpAddress();
  NETMASK = "255.255.0.0";

  // Proxy web locally when inside 10.x.x.x nonrouteable
  //if (isInNet(myIpAddress(), "192.168.158.0", "255.255.255.0")) {
  //if (isInNet(myIpAddress(), "192.168.1.0", "255.255.255.0")) {
  //if (isInNet(myIpAddress(), "128.99.3.0", "255.255.255.0")) {
  if (isInNet (myIpAddress(), "164.145.43.0", NETMASK)) {
    DOMAIN = ".nomatch";
    SOCKS = "SOCKS localhost:1080";
    PROXY = "SOCKS localhost:1080;" +
      "DIRECT";
  }

  // Proxies when inside 
//  if (isInNet(myIpAddress(), "129.235.0.0", "255.255.0.0")
//      || isInNet(myIpAddress(), "199.62.0.0", "255.255.0.0")) {
//    DOMAIN = ".corporation.com";
//    NETMASK = "255.255.0.0";
//    PROXY = 
//      //"PROXY lug.corporation.com:3128;" +
//      //"PROXY mspcf01.corporation.com:8080;" +
//      //"PROXY tmpproxy.corporation.com:8080;" +
//      "DIRECT";
//    SOCKS = 
//      //"SOCKS localhost:1080";
//      "SOCKS lug.htc.corporation.com:1080";
//  }

  // Dwight's world
//  if (isInNet(myIpAddress(), "192.168.17.0", "255.255.255.0")) {
//    PROXY = "128.99.0.23:500"; // + ";DIRECT";
//    SOCKS = "128.99.0.23:500";
//  }

  alert("PROXY = " + PROXY);
  alert("SOCKS = " + SOCKS);
  alert("DOMAIN = " + DOMAIN);
}

function FindProxyForURL(url, host) {
  // Re-configure proxies when IP changes
  // Handles portables moving around different networks
  if (myIpAddress() != IPCACHE) { MyPACSetup(); }

  //alert("URL: " + url);

  // Testing localhost proxy for wfuzz or other hacking
  if ( host == "localhost" ) {
    alert("localhost: " + host + " -- returning PROXY");
    return LOCALPROXY;
  }


  // local and loopback hosts are always direct
  // should non-routable be here too?
  if ( isPlainHostName(host)
       || dnsDomainIs(host, DOMAIN)
       //|| host == "localhost"
       || isInNet(host, "127.0.0.0", "255.255.255.0")
       || isInNet(host, IPCACHE, NETMASK)
       ) {
    //alert("Plain/local host: " + host + " -- returning DIRECT");
    return "DIRECT";
  }

  // Mostly for Thurderbird
  // IF host is local or in DOMAIN, above check will succeed
  if (url.substring(0, 5) == "imap:"
      || url.substring(0, 7) == "mailto:"
      || url.substring(0, 5) == "nntp:") {
    //alert("Mail/News protocols - returning SOCKS");
    return SOCKS;
  }

  // Tunnel blocked sites through our SOCKS server
  if ( shExpMatch(host, "*poker*")
       || shExpMatch(host, "*.emusic.com")
       || shExpMatch(host, "www.myspace.com")
       || shExpMatch(host, "*beer*")
       || shExpMatch(host, "*youtube.com")
       || shExpMatch(host, "*.somethingawful.com")
       || shExpMatch(host, "www.rst38.org.uk")
       || shExpMatch(host, "*videodownloader.net")
       || shExpMatch(host, "*javimoya.com")
       || shExpMatch(host, "gnupg.org")
       || shExpMatch(host, "*.asobrain.com")
       || shExpMatch(host, "*climateprediction.net")
       || shExpMatch(host, "*rsscache.com")
       //|| shExpMatch(host, "*winamp.com*")
       // || dnsDomainIs(host, ".windowsupdate.com")
       // || dnsDomainIs(host, "windowsupdate.microsoft.com")
       // || dnsDomainIs(host, ".windowsupdate.microsoft.com")
       ) {
    alert("Corporation Blocked -- returning SOCKS");
    return SOCKS;
  }

//  if (url.substring(0, 5) != "http:") {
//    //alert("NON HTTP -- returning SOCKS");
//    return SOCKS;
//  }
//  if (url.substring(0, 5) == "https:") {
//    //alert("HTTPS -- returning DIRECT + PROXY");
//    return "DIRECT;" + PROXY;
//  }

  // Otherwise use normal proxy
  //alert("Default PROXY");
  return PROXY;
}

// eof

Note que eu mesmo usei esse arquivo de configuração para fazer o proxy SMTP e IMAP quando eles também estavam bloqueados, então eu poderia acessar meu e-mail pessoal via Thunderbird, que também suporta as configurações do arquivo PAC.

Como sempre, YMMV ... Espero que isso ajude.

    
por 23.09.2014 / 16:41