«Crear un usuario SFTP enjaulado (chroot) bajo Ubuntu» no es un post excesivamente original puesto que es algo que la gente efectúa hasta la saciedad pero por mi mala memoria, reescribo con mi jerga lo que otros ya hicieron.
Esta tarea surge de la necesidad de crear un acceso SFTP a un directorio de imágenes de un Virtual Host.
Un Ubuntu 10.04, tenía que crear un acceso SFTP al usuario neodoo@neodoo.es al directorio /var/www/vhost/www.neodoo.es/www/images para poder subir imágenes a nuestro website.
Creamos el usuario neodoo@neodoo.es apuntando el home al directorio de imágenes
sudo useradd -d /var/www/vhosts/www.neodoo.es/www neodoo@neodoo.es
Le asignamos una contraseña:
sudo passwd neodoo@neodoo.es
Le asignamos el grupo www-data (por defecto ya existe, se utiliza en los Virtual Hosts de Apache).
sudo usermod -g www-data neodoo@neodoo.es
Quitamos la opción de acceso a shell:
usermod -s /bin/false neodoo@neodoo.es
Configuramos el fichero del SSH:
vi /etc/ssh/sshd_config
Comentamos y agregamos lo siguiente:
#Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp internal-sftp
Añadimos al final del fichero lo siguiente:
Match group www-data X11Forwarding no ChrootDirectory %h AllowTcpForwarding no ForceCommand internal-sftp
Reiniciamos el SSH:
/etc/init.d/sshd restart
Hay que tener mucho ojo con los permisos puesto que de lo contrario cuando hagamos un SFTP, el servidor nos cerrará la sesión.
chown root:root /var chown root:root /var/www chown root:root /var/www/vhost chown neodoo@neodoo.es:www-data -R /var/www/vhost/www.neodoo.es chown root:root /var/www/vhost/www.neodoo.es chown root:root /var/www/vhost/www.neodoo.es/www chown root:root /var/www/vhost/www.neodoo.es/www/images
En el fichero /var/log/auth.log puede observarse un mensaje de error en caso de no ajustar correctamente los permisos:
Sep 10 11:45:46 Neodoo sshd[20937]: fatal: bad ownership or modes for chroot directory "/var/www/vhost/www.neodoo.es/www/images"
Para ello, recordar que toda la ruta /var/www/vhost/www.neodoo.es/www/images debe tener permiso de root y así al entrar con el usuario neodoo@neodoo.es vía SSH, estamos enjaulados en este directorio como si fuera el raíz (/).
0 comentarios