Dans notre monde, il y a beaucoup, beaucoup de secrets ... Honnêtement, je ne pense pas pouvoir en apprendre assez pour en connaître la plupart, et cela est donné par le simple fait que Linux nous permet de faire tant de choses, mais tellement de choses que c'est difficile pour nous de les connaître tous.
Cette fois, je vais vous expliquer comment faire quelque chose d'extrêmement utile, quelque chose que de nombreux administrateurs réseau ou système ont dû faire, et nous avons eu du mal à ne pas trouver un moyen assez simple pour y parvenir:
Comment mettre en cage les utilisateurs se connectant via SSH
cage? … WTF!
Oui, si, pour une raison quelconque, nous devons donner à un de nos amis l'accès SSH à notre ordinateur (ou serveur), nous devons toujours veiller à la sécurité et à la stabilité de notre ordinateur ou serveur.
Il arrive que récemment nous voulions donner à Perseus SSH un accès à un de nos serveurs, mais nous ne pouvons lui donner aucun accès car nous y avons des configurations vraiment sensibles (nous avons compilé beaucoup de choses, des packages que nous avons installés individuellement, etc. .) et si quelqu'un qui ne le fait pas Si j'essaye de faire le moindre changement sur le serveur, il y a une possibilité que tout ira en enfer hehe
Ensuite, Comment créer un utilisateur avec des privilèges extrêmement limités, à tel point qu'il ne peut même pas sortir de sa cage (domicile)?
Commençons par télécharger kit de jail, un outil qui nous permettra de faire ceci:
1. Nous devons d'abord télécharger notre serveur JailKit.
wget http://ftp.desdelinux.net/jailkit-2.14.tar.gz
2. Ensuite, il faut décompresser le package et entrer dans le dossier qui vient d'apparaître:
tar xzf jailkit-2.14.tar.gz && cd jailkit-2.14
3. Plus tard, nous avons compilé et installé le logiciel (Je vous laisse une capture d'écran):
./configure
make
make install
4. Prêt, c'est déjà installé. Maintenant, nous allons créer la cage qui contiendra les futurs utilisateurs, dans mon cas je l'ai créée dans: / opt / et je l'ai appelée "prison", donc le chemin serait: / opt / prison :
mkdir /opt/jail
chown root:root /opt/jail
5. La cage est déjà créée, mais elle ne dispose pas de tous les outils nécessaires pour que les futurs utilisateurs qui y seront puissent travailler sans problème. Je veux dire, jusqu'à présent, la cage est créée, mais ce n'est qu'une boîte vide. Nous allons maintenant mettre dans la cage certains outils dont les utilisateurs en cage auront besoin:
jk_init -v /opt/jail basicshell
jk_init -v /opt/jail editors
jk_init -v /opt/jail extendedshell
jk_init -v /opt/jail netutils
jk_init -v /opt/jail ssh
jk_init -v /opt/jail sftp
jk_init -v /opt/jail jk_lsh
6. Prêt, la cage existe et elle a déjà les outils à utiliser par l'utilisateur ... maintenant nous n'avons besoin que de ... l'utilisateur! Créons l'utilisateur kira et nous allons le mettre dans la cage:
adduser kira
jk_jailuser -m -j /opt/jail kira
cat /etc/passwd | grep jk_chroot
Si vous remarquez que rien comme la capture d'écran n'apparaît, vous devez avoir fait quelque chose de mal. Laissez un commentaire ici et je serai heureux de vous aider.
7. Et voila, l'utilisateur est déjà en cage ... mais, il est tellement en cage, qu'il ne peut pas se connecter par SSH, car quand il essaie de se connecter le serveur ne le laisse pas:
8. Pour permettre à l'utilisateur de se connecter, nous devons faire une étape de plus.
Il faut éditer le fichier etc / passwd de la cage, c'est-à-dire que dans ce cas ce serait / opt / jail / etc / passwd , nous y commentons la ligne utilisateur que nous avons créée et en ajoutons une nouvelle telle que:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
Autrement dit, nous aurions le fichier comme celui-ci passwd:
racine: x: 0: 0: racine: / racine: / bin / bash
#kira: x: 1003: 1003: ,,,: / opt / jail /./ home / kira: / usr / sbin / jk_lsh
kira: x: 1003: 1003 :: / home / kira: / bin / bash
Notez bien les signes de ponctuation en double et autres, il est important de ne laisser tomber aucun d'entre eux 🙂
Après cela, l'utilisateur peut entrer sans aucun problème 😀
Et c'est tout.
L'outil que nous utilisons pour tout cela (kit de jail) utiliser dans le backend chroot, qui est en fait ce que presque tous les didacticiels utilisent. Cependant, en utilisant JailKit, il devient plus simple de mettre en cage 😉
Si quelqu'un a un problème ou quelque chose ne va pas, laissez le plus de détails possible, je ne me considère pas comme un expert mais je vous aiderai autant que possible.
alors ce serait quelque chose comme les autorisations dans FTP? intéressant
vous trouvez toujours tout ce dont vous ne saviez même pas l'existence, comme les utilisateurs de mysql xD
Pas exactement, car SSH n'est pas la même chose que FTP. SSH est un shell, c'est-à-dire un terminal ... vous seriez dans un terminal sur un autre ordinateur ou serveur, vous pourriez exécuter des commandes, démarrer des processus, etc ... vous feriez autant que l'administrateur du serveur vous le permet 😉
hahahahaha nah allez, ce qui se passe, c'est que je publie des choses plus techniques ... c'est-à-dire que j'aime publier des petites choses qui ne sont pas si populaires et intéressantes. Par exemple, personnellement, je n'ai pas l'intention de publier quelque chose le jour de la sortie du nouvel Ubuntu, car je considère que beaucoup en parleront déjà ... cependant, ce que vous lisez ici dans le post, n'est-ce pas quelque chose qui est lu tous les jour ou pas? 😀
Très bonnes contributions merci
il existe également un protocole appelé sftp qui est ftp et Secure Shell ensemble, bien que ce ne soit pas la même chose que l'exécution de FTP sur SSH: \
salutations
Oui oui en effet, mais en mettant en cage SSH, je mets automatiquement en cage quiconque se connecte en utilisant SFTP, car comme vous le dites, SFTP est en fait SSH + FTP 😀
salutations
Les images ne sont pas visibles !!! 🙁
Une petite erreur de ma part hehe, dis-moi maintenant 😀
Prêt. Merci 😀
très bien, je le pointe vers mes favoris pour l'avoir disponible quand j'en ai besoin lol
Merci, pour toute question ou problème, nous sommes là pour vous aider 🙂
Ils ont Persée dans une cage. http://i.imgur.com/YjVv9.png
LOL
xD
Qu'une telle.
Vous savez, c'est un sujet que je ne connais pas très bien et que j'avais vérifié dans BSD (PC-BSD et Ghost BSD) et je le trouve très intéressant et avec des fonctionnalités qui peuvent être très utiles.
Je vais le garder pour référence et le vérifier par rapport au document BSD. Merci pour l'astuce.
Je n'étais pas familier avec cela non plus parce que je n'ai jamais pensé donner accès SSH à l'un de mes serveurs à quelqu'un haha, mais quand j'ai trouvé le besoin de le faire, je voulais donner accès mais sans la possibilité que quelqu'un fasse par erreur quelque chose qui ne doit pas 😀
Je n'ai jamais essayé cela sur les systèmes BSD, donc je ne peux pas vous dire que cela fonctionnera, mais si vous cherchez comment chrooter dans BSD, quelque chose devrait sortir 😉
Merci pour le commentaire ami 🙂
Bonjour, j'utilise FreeBSD et bien sûr jailkit fonctionne en fait ceci dans les ports
Vous l'installez avec cette commande
cd / usr / ports / shells / jailkit / && nettoie l'installation
Ou par paquet ftp
pkg_add -r jailkit
Uniquement dans la configuration (kira: x: 1003: 1003 :: / home / kira: / bin / bash)
Vous devez ajouter tcsh ou sh, sauf si vous avez installé bash et ajoutez ce chemin
/ usr / local / bin / bash
Et quelques détails supplémentaires, dans Ghost BSD, le processus similaire devrait être encore plus simple car il est basé sur FreeBSD
salutations
Super, je le cherchais; savez-vous si cela fonctionne dans Centos ?? Merci.
Je ne l'ai pas testé sur Centos, mais oui, ça devrait marcher :)
En fait je crois me souvenir que plusieurs ont utilisé ce même outil sur les serveurs Centos et Red Hat 😉
Merci beaucoup. Il va directement aux signets.
Merci à vous pour vos commentaires 🙂
Très bon "truc", super utile pour les administrateurs système. Mais encore mieux, parfaitement bien écrit. Que pourrais-tu vouloir de plus.
Merci beaucoup pour cette contribution.
Merci, merci beaucoup pour ton commentaire 😀
salutations
Louange SSH haha
Une fois, j'ai essayé de faire une cage pour ssh mais dans le style traditionnel et la vérité est qu'elle n'est jamais sortie correctement. Si la cage fonctionnait, elle n'avait même pas de bash, c'est-à-dire qu'elle était connectée et qu'il ne restait plus rien haha, si le shell était en cours d'exécution, il pourrait monter dans la hiérarchie des répertoires et beaucoup de quilombos plus haha mais ce jailkit est une masse, il automatise toutes ces choses ... Fortement recommandé
haha merci.
Oui, en fait SSH est une merveille pour ce qu'il nous permet, qui n'est vraiment rien de plus que ce que le système permet alors ... hourra pour Linux! … Haha.
Bonjour, une question!
pourquoi changer la maison de (1) / opt / jail /./ home / kira à (2) / home / kira
Nous devons éditer le fichier etc / passwd de la cage, c'est-à-dire que dans ce cas ce serait / opt / jail / etc / passwd, dans lequel nous commentons la ligne utilisateur que nous avons créée, et en ajoutons une nouvelle telle que:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
En d'autres termes, le fichier passwd ressemblerait à ceci:
racine: x: 0: 0: racine: / racine: / bin / bash
(1) #kira: x: 1003: 1003: ,,,: / opt / jail /./ home / kira: / usr / sbin / jk_lsh
(2) kira: x: 1003: 1003 :: / home / kira: / bin / bash
Bonjour 🙂
Si ce n'est pas défini, l'accès SSH ne fonctionne pas, l'utilisateur tente de se connecter mais est automatiquement expulsé ... cela semble être un bogue ou un problème avec l'interpréteur que JailKit apporte, car lors de cette modification, il indique qu'il utilise le bash normal du système, tout fonctionne.
Je ferme toujours la session ssh: C
Suse 10.1x64
Bonjour j'ai installé ceci et cela fonctionne très bien l'esprit en centos = D
mais mon dua est comme il y a pour ajouter plus de commandes par exemple à un utilisateur de prison
impossible d'exécuter la commande svn co http://pagina.com/carpeta
Je veux dire, cette commande n'existe pas pour les utilisateurs de prison dans ce cas, comme il y a eu, pour ajouter ces commandes à la prison et il y en a beaucoup plus que je dois ajouter.
Salut comment vas-tu 🙂
Si vous voulez activer la commande «svn» dans la prison vous avez la commande jk_cp
Ce est à dire:
jk_cp / opt / jail / / bin / svn
Ceci en supposant que le binaire ou l'exécutable svn est: / bin / svn
Et que la Cage / Jail soit: / opt / jail /
Vous rencontrerez des commandes qui dépendent des autres, c'est-à-dire que si vous ajoutez la commande «pepe» vous verrez que vous devez aussi ajouter «federico», car «pepe» dépend de «federico» à exécuter, si vous trouvez cela puis vous ajoutez les commandes nécessaires et déjà 😉
C'est excellent, je le teste en même temps, et je vous raconte ce qui s'est passé, merci beaucoup = D
Chance 😀
J'ai réussi à faire ce que vous m'avez dit mais de cette façon et automatiquement il m'a détecté sans aucun problème.C'est la commande que j'ai utilisée pour pouvoir utiliser la subversion.
jk_cp -j / home / jaul svn
Bon j'utilise centos xP et c'est peut-être différent mais bon
maintenant je voudrais savoir quelles sont les bibliothèques comme svn mais maintenant je voudrais compiler parce que disons que j'ai besoin d'utiliser une commande comme celle-ci
./configurer et marquer l'erreur
./configure.lineno: ligne 434: expr: commande introuvable
Je ne saurais pas quelles sont les bibliothèques que j'ai déjà installées, qu'est-ce que mysql et d'autres s'il compile en dehors de la prison mais pas à l'intérieur du jaui.
Désolé pour le dérangement.
ps: vous devriez mettre dans le guide ce que je vous ai dit sur la commande utilisée dans centos =) salutations.
Regardez, quand je vous dis qu'il ne trouve pas de commande (comme ici), la première chose à faire est de trouver la commande:
whereis expr
Une fois trouvé (/ usr / bin / expr et / usr / bin / X11 / expr) nous le copions dans la prison avec jk_cp 😉
Essayez ceci pour voir.
Oui, j'ai déjà édité le post et ajouté qu'il fonctionne dans Centos 😀
Super, merci beaucoup (:
Merci pour la contribution…
Salut comment ca va?
Putain mec! Du Chili mes salutations. Vous êtes aussi pet que moi! LOL!. Étreintes. Votre message m'a été d'une grande aide!
Merci pour ton commentaire 😀
Merci beaucoup pour le message, cela m'a beaucoup aidé, mais malheureusement dans le cadre de
//////////////////////////////////////////////////// // ////////////////////////////////////////////////// //// ////////////////////////
Nous devons éditer le fichier etc / passwd de la cage, c'est-à-dire que dans ce cas ce serait / opt / jail / etc / passwd, dans lequel nous commentons la ligne utilisateur que nous avons créée, et en ajoutons une nouvelle telle que:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
En d'autres termes, le fichier passwd ressemblerait à ceci:
racine: x: 0: 0: racine: / racine: / bin / bash
#kira: x: 1003: 1003: ,,,: / opt / jail /./ home / kira: / usr / sbin / jk_lsh
kira: x: 1003: 1003 :: / home / kira: / bin / bash
//////////////////////////////////////////////////// // ////////////////////////////////////////////
Cela provoque la même erreur, je veux dire, je le laisse tel quel, et il me démarre à partir du terminal lorsque je me connecte ,,, .., je commente la ligne et en ajoute une autre en la modifiant comme vous l'indiquez, et elle aussi me lance….
Installez la dernière version "jailkit-2.16.tar", créez même un script pour gagner du temps, la voici ci-dessous:
//////////////////////////////////////////////////// //// ////////////////////////////////////////////////
#! / Bin / bash
wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
tar -zxvf jailkit-2.16.tar.gz
cd jailkit-2.16
. / Configure
faire
make install
sortie
//////////////////////////////////////////////////////////// /////////////////////////////
Évidemment, ils se connectent d'abord en tant que "root" ...
Comment pourrais-je résoudre l'erreur ami ????
Désolé, je l'ai déjà compris, j'avais fait une erreur sur le dossier Home, mais j'ai un gros doute, comment puis-je l'obtenir pour me laisser exécuter la commande «screen», j'essaye de l'utiliser (dans l'utilisateur en cage) , mais ça ne marche pas ... Une autre chose est, comment puis-je amener cet utilisateur en cage à exécuter le programme wine sur un exe qu'il vient de mettre dans sa maison?
bonjour, très bon tuto! Je suis nouveau dans ces environnements, j'ai une question ...
Quant à la sécurité, je vois qu'à sa racine il y a de nombreux dossiers, sont-ils nécessaires? Je veux juste qu'il ait accès à son dossier (ftp-upload et ssh-execute) pour qu'il puisse exécuter une application, quels dossiers pourrait-il supprimer de la racine? ou cela ne représente-t-il aucun danger pour moi? J'apprécie votre aide à l'avance, salutations!
@ KZKG ^ Gaara, Dieu merci, vous avez mis l'erreur sifflante mais avec la version de jailkit-2.16.tar.gz que vous avez suggérée, ils l'ont corrigé
http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
Je pense que je vais le passer à un PDF, jojo .. à la cage et merci wn 😀
Salutations ami, j'ai une question:
Supposons que nous ayons un utilisateur nommé "test".
La question est, le fichier /home/test/.ssh/known_hosts qui se trouve dans le domicile de cet utilisateur, est-ce le même fichier ou n'est-il pas mis en cage l'utilisateur?
Essaye ça. Il est possible avec cette méthode de restreindre la navigation à l'autre domicile des autres utilisateurs.
Tout d'abord, merci pour le message! Cela m'est très utile; mais j'ai deux doutes, et ceux-ci découlent du scénario que j'ai:
J'ai besoin de créer N utilisateurs avec un accès indépendant et privé à leur domicile, chaque utilisateur ne peut accéder à son domicile que pour déposer, modifier et supprimer les fichiers qui y sont contenus sans avoir à se déplacer vers d'autres (j'ai déjà ce point). Il ne nécessite pas d'accès via ssh.
1. Devez-vous créer une cage pour chaque utilisateur, ou y a-t-il un moyen d'avoir les différents utilisateurs dans la même cage mais chacun a son répertoire "privé"?
2. Lors de l'accès (via le client FTP) tous les répertoires créés par l'outil sont affichés, y a-t-il un moyen d'afficher le dossier propre? Ou ai-je fait quelque chose de mal en cours de route?
Excellent tutoriel! Cela m'a été d'une grande aide, je le teste avec la version 2.17 sur Ubuntu 14.04 et cela fonctionne très bien. Maintenant, j'ai le défi suivant, une fois que l'utilisateur est mis en cage pour qu'il ne puisse se déplacer vers aucun chemin, je veux qu'il ne puisse voir que le contenu d'un fichier qui se trouve dans un autre chemin. J'ai essayé avec un lien symbolique mais en essayant de faire une queue ou un chat dans ce fichier, cela me dit qu'il n'existe pas bien que lors de l'accès avec l'utilisateur, je peux lister ce fichier dans la maison de la cage.
Si vous pouviez m'aider, je vous serais très reconnaissant, merci d'avance
Bonjour, j'ai suivi tout le manuel et lors de la connexion avec ssh il se ferme automatiquement, trace:
4 décembre 19:20:09 toby sshd [27701]: Mot de passe accepté pour le test du port 172.16.60.22 62009 ssh2
4 déc 19:20:09 toby sshd [27701]: pam_unix (sshd: session): session ouverte pour test utilisateur par (uid = 0)
4 décembre 19:20:09 toby jk_chrootsh [27864]: entre maintenant en prison / opt / jail pour un test utilisateur (1004) avec des arguments
4 déc 19:20:09 toby sshd [27701]: pam_unix (sshd: session): session fermée pour test utilisateur
merci
Pas quand je fais la dernière étape pour donner un accès ssh à l'utilisateur, cela ferme toujours la connexion
Est-il possible à partir de cet utilisateur créé de passer à root? votre racine? il ne me laisse pas. Comment serait-ce? Merci pour votre aide
Merci beaucoup pour le tutoriel, j'en avais besoin pour créer un utilisateur qui pourrait utiliser clonezilla pour créer une image et la copier sur un serveur tiers mais qui ne pouvait pas pulluler où il voulait
Bien! J'aurais besoin de savoir quelque chose.
Est-il possible d'entrer en tant que ROOT en utilisant FTP et en ayant ces autorisations, de le gérer par FTP et non avec SSH? Disons comme créer une connexion, un style de tunnel ou quelque chose comme ça. Comment est-ce fait? Configurer le fichier VSFTPD?
Je vous remercie!