GNU/Linux >> Tutoriels Linux >  >> Debian

Comment créer un utilisateur SSH emprisonné avec Jailkit sur Debian 9 (Stretch)

Ce document décrit comment installer et configurer Jailkit dans Debian 9 (Stretch) Server. Jailkit est un ensemble d'utilitaires permettant de limiter les comptes d'utilisateurs à des fichiers spécifiques à l'aide de chroot() et/ou de commandes spécifiques. La configuration d'un shell chroot, d'un shell limité à une commande spécifique ou d'un démon dans une prison chroot est beaucoup plus facile et peut être automatisée à l'aide de ces utilitaires.

Jailkit est connu pour être utilisé dans les appliances de sécurité réseau de plusieurs grandes entreprises de sécurité informatique, les serveurs Internet de plusieurs grandes entreprises, les serveurs Internet de fournisseurs de services Internet, ainsi que de nombreuses petites entreprises et utilisateurs privés qui ont besoin de sécuriser cvs, sftp, shell ou des processus démons.

1 Remarque préliminaire

Ce didacticiel est basé sur le serveur Debian 9. Vous devez donc configurer une installation de base du serveur Debian avant de poursuivre ce didacticiel. Le système doit avoir une adresse IP statique. J'utilise 192.168.0.100 comme adresse IP dans ce tutoriel et server1.example.com comme nom d'hôte.

2 Installer Jailkit

Nous allons d'abord télécharger et installer le Jailkit. Au moment de la rédaction de ce guide, la dernière version disponible de Jailkit est la 2.20. Je vais le télécharger et l'installer comme suit :

cd /tmp    
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit-2.20

Jailkit nécessite certains packages avant son installation, nous les installerons comme suit :

apt-get install build-essential autoconf automake1.11 libtool flex bison debhelper binutils-gold python

Notre système est maintenant prêt à installer le Jailkit, installez-le comme suit :

echo 5 > debian/compat
./debian/rules binary
cd ..
dpkg -i jailkit_2.20-1_amd64.deb

Il installera le Jailkit dans Debian Server, nous pouvons supprimer les packages supplémentaires de /tmp :

rm -rf /tmp/jailkit*

3 Emprisonner un utilisateur

Nous allons maintenant créer un utilisateur qui sera emprisonné à l'aide de Jailkit en tant que :

adduser srijan

[email protected] :~#adduser srijan
Ajout de l'utilisateur `srijan' ...
Ajout du nouveau groupe `srijan' (1001) ...
Ajout du nouvel utilisateur `srijan' ' (1001) avec le groupe `srijan' ...
Création du répertoire personnel `/home/srijan' ...
Copie des fichiers depuis `/etc/skel' ...
Entrez nouveau Mot de passe UNIX :<--password
Retapez le nouveau mot de passe UNIX :<--password
passwd :mot de passe mis à jour avec succès
Modification des informations utilisateur pour srijan
Entrez la nouvelle valeur ou appuyez sur ENTREE pour la valeur par défaut
        Nom complet [] :<--ENTRÉE
        Numéro de chambre [] :<--ENTER
        Téléphone professionnel [] :<--ENTER
        Téléphone personnel [] :<--ENTER
        Autre [] :<--ENTER
Les informations sont-elles correctes ? [O/n] <--O
[e-mail protégé] :~#

Dans mon cas, je crée l'utilisateur srijan, vous pouvez utiliser n'importe quel nom.

Ensuite, nous vérifierons les informations sur l'utilisateur srijan dans /etc/passwd comme :

egrep srijan /etc/passwd
[email protected] :/tmp# egrep srijan /etc/passwd
srijan:x:1001:1001:,,,:/home/srijan:/bin/bash
[email protected] :/tmp #

Ensuite, nous emprisonnerons l'utilisateur créé. Créez un répertoire /jail pour l'environnement Jail :

mkdir /jail

Nous allons maintenant fournir à la prison certains des environnements de programmes par défaut comme :

jk_init -v /jail netutils basicshell jk_lsh openvpn ssh sftp

Nous pouvons également donner d'autres valeurs, la liste complète de l'environnement Jail peut être vérifiée dans le fichier

nano /etc/jailkit/jk_init.ini

Maintenant que Jail est prêt, ajoutez simplement l'utilisateur dans l'environnement :

jk_jailuser -m -j /jail/ srijan

Vérifiez à nouveau les valeurs dans /etc/passwd pour l'utilisateur srijan :

egrep srijan /etc/passwd
[email protected] :/tmp# egrep srijan /etc/passwd
srijan:x:1001:1001:,,,:/jail/./home/srijan:/usr/sbin/jk_chrootsh
[ e-mail protégé] :/tmp#

Maintenant, notre utilisateur a été ajouté dans l'environnement Jailed. Je vais connecter le serveur Debian avec le terminal bash avec son IP 192.168.0.100 :

ssh [email protected]
[email protected] :~$ ssh [email protected]
L'authenticité de l'hôte '192.168.0.100 (192.168.0.100)' ne peut pas être établie.
L'empreinte digitale de la clé ECDSA est 3d:ca:91 :67:96:39:15:b4:0f:6e:c8:2c:92:ef:25:d7.
Voulez-vous vraiment continuer à vous connecter (oui/non) ? ouiMot de passe de
[email protected] :
Linux server1 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64

Les programmes inclus avec le système Debian GNU/Linux sont des logiciels libres ;
les conditions de distribution exactes pour chaque programme sont décrites dans les
fichiers individuels dans /usr/share/doc/*/copyright.

Debian GNU/Linux est livré avec ABSOLUMENT AUCUNE GARANTIE, dans la mesure
autorisée par la loi applicable.
Connexion à 192.168.0.100 fermée.
[email protected] :~$

La connexion est fermée car l'utilisateur n'a pas de shell de journalisation, ajoutons-le dans le fichier de configuration de Jail :

nano /jail/etc/passwd
root:x:0:0:root:/root:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
#srijan:x:1001:1001:,,,:/home/srijan:/usr/sbin/jk_lsh
srijan:x:1001:1001:,,,:/home/srijan:/bin/bash

Il ajoutera l'invite bash pour l'utilisateur emprisonné srijan. Maintenant, essayez à nouveau la connexion ssh avec l'utilisateur srijan et vous pourrez vous connecter :

ssh [email protected]

Vérifiez maintenant le contenu du répertoire racine, vous remarquerez qu'il a un contenu comme celui-ci :

ls /
[email protected] : $ ls /
bin  dev  etc  home  lib  lib64  usr
[email protected] :~$

4 Exécution de services et de commandes dans un environnement jailli

Jail peut être utilisé pour exécuter des services dans un environnement Jailed. Supposons que nous voulions exécuter n'importe quel service dans l'environnement Jailed, nous utiliserons la commande jk_chrootlaunch pour cela :

jk_chrootlaunch -j /jail -u srijan -x 'service apache2 start'

Ici, je démarre le service d'Apache. De même, vous pouvez exécuter n'importe quel service ou démon avec lui dans un environnement Jailed.

Supposons que nous voulions exécuter une commande particulière dans un environnement Jail, nous utiliserons jk_cp. Testons-le dans l'environnement Jailed lorsque nous exécuterons cal, puis il s'affichera comme suit :

cal
[email protected] :~$ cal
bash :cal :commande introuvable
[email protected] :~$

Cela signifie que l'environnement Jail ne connaît pas la commande cal, maintenant je vais l'ajouter dans Debian Server comme suit :

jk_cp  -v -j /jail/ /usr/bin/cal
[email protected] :~# jk_cp  -v -j /jail/ /usr/bin/cal
Création du lien symbolique /jail/usr/bin/cal vers ncal
Copie /usr/bin/ncal vers / jail/usr/bin/ncal
Création du lien symbolique /jail/lib/x86_64-linux-gnu/libncurses.so.5 vers libncurses.so.5.9
Copie /lib/x86_64-linux-gnu/libncurses .so.5.9 à /jail/lib/x86_64-linux-gnu/libncurses.so.5.9
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 existe déjà, ne le touchera pas
/jail/lib/x86_64-linux-gnu/libc.so.6 existe déjà, n'y touchera pas
/jail/lib/x86_64-linux-gnu/libdl.so.2 existe déjà, n'y touchera pas le toucher
/jail/lib64/ld-linux-x86-64.so.2 existe déjà, ne le touchera pas
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 déjà existe, n'y touchera pas
/jail/lib/x86_64-linux-gnu/libc.so.6 existe déjà, n'y touchera pas
/jail/lib/x86_64-linux-gnu/libdl. so.2 existe déjà, n'y touchera pas
/jail/lib64/ld-linux-x86-64.so.2 existe déjà, n'y touchera pas

Exécutez à nouveau la commande cal dans l'environnement Jailed :

cal
[email protected] :~$ cal
  Avril 2019
Di Lu Ma Me Je Ve Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
                     
[email protected] :~$


Nous avons donc ajouté la commande pour l'environnement Jailed. Toutes nos félicitations! Nous avons maintenant configuré avec succès l'environnement Jail dans Debian 9 :)

  • Debian :https://www.debian.org/
  • Jailkit : https://olivier.sessink.nl/jailkit/

Debian
  1. Comment chiffrer le répertoire avec EncFS sur Debian 9 Stretch Linux

  2. Comment configurer le serveur FTP sur Debian 9 Stretch Linux

  3. Comment créer un utilisateur Sudo sur CentOS, Ubuntu et Debian

  4. Comment créer un nouvel utilisateur avec un accès Ssh ?

  5. Comment créer et supprimer un utilisateur sur Debian 9

Comment créer un utilisateur ssh emprisonné avec Jailkit sur Debian/Ubuntu

Comment installer Debian 9 Stretch - Tutoriel étape par étape avec captures d'écran

Comment installer NextCloud sur Debian 9 Stretch avec LAMP

Comment créer un utilisateur SFTP uniquement dans Debian 11

Comment installer Go sur Debian 9 Stretch

Comment créer un utilisateur Sudo sur Ubuntu et Debian