Procédure pour installer un serveur ssh sous Windows XP et s'y connecter avec Putty à travers un proxy
La procédure suivante vous permet d'installer un serveur ssh
(Secure Shell) sous windows à l'aide du logiciel
cygwin, ce
logiciel permet d'installer un système minimaliste linux
sur un système Windows XP.
Ainsi en configurant un serveur ssh sous cygwin, vous pouvez
établir une connection sécurisée de bout en
bout avec un hôte distant au moyen d'une authentification par
clés en utilisant
Putty.
Installation de Cygwin :
Tout d'abord télécharger cygwin
ici, ensuite
éxécuter le fichier, installer par défaut (Ne pas
choisir "
Just For Me" sinon problème de droits) et selectionner comme type d'installation "Download
without installing", puis au moment du choix des paquetages valider comme indiqué cidessous :
* Admin -> cygrunsrv (Service cygwin pour NT)
-> shutdown
* Doc -> cygwin-doc
* Editors -> nano
-> vim
* Net -> openssh
Maintenant le programme d'installation va télécharger
tous les paquetages selectionnés sur le disque dur (en cas de
réinstallation tous les paquetages seront déjà sur
le disque dur).
Maintenant il faut relancer le programme d'installation
Setup.exe et
choisir comme type d'installation "
Install From Local Directory" et
revalider tous les paquetages comme précédemment.
Une fois l'installation terminée vous avez un système
linux sous votre windows, vous pouvez voir les fichiers dans
C:\cygwin
(par défaut).
Nous allons voir directement la configuration du serveur ssh, pour plus
de renseignement sur cygwin je vous invite à aller lire la doc
sur leur site
http://www.cygwin.com.
Lancer le raccourci cygwin créer sur le
bureau. une fois
que cygwin est lancé vous avez un terminal dans lequel vous pouvez taper
différentes commandes.
Taper les commandes suivantes :
ssh-host-config -y
Lorsque le système vous affiche au prompt "CYGWIN=" entrer
tty ntsec
Cela va créer un fichier de configuration, un user
privilégié et tous les repertoires particuliers.
Maintenant on peut démarrer le service Windows en tapant
cygrunsrv -S sshd.
Nous allons modifier maintenant le port d'écoute du serveur ssh
qui est par défaut le 22, nous allons mettre
80 (http) ou
443
(https préférable) pour que vous puissiez lorsque vous
êtes à distance vous connecter en utilisant le proxy de
votre société et ainsi ne pas être bloquer par le
parefeu. Pour cela éditer directement sous windows le fichier
c:\cygwin\etc\sshd_config
et remplacer (ou rajouter ) 443 au lieu du 22 (si problème de droits lancer cygwin et taper
chmod 777 /etc/sshd_config). Et voila redemarrer
votre serveur ssh, et maintenant il communique sur le port 443 au lieu
de 22.
Paramétrer votre routeur et créer une règle dans
votre parefeu pour qu'il laisse passer les communications sur le port
443.
Toujours dans l'interface de cygwin taper les commandes suivantes :
cd
mkdir .ssh
Installation de Putty :
Maintenant il vous faut télécharger
Putty ici, pour générer des clés d'authentification publique et privé.
Installer Putty avec les options par défaut et ensuite aller
dans le répertoire où il est installé (c:\program
files\putty) et lancer puttygen.exe, choississez une passphrase, et
ensuite générer vos clés, puis sauvegarder les.
Maintenant il faut faut selectionner la zone "
Public key for pasting into authorized_keys file" et copier la (control + c ou bouton droit de la souris et copier). Ensuite retourner dans cygwin et taper
vi authorized_keys, puis faire un bouton droit en haut de la fenêtre et selectionner coller, puis taper
:wq (le "
: " est important puisqu'il permet de renter dans l'interface de vi et wq pour enregistrer et sortir du logiciel vi)
Voila votre fichier contenant votre clé publique et
copier sur le serveur, il ne vous reste plus qu'à la
sauvegarder sur une disquette et la prendre avec vous lorsque vous
voulez vous connecter à distance.
Pour établir une connection à distance avec putty, lancer
le raccourci et régler les différents paramètres
comme proxy, en indiquant l'adresse du proxy, et en incluant la
clé publique, pour cela aller sur l'onglet
connexion, puis
ssh,
puis
Auth.
Voilà vous pouvez lancer un terminal à distance en
passant par un proxy, une fois connecté le système vous demande de vous identifier, et ensuite vous pouvez avoir
accès à l'invite de commande de votre système
Windows en tapant
cmd.
Vous pouvez démarrer un service en tapant la commande
net start
"nom du service" et l'arrêter en tapant
net stop "nom du service"(par exemple net start "WinVNC4" pour démarrer le service de WinVNC4).
Ainsi il vous est possible de vous connecter à distance en
utilisant Vnc, sans laisser le service Vnc actif en permanence et
de façon relativement sécurisé
puisque vous établissez un canal sécurisé de
bout en bout entre l'hôte distant et votre serveur ssh.
Pour cela il vous faut paramétrer putty sur votre pc distant.
Aller dans la rubrique
connexion, puis
ssh, puis
tunnels et
régler comme décris ci dessous :
Add new forwarded port
source port :
5800 (utiliser par défaut par Vnc sur votre serveur)
destination :
www.monadresse.no-ip.org:5800
(il faut indiquer l'adresse ip ou au alias de votre machine et le port
utiliser par vnc)
Puis cliquer sur
Add, pour valider.
Maintenant sur votre machine cliente qui est normalement bloquer par
parefeu et par proxy , vous pouvez lancer putty afin
d'établir une connection ssh chez vous et ensuite lancer
Vnc
viewer et comme adresse indiquer
localhost:5800, et vous vous connecter
ainsi chez vous par Vnc en utilisant une liaison ssh au moyen
de Putty.
En effet putty agit aussi comme un proxy et permet lorsque le
canal sécurisé ssh est établi
de rediriger des ports afin d'utiliser des applications comme
vnc ou autres au travers de la connection ssh.
Du coup sur la machine où est installé votre serveur
Vnc, vous pouvez refermer les ports de votre routeur qui
étaient utilisés par vnc, puisque vous n'avez
besoin de n'ouvrir plus qu'un port pour la connection
ssh, renforcant ainsi la sécurité.
Pour cela lisez la doc de votre routeur pour savoir comment ouvrir un
port et paramétrer votre parefeu pour qu'il laisse renter
les connections entrantes sur le port 443 (utiliser par
notre serveur ssh dans notre exemple).
Voila je rajouterai quelques images et d'autres explications dans quelques temps.