SCPONLY – Shell limitada para transferencia segura de ficheros

Scponly es una Shell alternativa para los administradores de sistemas que desean dar acceso remoto a usuarios para leer y escribir archivos locales sin proporcionar ningún tipo de privilegio de ejecución remota.

Es como decir que se trata de una envoltorio dónde se permite el testeo.

Su uso mas común, es la creación de una cuenta semi-pública al estilo cuenta anónima de ftp. Esto permite a un administrador compartir archivos de la misma forma que una configuración ftp anónima empleando la protección que ofrece ssh. Esto es especialmente útil cuando se realizán conexiones atravesando redes públicas, ya que en las conexiones ftp el formato de transferencia es texto plano.

Instalando scponly

Para ello, abriremos el terminal y teclearemos:

$ sudo apt-get install scponly

Configurando scponly

Primero de todo deberemos editar el fichero /etc/shells para incluir nuestra shell scponly. Para ello deberemos escribir lo siguiente, de nuevo, en un terminal:

$ sudo gedit /etc/shells

Deberemos situarnos en la última línea e introducir la siguiente linea:

$ /usr/bin/scponly

Terminado este punto, ahora deberemos crear un usuario para la shell de scponly. Este permitirá que el usuario pueda utilizar la cuenta SCP para la transferencia de archivos, pero no permitirá el acceso a la shell interactivo. Para ello:

$ sudo useradd -d /home/scponly/ -s /usr/bin/scponly -p [password] [nombre_usuario]

Chroot SFTP – Creando la gabía para las conexiones scponly

En este momento debemos reconfigurar scponlyc para poder activar la jaula. La jaula, nos permite, crear un entorno que simula el sistema operativo “completo” dentro de un directorio, esto hace que el usuario que se conecte parezca que este en el directorio raíz del sistema, con las aplicaciones disponibles que nosotros creamos convenientes, pero que realmente, esta dentro de un directorio /home/user/ que hayamos indicado, manteniendo de este modo, nuestros ficheros del sistema a salvo. Para ello abriremos un terminal y teclearemos:

$ sudo dpkg-reconfigure -plow scponly

Responderemos “Si/Yes“. Ahora debemos indicar que se use la jaula para el usuario scponly mediante el script setup_chroot incluido para ello. En caso de no haber creado el usuario para la conexión, el script lo creará por nosotros.

Por lo que, ahora, en un terminal, teclearemos lo siguiente:

$ cd /usr/share/doc/scponly/setup_chroot
$ sudo gunzip setup_chroot.sh.gz
$ sudo chmod +x setup_chroot.sh
$ sudo ./setup_chroot.sh

Si aceptamos las respuestas por defecto, se usará/configurará el usuario “scponly” y se creara su carpeta de inicio. Al final, deberemos especificar una contraseña para scponly.

NOTAS: scponly tiene un bug que no permite trabajar en la box. Para arreglar dicho problema deberemos crear el dispositivo /dev/null en el directorio chroot (jaula) de scponly (creado por defecto /home/scponly). La forma para realizarlo es:

$ sudo -i
$ cd /home /scponly
$ mkdir /home/scponly/dev
$ mknod -m 666 /home/scponly/dev/ null c 1 3

Terminado esto, para realizar la conexión deberemos realizar desde un terminal/consola:

$ sftp scponly@linuxtest

Sintaxis:

$ sftp [usuario]@[nombre_servidor/Ip_Servidor]

Si aparece el login, habremos terminado con éxito.

Página del proyecto: http://www.blinklist.com/open/open.php?id=202112

7 comentarios to “SCPONLY – Shell limitada para transferencia segura de ficheros”

  1. Insane Says:

    Muy buen articulo felicidades.

  2. Luis Says:

    Hola,
    al ejecutar mknod -m 666 /home/scponly/dev/ null c 1 3
    me da este error:

    mknod: operando extra `3′
    Pruebe `mknod –help’ para más información.

    ¿Cómo lo tengo que escribir?

    Saludos

    P.D.: Hay un error en el artículo y pone mknod -m todo junto.

  3. cristiansan Says:

    Muchas gracias Insane, lo importante es que os haya servido a vosotros. Gracias a ti por el comentario y por la visita😉

    Luis, mira en este link: http://es.tldp.org/Paginas-manual/man-pages-es-1.28/man2/mknod.2.html, aquí podrás comprobar el cod. de error que aparece y ver a que es debido.
    Efectivamente -m va separado, disculpa el error. lo que no sabria decirte ahora es porque te esta fallando, en cuando tenga un momento lo miraré con mas calma haber si puedo echarte un cable.

    saludos
    cristiansan

  4. Omar Says:

    El comando correcto es:

    mknod -m 666 /home/scponly/dev/null c 1 3

    le faltaba separar el -m y null no estaba junto de la /

    asi jala bien, por cierto, sigo sin poder conectarme a mi servidor por sftp…

  5. cristiansan Says:

    toda la razón del mundo, lo modifico.

    muchas gracias Omar.

    saludos

  6. Rafa Says:

    hola que tal escribo en el blog por que tengo un test acerca de los comandos de linux y no soy experto y algunos comando s los desconosco….quisiera saber si alguien me puede ayudar a contestar el test, aqui lo dejo

    Q27) Nombre del comando para enviar correo electronico

    Q28) Comando que permite descargar mensajes del servidor a un host local

    Q29) Comando que permite mostrar recursos exportador por un servidor NFS

    Q30) Comando que se usa para montar recursos exportados NFS

    Q31) Nombre del comando que desmonta recursos NFS

    Q32) Nombre del comando usado para mostrar recursos Samba

    Q33) Comando que monta recursos Samba

    Q34) Comando que desmonta recursos Samba

    Q35) Comando y opcion que instala un paquete rpm

    Q36) Comando y opcion que desinstala un paquete rpm

    Q37) Comando y opcion que consulta un paquete rpm

    Q38) Comando para envio de paquetes ICMP

    Q39) Comando que permite manipular la tabla de ruteo

    Q40) Comando que traza la ruta que siguen los paquetes para llegar a su destino

    Q41) Comando que muestra las estadisticas y las conexiones de un host

    Q42) Comando que muestra los servidores DNS y los nombres de dominio

    GRACIAS PRO SU AYUDA….GURUS LINUX..

  7. Enjaular usuario en sus directorios para SCP y SFTP por medio de SSH @ Amado Urias G. Says:

    […] https://linuxsan.wordpress.com MiniComo Linux […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: