Tunnel http-ssh e proxy socks: bypass proxy aziendale

Tunnel http-ssh e proxy socks: bypass proxy aziendale

Capita spesso che in una rete aziendale sia presente un proxy con autenticazione NTLM.
Tali proxy limitano il traffico nella rete e, in corrispondenza di parole riconosciute pericolose o collegate a contenuti non permissibili, bloccano l’accesso a determinati siti.

Si consideri ad esempio il caso in cui si vogliano cercare componenti analogiche: spezzando la parola si ottiene anal-ogiche. La prima parte può trarre in inganno il filtro sul proxy e bloccare l’accesso ai siti che trattano questo argomento.

In questo post vediamo come fare per superare i limiti imposti da una configurazione di questo tipo.

Occorrente:

  • PC conesso sempre ad internet
  • DynDNS (per avere sempre un associazione precisa tra nome e ip)
  • Server ssh
  • Server web (opzionale)
  • proxytunnel installato sul client
  • Software compatibili con proxy socks o plugin (FoxyProxy per Firefox)

Configurazione lato server

Lato server si può procedere in due modi:

  • porre il demone di ssh-server in ascolto sulla porta 443
  • usare apache come proxy

La prima soluzione è facile: basta aprire il file /etc/ssh/sshd_config e sostituire da:
Port 22
a:
Port 443

La seconda soluzione necessita di apache installato e dei seguenti moduli attivi:

  1. proxy
  2. proxy_http
  3. proxy_html
  4. proxy_connect

Fatto ciò bisogna aggiungere al virtual server selezionato per questo scopo le seguenti righe:

ProxyRequests on
AllowCONNECT 22 2022
ProxyVia on
<proxy *>
order deny,allow
allow from localhost
allow from IP_OR_NET
deny from all
allow from all
</proxy>

Tramite le chiavi allow e deny si può consentire l’accesso solo a determinati host.
E’ assolutamente indispensabile che apache sia attivo e in ascolto sulla porta 443 aggiungendo nel file /etc/apache2/ports.conf:

NameVirtualHost *:443
Listen 443

Configurazione lato client

Lato client la configurazione è molto semplice.

E’ necessario modificate il file ~/.ssh/config aggiungendo si seguenti campi:
Host <MIOSERVER>
DynamicForward 1080
ProxyCommand proxytunnel -v -p <PROXY_IP>:<PROXY_PORT> -P <USERNAME>:<PASSWORD> -t <DOMAIN> -r <MIOSERVER>:443 -d %h:%p -H "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)\n"
ServerAliveInterval 30

Create uno scritp in /usr/local/bin e chiamatelo, ad esempio, tunnel:
#!/bin/bash
ssh -D 8080 <MIOSERVER_IP>

A questo punto per connettersi è necessario digitare:
$ tunnel
e configurare tutti i software per usare un proxy socks con i seguenti parametri:

  • Indirizzo IP: 127.0.0.1
  • Porta: 8080

Buona Navigazione

#!/bin/bash
ssh -D 8080 <MIOSERVER_IP>

Share this content: