Como prometimos en otro post, aquí
está una pequeña explicación de cómo instalar y configurar nuestro propio
servidor SFTP y así poder enviar archivos de forma segura por internet desde
cualquier parte del mundo.
Para los que no conozcan esta forma de transmisión de archivos cliente servidor, recientemente publicamos dos post con una pequeña explicación de cómo funciona la comunicación entre el cliente y el server. Hay que tener en cuenta que se explica el funcionamiento de FTP y no de SFTP. Si intentamos capturar los paquetes salientes de nuestro PC de una comunicación con este protocolo, veremos que esta codificado, imposibilitando el entendimiento sencillo de SFTP. Pero estos post sí que nos dan una idea de su arquitectura de funcionamiento.
También en otro post ya publicado instalábamos y configurábamos un servidor SSH. Pues bien, si queremos usar un acceso remoto seguro como es SSH, también necesitaremos una forma segura de descargar y subir archivos. Por esto, SSH también trae un server SFTP con lo que solo necesitaremos seguir los pasos del post anterior para instalar el servidor SFTP.
La configuración de seguridad es la realizada para el servidor SSH, pero se puede realizar varios cambios que aumentaran la seguridad.
Para la configuración explicita de este servidor, primero crearemos un grupo de usuarios con acceso SFTP
Con el fin de ejemplificar la configuración, se crea un grupo y un usuario en el sistema. Además de sus directorios de la siguiente manera:
Creamos el grupo usuarios sftp y el usuario usuario1 como sigue:
sudo groupadd usuariossftp
sudo useradd -g usuariossftp -s /bin/false -d /home/usuariossftp/usuario1 usuario1
sudo passwd usuario1
Creamos un directorio jaula para el grupo usuario sftp y un directorio jaula para el usuario usuario1 específicamente:
sudo mkdir /home/usuariossftp
sudo mkdir /home/usuariossftp/usuario1
Cambiamos los permisos de los directorios a 755 con los siguientes comandos:
sudo chmod 755 /home/usuariossftp
sudo chmod 755 /home/usuariossftp/usuario1
Para los que no conozcan esta forma de transmisión de archivos cliente servidor, recientemente publicamos dos post con una pequeña explicación de cómo funciona la comunicación entre el cliente y el server. Hay que tener en cuenta que se explica el funcionamiento de FTP y no de SFTP. Si intentamos capturar los paquetes salientes de nuestro PC de una comunicación con este protocolo, veremos que esta codificado, imposibilitando el entendimiento sencillo de SFTP. Pero estos post sí que nos dan una idea de su arquitectura de funcionamiento.
También en otro post ya publicado instalábamos y configurábamos un servidor SSH. Pues bien, si queremos usar un acceso remoto seguro como es SSH, también necesitaremos una forma segura de descargar y subir archivos. Por esto, SSH también trae un server SFTP con lo que solo necesitaremos seguir los pasos del post anterior para instalar el servidor SFTP.
La configuración de seguridad es la realizada para el servidor SSH, pero se puede realizar varios cambios que aumentaran la seguridad.
Para la configuración explicita de este servidor, primero crearemos un grupo de usuarios con acceso SFTP
Con el fin de ejemplificar la configuración, se crea un grupo y un usuario en el sistema. Además de sus directorios de la siguiente manera:
Creamos el grupo usuarios sftp y el usuario usuario1 como sigue:
sudo groupadd usuariossftp
sudo useradd -g usuariossftp -s /bin/false -d /home/usuariossftp/usuario1 usuario1
sudo passwd usuario1
Creamos un directorio jaula para el grupo usuario sftp y un directorio jaula para el usuario usuario1 específicamente:
sudo mkdir /home/usuariossftp
sudo mkdir /home/usuariossftp/usuario1
Cambiamos los permisos de los directorios a 755 con los siguientes comandos:
sudo chmod 755 /home/usuariossftp
sudo chmod 755 /home/usuariossftp/usuario1
Y añadimos una carpeta dentro del 'home' de usuario1 para que este pueda subir sus archivos:
mkdir /home/usuariossftp/usuario1/archivos
chown usuario1:usuariossftp /home/usuariossftp/usuario1/archivos
En un
próximo pos seguiremos con la configuración de SFTP realizando el enjaulado de
SFTP
Ya
realizados los pasos explicados en la primera parte de este tema,
podemos continuar con lo desarrollado en este post.
Lo más seguro es que al montar el servidor SFTP no nos interese que los usuarios que accedan a este servicio puedan leer y descargarse todos los archivos de nuestro sistema. Para evitar esto, realizaremos un enjaulado SFTP, con lo que limitaremos la navegación del cliente a unos determinados ficheros.
Para restringir esto debemos usar las directivas ForceCommand y ChrootDirectory en el archivo de configuración sshd_config, que se encuentra en /etc/ssh/sshd_config.
Lo más seguro es que al montar el servidor SFTP no nos interese que los usuarios que accedan a este servicio puedan leer y descargarse todos los archivos de nuestro sistema. Para evitar esto, realizaremos un enjaulado SFTP, con lo que limitaremos la navegación del cliente a unos determinados ficheros.
Para restringir esto debemos usar las directivas ForceCommand y ChrootDirectory en el archivo de configuración sshd_config, que se encuentra en /etc/ssh/sshd_config.
Primero hay que cambiar, la línea en /etc/ssh/sshd_config,
Subsystem sftp /usr/lib/openssh/sftp-server escribiendo en su lugar:
Subsystem sftp internal-sftp
Puede restringirse el servicio a usuarios o a grupos de usuarios, de modo que si se requiere aplicar
el enjaulado al usuario1 usamos la directiva Match como sigue:
UsePAM yes
Match user usuario1
ChrootDirectory /home/usuariossftp/usuario1
ForceCommand internal-sftp
Esto se coloca después de la línea Subsystem
El enjaulado del grupo usuariossftp se hace de manera similar (de esta forma aparecerán en el directorio raíz todos los usuarios que hayamos creado):
Match group usuariossftp
ChrootDirectory /home/usuariossftp
ForceCommand internal-sftp
Así, todos los usuarios que pertenezcan a este grupo irán a la jaula especificada en ChrootDirectory.
Para que la configuración tome efecto, restablezca ssh con el comando:
sudo /etc/init.d/ssh restart
Para finalizar una advertencia. Si antes en la configuración de ssh as introducido una línea tipo AllowUsers debes ponerla siempre antes de la línea Subsystem. Sino al reiniciar el servicio ssh te dará un error de esa línea.
Ya
realizados los pasos explicados en la primera parte de este tema,
podemos continuar con lo desarrollado en este post.
Lo más seguro es que al montar el servidor SFTP no nos interese que los usuarios que accedan a este servicio puedan leer y descargarse todos los archivos de nuestro sistema. Para evitar esto, realizaremos un enjaulado SFTP, con lo que limitaremos la navegación del cliente a unos determinados ficheros.
Para restringir esto debemos usar las directivas ForceCommand y ChrootDirectory en el archivo de configuración sshd_config, que se encuentra en /etc/ssh/sshd_config.
Lo más seguro es que al montar el servidor SFTP no nos interese que los usuarios que accedan a este servicio puedan leer y descargarse todos los archivos de nuestro sistema. Para evitar esto, realizaremos un enjaulado SFTP, con lo que limitaremos la navegación del cliente a unos determinados ficheros.
Para restringir esto debemos usar las directivas ForceCommand y ChrootDirectory en el archivo de configuración sshd_config, que se encuentra en /etc/ssh/sshd_config.
Primero hay que cambiar, la línea en /etc/ssh/sshd_config,
Subsystem sftp /usr/lib/openssh/sftp-server escribiendo en su lugar:
Subsystem sftp internal-sftp
Puede restringirse el servicio a usuarios o a grupos de usuarios, de modo que si se requiere aplicar
el enjaulado al usuario1 usamos la directiva Match como sigue:
UsePAM yes
Match user usuario1
ChrootDirectory /home/usuariossftp/usuario1
ForceCommand internal-sftp
Esto se coloca después de la línea Subsystem
El enjaulado del grupo usuariossftp se hace de manera similar (de esta forma aparecerán en el directorio raíz todos los usuarios que hayamos creado):
Match group usuariossftp
ChrootDirectory /home/usuariossftp
ForceCommand internal-sftp
Así, todos los usuarios que pertenezcan a este grupo irán a la jaula especificada en ChrootDirectory.
Para que la configuración tome efecto, restablezca ssh con el comando:
sudo /etc/init.d/ssh restart
Para finalizar una advertencia. Si antes en la configuración de ssh as introducido una línea tipo AllowUsers debes ponerla siempre antes de la línea Subsystem. Sino al reiniciar el servicio ssh te dará un error de esa línea.
Fuente: nosolounix
No hay comentarios:
Publicar un comentario