ANHQV / septiembre 25, 2023 / 3 min de lectura / 👁 15 visitas

Instalación de servidor SFTP en Ubuntu

Instalación de servidor SFTP en Ubuntu

Voy a mostrar la manera de instalar un servidor SFTP en una maquina con Ubuntu 22. Para el acceso al servidor SFTP se puede utilizar un cliente FTP como Filezilla.

El servicio se puede configurar de 2 formas, la habitual en la que se le da acceso a una carpeta raíz del servidor y en función a los permisos que se tengan en esas carpetas se podrá acceder, se podrán listar, crear, modificar o borrar archivos, todo esto en función de los permisos.

La otra opción es acceder en modo «enjaulado«. Este modo lo que permite es que los usuarios accedan como carpeta raíz, solo a la carpeta que tengan configurada.

Para configurar en un servidor de Ubuntu el servicio SFTP en modo «enjaulado», lo primero es crear la estructura de carpetas.

mkdir /ruta/de/la/carpeta

Después de crear las carpetas para asegurar conviene dar permisos root a las mismas para que no de error cuando se accede por FTP

sudo chown root:root /ruta/de/la/carpeta

Después ya empezamos con la instalación del servidor SFTP

sudo apt update

sudo apt install ssh

Para editar el fichero de configuración:

sudo nano /etc/ssh/sshd_config

El fichero tiene muchas opciones, mas abajo dejo un ejemplo de un fichero de configuración donde esta configurado todo para el uso con varios usuarios. La parte mas importante para el enjaulamiento es esta:

Subsystem sftp internal-sftp
Match user usuario1
ChrootDirectory /var/sftp/usuario1
ForceCommand internal-sftp
AllowTcpForwarding no
PasswordAuthentication yes
PermitRootLogin no

En esta parte puedes ver que el Match user es el usuario1 y que el usuario1 tiene como carpeta raíz la carpeta usuario1 que está dentro de /var/sftp. Esto mismo hay que hacerlo para cada usuario y poner la carpeta raíz donde debe acceder. Lo mejor es que miréis en el fichero de ejemplo para que lo veáis completado.

De esta forma los usuarios solo pueden acceder a las carpetas que designemos y los tenemos enjaulados a ellas sin poder moverse fuera.

Una vez creado todo, recuerda reiniciar el servicio.

sudo systemctl restart ssh

FICHERO DE EJEMPLO SSH_CONFIG

  GNU nano 6.2                                                                                 /etc/ssh/sshd_config *                                                                                         
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

# override default of no subsystems
#Subsystem      sftp    /usr/lib/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       PermitTTY no
#       ForceCommand cvs server

Subsystem sftp internal-sftp
Match user usuario1
ChrootDirectory /var/sftp/usuario1
ForceCommand internal-sftp
AllowTcpForwarding no
PasswordAuthentication yes
PermitRootLogin no

Match user usuario2
ChrootDirectory /var/sftp/usuario2
ForceCommand internal-sftp
AllowTcpForwarding no
PasswordAuthentication yes
PermitRootLogin no

Match user usuario3
ChrootDirectory /var/sftp/usuario3
ForceCommand internal-sftp
AllowTcpForwarding no
PasswordAuthentication yes
PermitRootLogin no

Match user usuario4
ChrootDirectory /var/sftp/usuario4
ForceCommand internal-sftp
AllowTcpForwarding no
PasswordAuthentication yes
PermitRootLogin no

¿Te ha gustado este artículo?

unpokitodxfavor

Propietario de aquinohayquienviva.es, web de noticias relacionadas con la ciencia, tecnología, y cultura en general.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Resuelve la operación para enviar el comentario * Time limit is exhausted. Please reload the CAPTCHA.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.