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

Ceci est une ancienne révision du document !


Créer un accès SFTP pour un utilisateur via openssh-server





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.



Installation

Il vous faudra openssh-server d'installé sur le serveur. Soyez connectez en root, ou utilisez sudo.

Je peux vérifier qu'open-ssh est installé via la commande aptitude search

Installation d'openssh-server

apt-get install openssh-server

C'est tout ce dont vous avez besoin. C'est génial non ?



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éons notre utilisateur.

Notre utilisateur test se nommera ici debora95dftp
adduser debora95dftp

Affectez lui un mot de passe. Si le répertoire /home/debora95dftp/ n'est pas créée, utilisez mkdir pour le faire ( dans mon cas, c'est fait automatiquement )

Modifions la configuration d'openssh pour permettre à cet utilisateur de se connecter.

nano /etc/ssh/sshd_config

Voici les lignes à modifier :

port 22
PermitRootLogin no
AllowUsers Debora95DFTP VOTRE_AUTRE_UTILISATEUR
[...]
UsePAM yes
[...]
Match user debora95dftp
        ChrootDirectory /home/debora95dftp/
        ForceCommand internal-sftp
        AllowTCPForwarding no
Le match user doit se trouver après le UsePAM. Dans le cas contraire, vous recevrez une erreur lors de la relance du service ssh.

Explications :

  • 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
  • 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.
  • ForceCommand internal-sftp: (doc infos )
  • llowTCPForwarding no : voir lien ci-dessus
ATTENTION : si vous ne disposez pas d'un second utilisateur. Vous n'aurez plus accès à votre machine distante. Dans 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 VOTRE_AUTRE_UTILISATEUR qui peut se connecter en ssh avant de continuer. Ou laissez PermitRootLogin yes (déconseillé )

on redémarre ssh

/etc/init.d/ssh restart

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 :

chown root:root /home/debora95dftp/

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 ? Nous allons donc donner à Debora un répertoire tout à elle, et lui donner les droits. :

mkdir /home/debora95dftp/writeable/
chown debora95dftp:debora95dftp /home/debora95dftp/writeable/
chmod -R 755 /home/debora95dftp/writeable/

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)

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.

Couper l'accès au shell de Debora :

chsh debora95dftp -s /bin/true

Cette commande m'as été fourni par un girafe (captnfab). Cette commande va fermer le shell dès qu'elle se connectera en SSH. Autrement dis, elle n'aura accès à rien. ( Elle pourra prendre la maison, les gosses, la voiture mais pas mon serveur !)



Erreur durant l'apprentissage

Pas moyen de se connecter au SFTP

  • Vérifier qu'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
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





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 ) Dans le cas ou vous souhaitez gérer plus d'utilisateurs, visitez cette page. En créant des groupes et en modifiant la configuration de sshd, vous pouvez gérer le tout assez simplement.



Bon à savoir

Avant de devenir un beau chêne, on a tous été un gland.


1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
doc/reseau/ssh/tp-sftp-via-openssh-server.1404856060.txt.gz · Dernière modification: 08/07/2014 23:47 par Galliezb

Pied de page des forums

Propulsé par FluxBB