Transférer des fichiers en utilisant SFTP et des cages sur Debian et Ubuntu

!Salut les amis! Aujourd'hui, je vous propose une alternative à l'utilisation d'un serveur FTP pour le transfert de fichiers sécurisé. Déjà le collègue KZKG ^ Gaara posté un basé sur le package kit de jail. Celui que nous allons développer est basé sur les packages que nous avons le plus à portée de main dans notre référentiel.
Nous verrons:

  • Entrez requis
  • Comment configurer le serveur Openssh?
  • Comment créons-nous des utilisateurs?
  • Comment modifier les répertoires personnels pour que la cage fonctionne?

Entrez requis
Nous avons souvent besoin de copier des fichiers depuis des ordinateurs distants vers notre machine. Beaucoup m'ont posé des questions à ce sujet. Est-ce que j'installe un FTP? Comment installer un SAMBA? Eh bien, passons du simple au complexe. Dès le départ, pourquoi se compliquer si on a le Serveur OpenSSH installée ?. Et si nous ne l'avons pas, avec la simple commande:

aptitude installer openssh-server

Et maintenant, nous pourrons transférer des fichiers en toute sécurité via le protocole SFTP (Secure File Transfer Protocol), qui utilise SSH (Secure Shell) pour le cryptage.

Par défaut, les utilisateurs autorisés à démarrer une session à distance via utilisateur ssh @ mon équipe, ils pourront voir presque tous les fichiers stockés dans notre système, ce qui peut ne pas nous convenir, ou que pour des raisons de sécurité, nous ne devrions pas l'autoriser.

Cet article nous aidera à configurer le Serveur OpenSSH afin que les utilisateurs que nous souhaitons soient limités à leur répertoire personnel / home / utilisateur. Nous clarifions cela, Avec cette méthode, les utilisateurs déclarés ne pourront pas démarrer une session à distance via une console ssh ou via PuTTy. Ils ne pourront transférer des fichiers que vers ou depuis leur répertoire personnel sur notre ordinateur ou serveur.

La méthode décrite ici est valable pour les versions Debian 5 (Lenny) ou supérieures, et pour les versions Ubuntu 9.04 ou supérieures. La version du package SSH de Hardy ou Ubuntu 8.04 est très obsolète et ne prend pas en charge la configuration que nous allons décrire ci-dessous.

Comment configurer le serveur Openssh?
En tant qu'utilisateur racine nous éditons le fichier / etc / ssh / sshd_config avec n'importe quel éditeur de texte simple. Nous recommandons l'utilisation de nano en mode console.

nano / etc / ssh / sshd_config

Nous voulons que la ligne suivante soit présente:

Sous-système sftp

Dans Lenny and Squeeze, il y a:

Sous-système sftp / usr / lib / openssh / sftp-server

Dans le cas où il n'existe pas, nous ajoutons à la fin du fichier:

Sous-système sftp internal-sftp

Nous continuons l'édition du fichier sshd_config et on ajoute à la fin:

Match group group-sftp ChrootDirectory% h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp

Nous enregistrons les modifications et redémarrons le service:

/etc/init.d/ssh redémarrer

Comment créons-nous des utilisateurs?
Nous créons d'abord le «groupe»Que nous déclarons dans le sshd_config. Attention au nom que nous avons choisi précédemment, ce ne sera pas qu'il existe déjà et soit un groupe du Système. Si nous ne voulons pas restreindre les utilisateurs existants dans notre système, nous devons créer de nouveaux utilisateurs afin qu'ils puissent transférer des fichiers. Pour que la cage fonctionne, il faut aussi en faire des membres du groupe en question.

addgroup group-sftp adduser user1 adduser user2 [----] usermod -G group-sftp user1 usermod -G group-sftp user2

Pour vérifier la création du groupe et des utilisateurs, nous pouvons faire:

moins / etc / mot de passe moins / etc / group ls -l / home

Et les utilisateurs devraient apparaître usuario1 y usuario2ainsi que les groupes groupe-sftp et ceux correspondant aux utilisateurs créés. Aussi, lors de la liste du répertoire / home, les répertoires personnels de chaque utilisateur créé apparaîtront.

Comment modifier les répertoires personnels pour que la cage fonctionne efficacement?
Nous devons augmenter la sécurité des dossiers personnels de chaque utilisateur créé afin qu'ils ne puissent pas créer de dossiers supplémentaires sous leur répertoire personnel, et avec des autorisations d'écriture où nous voulons (pas où ils veulent) 🙂:

chown root: root / home / user1 / home / user2 chmod 755 / home / user1 / home / user2 cd / home / user1 mkdir documents html_public chown user1: user1 * cd / home / user2 mkdir documents html_public chown user2: user2 *

Utilisateurs appartenant au groupe groupe-sftp, à partir de maintenant, ils pourront se connecter avec leurs noms et mots de passe via SFTP uniquement, et ils pourront transférer des fichiers vers et depuis les répertoires situés sous leur dossier personnel et qui ont été créés par nous, mais ils ne le seront pas capable de voir le reste de notre système de fichiers.

Pour le transfert de fichiers et de dossiers, nous pouvons utiliser Nautilus, Konqueror, WinSCP, FileZilla et d'autres prenant en charge le protocole SFTP. Dans le cas de Konqueror, nous devons utiliser fish: // utilisateur @ ordinateur distant.

Nous espérons que cet article nous sera utile!
Jusqu'à la prochaine aventure, les amis!

sftp_nautilus


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Hexborg dit

    Bon article. Un moyen très sécurisé de partager des fichiers. Merci beaucoup pour l'explication. 🙂

  2.   Guerre éclair dit

    Excellent

  3.   Lolo dit

    Et n'est-il pas plus confortable d'utiliser sshfs?

    Pour notre équipe, le dossier distant apparaîtrait comme un dossier supplémentaire avec les mêmes caractéristiques.

  4.   Jacobo hidalgo dit

    Bonjour Federico, comme toujours excellent article. Je suis très heureux de pouvoir lire vos messages sur Internet maintenant.
    Une accolade,
    Jako

    1.    chasseur dit

      Et Jacob, aucun Federico n'est d'accord directement Hé, quand vous ne revenez plus ubuntu, vous peignez en vert humain et en plein openuse. Un câlin. 😉

  5.   KZKG ^ Gaara dit

    Vous faites d'excellentes contributions, continuez

    1.    federico dit

      Merci mille KZKG ^ Gaara, et merci à TOUS pour vos commentaires

  6.   jaenense dit

    Un utilisateur peut-il être mis en cage dans un dossier autre que / home / user /… ..?

    Ce que je veux faire, c'est mettre un utilisateur en cage dans le dossier / media / hdd /…
    Je dois le faire de cette façon car le serveur est un Raspberry Pi avec Raspbian, et il a le dossier / home /… / sur une carte SD, qui se remplirait en un rien de temps.

    Je l'ai essayé de plusieurs manières et le résultat dans le client est toujours «Pipe cassée», et le résultat en serveur fatal: mauvaise propriété ou modes pour le composant de répertoire chroot «/ media / HDD /»

    Merci beaucoup à tous

    1.    federico dit

      Je pense que vous allez devoir dire au système que le dossier d'accueil de cet utilisateur est / home / HDD, tant que cette partition a un format linux natif, c'est-à-dire ext4; ext3; etc. Exemple, si l'utilisateur est jae - pour faire court - vous devez exécuter quelque chose comme ceci:

      : ~ # usermod –move-home –home / home / HDD jae

      Voir également l'homme usermod. À votre santé

  7.   Irving Hernandez dit

    J'ai un problème, ou j'ai un service dans Amazon avec un ami public et je dois entrer via sftp pour placer ou supprimer des fichiers.
    Je l'ai déjà fait et tout va bien mais aujourd'hui elle m'a fait quelque chose qui ne m'était pas arrivé
    À l'intérieur de l'ami, il y a une série de dossiers et l'un d'eux est un portail Internet captif (page pour mes utilisateurs), il s'avère que je fais des promotions et de la publicité pour mes utilisateurs et que je fais constamment des modifications et les télécharge via sftp (avec winscp ) les autorisations root et le passe root
    J'ai donné chmod 777 pour les autorisations d'écriture et tout s'est bien passé
    mais aujourd'hui, lors de la mise à jour du Web et du téléchargement de l'index.html et de ses autres fichiers, il m'a donné les noms mais il ne m'a laissé aucun octet, c'est-à-dire zéro (vide) maintenant vous ne voyez rien sur mon site
    J'ai fermé la session et je suis rentré à nouveau, j'ai à nouveau donné les autorisations, changez d'utilisateur, mettez à jour, essayez de mettre d'autres fichiers, générez de nouveaux et cela fait toujours la même chose
    ça me donne les fichiers mais ils n'ont pas de données
    quelqu'un peut m'aider ???
    J'apprécierais grandement vos réponses
    tout d'abord, merci
    atte
    M. Irving Hernandez

  8.   FCC dit

    Bonjour comment utiliser filezilla, je l'ai déjà vu de plusieurs manières et je ne parviens toujours pas à me connecter.
    C'est faux.

  9.   pedro dit

    Bon après-midi,

    Effectuez la procédure et la cage fonctionne parfaitement, cependant en essayant d'écrire sur le dossier «documents» ou «html_publico» cela me donne accès refusé. Il a les autorisations mentionnées et rien qui le permet.

    drwxr-xr-x. 2 utilisateur1 utilisateur1 4096 11 mars 13:16 docs
    drwxr-xr-x. 2 utilisateur2 utilisateur2 4096 11 mars 13:16 html_publico

    Le résultat est l'accès refusé lorsque vous essayez d'écrire dans n'importe quel dossier. Cependant, effectuer un get le permet.

    J'espère que vous pourrez m'aider dès que possible.

    Salutations.