Table des matières

, , , ,

Comment avoir un accès complet à Internet derrière un proxy ?

Ce tutoriel explique comment obtenir un accès complet à internet depuis un site sécurisé par un Proxy en utilisant son PC comme serveur Proxy.

Cas concret : Vous souhaitez accéder à plusieurs serveurs en VNC (port 5901) or la plupart des sites où vous intervenez protègent l'accès à internet par un proxy.

Principe

Si l'entreprise laisse passer le HTTP/HTTPS (si on peut utiliser les sites marchands, c'est le cas), il est en général possible de se connecter chez soi en SSH (donc quasiment tout utiliser à travers des tunnels SSH: VNC en particulier) même si le proxy/firewall l'empêche.

Au niveau du serveur SSH chez soi, dans le pire des cas, il faudra juste ajouter un port d'écoute supplémentaire pour le sshd: Le port 443 du HTTPS.

Le principe est simple :

Configuration du poste client Linux, côté travail

Installer proxytunnel directement de sa source : http://proxytunnel.sourceforge.net/download.php

Télécharger le linux-x86 binary et le copier dans « /home/$USER/.ssh » (remplacer $USER par son nom d'utilisateur).

Vérifier qu'il a bien l'attribut +x (execution), sinon faire : chmod u+x proxytunnel-i386-linux

Créer (s'il n'existe pas) un fichier /home/username/.ssh/config et y placer la ligne d'appel de proxytunnel:

# Remplacer ce nom par son domaine dyndns maison ou IP (si fixe)
host mon_domaine.net

# Remplacer "nom_du_proxy:port_proxy" par ce qui est utilisé dans l'entreprise:
# voir config de firefox/IE, ou directement le fichier de config auto du proxy...
# Si pas d'authentification auprès du proxy, virer les -u -s et les username/passwd.
# Sinon, mettre les bons (attention a ne pas laisser les droits +r aux autres utilisateurs, qui pourraient lire votre MDP d'accès au proxy internet!).
ProxyCommand /home/username/.ssh/proxytunnel-i386-linux -p nom_du_proxy:port_proxy -u username -s user_internet_passwd -d mon_domaine.net:443 -v

Configuration du poste client Windows, côté travail

On utilise Putty pour créer une connexion SSH. La version portable de Putty est très pratique, car on peut la mettre sur une clé USB : Portable Putty

Éditez le fichier .putty\sessions\masession FIXME (sous Windows avec portablePuTTY ça se trouve dans (répertoireframakey)\Apps\PortablePuTTY\.putty\sessions ) :

Protocol=ssh
PortNumber=443

// Activation du keep alive afin d’éviter d’être déconnecté
PingIntervalSecs=30
TCPNoDelay=1

// Configuration du proxy (proxy http)
ProxyMethod=3
ProxyHost=Proxy
ProxyPort=3128
ProxyUsername=login
ProxyPassword=XXXX

// redirection de ports
LocalPortAcceptAll=1
RemotePortAcceptAll=1
PortForwardings=D6588,

Pour Windows, dans le cas de l'utilisation de Putty, les informations sont à spécifier dans l'onglet de gauche. N'oubliez pas de sauvegarder la session.

Configurer le navigateur (Firefox : Outils → Options → Avancé → Réseau → Paramètres ; IE : Outils → Options Internet → Connexions → Paramètres réseau) :

Configuration du serveur SSH, côté maison

Installez le paquet ssh. Éditez le fichier /etc/ssh/sshd_config afin d'ajouter "Port 443" en dessous du classique port d'écoute 22 du daemon sshd.

Pour éviter les déconnexion, il faut utiliser le mode keepalive : éditez le fichier /etc/ssh/sshd_config et vérifier que la ligne suivante est bien présente : TCPKeepAlive yes

Configuration du routeur

La plupart des Box internet permettent de configurer la redirection des ports. Mais pas le routeur linksys

Utilisation

Possibilité de faire du VNC chez soi sous tunnel SSH crypté en redirigeant classiquement les ports 59XX avec l'option -L de la ligne de commande ssh. Voir les tutoriels/posts forum à ce sujet (ou le man ssh), résumé ci après (bureau à distance préalablement activé chez soi en prenant soin de bloquer les accès directs, sans tunnel SSH, niveau firewall: Ne pas ouvrir les ports 59xx!): Dans un 1er terminal:

ssh -L 5901:localhost:5900 -C <user>@<hostname>

Dans un 2e terminal :

vncviewer localhost:1

Possibilité de faire du web en utilisant son PC ubuntu maison: Utiliser l'option -D de ssh, qui transforme le serveur ssh en proxy SOCKS. Ainsi, on peut aller sur Monster sans que son DRH ne puisse être informé par l'admin réseau ;o)

ssh -D 9999 <user>@<hostname>

Et côté navigateur, sous Édition → Préférences → Général → Paramètres de connexion → configurer manuellement un proxy Socks v5 sur le localhost, port 9999 (celui de l'option -D). Ne pas oublier de retirer le localhost de la ligne « No proxy for: »1), qui bypasserait ce setup !

Et tout ce que peut faire SSH de rigolo, avec les reverse tunnels par exemple :

Si l'on veut se passer du VPN de l'entreprise… Lancer un reverse tunnel ssh chez soi par exemple ! On se connecte ensuite de chez soi via le localhost et en utilisant le numéro de port reverse forwardé avant de partir du travail. ;-)

De quoi rendre un admin fou… et sans doute la raison pour laquelle le HTTPS commence à ne plus sortir dans certaines entreprises ?

Voir aussi

FIXME faire un mix de cette page avec le tuto du forum pour n'avoir qu'une seule page

Contributeurs : manusvs650, yvan78.

1)
« Pas de proxy pour : »