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 |