Metodo 1: Utilizzare un proxy HTTP che supporti l'utilizzo di un SOCKS upstream, ad es. Polipo o Privoxy.
Per prima cosa stabilisci un -D
tunnel su SSH come sempre, quindi configurare il proxy HTTP per utilizzare il tunnel SSH – esempio di configurazione Polipo:
proxyAddress = "::1"
proxyPort = 8118
socksParentProxy = "localhost:8080"
socksProxyType = socks5
Infine, indirizza l'app a Polipo usando http_proxy=localhost:8118
.
Metodo 2: Esegui il tuo programma all'interno di torsocks
wrapper (o il precedente tsocks
), che esegue il proxy di tutte le connessioni in modo trasparente. Era pensato per l'uso con Tor, ma funziona con qualsiasi server SOCKS, incluso ssh -D
.
Metodo 3: Imposta un proxy HTTP sul tuo server , quindi utilizza ssh -L
per accedervi.
Ogni -D
risulta in un server SOCKS. Se il tuo cliente non può gestire SOCKS dimentica -D
.
Devi eseguire un proxy HTTP sull'host remoto e inoltrarlo con -L
:
ssh -f -N -n -L8080:127.0.0.1:8080 host
Ho lo stesso problema che desidera utilizzare il proxy HTTP tramite SSH. Poiché molte applicazioni supportano solo il proxy HTTP e il proxy HTTP è facile da utilizzare nell'ambiente della riga di comando.
Anche se ho cercato diverse pagine ma non riesco a trovare un modo diretto (può essere concatenato con Polipo, Privoxy o tsocks) per farlo...
Dopo una giornata di lavoro, ho terminato una semplice versione Golang del proxy HTTP su SSH. Sentiti libero di giocarci:mallory.
Attualmente supporta solo la chiave RSA (che si trova in $HOME/.ssh/id_rsa) e l'autorizzazione tramite password.
host
è l'indirizzo del server SSH, port
è 22
se non viene modificato dall'amministratore. Il lato server è solo il nostro vecchio amico sshd
con configurazione zero.
mallory -engine=ssh -remote=ssh://host:port
o con nome utente user
mallory -engine=ssh -remote=ssh://[email protected]:port
o con nome utente user
e password 1234
mallory -engine=ssh -remote=ssh://user:[email protected]:port
Dopo la connessione, un proxy HTTP servirà su localhost:1315.