sFTP con chroot en debian Lenny.

10 septiembre 2009 | General, Software libre

El problema era un sistema con varios dominios virtuales a los que los usuarios debian subir los archivos a publicar. La solucion mas obvia era montar un servidor FTP pero me parece que es un protocolo un poco antiguo e inseguro (a pesar de que lo anterio es cierto la verdad es que nunca he configurado uno y me daba pereza mirarlo :-) ). Y la mejor solucion es sFTP.

shh2

El requisito principal para poder montar el sistema es contar con una version de OpenSSH igual o superio a la 5.0 (la actual en Lenny).

El primer paso es configurar el servidor OpenSSH para que permita accesos por sFTP, para ello hay que editar el archivo /etc/ssh/sshd_config, buscar la linea que indica:

Subsystem sftp /usr/lib/openssh/sftp-server

Y cambiarla por la siguiente:

Subsystem sftp internal-sftp

Despues debemos añadir las configuraciones de cada usuario de la siguiente manera:

Match user sftpuser
ChrootDirectory /var/www/vhosts/sftpuser/
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp

Hay que prestar atencion a que el directorio donde colocaremos el chroot tenga asignados como propietario y grupo a root, si no obtendremos el siguiente error:

bad ownership or modes for chroot directory component “/var/www/vhosts/sftpuser/”

Una vez hecho esto reiniciamos el servidor SSH.

Ahora vamos a crear el usuario con el que poder logearnos:

# useradd sftpuser

Modificamos la shell que tiene asignada por:

# usermod -s /usr/lib/openssh/sftp-server

La home sera la raiz del chroot asi que la configuramos asi:

# usermod -d  / sftpuser

Para testear si todo esta correcto podemos reiniciar el servidor SSH en modo debug:

/etc/init.d/ssh restart -ddd

Tratar de conectarnos:

sftp sftpuser@localhost

Y verificar los errores si los hubiera.

Sin comentarios »


Responder