logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
doc:reseau:ssh:tp-sftp-via-openssh-server [08/07/2014 23:30]
Galliezb openssh-server et SFTP
doc:reseau:ssh:tp-sftp-via-openssh-server [12/01/2016 17:31] (Version actuelle)
milou [Configuration]
Ligne 1: Ligne 1:
-====== ​Créer un accès SFTP pour un utilisateur via openssh-server ======+====== ​SFTP : Accès ​utilisateur via openssh-server ======
  
-  * Objet : Créer un accès SFTP via openssh ​en accès à distance+  * Objet : Créer un accès SFTP-only via OpenSsh ​en accès à distance
   * Niveau requis : {{tag>​débutant avisé}}   * Niveau requis : {{tag>​débutant avisé}}
-  * Commentaires : //Réaliser ​sur Debian Wheezy 7.5 ( kimsufi OVH )//+  * Commentaires : //Réalisé ​sur Debian Wheezy 7.5 ( kimsufi OVH )//
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
-  * Suivi : {{tag>​à-tester à-placer}} +  * Suivi :  
-    * Création par [[user>​Galliezb]] 08/​07/​2014 +    * Création par [[user>​Galliezb]] ​le 08/​07/​2014 
-    * Testé par [[user>​Galliezb]] ​(07/07/2014) +    * Testé par [[user>​Galliezb]] ​le 08/07/2014 
-  * Commentaires sur le forum : [[:url-invalide ​Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME +  * Commentaires sur le forum : [[https://debian-facile.org/​viewtopic.php?​id=9376 ​ici]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
-\\ +
-\\ +
-\\ +
-\\+
 ===== Introduction ===== ===== Introduction =====
  
-Vous souhaitez bénéficier d'un accès FTP à votre serveur, configurable rapidement sans négliger la sécuritéVoyons comment ​c'est possible. +Vous souhaitez bénéficier d'un accès ​//à la// FTP à votre serveur, configurable rapidement sans négliger la sécurité ​? \\ 
-\\ +Voyons comment ​cela est possible. 
-\\ +
-\\ +
-\\+
 ===== Installation ===== ===== Installation =====
  
-Il vous faudra ​openssh-server d'​installé sur le serveur. Soyez connectez en root, ou utilisez ​[[:doc:systeme:sudo |sudo]].+Il vous faudra le [[:doc:reseau:ssh:serveur|serveur ssh]] ''​openssh-server''​ d'​installé sur le serveur.
  
-<​note>​Je peux vérifier qu'open-ssh ​est installé via la commande [[:​doc:​systeme:​apt:​aptitude ​|aptitude search]]</​note>​+<​note>​Je peux vérifier qu'OpenSsh ​est installé via la commande [[:​doc:​systeme:​apt:​apt-cache ​|apt-cache policy openssh]]</​note>​
  
-Installation d'openssh-server+Installation d'OpenSsh-server
 <code root> <code root>
-apt-get install openssh-server+apt-get update && ​apt-get install openssh-server
 </​code>​ </​code>​
  
 //​C'​est tout ce dont vous avez besoin. C'est génial non ?// //​C'​est tout ce dont vous avez besoin. C'est génial non ?//
-\\ +
-\\ +
-\\ +
-\\+
 ===== Configuration ===== ===== Configuration =====
  
-La première chose dont nous allons avoir besoin, c'est d'un utilisateur neutre. Par neutre j'​entends ​"un utilisateur qui accède au FTP et à rien d'​autre"+=== Création de l'​utilisateur === 
 +La première chose dont nous allons avoir besoin, c'est d'un utilisateur neutre. 
 +Par neutre j'​entends ​« //un utilisateur qui accède au FTP et à rien d'​autre// »
  
-Créons notre utilisateur. +Créons notre [[doc:​systeme:​adduser|utilisateur]]
-<​note>​Notre utilisateur test se nommera ici debora95dftp</​note>​+<​note>​Notre utilisateur test se nommera ici ''​debora95dftp''​</​note>​ 
 + 
 +Pour créer notre utilisateur et lui affecter un mot de passe :
 <code root> <code root>
 adduser debora95dftp adduser debora95dftp
 </​code>​ </​code>​
-Affectez lui un mot de passe. ​Si le répertoire /​home/​debora95dftp/​ n'est pas créée, utilisez [[:doc:​systeme:​mkdir |mkdir]] pour le faire ( //dans mon cas, c'est fait automatiquement//​ )+ 
 +Si le répertoire ​
 + 
 +<​code>​/​home/​debora95dftp/ ​</​code>​ 
 + 
 +n'est pas présent, utilisez [[doc:​systeme:​mkdir | mkdir]] pour le créer ​(//dans mon cas, c'est fait automatiquement//​) 
 + 
 +=== Configuration d'​OpenSSH ===
  
 Modifions la configuration d'​openssh pour permettre à cet utilisateur de se connecter. Modifions la configuration d'​openssh pour permettre à cet utilisateur de se connecter.
Ligne 55: Ligne 58:
 Voici les lignes à modifier : Voici les lignes à modifier :
  
-<code>+<file config Extrait de sshd_config>
 port 22 port 22
 PermitRootLogin no PermitRootLogin no
-AllowUsers ​Debora95DFTP VOTRE_AUTRE_UTILISATEUR+AllowUsers ​debora95dftp vos-éventuels-autres-utilisateurs
 [...] [...]
 UsePAM yes UsePAM yes
Ligne 66: Ligne 69:
         ForceCommand internal-sftp         ForceCommand internal-sftp
         AllowTCPForwarding no         AllowTCPForwarding no
-</code>+</file> 
  
 <note important>​ <note important>​
Ligne 73: Ligne 77:
  
 Explications :  Explications : 
-  * **port 22** : la valeur d'​écoute du service ssh, pensez à changer de port, c'est mieux pour la sécurité. +  * **''​Port ​22''​** : la valeur d'​écoute du service ssh, pensez à changer de port, c'est mieux pour la sécurité. 
-  * **PermitRootLogin** : on se connecte pas en root sur le serveur. On passe par un utilisateur qui lui passera en root. C'​est ​mieux pour la sécurité. + 
-  * **AllowUsers ​Debora95DFTP VOTRE_AUTRE_UTILISATEUR** : ici on autorise ​que debora et l'​utilisateur de connexion ​à se connecter via ssh +  * **''​PermitRootLogin ​no''​** : on ne se connecte pas en root sur le serveur. On passe par un utilisateur qui lui passera en root. Toujours ​mieux pour la sécurité. 
-  * **Match user debora95dftp** : tout ce qui suit concerne ​uniquement ​debora95dftp + 
-  * **ChrootDirectory /​home/​debora95dftp/​**:​ debora sera cloisonné ​dans son répertoire et ne pourra pas remonté ​aux répertoire ​parents. +  * **''​AllowUsers ​debora95dftp vos-éventuels-autres-utilisateurs''​** : ici on autorise ​uniquement ​debora ​(et nos éventuels autres utilisateurs) ​à se connecter via ssh 
-  * **ForceCommand internal-sftp**:​ ([[http://​www.openssh.com/​cgi-bin/​man.cgi?​query=sshd_config |doc infos]] ) + 
-  * **llowTCPForwarding ​no** : voir lien ci-dessus+  * **''​Match user debora95dftp''​** : tout ce qui va suivre ne concerne ​que debora95dftp 
 + 
 +  * **''​ChrootDirectory /​home/​debora95dftp/​''​**: debora sera cloisonnée ​dans son répertoire et ne pourra pas remonter ​aux répertoires ​parents. 
 + 
 +  * **''​ForceCommand internal-sftp''​**: ([[http://​www.openssh.com/​cgi-bin/​man.cgi?​query=sshd_config |doc infos]] ) 
 + 
 +  * **''​AllowTCPForwarding ​no''​** : voir lien ci-dessus
  
 <note critique>​ <note critique>​
-ATTENTION : si vous ne disposez pas d'un second utilisateur. Vous n'​aurez plus accès à votre machine ​distanteDans la suitedebora n'aura plus accès au shell. Et avec l'​accès root coupé, vous allez faire comment ? Soyez sûr d'​avoir ​VOTRE_AUTRE_UTILISATEUR qui peut se connecter en ssh avant de continuer. Ou laissez PermitRootLogin yes (//​déconseillé//​ )+**ATTENTION ​!** Si vous ne disposez pas d'un second utilisateur, __vous ​n'​aurez plus d'accès ​SSH à votre machine ​distante__\\ 
 +En effet, par la suite debora n'aura plus accès au shell, et avec l'​accès root coupé, vous allez faire comment ? 
 + 
 +Soyez sûr d'​avoir ​configuré **un autre utilisateur** pouvant ​se connecter en SSH avant de continuer, ou laissez ​**PermitRootLogin yes** (//ce qui est vivement ​déconseillé//​)
 </​note>​ </​note>​
  
-on redémarre ssh+On redémarre ssh
 <code root> <code root>
-/​etc/​init.d/​ssh restart+service ​ssh restart
 </​code>​ </​code>​
  
-Notre debora95dftp est désormais capable de se connecter via ssh à notre serveur. Mais bizarrement,​ la connexion SFTP échoue. C'est à cause du chroot qui à besoin des droits sur le répertoire en root. Nous allons donc lui donner ​:+Notre ''​debora95dftp'' ​est désormais capable de se connecter via ssh à notre serveur. Mais bizarrement,​ la connexion SFTP échoue. ​\\ 
 +C'est à cause du chroot qui besoin ​[[doc:​systeme:​droits-unix|des droits sur le répertoire en root]]. Nous allons donc les lui accorder ainsi :
  
 <code root> <code root>
Ligne 96: Ligne 110:
 </​code>​ </​code>​
  
-Debora est super heureuse qu'on lui donne accès. Elle le serait encore plus si elle pouvait écrire et supprimer dans son répertoire. Argh, en voila un problème ​? +//Debora est super heureuse qu'on lui donne accès. ​\\ 
-Nous allons donc donner à Debora un répertoire tout à elle, et lui donner les droits:+Elle le serait encore plus si elle pouvait écrire et supprimer dans son répertoire. ​\\ 
 +Argh, en voila un problème ​!// \\ 
 +Nous allons donc donner à Debora un répertoire tout à elle, et lui accorder ses droits :
  
 <code root> <code root>
-mkdir /​home/​debora95dftp/​writeable/​ +mkdir /​home/​debora95dftp/​writeable/​</​code>​ 
-chown debora95dftp:​debora95dftp /​home/​debora95dftp/​writeable/​ +<code root>chown debora95dftp:​debora95dftp /​home/​debora95dftp/​writeable/​</​code>​ 
-chmod -R 755 /​home/​debora95dftp/​writeable/​+<code root>chmod -R 755 /​home/​debora95dftp/​writeable/​
 </​code>​ </​code>​
  
-Maintenant Debora à accès à son répertoire et peut y mettre ce qu'​elle veut et en faire ce qu'​elle veut (//comme avec ces cheveux//)+Maintenant Debora à accès à son répertoire et peut y mettre ce qu'​elle veut et en faire ce qu'​elle veut (//comme avec ses cheveux...//)
  
-//​Aujourd'​hui tout va bien, on s'​aime,​ c'est le bonheur. Et si demain elle apprenait que j'ai caché sur le serveur les noms et adresses de mes nombreuses ​maitresse. ​Etant parano, je ne veux pas lui laisser la moindre chance de farfouiller avec sa connexion SSH. Je ne suis pas expert en administration linux. Je ne dois donc pas lui laisser ​la moindre chance ​d'avoir l'​avantage.//+//​Aujourd'​hui tout va bien, on s'​aime,​ c'est le bonheur. ​\\ 
 +Et si demain elle apprenait que j'ai caché sur le serveur les noms et adresses de mes nombreuses ​maîtresses ? \\ 
 +Etant parano, je ne veux pas lui laisser la moindre chance de farfouiller avec sa connexion SSH car, n'​étant ​pas un expert en administration linux, je ne dois pas lui laisser d'accès à ce qui ne lui est pas nécessaire !//
  
-Couper l'​accès au shell de Debora :+Couper l'​accès au shell par Debora :
  
 <code root> <code root>
Ligne 115: Ligne 133:
 </​code>​ </​code>​
  
-Cette commande m'as été fourni ​par un girafe ([[https://​debian-facile.org/​profile.php?​id=302 |captnfab]]).  +Cette commande m'as été fournie ​par un //girafe// ([[https://​debian-facile.org/​profile.php?​id=302 |captnfab]]), elle fermera ​le shell dès que Debora ​se connectera en SSH. \\ 
-Cette commande va fermer ​le shell dès qu'​elle ​se connectera en SSH. Autrement ​diselle n'aura accès à rien. ( //Elle pourra prendre la maison, les gosses, la voiture mais pas mon serveur !//) +Autrement ​ditDebora ​n'aura accès à rien qui ne la concerne pas. (//Elle pourra prendre la maison, les gosses, la voiture mais pas mon serveur !//) 
-\\ +
-\\ +
-\\ +
-\\+
 ===== Erreur durant l'​apprentissage ===== ===== Erreur durant l'​apprentissage =====
  
Ligne 126: Ligne 141:
  
   * Vérifier qu'​[[:​doc:​reseau:​iptables |iptables]] ne bloque pas le port que vous souhaitez utiliser   * Vérifier qu'​[[:​doc:​reseau:​iptables |iptables]] ne bloque pas le port que vous souhaitez utiliser
-  ​* Vérifier que votre utilisateur est bien dans AllowUsers ( dans /​etc/​ssh/​sshd_config ) + 
-  * Vérifier que le répertoire de l'​utilisateur est bien en root ls -l /​home/ ​). debora95dftp doit afficher root   root+  ​* Vérifier que votre utilisateur est bien dans ''​AllowUsers'' ​(dans ''​/​etc/​ssh/​sshd_config''​) 
 + 
 +  * Vérifier que le répertoire de l'​utilisateur est bien en ''​root''​ 
 +<code user>ls -l /home/</​code>​ 
 + 
 +La ligne de debora95dftp doit notamment ​afficher ​
 +   root   root
  
 <​note>​ <​note>​
-Vous pouvez commentez les lignes à partir du "Match user debora95dftp" ​et redémarrer le service ​ssh pour savoir s'il s'agit d'un problème de droit d'​accès au répertoire+Vous pouvez commentez les lignes à partir du //''​Match user debora95dftp''// ​et redémarrer le service ​SSH pour savoir s'il s'agit d'un problème de droit d'​accès au répertoire.
 </​note>​ </​note>​
-\\ + 
-\\ +===== Conclusion ===== 
-\\ + 
-\\+Voici une façon simple et rapide de créer un accès SFTP qui vaut toujours mieux qu'un accès FTP (les mots de passe ne transitent pas en clair sur le réseau, et cela fait toujours un service de moins d'​installé). 
 + 
 +Dans le cas ou vous souhaitez gérer davantage d'​utilisateurs,​ visitez [[http://​www.openssh.com/​cgi-bin/​man.cgi?​query=sshd_config |cette page]]. 
 + 
 +En créant des groupes et en modifiant la configuration de sshd, vous pouvez gérer le tout assez simplement. 
 ===== Bon à savoir ===== ===== Bon à savoir =====
  
-Avant de devenir un beau chêne, on a tous été un gland.+//Avant de devenir un beau chêne, on a tous été un gland.// 
doc/reseau/ssh/tp-sftp-via-openssh-server.1404855047.txt.gz · Dernière modification: 08/07/2014 23:30 par Galliezb

Pied de page des forums

Propulsé par FluxBB