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 |