Tunneling SSH su https per bypassare i firewalls

In questo argomento impareremo come bypassare il firewall che blocca le connessioni SSH a livello di applicazione. Ciò ignorerà anche il proxy Web poiché il proxy supporrà che si tratti di traffico HTTPS legittimo. Innanzitutto installeremo un server Apache che otterrà tutte le richieste HTTPS sulla porta 443 e lo invierà alla porta 22. Dal lato client useremo il tunnel proxy che convertirà il nostro traffico SSH in https e lo invierà alla porta 443 su indirizzo remoto . Abbiamo bisogno di un server e un client per completare questa configurazione.

Sul Server

Installazione Server Apache

sudo apt-get install apache2

Abilitare ssl e il sito di default ssl

$ sudo a2enmod ssl
$ sudo a2ensite default-ssl

Abilitare il modulo proxy

$ sudo a2enmod proxy proxy_connect proxy_http

Modificare il sito di default ssl

$ sudo vim /etc/apache2/sites-enabled/default-ssl.conf

Aggiungere le seguenti righe

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

qui sotto c’è uno screenshot della configurazione

Sul Client Linux

Installare il pacchetto proxytunnel:

$ sudo apt-get install proxytunnel

testare il comando proxytunnel:

# proxytunnel -E -p yourserverip:443 -d 127.0.0.1:22 -v -H "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)\n"

editare il file .ssh/config:

Host yourserverip
ProxyCommand proxytunnel -q -E -p yourserverip:443 -d 127.0.0.1:22
DynamicForward 1080
ServerAliveInterval 60

ultimo step verificare la connessione:

$ ssh username@yourserverip -p 443

Sul client Windows

Scaricare e installare Cygwin da sito qui. In Cygwin installare il pacchetto OpenSSH.

Scaricare proxytunnel-1.9.0-cugwin.zip da qui

Creare una cartella proxytunnel sotto la home dell’utente “C:\cygwin64\home\thomasmilian”. Estrarre il contenuto dello zip all’interno dellla cartella creata.

Aprire il terminale di cygwin e scrivi il comando:

$ cd proxytunnel

Varificare il comando:

# proxytunnel -E -p yourserverip:443 -d 127.0.0.1:22 -v -H "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)\n"

creare il siblink “C:\cygwin64\bin”

$  cd /bin
$ ln -s /home/username/proxytunnel/proxytunnel.exe proxytunnel.exe

Dalla cartella di Windows Explorer “C:\cygwin64\home\user\.ssh”. Se la cartella “.ssh” non esiste, crearla. Sotto di esso crea un file chiamato “config” senza alcuna estensione. Inserisci i dettagli di seguito in esso e salva:

Host yourserverip
ProxyCommand proxytunnel -q -E -p yourserverip:443 -d 127.0.0.1:22
DynamicForward 1080
ServerAliveInterval 60

In cygwin esegui il comando seguente per connetterti:

$ ssh username@yourserverip -p 443

Fine