En esta guía, le mostraremos cómo configurar un servidor SFTP usando VSFTPD en Ubuntu 20.04 Focal Fossa. Si aún no lo ha hecho, consulte nuestro tutorial sobre Cómo configurar un servidor FTP en Ubuntu 20.04 Focal Fossa con VSFTPD, ya que este artículo sobre SFTP asume que ha aplicado la configuración cubierta en la guía de FTP.
FTP es un gran protocolo para acceder y transferir archivos, pero tiene la desventaja de ser un protocolo de texto claro. En otras palabras, no es seguro usarlo a través de una conexión a Internet, ya que sus credenciales y datos se transmiten sin encriptación. La 'S' en SFTP significa 'Seguro' y canaliza el protocolo FTP a través de SSH, proporcionando el cifrado necesario para establecer una conexión segura.
En este tutorial aprenderás:
- Cómo instalar y configurar el demonio SSH
- Cómo configurar una cuenta de usuario y un grupo SFTP
- Cómo conectarse al servidor SFTP a través de la línea de comandos
- Cómo conectarse al servidor SFTP a través de la línea de comandos
Cómo configurar el servidor SFTP en Ubuntu 20.04 Focal Fossa Linux
Requisitos de software y convenciones de línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | Ubuntu 20.04 Focal Fossa instalado o actualizado |
Software | VSFTPD, demonio SSH |
Otro | - Tenga VSFTPD instalado y configurado como se explica en Cómo configurar un servidor FTP en Ubuntu 20.04 Bionic Beaver con VSFTPD
- Acceso privilegiado a su sistema Linux como root o a través de
sudo comando.
|
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Configurar demonio SSH
- SFTP requiere SSH, por lo que si el servidor SSH aún no está instalado en su sistema, instálelo con el siguiente comando:
$ sudo apt install ssh
- Una vez que se instala SSH, debemos realizar algunos cambios en el archivo de configuración de SSHD. Use nano o su editor de texto favorito para abrirlo:
$ sudo nano /etc/ssh/sshd_config
- Desplácese hasta la parte inferior del archivo y agregue las siguientes 5 líneas al final:
Match group sftp
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
archivo de configuración SSH
Las líneas anteriores permitirán a los usuarios en el sftp
group para acceder a sus directorios de inicio a través de SFTP, pero les niega el acceso SSH normal, por lo que nunca pueden acceder a un shell. Después de pegar esas líneas, guarde y cierre el archivo de configuración.
- Reinicie el servicio SSH para que estos nuevos cambios surtan efecto:
$ sudo systemctl restart ssh
Crear cuenta de usuario SFTP
Ahora necesitamos crear cuentas de usuario para cualquier persona a la que deseemos otorgar acceso SFTP.
- Cree un nuevo grupo de usuarios llamado
sftp
. Todos nuestros usuarios de SFTP deberán pertenecer a este grupo.$ sudo addgroup sftp
Adding group `sftp' (GID 1002) ...
Done.
- Luego, cree un nuevo usuario. Simplemente llamaremos al nuestro
sftpuser
en este ejemplo. También asegúrese de agregar este usuario al sftp
grupo.$ sudo useradd -m sftpuser -g sftp
- Establecer una contraseña para el
sftpuser
recién creado :$ sudo passwd sftpuser
New password:
Retype new password:
passwd: password updated successfully
- Por último, concedamos acceso completo al usuario en su propio directorio de inicio, pero negemos el acceso al directorio a todos los demás usuarios del sistema:
$ sudo chmod 700 /home/sftpuser/
Nuestra configuración de SFTP está completa; ahora podemos iniciar sesión para asegurarnos de que todo funciona correctamente.
Inicie sesión en SFTP mediante la línea de comandos
Puede iniciar sesión a través de SFTP con el nombre de host o la dirección IP de su sistema. Para probar desde el mismo sistema en el que acaba de configurar SFTP, conectándose a la dirección de loopback 127.0.0.1
funcionará bien.
- Abra una terminal e inicie sesión usando el
sftp
comando:$ sftp [email protected]
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:9HZflwSB64J+SELGLczOuv3f06gT/3ZaZAOezVZn2XQ.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
[email protected]'s password:
Connected to 127.0.0.1.
sftp>
- Vaya al directorio de inicio del usuario, ya que es el único lugar donde tiene permisos. Aquí, intente crear un nuevo directorio para confirmar que todo funciona según lo previsto:
sftp> cd sftpuser
sftp> mkdir sftp-test
sftp> ls
sftp-test
sftp>
Iniciar sesión en SFTP usando GUI
Si prefiere usar una aplicación GUI para conectarse a su servidor SFTP, hay muchas opciones disponibles. Puede utilizar su cliente SFTP preferido o el integrado en Ubuntu de forma predeterminada:el administrador de archivos Nautilus.
- Abra el administrador de archivos Nautilus desde el menú Aplicaciones.
- Haga clic en "Otras ubicaciones" e ingrese
sftp://127.0.0.1
en el cuadro "Conectar al servidor" en la parte inferior de la ventana y haga clic en conectar.
Conéctese al servidor SFTP con Nautilus - Ingrese las credenciales de la cuenta SFTP que configuramos anteriormente y haga clic en conectar.
Ingrese las credenciales de la cuenta SFTP para conectarse - Después de una conexión exitosa, podrá abrir su directorio de inicio y ver el directorio de prueba que creó anteriormente.
Conexión exitosa al servidor SFTP
Conclusión
En el artículo Servidor FTP, vimos cómo usar VSFTPD para crear un servidor FTP en Ubuntu 20.04 Focal Fossa. También cubrimos cómo usar la línea de comando y la GUI de Ubuntu para conectarse al servidor FTP.
En este artículo, vimos cómo proteger el protocolo FTP configurando SFTP en nuestro sistema. Siguiendo las instrucciones de esta guía, las computadoras en su red local o a través de Internet pueden acceder de forma segura a su sistema para almacenar y recuperar archivos, ya sea a través de la línea de comandos o su cliente SFTP preferido.