Installation d'un serveur sftp avec connexion par login et clé rsa. 1- Installation d'openssh-server 2 2- Installation de Vim pour modifier plus facilement les fichiers 2 3- Installation et configuration de MySecureShell 2 4-créer un utilisateur bibi. 3 5-Créer le dossier qui va accueillir la clé publique du client 3 6-Générer une paire de clés(cette opération doit être effectuée par le client). 3 7- Copier la clé publique du client dans authorized_keys sur le serveur : 4 8- Sauvegarder la clé privée sur le pc client et l utiliser avec pageant 4 9-Les options par niveau 8 -Directives de premier niveau 8 -Directives de second niveau 8
1- Installation d'openssh-server sudo apt-get update sudo apt-get install openssh-server 2- Installation de Vim pour modifier plus facilement les fichiers sudo apt-get install vim 3- Installation et configuration de MySecureShell -Sous Ubuntu : sudo cp /etc/apt/sources.list /etc/apt/sources.list.old sudo vim /etc/apt/sources.list Ajoutez les deux liens suivants : deb http://mysecureshell.free.fr/repository/index.php/ubuntu testing main deb-src http://mysecureshell.free.fr/repository/index.php/ubuntu testing main Pour ceux qui ne connaissent pas VIM après avoir modifier un fichier il faut enregistrer et quitter faites la combinaison de touches suivantes : echap:wq Donc on appuie sur la touche echap puis sur : puis sur w puis sur q et ensuite la touche entrée sudo apt-get update sudo apt-get install mysecureshell - Autre installation : Attention il faut au préalable avoir installé gcc Télécharger : http://sourceforge.net/projects/mysecureshell/files/mysecureshell/1.15/mysecureshell_1.15.tar.gz/download tar xvzf mysecureshell_1.15.tar.gz cd mysecureshell./configure make all./install.sf fr Vérification de l'existence du fichier sftp_config et faire une sauvegarde tout de suite. sudo cp /etc/ssh/sftp_config /etc/ssh/sftp_config.old
4-créer un utilisateur bibi sudo useradd bibi -m -d /home/bibi -s /bin/mysecureshell 5-Créer le dossier qui va accueillir la clé publique du client sudo mkdir /home/bibi/.ssh authorized_keys est le fichier qui va contenir la clé sudo touch /home/bibi/.ssh/authorized_keys sudo chown -R bibi /home/bibi/.ssh/ sudo chgrp -R bibi /home/bibi/.ssh/ sudo chmod 700 /home/bibi/.ssh sudo chmod 600 /home/bibi/.ssh/authorized_keys Modifier le fichier de configuration de ssh sudo vim /etc/ssh/sshd_config Décommenter la partie : Retirer le # devant AuthorizedKeysFile Redémarrer le serveur sudo /etc/init.d/ssh restart %h/.ssh/authorized_keys 6-Générer une paire de clés(cette opération doit être effectuée par le client). Pour les utilisateurs de Windows Télécharger puttygen http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe Cliquez sur Generate et bougez la souris dans cette fenêtre pour faire avancer l action.
Nous pouvons voir : Vincent DECHAPPE 1- la clé générée (il faudra copier tout le texte encadré et le coller dans le fichier authorized_keys 2- Le commentaire que vous pouvez inclure dans la clé 3- La passphrase (le mot de passe de la clé) 4- Le bouton pour sauver la clé publique (le fichier généré par ce bouton sera constitué du texte dans le cadre 1 ci-dessus, cette clé sera sur le serveur dans le profile de l utilisateur dans notre exemple : /home/bibi/.ssh). 5- Le bouton pour sauver la clé privée (cette clé sera sur le poste de l utilisateur du sftp). 7- Copier la clé publique du client dans authorized_keys sur le serveur : sudo su sudo vim /home/bibi/.ssh/authorized_keys 8- Sauvegarder la clé privée sur le pc client et l utiliser avec pageant Sauvegarder la clé privée sur votre pc avec le bouton Save private key Télécharger pageant http://the.earth.li/~sgtatham/putty/latest/x86/pageant.exe
Ouvrir pageant et lui indiquer le chemin vers la clé privée avec le bouton add key Après vous être authentifié par la passprhase (le mot de passe de la clé) Vous obtenez ceci :
Maintenant nous pouvons nous connecter en sftp avec le client de notre choix. Pour ma part je vais prendre Filezilla Hôte : adresse IP dur serveur Type de serveur : sftp Authentification : normale Identifiant : bibi Pour la première connexion le serveur est authentifié par sa clé. Cocher toujours faire confiance. Comme ça lorsque le serveur nous proposera une autre clé nous serons avertis que soit le serveur a changé de certificat, soit on essai de nous pirater. C est ok ça fonctionne!!!! Mais nous pouvons voir une multitude de fichiers qui ne devraient pas apparaître. Nous allons éditer le fichier /etc/ssh/sftp_config pour remédier au problème.
Dans la partie Default décommenter ceci : IgnoreHidden true #treat all hidden files as if they don't exist Et ajouter les fichiers que vous voulez voir disparaitre avec comme séparateur le pipe HideFiles "^(lost\+found public_html examples.desktop)$" #Hidefile/directory which match Voici le résultat:
9-Les options par niveau Directives de premier niveau Default aucune Les directives de second niveau y seront appliquées par défaut dans toutes les autres directives de 1er niveau Group (nom du groupe) Permet d'utiliser des directives de second niveau pour l'ensemble d'un groupe IpRange @IP/MSR Autorisation de directives qu'à certaines adresses User (nom de l'utilisateur) Permet d'utiliser des directives de second niveau pour un utilisateur VirtualHost (nom d'hôtes) Permet d'utiliser des hôtes virtuels. Directives de second niveau ByPassGlobalDownload false, true Permet d'outrepasser la directive GlobalDownload ByPassGlobalUpload false, true Permet d'outrepasser la directive GlobalUpload CanChangeRights false, true Permet d'interdire le changement de droits sur un fichier / répertoire CanChangeTime false, true Permet d'interdire le changement de date sur un fichier / répertoire CanRemoveDir false, true Permet d'interdire la suppression de répertoire CanRemoveFile false, true Permet d'interdire la suppression de fichier Charset x(charset) Activer la prise en charge des caractères spéciaux ConnectionMaxLife x(nombre) Limiter le temps de connexion DefaultRights Umask utilisateur Mettre par défaut des droits sur les nouveaux fichiers et dossiers créés DirFakeGroup false, true Remplace l'affichage du groupe propriétaire des fichiers et dossiers par celui de l'utilisateur connecté DirFakeMode xxxx Change l'affichage de tous les droits
DirFakeUser false, true Remplace l'affichage du nom du propriétaire des fichiers et dossiers par celui de l'utilisateur connecté DisableAccount false, true Désactiver rapidement une directive de premier niveau Download x(unité de volume) Débit descendant par utilisateur ExpireDate x(date) Date de validité d'un compte GMTTime x(+,- )y(nombre) Permet d'ajuster l'horloge GlobalDownload x(unité de volume) Débit descendant total pour tous les utilisateurs / Débit montant maximal que le serveur peut fournir GlobalUpload x(unité de volume) Débit montant total pour tous les utilisateurs / Débit descendant maximal que le serveur peut fournir HideFiles Cache des fichiers/répertoires que l'on veut grâce a une expression régulière (regex) HideNoAccess false, true Cache les fichiers/répertoires auxquels l'utilisateur, le groupe ou autre, n'ont pas accès Home C'est le dossier ou seront redirigés les utilisateurs lors de la connexion au serveur. IdleTimeOut x(nombre) Définit une déconnexion après un temps d'inactivité IgnoreHidden false, true Affiche ou non les éléments cachés Include Permet de délocaliser le fichier de configuration ou d'en créer plusieurs IsAdmin false, true Permettre d'être admin, c'est à dire utiliser l'utilitaire sftp IsSimpleAdmin false, true Administrateur du serveur LimitConnection x(nombre) Limite le nombre de connexions simultanées LimitConnectionByIp x(nombre) Limite le nombre de connexions simultanées par IP LimitConnectionByUser x(nombre) Limite le nombre de connexions simultanées par utilisateurs
LogFile (fichier) Permet de changer le fichier de log MaxOpenFilesForUser x(nombre) Limite l'utilisateur à ouvrir un certain nombre d'éléments simultanément MaxReadFilesForUser x(nombre) Limite l'utilisateur à lire un certain nombre d'éléments simultanément MaxWriteFilesForUser x(nombre) Limite l'utilisateur à écrire un certain nombre d'éléments simultanément MinimumRights Umask utilisateur Mettre des droits minimum sur les nouveaux fichiers et dossiers créés PathDenyFilter Ne pas autoriser l'envoie de fichiers/dossiers qui fonctionnent avec les expressions régulières ResolveIP false, true Résous les adresses ip en dns SftpProtocol x(nombre) Forcer la version du protocole Shell Autoriser l'utilisateur à avoir un shell spécifique en supplément de MySecureShell ShowLinksAsLinks false, true N'affiche pas la valeur "lien" aux objets liés StayAtHome false, true L'utilisateur connecté ne peut remonter au dessus du dossier Home qui lui a été attribué Upload x(unité de volume) Débit montant par utilisateur VirtualChroot false, true Chroot l'utilisateur authentifié, "/" s'affichera pour lui comme le répertoire par défaut