Connessioni SSH attraverso un proxy HTTP: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(Nuova pagina: __TOC__ == Introduzione == Ci troviamo in una rete che filtra il traffico in uscita e permette solo connessioni tramite protocollo HTTP attraverso un proxy e vogliamo poterci connette...)
 
m (versioni compatibili)
 
(9 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|Jessie|Stretch|Buster}}
__TOC__
__TOC__


Riga 11: Riga 12:
== Installazione del software ==
== Installazione del software ==
Il software utilizzato in questa guida si chiama <code>corkscrew</code>: un semplice strumento per creare tunnel in cui far passare connessioni TCP attraverso un proxy HTTP che supporta il metodo CONNECT. Durante la connessione legge da stdin e scrive su stdout, proprio come netcat. (''fonte Debian Package Description'')<br/>
Il software utilizzato in questa guida si chiama <code>corkscrew</code>: un semplice strumento per creare tunnel in cui far passare connessioni TCP attraverso un proxy HTTP che supporta il metodo CONNECT. Durante la connessione legge da stdin e scrive su stdout, proprio come netcat. (''fonte Debian Package Description'')<br/>
Procediamo con l'installazione:
Procediamo con l'installazione, con [[privilegi di amministrazione]]:
<pre>
<pre>
# apt-get install corkscrew
# apt install corkscrew
</pre>
</pre>
Se il proxy che vogliamo attraversare utilizza l'autenticazione, dobbiamo informare corkscrew sul nome utente e la password da utilizzare. Per fare questo creiamo un file di autenticazione nella nostra home:
Se il proxy che vogliamo attraversare utilizza l'autenticazione, dobbiamo informare corkscrew sul nome utente e la password da utilizzare. Per fare questo creiamo un file di autenticazione nella nostra home:
Riga 20: Riga 21:
$ nano .corkscrew.auth
$ nano .corkscrew.auth
</pre>
</pre>
Il contenuto del file devono essere solamente il nome utente e la password da utilizzare, separati da due punti:
Il contenuto del file devono essere solamente il nome utente e la password da utilizzare per autenticarsi sul proxy, separati da due punti:
<pre>
<pre>
ferdy:passwordferdy
ferdy:passwordferdy
</pre>
</pre>
Salvate il file e procedere alla configurazione di SSH.
Salvate il file, rendetelo leggibile solo dal proprietario (<code>chmod 600 .corkscrew.auth</code>) e procedere alla configurazione di SSH.


== Configurazione di SSH ==
== Configurazione di SSH ==
Arrivati a questo punto dobbiamo dire a SSH di utilizzare corkscrew per creare un tunnel. Apriamo il file <code>~/.ssh/config</code>:
Arrivati a questo punto dobbiamo dire a SSH di utilizzare corkscrew per creare un tunnel. Apriamo il file <code>~/.ssh/config</code>:
<pre>
<pre>
$ nano /home/ferdy/.ssh/config)
$ nano /home/ferdy/.ssh/config
</pre>
</pre>
e aggiungiamo le linee seguenti:
e aggiungiamo le linee seguenti:
Riga 54: Riga 55:
</pre>
</pre>
dovrebbe permetterci la connessione.
dovrebbe permetterci la connessione.
<br/><br/>
 
--[[Utente:Ferdybassi|Ferdybassi]] 15:20, 21 ott 2010 (CEST)
{{Autori
[[Categoria:SSH server e amministrazione remota]]
|Autore = [[Utente:Ferdybassi|Ferdybassi]] 15:20, 21 ott 2010 (CEST)
}}
 
[[Categoria:SSH server e amministrazione remota]][[Categoria: Proxy]]

Versione attuale delle 15:07, 19 ott 2019

Debian-swirl.png Versioni Compatibili

Debian 8 "jessie"
Debian 9 "stretch"
Debian 10 "buster"

Introduzione

Ci troviamo in una rete che filtra il traffico in uscita e permette solo connessioni tramite protocollo HTTP attraverso un proxy e vogliamo poterci connettere ad un server Debian remoto attraverso SSH. Il firewall sulla rete blocca il traffico SSH in uscita e il server Debian remoto risulta non raggiungibile.

La soluzione: configurare un tunnel HTTP

Con pochi passi è possibile aggirare l'ostacolo e configurare un tunnel HTTP, che altro non è se non una "tecnica utilizzata nel campo della trasmissione di dati digitali per veicolare informazioni che normalmente utilizzano altri protocolli, attraverso lo standard HTTP (creando cioè un "tunnel" attraverso la connessione Http). Tale tecnica viene utilizzata anche per bypassare i firewall, utilizzando tipologie di connessioni non bloccate per effettuare altre operazioni che normalmente verrebbero filtrate." (fonte Wikipedia)

Prima di procedere con la configurazione è bene sapere che la creazione di un tunnel HTTP può andare in contrasto con le policy aziendali di rete; si consiglia di discutere del problema con gli amministratori di rete per evitare possibili sanzioni o richiami.

Installazione del software

Il software utilizzato in questa guida si chiama corkscrew: un semplice strumento per creare tunnel in cui far passare connessioni TCP attraverso un proxy HTTP che supporta il metodo CONNECT. Durante la connessione legge da stdin e scrive su stdout, proprio come netcat. (fonte Debian Package Description)
Procediamo con l'installazione, con privilegi di amministrazione:

# apt install corkscrew

Se il proxy che vogliamo attraversare utilizza l'autenticazione, dobbiamo informare corkscrew sul nome utente e la password da utilizzare. Per fare questo creiamo un file di autenticazione nella nostra home:

$ cd
$ nano .corkscrew.auth

Il contenuto del file devono essere solamente il nome utente e la password da utilizzare per autenticarsi sul proxy, separati da due punti:

ferdy:passwordferdy

Salvate il file, rendetelo leggibile solo dal proprietario (chmod 600 .corkscrew.auth) e procedere alla configurazione di SSH.

Configurazione di SSH

Arrivati a questo punto dobbiamo dire a SSH di utilizzare corkscrew per creare un tunnel. Apriamo il file ~/.ssh/config:

$ nano /home/ferdy/.ssh/config

e aggiungiamo le linee seguenti:

Host *
ProxyCommand corkscrew proxyhostname proxyport %h %p /home/ferdy/.corkscrew-auth

Ovviamente sostituite:

  • ferdy con il vostro nome utente
  • proxyhostname con il nome o l'indirizzo IP del proxy
  • proxyport con il numero di porta utilizzato dal proxy


Nota: se il proxy da attraversare non usa autenticazione eliminate la parte /home/ferdy/.corkscrew-auth dal file precedente.

Quello che abbiamo appena fatto è stato di istruire SSH a utilizzare il comando ProxyCommand per creare una connessione con tutti i PC remoti (Host *). Il comando ProxyCommand invoca il software corkscrew per creare una connessione verso il proxy utilizzando le credenziali specificate nel file di autenticazione.
Nel comando vengono utilizzate due variabili:

  • %h: è la variabile di configurazione di SSH che indica l'hostname del PC
  • %p: è la variabile di configurazione di SSH che indica la porta su cui lavorare

Attivare la connessione

A questo punto il semplice comando:

$ ssh hostremoto.com

dovrebbe permetterci la connessione.




Guida scritta da: Ferdybassi 15:20, 21 ott 2010 (CEST) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized