Rechercher : dans
Par :

[Linux] Restreindre un répertoire via SSH

Dernière réponse le 14 jun 2007 à 15:14:39 Dj TonTon, le 11 jun 2007 à 18:24:25 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Firefox 2.0.0.4

Meilleures réponses pour « [Linux] Restreindre un répertoire via SSH » dans :
Se logguer à distance avec ssh (Linux) Voir (Pour ceux qui voudraient avoir un rappel sur SSH) Les commandes suivantes nécessitent d'avoir un compte sur la machine sur laquelle on veut se connecter et qu'un serveur SSH y soit installé. Sous Linux, la syntaxe est simple (le client...
[Shell] Transferer des fichiers via ssh Voir SSH - Secure SHell Utilisation Informations complémentaires LOGICIELS Sous Linux/Unix Sous Windows Avertissement Utilisation SSH permet d'utiliser des pipelines de commandes, et d'utiliser des tubes d'entrées/sorties comme toute...
Accéder à distance à sa machine (VNC+ssh) VoirL'astuce suivante vous permettra d'accéder à distance à votre machine de manière graphique. Nous allons utiliser le serveur VNC inclu dans Ubuntu (Vino) en le sécurisant par ssh. Vous pourrez alors accéder à distance à votre PC avec ssh et vnc...
Envoi de commandes CISCO publipostées via SSH/Telnet VoirExpect en action Informations générales publipmachin point cheu ? Mais c'est quoi au juste ? Le contenu des fichiers annexes commandes.txt liste.txt THE Script Commentaires Remerciements Questions / Report de Bugs / Modifications
Se logguer à distance avec ssh ( Windows ) Voir( Pour ceux qui voudraient avoir un rappel sur ssh ) Contrairement à la plupart des distributions Linux, Windows ne possède pas de client ssh en natif. Il faut donc en installer un. Pour cela plusieurs solutions : Vous pourrez en...

1

jipicy, le 11 jun 2007 à 19:17:02

Salut,

Peut être que cette astuce dans la FAQ répondra à ta demande...

;-)) Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

Dj TonTon, le 12 jun 2007 à 10:06:56

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!

Répondre à Dj TonTon

3

jipicy, le 12 jun 2007 à 10:08:12

Merci lami20j alors ;-))
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

4

lami20j, le 12 jun 2007 à 10:12:43

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 :-)) lami20j

Répondre à lami20j

5

Dj TonTon, le 12 jun 2007 à 10:56:50

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) ***

Répondre à Dj TonTon

6

lami20j, le 12 jun 2007 à 11:20:12

Salut,

il s'agit de la version de openssl, il faut la version compative avec openssh que tu utilises.

en revanche il faut aussi savoir que pour ssh2 tu as des directives pour chroot mais je ne me rappelle pas leur nom
je te dirai ce soir lami20j

Répondre à lami20j

7

Dj TonTon, le 12 jun 2007 à 11:34:12

Euh et comment je verifie ca ? Ma version de Openssl est 0.9.8c.

Répondre à Dj TonTon

8

lami20j, le 12 jun 2007 à 11:38:28

Il faut chercher avec une autre
http://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 lami20j

P.S. Ne t'inquiète pas si la version de ssl n'est pas la dernière :-))

Répondre à lami20j

9

Dj TonTon, le 12 jun 2007 à 11:42:01

D'accord merci beaucoup. Bonne journée.

Répondre à Dj TonTon

10

Dj TonTon, le 12 jun 2007 à 15:30:25

Alors, il y a du nouveau. J'ai téléchargé la dernière version de OpenSSL (0.9.8.e) à l'adresse suivante : http://www.openssl.org/source/openssl-0.9.8e.tar.gz

Après avoir compilé et installé la nouvelle version, j'ai dû recompiler openssh en utilisant l'option --with-libs=-ldl :

# ./configure --with-libs=-ldl
# make
# make install

Il m'a suffit ensuite de suivre la procédure décrite dans le tuto. Tout fonctionne hormis le fait que l'utilisateur fraîchement crée peut toujours remonter d'un niveau et accèder où il veut...

Répondre à Dj TonTon

11

lami20j, le 12 jun 2007 à 15:40:14

As-tu appliqué le patch?
affiche s'il te plaît

grep utilisateur /etc/passwd


utilisateur c'est ton utilisateur chrooté

tu utilises quelle version d'openssh ? lami20j

Répondre à lami20j

12

Dj TonTon, le 12 jun 2007 à 15:53:25

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 :

# grep userssh/etc/passwd
userssh:x:1002:1003::/home/ssh/./home/userssh:/bin/bash

J'utilise OpenSSH 4.3.

Répondre à Dj TonTon

13

lami20j, le 12 jun 2007 à 15:57:45

Connecte toi avec l'utilisateur que tu as chrooté et ensuite affich le résultat de

cat /etc/passwd
grep userssh /etc/passwd
--
lami20j

Répondre à lami20j

14

Dj TonTon, le 12 jun 2007 à 16:01:36

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

Répondre à Dj TonTon

15

lami20j, le 12 jun 2007 à 16:06:33

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?



lami20j

Répondre à lami20j

16

Dj TonTon, le 12 jun 2007 à 16:10:33

Pour me connecter je passe par PuTTY sur Windows.

Résulat de la commande pwd :

userssh@vm1:~$ pwd
/home/ssh/./home/userssh
(Euh...)

Non pas de nouvelle création d'environnement après l'installation. C'est nécessaire ?

Répondre à Dj TonTon

17

lami20j, le 12 jun 2007 à 16:12:56

Tu peux supprimer et recommencer :-))

chez moi ça marche lami20j

Répondre à lami20j

18

Dj TonTon, le 12 jun 2007 à 16:33:23

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 ?

Répondre à Dj TonTon

19

lami20j, le 12 jun 2007 à 16:42:52

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

lami20j

Répondre à lami20j

20

Dj TonTon, le 12 jun 2007 à 17:00:45

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 :

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...

Répondre à Dj TonTon

21

lami20j, le 12 jun 2007 à 19:50:05

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
lami20j

Répondre à lami20j

22

lami20j, le 12 jun 2007 à 20:01:03

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 lami20j

Répondre à lami20j

23

lami20j, le 12 jun 2007 à 21:23:25

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 )
lami20j

Répondre à lami20j

24

Dj TonTon, le 13 jun 2007 à 10:46:05

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 :

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.

Répondre à Dj TonTon

25

lami20j, le 13 jun 2007 à 17:36:40

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

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.gz
donc 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 lami20j

Répondre à lami20j

26

Dj TonTon, le 13 jun 2007 à 18:46:27

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!

Répondre à Dj TonTon

27

lami20j, le 13 jun 2007 à 18:51:05

Affiche s'il te plaît le résultat de

ps aux | grep ssh
whereis ssh
whereis sshd
lami20j

Répondre à lami20j

28

lami20j, le 13 jun 2007 à 19:36:15

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.
lami20j

Répondre à lami20j
Collection CommentÇaMarche.net