Scrivo questo tutorial per un amico, ma penso che possa servire pure a qualcuno qua.
Segnalatemi eventuali imprecisioni che le correggo.
0. requisiti- computer sempre acceso
- servizio di dynamic dns (es: no-ip.com)
1. il server sshPer windows puoi installare
freeSSHd 
. Durante l'installazione ti chiede di generare le chiavi e se installarsi come servizio che viene avviato in automatico.
Una volta lanciato fai clic sull'icona sulla systray e in server status ti infoma che è running; ferma il server ssh cliccando sul link, vai al tab users e aggiungi l'utente del pc (NT authentication vuol dire che userà la stessa password di windows) e metti la spunta su shell e tunnel; nel tab tunnelling metti la spunta su "Allow local port forwarding" e "Allow remote port forwarding"; sul tab SSH cambia la porta da 22 (ssh) a 443 (https); conferma tutto e avvia il server ssh.
Test: scarica
putty 
, lancialo e connettiti mettendo come hostname "localhost" e porta "443". Il test ha successo se riesci correttamente ad autenticarti.
Test: per verificare che il pc permette il tunnelling correttamente puoi lanciare putty, configurarlo come sopra per connettersi, andare sull'alberino a sinistra su Connection>SSH>Tunnels e su source port metti 8080, clicca sul radio button "Dynamic" e poi su Add; ti aggiunge una riga con scritto D8080; connettiti e poi apri il browser; imposta come proxy del browser localhost:8080 con protocollo socks. Il test ha successo se riesci a navigare con questa configurazione.
2. configurazione del routerDevi configurare il tuo router per inviare le connessioni in ingresso su porta 443 verso il pc appena configurato (voce NAT o Virtual Server).
Fai riferimento alle guide per sbloccare le porte di emule (
esempio 
) e ripeti i test sopra riportati da un pc esterno alla tua rete (es: con chiavetta umts o da casa di un amico).
3. configurare il proxy http (pc remoto)I proxy ISA usano l'autenticazione NTLM, che è di per sé abbastanza problematica per molti programmi, compreso putty che useremo dopo.
Per bypassare il problema useremo
cntlm 
, che fa da proxy di autenticazione, ovvero si collega al proxy http aziendale e inserisce le informazioni di autenticazione al posto del client (il browser o altro).
Una volta installato il servizio per configurarlo devi editare il file C:\Programmi\Cntlm\cntlm.ini, i parametri da cambiare sono: Username (l'user del dominio, senza il prefisso "dominio\"), Domain (nome del dominio NT), Password, Proxy (l'indirizzo del proxy aziendale, nella forma hostname:porta), Listen (la porta su cui ascolta, di default è la 3128).
Per riavviare il servizio di cntlm con la nuova configurazione fai tasto dx su Risorse del computer > Gestione > Servizi e applicazioni > Servizi, cerca "Cntlm Authentication Proxy" nella lista e fai tasto dx > Riavvia.
Test: configura il browser per puntare come proxy l'indirizzo localhost:3128. Il test ha successo se riesci a navigare con questa configurazione.
4. configurare putty per il tunnel (pc remoto)Lancia putty e inserisci come host l'indirizzo del dynamic dns (es: tuopc.no-ip.org), e come porta 443.
In Connection>Proxy inserisci HTTP come Proxy Type e localhost:3128 come indirizzo.
In Connection>SSH>Tunnels aggiungi come prima una porta su source port (es: 8080), clicca il radio button Dynamic e poi add, ti aggiunge la riga D8080.
Prima di connetterti, torna su session sulla riga Saved sessions metti un nome per la configurazione (es: "tunnel verso casa") e clicca save e infine clicca Open per connetterti.
Test: apri il browser e imposta come proxy del browser localhost:8080 con protocollo socks. Il test ha successo se riesci a navigare con questa configurazione.