¿Cómo puedo hacer chroot de conexiones ssh?

20

Me gustaría configurar una cárcel chroot para la mayoría (no todos) de los usuarios que inician sesión a través de SSH. He oído que es posible con las últimas versiones de openssh, pero no he podido averiguar cómo hacerlo. Todos los How To hablan de parchear una versión anterior, y el parche ya no está disponible.

Estoy ejecutando debian etch.

Malfist
fuente

Respuestas:

13

Estoy usando rssh para este propósito.

Tienes razón, hay una nueva forma de hacerlo y es una característica incorporada de las versiones ssh recientes.

Aquí hay un artículo sobre Undeadly .

cstamas
fuente
6

Solo tenía que configurar un usuario que pudiera iniciar sesión a través de ssh y el ssh en otro servidor (que no está conectado directamente al mundo exterior). Los enlaces de cstamas y ericmayo fueron un buen comienzo.

Básicamente, agregué lo siguiente a / etc / ssh / sshd_config:

Igualar usuario myuser
  ChrootDirectory / chroot / myuser

A partir de ahí, solo tuve que crear el entorno chroot debajo de / chroot / myuser. Copié / bin / bash y / usr / bin / ssh y las bibliotecas compartidas que necesitaban (ldd las mostrará). Para un entorno más grande, probablemente tendría sentido compilar versiones enlazadas estáticamente de los ejecutables necesarios.

Bash funcionó de inmediato, para que ssh funcione, también tuve que crear el directorio .ssh, copiar / etc / passwd, /etc/nsswitch.conf y / lib / libnss_ * y crear / dev / null, / dev / tty y / dev / urandom a través de mknod.

Marie Fischer
fuente
2
mkdir /chroot
mkdir -p /chroot/home/<user_name>

mkdir /chroot/home/<user-name>/bin  
cp -pr /bin/bash /chroot/home/<user_name>/bin/.  
cp -pr /bin/ls /chroot/home/<user_name>/bin/.  
cp -pr /lib64 /chroot/home/<user_name>/.

Debe editar el archivo / etc / sshd_config y agregar

ChrootDirectory /chroot/%h

Y reinicie sshd daemon.

Dicho todo esto, sinceramente, creo que sftp es una mejor opción.

Además, encontré esta url si es útil.

http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229

Soham Chakraborty
fuente
1

Si está utilizando la autenticación de clave pública, puede utilizar la opción "comando" en las claves autorizadas para configurar la cárcel chroot.

~ / .ssh / Authorizedkeys:

command="/path/to/the/chroot/script" ssh-dss keydata.....keydata... user@host
UloPe
fuente
No estoy usando la autenticación de clave pública, la autenticación se realiza mediante una contraseña y nombre de usuario
Malfist
0

Hasta donde yo sé, las nuevas versiones de OpenSSH solo permiten chroot para conexiones SFTP. Lo intenté y funciona. Pero para SSH la solución disponible es el parche chrootssh. Navego por el sitio de SourceForge y no hay archivos, así que creo que se ha descontinuado.

Para Debian Etch hay algunos archivos aquí: http://debian.home-dn.net/etch/ssh/

Aquí hay otras soluciones: http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html , incluido chrootssh.

hdanniel
fuente
-1 Lo sentimos, tu respuesta fue correcta hace años cuando la escribiste, pero ya no lo es.
Chris S