!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!
Bon article. Un moyen très sécurisé de partager des fichiers. Merci beaucoup pour l'explication. 🙂
Excellent
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.
Bonjour Federico, comme toujours excellent article. Je suis très heureux de pouvoir lire vos messages sur Internet maintenant.
Une accolade,
Jako
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. 😉
Vous faites d'excellentes contributions, continuez
Merci mille KZKG ^ Gaara, et merci à TOUS pour vos commentaires
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
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é
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
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.
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.