Un moyen simple et facile d'emprisonner les utilisateurs

33

J'ai besoin d'un moyen simple et facile d'emprisonner les utilisateurs dans leurs répertoires personnels dans Oneiric. Avez-vous une configuration simple pour les utilisateurs incarcérés, avec une aide complète ou de bons liens Web?

Je proposerais un serveur public gratuit en ligne avec 10 à 20 Go d'espace libre. Je ne sais pas combien d'utilisateurs. Je veux leur donner SSH et SFTP pour qu'ils puissent se connecter via FileZilla.

    
posée One Zero 06.01.2012 - 22:27
la source

4 réponses

20

Jailkit est un ensemble d'utilitaires permettant de limiter les comptes d'utilisateur à une arborescence de répertoires spécifique et à des commandes spécifiques. Mettre en place une prison est beaucoup plus facile en utilisant les utilitaires Jailkit qui le font «à la main». Une prison est une arborescence de répertoires que vous créez dans votre système de fichiers; l'utilisateur ne peut pas voir les répertoires ou les fichiers situés en dehors du répertoire jail. L'utilisateur est emprisonné dans ce répertoire et ses sous-répertoires.

Télécharger & amp; Installer:

lien

# cd /tmp
# wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
# tar -zxvf jailkit-2.17.tar.gz
# cd jailkit-2.17
# ./configure
# make
# make install
  

Mise en place de la prison

Maintenant, il est temps de configurer le répertoire de la prison. Les utilisateurs emprisonnés verront ce répertoire comme le répertoire racine du serveur. J'ai choisi d'utiliser / home / jail:

# mkdir /home/jail
# chown root:root /home/jail

jk_init peut être utilisé pour créer rapidement une prison avec plusieurs fichiers ou répertoires nécessaires pour une tâche ou un profil spécifique ( cliquez dessus et lisez tous les détails).

# jk_init -v /home/jail basicshell
# jk_init -v /home/jail netutils
# jk_init -v /home/jail ssh
# jk_init -v /home/jail jk_lsh
  

Ajouter un utilisateur

Ajoutez un nouvel utilisateur avec un répertoire de base et un shell bash et définissez le mot de passe:

# useradd -d /home/testuser -m testuser -s /bin/bash
# passwd testuser
  

Maintenant, il est temps d'emprisonner cet utilisateur, utilisez la commande suivante:

# jk_jailuser -m -j /home/jail testuser
  

Votre fichier / etc / passwd devrait contenir quelque chose comme ceci:

testuser:x:1001:1001::/home/jail/./home/testuser:/usr/sbin/jk_chrootsh
  

Activer bash

     

En utilisant jk_cp , les bibliothèques bash sont copiées dans la prison:

# jk_cp -v -f /home/jail /bin/bash
  

Maintenant, éditez le fichier / home / jail / etc / passwd et assurez-vous qu'il contient quelque chose comme ceci:

testuser:x:1001:1001::/home/testuser:/bin/bash
  

Maintenance

     

En utilisant jk_update, les mises à jour sur le système réel peuvent être mises à jour dans la prison. Un essai à sec affichera ce qui se passe:

# jk_update -j /home/jail -d

Sans l'argument -d, la véritable mise à jour est effectuée. Vous trouverez plus d'opérations de maintenance ici.

Aide prise

  

lien

     

lien (une très bonne aide)

     

Celui-ci aussi

     

Ceci a été vérifié & amp; vérifié, fonctionne correctement

    
réponse donnée One Zero 07.02.2012 - 14:24
la source
6

Vous ne pouvez pas les confiner dans / home car ils ont besoin d'accéder aux fichiers binaires du système et aux fichiers bash et de configuration dans / etc

IMO La méthode la plus simple pour sécuriser les utilisateurs consiste à utiliser apparmor.

Vous faites un lien dur

ln /bin/bash /usr/local/bin/jailbash

Vous ajoutez jailbash à / etc / shells

Vous affectez ensuite jailbash au shell des utilisateurs, puis vous écrivez un profil apparmor pour jailbash, ce qui permet un accès minimal.

sudo chsh -s /usr/local/bin/jailbash user_to_confine

Vous devrez écrire vous-même un profil apparmor, mais vous pouvez éventuellement commencer par un profil

lien

    
réponse donnée Panther 06.01.2012 - 22:38
la source
1

Il est difficile de deviner le but que vous pourriez vouloir atteindre. Si c'est pour refuser ssh / sftp tout en fournissant un accès jailé via FTP ... easy:

Ajouter à / etc / shells un nouveau shell:

sudo -e /etc/shells

Ajoutez une ligne:

/bin/false

Enregistrer. Pour chaque utilisateur que vous souhaitez refuser ssh / sftp, modifiez le shell de l'utilisateur:

sudo chsh -s /bin/false userx

Maintenant, userx ne peut pas se connecter via ssh / sftp.

Installez vsftpd:

sudo apt-get install vsftpd

Modifiez le fichier de configuration:

sudo -e /etc/vsftpd.conf

Et quelques changements ....

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES

Enregistrer. Redémarrez vsftpd:

sudo /etc/init.d/vsftpd restart
    
réponse donnée user8290 06.01.2012 - 23:54
la source
0

Vous pouvez consulter rbash en tant que shell pour vos utilisateurs.

man bash

Rechercher la section RESTRICTED SHELL

Ou regardez cette page lien

    
réponse donnée Karlson 06.01.2012 - 22:33
la source

Lire d'autres questions sur les étiquettes