Le X11 forwarding

Première méthode très connue des administrateurs, le X11 forwarding permet de rediriger l'affichage graphique du serveur SSH vers le client SSH. Attention, il est nécessaire d'activer le X11 forwarding dans le fichier de configuration du démon SSHd. Cette méthode peut permettre de passer outre une politique de sécurité trop contraignante :-)

Pour se faire, éditez le fichier /etc/ssh/sshd_config et modifiez la ligne :
X11Forwarding yes

Sur le client, lors de la connexion, il faut ajouter l'option -X pour autoriser le X11 forward :
ssh -X <utilisateur_ssh>@<serveur_ssh> -p <port_ssh>

Une fois connecté ainsi, les applications graphiques lancées depuis la session SSH s'afficheront sur la machine cliente. A noter que cela fonctionne sous Windows avec Putty en utilisant l'utilitaire Xming.

Cette solution, simple a mettre en œuvre et efficace en réseau local, montre rapidement ses limites lorsque l'on passe par des WAN, en effet aucune compression est effectuée et ça rame à donf !!!!! Une solution plus efficace est d'utiliser SSH comme proxy.

Proxy socks avec SSH

L'idée est simple, profiter d'un tunnel SSH donc crypté pour véhiculer d'autres flux, de l'HTTP par exemple. Il faut bien avoir en tête que le proxy est local à la machine cliente, un pti schéma :
ssh_proxy.png


Aucune configuration coté serveur n'est nécessaire, il suffit d'ajouter l'option -D suivit du port local servant de proxy :
ssh -D <port_proxy> <utilisateur_ssh>@<serveur_ssh> -p <port_ssh>

Il vous suffit ensuite de configurer l'application qui doit passer par le tunnel. Le proxy est de type SOCKS, l'hôte est localhost et le port est <port_proxy>. Par exemple, je me sers de cette méthode pour me connecter à MSN depuis des hotspots Wifi. MSN n'est pas chiffré, il serait très simple pour un sniffeur de récupérer mon login/password grrrr.

Redirection de ports dans un tunnel SSH

Comment transformer SSH en VPN afin d'accéder à son LAN en toute sécurité ? Avec la redirection de ports voyons !!! :P
L'idée est de rediriger un port distant sur notre machine locale en passant par un serveur SSH, un pti schéma pour illustrer tout ça :
ssh_portforward.png


Coté serveur SSH, aucune configuration spécifique n'est nécessaire. Il suffit d'utiliser l'option -L de SSH avec quelques paramètres :
ssh -L <port_local>:<serveur_cible>:<port_cible> <utilisateur_ssh>@<serveur_ssh> -p <port_ssh>

Une fois la redirection en place, on accède au service cible sur le port local <port_local>. Cette méthode est très utile pour accéder à des services non chiffrés, les anciennes versions de RDP ou encore à des partages CIFS.

La copie de fichiers avec SSH

Parlons rapidement de la copie de fichiers entre deux machines Unix avec scp. On peut faire deux choses avec scp, copier un fichier distant vers la machine locale ou copier un fichier local vers une machine distante. Vous l'aurez comprit, impossible de copier un fichier distant vers une machine distante. Voici la commande :
scp -P <port_ssh> <fichier_local> <utilisateur_ssh>@<serveur_ssh>:<chemin_distant>
Ou
scp -P <port_ssh> <utilisateur_ssh>@<serveur_ssh>:<fichier_distant> <chemin_local>

De plus, il est à noter que scp peut copier un répertoire à la place d'un fichier. Pour cela ajoutez l'option -r, bien pratique ;-)

Transformer SSH en NAS

Plus fort que la copie de fichiers avec scp, SSH peut monter un répertoire distant comme une partition locale. Il va falloir par contre installer un pti binaire avant : le fameux sshfs, qui veut dire SSH File System. Pour centOS, lancer la commande suivante :
yum install sshfs

Ensuite on monte un répertoire distant existant sur votre serveur SSH :
sshfs <utilisateur_ssh>@<serveur_ssh>:<repertoire_distant> <point_de_montage_local> -p <port_ssh>

N'oubliez pas de créer le point de montage avant :
mkdir <point_de_montage_local>

Vous pouvez ensuite naviguer dans ce répertoire distant de la même façon que votre disque local. Pour déconnecter proprement le montage, pensez à la commande umount en tant que root :
fusermount -u <point_de_montage_local>

Conclusion

Cher nomade paranoïaque, te voici équipé pour te connecter en toute sécurité sur des réseaux étrangers. Ces outils servent idéalement lors de connexion à des réseaux wifi type hotspot ou d'universités par exemple. En effet, il est très facile de sniffer ce genre de réseaux et les hackers ne s'en privent pas (Tient, ça me donne une idée d'article...). D'autre part, ils permettent de contourner une politique de sécurité, à condition bien sur que l'accès à SSH soit autorisé ;-)