VNC tunnélisé dans SSH lui même tunnelisé dans SSL

C’est énervant d’être bloqué par le pare-feu d’un cybercafé, d’une entreprise pour un rien, impossible de prendre la main de votre serveur préféré tout ça parce que les seuls ports autorisés sont 80 (internet) et 443 (pour https).

Le truc pour passer à travers ces bloquages c’est Stunnel, ce programme permet de faire passer n’importe quoi par le port 443. Un petit daemon (ou service) tourne sur le serveur, il écoute le port 443 et le transmet au protocole approprié.

On va commencer par faire passer SSH (port 22), ssh sert à prendre la main d’un linux en ligne de commande (en gros ).

1.Côté serveur :

Sudo apt-get install stunnel4 on installe stunnel
sudo nano /etc/default/stunnel4 puis ENABLE=1 on active le service stunnel 
Même chose ici :

sudo nano /etc/init.d/stunnel4 puis ENABLE=1

cd /etc/stunnel/ on va dans le répertoire stunnel
sudo chmod 660 stunnel.conf on donne les droits root sur stunnel.conf
sudo nano /etc/stunnel/stunnel.conf on édite stunnel.conf

et on recopie ceci :

chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4
; PID is created inside chroot jail
PID = /stunnel4.pid

; compression = rle
[proxytunnel]
accept = 443
connect = 127.0.0.1:22
TIMEOUTclose = 0

Il ne reste plus qu’à créer un certificat pour stunnel :

cd /etc/stunnel
sudo openssl req -new -x509 -days 365 -nodes -out stunnel.pem -keyout stunnel.pem
le certificat stunnel.pem est créé pour 1 an (-days 365).

sudo /etc/init.d/stunnel4 start on démarre (une fois pour toute) stunnel sur le serveur.

2.Côté client :

J’utilise la version portable de stunnel sur clé usb, version pour windows  . il suffit de dézipper sur la clé, d’y copier le certificat stunnel.pem du serveur et d’éditer stunnel.conf avec le bloc notes Windows:
client = yes
delay = yes
[sshtunnel]
accept = 127.0.0.1:22
connect = VotreNomDynDNSouVotreIPinternet:443

C’est tout ! On voit bien que le pc local (127.0.0.1) se connecte en SSH (port 22) et est « redirigé » vers le port 443 de votre PC distant. Pour lancer stunnel portable, double-cliquez sur stunnel.exe.

3.Votre Box

Votre serveur doit bien sûr avoir une adresse ip fixe et il faut configurer votre box pour rediriger tout ce qui vient d’internet (port externe) vers le 443 de votre pc (port ou adresse ip de destination). En cherchant NAT puis le nom de votre box dans Google, vous trouverez comment paramétrer tout ça.

4.Putty

Putty va nous permettre de nous connecter en SSH sur un Linux depuis Windows. Là encore j’utilise la version portable que l’on peut trouver ici.
Hostname : 127.0.0.1 port: 22
Oui on se connecte localement sur le port 22 car il est redirigé sur le 443 qui est relié à votre pc distant, qui lui même relance sur son port 22
Acceptez le certificat, connectez vous avec votre login et pass du serveur. ça y est !

5.VNC

Pour utiliser VNC et prendre le contrôle de votre pc il suffit d’aller dans Putty, connections, SSH, Tunnels :
Source port 7000 (c’est un exemple) destination127.0.0.1:5900
Puis on lance putty comme ci-avant.
Dernière étape, lancer VNC sur 127.0.0.1:7000 en réglant les options selon votre connexion internet.
Voilà on se connecte sur le port 7000 local pour passer dans un tunnel SSH, qui lui même est dans un tunnel SSL pour se connecter au port 5900 (bureau distant de votre linux).

Regardez le schéma en haut, il vous paraîtra beaucoup plus clair… je l’espère. Couplé à du Wake On Wan (réveil à distance) c’est parfait. 8)

La partie installation du serveur stunnel sous Windows est aussi simple que la partie client. Enjoy !

Note: ne pensez même pas à faire passer le port de votre jeu préféré par stunnel. ex: port 3724 qui passe par le 443, les débits seraient monstrueusement ralentis.

Email this to someoneShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedIn

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Time limit is exhausted. Please reload CAPTCHA.