Jailkit no bloquea SFTP, funciona para SSH

Jailkit no bloquea SFTP, funciona para SSH

Instalé jailkit en mi servidor CentOS 5.8 y lo configuré de acuerdo con las guías en línea que encontré. Estos son los comandos que se ejecutaron como root:

mkdir /var/jail
jk_init -j /var/jail extshellplusnet
jk_init -j /var/jail sftp 
adduser testuser; passwd testuser
jk_jailuser -j /var/jail testuser

Luego edité /var/jail/etc/passwdpara cambiar el shell de inicio de sesión para testuserdarles /bin/bashacceso a un shell bash completo a través de SSH.

Luego edité /var/jail/etc/jailkit/jk_lsh.inipara que se pareciera a lo siguiente (no estoy seguro si es correcto)

[testuser]
paths= /usr/bin, /usr/lib/
executables= /usr/bin/scp, /usr/lib/openssh/sftp-server, /usr/bin/sftp

El usuario de prueba puede conectarse a través de SSH y está limitado a ver solo el directorio chroot jail, y también puede iniciar sesión a través de SFTP; sin embargo, todo el sistema de archivos es visible y se puede atravesar.

Salida SSH:

> ssh testuser@server
Password: 
Last login: Sat Oct 20 03:26:19 2012 from x.x.x.x
bash-3.2$ pwd
/home/testuser

Salida SFTP:

> sftp testuser@server
Password: 
Connected to server.
sftp> pwd
Remote working directory: /var/jail/home/testuser

¿Qué se puede hacer para bloquear el acceso SFTP a la cárcel?

Respuesta1

Aunque definitivamente siento el dolor de DoubleSharp (acabo de encontrarme con este problema también), la respuesta de DoubleSharp aquí no debería usarse (no es segura). El problema aquí es que el sftp interno de sshd se ejecuta antes de que se pueda ejecutar /usr/sbin/jk_chrootsh, LO CUAL DEBE EJECUTARSE POR RAZONES DE SEGURIDAD. Entonces, todo lo que necesita hacer para solucionar este problema es asegurarse de que su archivo /etc/ssh/sshd_config tenga esta línea...

Subsystem sftp /usr/lib/openssh/sftp-server

... y NO esta línea ...

Subsystem sftp internal-sftp

Y también asegúrese de no hacer ninguna coincidencia de usuario/grupo en este archivo. La gran idea aquí es que si va a utilizar jailkit para poner en cuarentena a los usuarios en un sistema Linux, entonces debe forzar a todos los usuarios a pasar por /usr/sbin/jk_chrootsh, que puede activar su propia funcionalidad sftp si es necesario.

Después de realizar los cambios en /etc/ssh/sshd_config, asegúrese de reiniciar sshd (el método puede variar según su sistema).

Respuesta2

Me encantaría que lo corrigieran si hay problemas con esto, pero la siguiente configuración parece haber funcionado.

Cambió el usuario en /etc/passwd(no /var/jail/etc/passwd) que había sido modificado por jailkit:

Originaltestuser:503:503::/var/jail/./home/testuser:/usr/sbin/jk_chrootsh

Modificadotestuser:503:503::/home/testuser:/bin/bash

Configuración agregada a /etc/ssh/sshd_config:

Match Group testuser
        ChrootDirectory /var/jail/

Ahora, al iniciar sesión a través de SSHo, SFTPel usuario está limitado a /var/jaily debajo y de forma predeterminada el directorio de inicio en/var/jail/home/testuser

información relacionada