[Linux] Restreindre un répertoire via SSH
Résolu
Dj TonTon
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour,
J'aimerais savoir s'il est possible de restreindre l'accès à un répertoire spécifique via un accès ssh. Concrètement j'aimerais que l'utilisateur accède directement à un répertoire spécifique lors de sa connexion ssh (par exemple /usr/ssh) et qu'il ne puisse pas remonter d'un niveau. Je sais que ce principe existe en utilisant sftp, mais est-il portable pour un simple accès ssh ? Merci.
J'aimerais savoir s'il est possible de restreindre l'accès à un répertoire spécifique via un accès ssh. Concrètement j'aimerais que l'utilisateur accède directement à un répertoire spécifique lors de sa connexion ssh (par exemple /usr/ssh) et qu'il ne puisse pas remonter d'un niveau. Je sais que ce principe existe en utilisant sftp, mais est-il portable pour un simple accès ssh ? Merci.
A voir également:
- [Linux] Restreindre un répertoire via SSH
- Restreindre instagram - Guide
- Linux reader - Télécharger - Stockage
- Ssh download - Télécharger - Divers Web & Internet
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Toutou linux - Télécharger - Systèmes d'exploitation
27 réponses
Super, c'est exactement ce que je cherchais je te remercie beaucoup. :) J'ai pourtant parcouru longuement ce forum ainsi que Google sans rien trouver... alors que la solution était simplement dans la FAQ!
Salut,
semble-t-il que les developpeurs de openssh-chroot ont stoppé le projet
en fait c'est toujour l'histoire de patch pour les version de openssh
je pense que je vais le reprendre, mais pour le moment je continue avec mon apprentissage du C
dès que j'ai des nouvelles je vais modifié dans la FAQ à moins que quequ'un d'autre le fasse avant moi :-))
semble-t-il que les developpeurs de openssh-chroot ont stoppé le projet
en fait c'est toujour l'histoire de patch pour les version de openssh
je pense que je vais le reprendre, mais pour le moment je continue avec mon apprentissage du C
dès que j'ai des nouvelles je vais modifié dans la FAQ à moins que quequ'un d'autre le fasse avant moi :-))
C'est bien ce que je cherchais par contre j'ai des problèmes à la compilation. J'ai mis à jour le kernel et vérifié que j'utilisais bien la dernière version de openssl mais j'ai toujours la même erreur à la compilation :
configure: error: *** Can't find recent OpenSSL libcrypto (see config.log for details) ***
Il faut chercher avec une autre
https://www.openssl.org/source/
il me semble qu'avec 0.9.7j je l'ai installé, je ne me rappelle plus et je suis au boulot (je ne veux pas dire des bêtises)
je vais regarder ce soir à la maison
https://www.openssl.org/source/
il me semble qu'avec 0.9.7j je l'ai installé, je ne me rappelle plus et je suis au boulot (je ne veux pas dire des bêtises)
je vais regarder ce soir à la maison
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
As-tu appliqué le patch?
affiche s'il te plaît
utilisateur c'est ton utilisateur chrooté
tu utilises quelle version d'openssh ?
affiche s'il te plaît
grep utilisateur /etc/passwd
utilisateur c'est ton utilisateur chrooté
tu utilises quelle version d'openssh ?
Oui j'ai appliqué le patch, j'ai suivi à la lettre les indications données dans le tuto.
Voila ce que me donne le résultat de la commande :
J'utilise OpenSSH 4.3.
Voila ce que me donne le résultat de la commande :
# grep userssh/etc/passwd userssh:x:1002:1003::/home/ssh/./home/userssh:/bin/bash
J'utilise OpenSSH 4.3.
connecte toi avec l'utilisateur que tu as chrooté et ensuite affich le résultat de
lami20j
cat /etc/passwd grep userssh /etc/passwd--
lami20j
userssh@vm1:~$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/bin/sh cnsi:x:1000:1000:cnsi,,,:/home/cnsi:/bin/bash sshd:x:100:65534::/var/run/sshd:/usr/sbin/nologin snmp:x:101:65534::/var/lib/snmp:/bin/false userssh:x:1002:1003::/home/ssh/./home/userssh:/bin/bash
userssh@vm1:~$ grep userssh /etc/passwd userssh:x:1002:1003::/home/ssh/./home/userssh:/bin/bash
comment tu fait pour te connecter
affiche aussi le résultat de pwd
après l'installation à nouveau as tu recommencé aussi la création d'environnement?
affiche aussi le résultat de pwd
après l'installation à nouveau as tu recommencé aussi la création d'environnement?
Il y a un truc qui m'échappe (je dois me cracker quelque part...). J'ai supprimé mon utilisateur crée par le script. Puis :
1. L'utilisateur sshd existe, pas besoin de le recréer
2. Je lance le script prisonssh.pl et à la demande de répertoire je met ssh
3. Je lance le script useradd_prisonssh.pl avec pour argument userssh et ssh. Ca me fait la même chose!
Je fais une boulette dans le passage des paramètres ou autres ?
1. L'utilisateur sshd existe, pas besoin de le recréer
2. Je lance le script prisonssh.pl et à la demande de répertoire je met ssh
3. Je lance le script useradd_prisonssh.pl avec pour argument userssh et ssh. Ca me fait la même chose!
Je fais une boulette dans le passage des paramètres ou autres ?
Ce n'est pas que l'utilisateur que tu dois supprimer mais carrément l'environnement
donc commencer à zero
à la limite on s'en fiche
crée un utilisateur azerty dans un autre environnement pour tester
appelle ton environnement prison et l'utilisateur azerty pour voir
donc commencer à zero
à la limite on s'en fiche
crée un utilisateur azerty dans un autre environnement pour tester
appelle ton environnement prison et l'utilisateur azerty pour voir
Alors j'ai bien recrée mon environnement nommé prison avec l'utilisateur azerty. Tout s'est bien déroulé. J'ai mon répertoire /home/prison qui contient lui-même un répertoire home dans lequel figure le dossier azerty.
L'utilisateur a été correctement créé, ainsi que ses répertoires :
Par contre au final c'est toujours la même chose, je peux tout le temps remonter d'un niveau. Je ne vois vraiment pas ce qui cloche...
L'utilisateur a été correctement créé, ainsi que ses répertoires :
azerty:x:1002:1004::/home/prison/./home/azerty:/bin/bash
Par contre au final c'est toujours la même chose, je peux tout le temps remonter d'un niveau. Je ne vois vraiment pas ce qui cloche...
As-tu patché openssh avant l'installé
# tar xzvf /home/lami20j/prisonssh/openssh-4.3p1.tar.gz # cd openssh-4.3p1/ # patch < /home/lami20j/prisonssh/osshChroot-4.3p1.diff patching file session.c # ./configure # make # make install
Bon, d'abord je vais tester et aussi modifier la faq pour mettre à jour
j'ai la version 4.5p1
Ensuite je vais faire des imprimés écrans pour te montrer comment j'ai fait
Ca marche chez moi, donc ça doit marcher aussi chez toi :-))
Je ne vais pas te laisser tombé, je me suis cassé la tête avec ça trop longtemps avant d'écrire dans la faq :-DDD
j'ai la version 4.5p1
Ensuite je vais faire des imprimés écrans pour te montrer comment j'ai fait
Ca marche chez moi, donc ça doit marcher aussi chez toi :-))
Je ne vais pas te laisser tombé, je me suis cassé la tête avec ça trop longtemps avant d'écrire dans la faq :-DDD
Bon, je viens de tester sur mon debian sur le laptop et je n'ai pas de problèmes, ça marche impeccable
Si tu respectes exactement ce qu'il est écrit dans le tuto il ne doit pas avoir des problèmes
A savoir que tu peux télécharger la version 4.5p1
openssh-4.5p1.tar.gz
openssh-4.5p1.tar.gz.asc
le patch 4.5p1.diff
j'utilise openssl version 0.9.8c (c'est la version qu'on trouve sur debian etch )
Si tu respectes exactement ce qu'il est écrit dans le tuto il ne doit pas avoir des problèmes
A savoir que tu peux télécharger la version 4.5p1
openssh-4.5p1.tar.gz
openssh-4.5p1.tar.gz.asc
le patch 4.5p1.diff
j'utilise openssl version 0.9.8c (c'est la version qu'on trouve sur debian etch )
D'abord merci beaucoup pour ton aide et le temps que tu passes à essayer de résoudre mon problème.
J'ai tout recommencé, en téléchargeant la nouvelle version d'openSSH et en l'installant. J'ai bien patché avant de l'installer. J'ai tout suivi à la lettre le tuto, tout c'est très bien passé hormis l'étape de copie des fichiers dans le répertoire prison. Pour les fichiers suivants il me met :
Cela pose-t-il un problème ?
Je suis également sur Debian Etch, donc tout devrait fonctionner correctement comme toi! :) Merci encore pour tes démarches.
J'ai tout recommencé, en téléchargeant la nouvelle version d'openSSH et en l'installant. J'ai bien patché avant de l'installer. J'ai tout suivi à la lettre le tuto, tout c'est très bien passé hormis l'étape de copie des fichiers dans le répertoire prison. Pour les fichiers suivants il me met :
cp: ne peut évaluer `/usr/bin/less': Aucun fichier ou répertoire de ce type cp: ne peut évaluer `/usr/bin/bzip2': Aucun fichier ou répertoire de ce type cp: ne peut évaluer `/etc/bashrc': Aucun fichier ou répertoire de ce type cp: ne peut évaluer `/etc/termcap': Aucun fichier ou répertoire de ce type cp: ne peut évaluer `/etc/tsocks.conf': Aucun fichier ou répertoire de ce type
Cela pose-t-il un problème ?
Je suis également sur Debian Etch, donc tout devrait fonctionner correctement comme toi! :) Merci encore pour tes démarches.
Salut,
Cela pose-t-il un problème ?
Non, mais en revanche dans ton environnement tu n'auras pas bzip2 par exemple
Il faut regarder le script et faire les modifications nécessaires
Regarde dans cette partie
tu vois bien que c'est écrit
/usr/bin/bzip2
mais sur etch c'est
cp: ne peut évaluer `/usr/bin/bzip2': Aucun fichier ou répertoire de ce type
Cela pose-t-il un problème ?
Non, mais en revanche dans ton environnement tu n'auras pas bzip2 par exemple
Il faut regarder le script et faire les modifications nécessaires
Regarde dans cette partie
my @apps0=qw ( /bin/bash /bin/ls /bin/mkdir /bin/mv /bin/pwd /bin/rm /bin/sh /bin/echo /bin/cp /bin/cat /bin/ln /bin/chown /bin/chmod /bin/grep /bin/more /bin/tar /bin/gzip /bin/true /bin/false /bin/ping /bin/egrep /bin/hostname ); # les applications (/usr/bin, etc...) my @apps1=qw ( /usr/local/bin/scp /usr/bin/env /usr/bin/clear /usr/bin/wc /usr/bin/perl /usr/bin/id /usr/local/bin/ssh /usr/bin/du /usr/bin/less /usr/bin/bzip2 /usr/bin/tset );
tu vois bien que c'est écrit
/usr/bin/bzip2
mais sur etch c'est
lami20j@deb:~/src$ whereis bzip2 bzip2: /bin/bzip2 /usr/share/man/man1/bzip2.1.gzdonc tu n'as qu'à remplacer /usr/bin/bzip2 avec /bin/bzip2 et tu n'auras plus le warning
cp: ne peut évaluer `/usr/bin/bzip2': Aucun fichier ou répertoire de ce type
OK, j'ai modifié le script c'est bon pour les erreurs. Mais toujours pas le reste! :) C'est quand même fou que tout fonctionne chez toi avec la même distrib et pas chez moi! J'en ai fini pour aujourd'hui, mais dès demain je m'y remet!
Perso, je crois que sur on OS ce n'est pas openssh que tu as installé qui est en marche mais le ssh installé avec les paquetages
J'ai besoin de voir le résultat de commandes que je t'ai demandé.
Merci.
J'ai besoin de voir le résultat de commandes que je t'ai demandé.
Merci.
Bonjour,
Perso, je crois que sur ton OS ce n'est pas openssh que tu as installé qui est en marche mais le ssh installé avec les paquetages
Oui c'est possible, mais dans tous les cas j'ai installé openssh derrière. Peut-être aurais-je dû désinstaller avant le paquetage installé ? :S
Voici les résultats des commandes que tu m'as demandé de tapé :
Perso, je crois que sur ton OS ce n'est pas openssh que tu as installé qui est en marche mais le ssh installé avec les paquetages
Oui c'est possible, mais dans tous les cas j'ai installé openssh derrière. Peut-être aurais-je dû désinstaller avant le paquetage installé ? :S
Voici les résultats des commandes que tu m'as demandé de tapé :
vm1:~# ps aux | grep ss root 2494 0.0 0.0 4928 1084 ? Ss Jun12 0:00 /usr/sbin/sshd root 18175 0.2 0.1 7696 2356 ? Ss 10:15 0:00 sshd: root@pts/0 root 18182 0.0 0.0 2880 768 pts/0 S+ 10:15 0:00 grep ss vm1:~# whereis ssh ssh: /usr/bin/ssh /etc/ssh /usr/X11R6/bin/ssh /usr/bin/X11/ssh /usr/local/bin/ssh /usr/share/man/man1/ssh.1.gz vm1:~# whereis sshd sshd: /usr/sbin/sshd /usr/local/sbin/sshd /usr/share/man/man8/sshd.8.gz