Muchas veces es necesario dar acceso a usuarios externos a nuestros sistemas para que puedan a los entornos de trabajo. En algunos casos para obtener ficheros o subirlos, pero en otros para trabajar conjuntamente con nuestros equipos.  Hoy os comentamos una posible solución que se puede adaptar a varios situaciones.  

Para comenzar os planteamos nuestro problema: un usuario externo a la empresa requiere acceder a varios entornos de desarrollo de un proyecto.

La solución que hemos adoptado y que vamos a comentar es la siguiente:

Lo primero el usuario debe acceder por VPN a nuestra red con un certificado que podemos controlar y dar de baja en cualquier momento. La segunda medida, que es la que vamos a desarrollar, consiste en restringir el acceso únicamente mediante SFTP a los entonos de desarrollo y limitar el acceso únicamente a un directorio de trabajo que vamos a definir nosotros.

Partimos de un usuario creado en LDAP y con acceso PAM a los entornos, usuario: pepe

Modificamos la configuración del servidor de SSH. Editamos el fichero /etc/ssh/sshd_config   añadimos las siguientes líneas al final

[…]

Match User pepe

    ChrootDirectory /home/pepe

    AllowTCPForwarding no

    X11Forwarding no

    ForceCommand internal-sftp

Match

A continuación, reiniciamos el servidor SSH  /etc/init.d/ssh restart

Para facilitar el acceso a los entornos de desarrollo, utilizamos el comando mount –bin para facilitarle el acceso dentro de su directorio único a los distintos directorios de desarrollo.

# cd /home/pepe

# mkdir entorno1

# mount –bind /directoriodedesarrollo/entorno1 entorno1

Por último, comprobamos que los permisos del directorio   chmod 755 /home/pepe

Ahora el usuario podrá acceder mediante SFTP y trabajar en los entornos de desarrollo de forma segura.

Fuentes: http://www.howtoforge.com/chrooted-ssh-sftp-tutorial-debian-lenny |