Posts for the month of March 2007

Installation d'un serveur SSH sur Windows

Installation d'un serveur ssh

{http://www.commentcamarche.net/faq/sujet-2132-%5BR%E9seaux%5D-Installation-d'un-serveur-ssh-sous-Windows infos}

ETAPE 1 - Installation de Cygwin

1) téléchargez l'installeur Cygwin (setup.exe) de http://www.cygwin.com/ et lancez-le.

1.a) Fenêtre "Choose installation type": Choisissez "Install from internet"

1.b) Fenêtre "Choose Installation Directory": Laissez toutes les valeurs par défaut.

1.c) Fenêtre "Select Local Package directory": Laissez les valeurs par défaut.

(Les fichiers d'installe cygwin seront placés dans un sous-répertoire de setup.exe)

1.d) Fenêtre "Selection connection type": Entrez d'éventuels paramètres de proxy si vous en utilisez un.

1.e) Fenêtre "Choose Download Site(s)": Choisissez un site de téléchargement

proche de chez vous. Par exemple, en Belgique, choisissez les serveurs en .be. En France, choisissez les serveurs en .fr. Au pire, choisissez des serveurs dans des pays voisins (exemple: .de (Allemagne) pour la France.)

1.f) Fenêtre "Select packages", cliquez sur le bouton "View" pour voir la liste des paquets.

Descendez dans la liste pour trouver "openssh: The OpenSSH server and client programs" et cliquez sur le mot "Skip" pour sélectionner ce package. Le mot "Skip" doit alors être remplacé par la version d'openssh (pa exemple "4.2p1-1").

D'autres packages vont automatiquement être sélectionnés.

Cliquez sur "Next": Le téléchargement commence. (Il va télécharger environ 17 Mo de fichiers.)

1.g) Fenêtre "Create icons": cliquez sur "Finish".

L'installation de Cygwin est terminée.


ETAPE 2 - Configuration du serveur ssh

2.1) Modification de l'environnement:

  • faites un clic-droit sur le poste de travail > "Propriétés" > "Avancé"

    "Variables d'environnement" > "Variables système".

  • Cliquer sur "Nouveau", et entrer la variable: CYGWIN valeur: ntsec tty

  • Sélectionnez PATH dans la liste, cliquez "Editer" et ajoutez: ;C:\Cygwin\bin à la fin du chemin.

2.2) Création des groupes et utilisateurs.

Ouvrez la fenêtre Cygwin.

2.2.a) Créez les users et les groupes:

  • Users : mkpasswd -l > /etc/passwd
  • Groupes: mkgroup -l > /etc/group

Cela va prendre les users et groupes de Windows et les créer dans les fichiers correspondants Cygwin. Pour utiliser les groupes/users du domaine (au lieu de local), remplacez -l par -d Pour ajouter un user précis, utilisez -u. Exemple: mkpasswd -u johnny -l > /etc/passwd

2.2.b) Lancez: ssh-host-config -y

Il est possible qu'il demande un mot de passe pour la création d'un user "sshd_server" (par exemple sous Windows 2003). C'est le user qui sera utilisé pour faire tourner le service sshd.

Quand il demande "CYGWIN=", entrez: ntsec tty

Cela va créer le service sshd dans Windows. Il apparaîtra sous le nom "CYGWIN sshd" dans la liste des services. Il est en principe configuré pour démarrer automatiquement, mais il n'est pas encore démarré.


ETAPE 3 - Lancement du service sshd et test

3.a) Démarrez le service avec la commande: net start sshd ou: cygrunsrv -S sshd

(Notez que le service démarrera automatiquement au prochain redémarrage de Windows:

Vous n'aurez donc plus à taper cette commande.)

3.b) Testez le service.

Utilisez le client ssh fourni avec cygwin: ssh monlogin@localhost ou bien Putty (client ssh gratuit): http://www.chiark.greenend.org.uk/~sgtatham/putty/

A la première connexion, le client ssh va probablement vous demander de confirmer la clé. Ensuite, après l'entrée du mot de passe, vous devez obtenir un shell.

Vous pouvez voir la connexion en tapant: echo $SSH_CONNECTION (Port 22 = votre serveur ssh)


REMARQUES

Gestion des utilisateurs Tout utilisateur déclaré dans /etc/passwd pourra se loguer sur le serveur ssh. Vous pouvez donc limiter la liste des utilisateurs pouvant se connecter sur le serveur ssh en modifiant le fichier C:\cygwin\etc\passwd Note: vous devez laisser les users sshd et sshd_server. Le serveur ssh en a besoin.

Accès aux disques Windows N'oubliez pas que sous le shell Cygwin, vous pouvez accéder à vos disques Windows: Par exemple, /cygdrive/c pour accéder à C: (et ainsi de suite pour les autres lecteurs.)

Utilisations En plus du shell, vous avez bien entendu la possibilité d'utiliser votre serveur ssh pour le transfer sécurisé de fichiers (scp/sftp). Sous Windows, on trouve des clients scp/sftp gratuits:

Le serveur SSH peut également tunneller pour vous tout protocole basé sur TCP. (Pour être précis, c'est équivalent à un port-forwarding distant). Exemple, pour établir un tunnel: Votre machine -----> client ssh local (port 777) -----> serveur ssh (port 22) ----> pop.free.fr (port 110).

On entrerait: ssh -L 777:pop.free.fr:110 monLogin@monServeurSsh

Puis il suffit de connecter votre logiciel de mail sur localhost:777 au lieu de pop.free.fr:110 : ssh tunnellera tout cela vers pop.free.fr, port 110. Vous pourrez donc lire votre courrier sur localhost:777. Cela peut être utile pour traverser des réseaux non sûrs (par exemple tout ce qu'il y a entre votre machine et le serveur ssh).

Sécurité Pour compléter cette installation, il faudrait ajuster les droits d'accès aux fichiers du user utilisé pour lancer le service sshd afin d'améliorer la sécurité.

Pensez à lancer de temps en temps l'installeur Cygwin pour mettre à jour openssh et openssl. (Arrêtez le service avant de faire cette mise à jour.). Cela vous permettra de bénéficier des mises à jour de sécurité d'openssh et openssl.

Utilisation du serveur

  • Depuis n'importe quelle machine en adressant son IP