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

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 .


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.


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


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

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.


-1 Lo sentimos, tu respuesta fue correcta hace años cuando la escribiste, pero ya no lo es.
Chris S
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.