Cómo instalar sFTPGo en Rocky Linux

sFTPGo es un servidor SFTP altamente configurable con protocolos seguros adicionales como HTTP/S, FTP/S y soporte WebDAV. Te permite crear servidores FTP con varios backends, como sistemas de archivos locales y proveedores de almacenamiento de terceros, como Amazon S3, Google Storage Engine y Azure Blog Storage.

El FTP proporciona una forma segura de enviar y recibir archivos a través de múltiples protocolos. Admite carpetas virtuales, es compatible con backends de bases de datos como SQLite, MariaDB y PostgreSQL, proporciona una API REST, admite autenticaciones de dos factores y mucho más.

En este tutorial, crearemos un servidor FTP seguro con el moderno software de servidor FTP sFTPGo en un servidor Linux Rocky. También aprenderás a activar Webdav en sFTPGo.

Requisitos previos

Necesitarás los siguientes requisitos para completar este tutorial:

  • Un servidor Rocky Linux – Puedes utilizar Rocky Linux v8 o v9.
  • Un usuario no root con privilegios sudo/root habilitados.
  • Un nombre de dominio apuntando a la dirección IP del servidor – especialmente para la producción.

Instalación de sFTPGo

sFTPGo es un software de servidor FTP moderno y completo que admite múltiples protocolos de seguridad como FTP/S, Webdav y HTTP/S. También admite múltiples bases de datos backend que incluyen PostgreSQL, MySQL y SQLite (por defecto).

sFTPGo también puede integrarse con múltiples backends para servir archivos a los usuarios, incluyendo sistemas de archivos locales (que pueden estar encriptados), servicios de almacenamiento en la nube como Google Cloud Storage, Azure Blob Storage y Amazon S3.

Hay varias formas de instalar el sFTPGo en el servidor Rocky Linux. Puedes elegir la que mejor se adapte a tu despliegue.

Instalación mediante DNF

El sFTPGo ofrece su repositorio para múltiples distribuciones de Linux, como Debian, Ubuntu, CentOS/RockyLinux/AlmaLinux.

En Rocky Linux, puedes instalar sFTPGo mediante el gestor de paquetes DNF.

Ejecuta el siguiente comando para añadir el repositorio de sFTPGo a tu servidor Rocky Linux.

ARCH=`uname -m`
curl -sS https://ftp.osuosl.org/pub/sftpgo/yum/${ARCH}/sftpgo.repo | sudo tee /etc/yum.repos.d/sftpgo.repo

Ahora, actualiza y refresca tu repositorio de paquetes mediante el siguiente comando dnf.

sudo dnf update

Una vez instalada la actualización de paquetes, ejecuta el siguiente comando dnf para instalar el paquete sFTPGo.

sudo dnf install sftpgo

Cuando se te pida que confirmes la instalación, introduce Y y pulsa INTRO para continuar.

instalar sftpgo

Además, si se te pide que aceptes las claves GPG del repositorio sFTPGo, vuelve a introducir Y.

confirmar clave gpg

Una vez instalado sFTPGo, ejecuta el siguiente comando para iniciar y activar el servicio«sftpgo«. Esto ejecutará el servicio sFTPGo y permitirá que se ejecute automáticamente al arrancar el sistema.

sudo systemctl start sftpgo
sudo systemctl enable sftpgo

Por último, ejecuta el siguiente comando systemctl para verificar el servicio sFTPGo. Si la instalación se ha realizado correctamente, verás que el servicio FTP se está ejecutando.

sudo systemctl status sftpgo

comprobar servicio sftpgo

Instalación mediante RPM

Otra forma de instalar sFTPGo en el servidor Rocky Linux es descargando el paquete RPM de sFTPGo del repositorio de GitHub e instalándolo mediante el comando RPM.

El sFTPGo proporciona paquetes binarios .deb para los usuarios de Debian/Ubuntu y el paquete binario .rpm para los usuarios de CentOS/RockyLinux.

Descarga el archivo rpm de sFTPGo mediante el siguiente comando wget. La variable «VER» es la última versión del paquete sFTPGo.

En el momento de escribir esto, la última versión de sFTPGo es la v2.3.5. Así que deberías ver el nuevo archivo«sftpgo-2.3.5-1.x86_64.rpm» en tu directorio de trabajo actual.

VER=$(curl -s https://api.github.com/repos/drakkan/sftpgo/releases/latest|grep tag_name | cut -d '"' -f 4 |sed 's/v//g')
wget https://github.com/drakkan/sftpgo/releases/download/v$VER/sftpgo-$VER-1.x86_64.rpm

Tras descargar sFTPGo, ejecuta el siguiente comando para instalar el archivo RPM «sftpgo-2.3.5-1.x86_64.rpm».

sudo rpm -Uvh sftpgo-2.3.5-1.x86_64.rpm

Cuando finalice la instalación, verás una salida como la siguiente:

instalar sftpgo mediante rpm

A continuación, ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio sFTPGo. El servicio debería estar en marcha y también se ejecutará automáticamente durante el arranque del sistema.

sudo systemctl enable sftpgo
sudo systemctl start sftpdgo

Ahora verifica el servicio sFTPGo mediante el siguiente comando systemcyl. Deberías ver que el servicio sFTPGo se está ejecutando en tu sistema Rocky Linux.

sudo systemctl status sftpdgo

comprobar estado sftpgo

Configurar Firewalld

El sFTPGo es un software de servidor FTP que puede utilizarse con múltiples protocolos. Esta flexibilidad permite a los clientes utilizar sus aplicaciones preferidas para acceder a sus archivos.

Los clientes pueden acceder a sus archivos mediante clientes FTP como FileZilla, o utilizando el navegador web mediante el protocolo seguro HTTP/HTTPS, o su gestor de archivos con el protocolo Webdav.

A continuación se indican algunos puertos de sFTPGo que debes abrir para el acceso de clientes y administradores.

Protocol     Port       Access via
-----------------------------------
TCP          8080       HTTP/HTTPS
TCP          2022       SFTP
TCP          8090       Webdav

Ejecuta los siguientes comandos firewall-cmd para añadir los puertos sFTPGo al firewalld.

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=8090/tcp
sudo firewall-cmd --permanent --add-port=2022/tcp

Ahora vuelve a cargar las reglas del cortafuegos utilizando el siguiente comando.

sudo firewall-cmd --reload

Por último, comprueba los puertos sFTPGo y asegúrate de que se han añadido.

sudo firewall-cmd --list-ports

Deberías ver que los puertos para sFTPGo están añadidos.

configurar firewalld

Configurar sFTPGo

Una vez que hayas instalado sFTPgo y configurado Firewalld, deberás configurar la instalación de sFTPGo. Esto incluye habilitar protocolos como HTTP/HTTPS, SFTP y WebDAV. Además, el sFTPGo está protegido mediante certificados SSL.

Antes de configurar sFTPGo, asegúrate de que tienes listos los certificados SSL/TLS. Puedes utilizar SSL gratuito de Letsencrypt.

Edita el archivo de configuración por defecto de sFTPGo «/etc/sftpgo/sftpgo.json» utilizando el editor nano.

sudo nano /etc/sftpgo/sftpgo.json

El SFTP está habilitado por defecto en el sFTPGo, que se ejecutará en el puerto TCP 2022.

Ve a la opción«webdavd» e introduce el puerto«8090«, activa el HTTP, y luego introduce la ruta de los certificados SSL. Además, puedes cambiar la dirección IP para el protocolo webdavd por tu dirección IP interna.

  "webdavd": {
    "bindings": [
      {
        "port": 8090,
        "address": "",
        "enable_https": true,
        "certificate_file": "/etc/letsencryt/live/sftp.hwdomain.io/fullchain.pem",
        "certificate_key_file": "/etc/letsencryt/live/sftp.hwdomain.io/privkey.pem",
        "min_tls_version": 12,
        "client_auth_type": 0,
        "tls_cipher_suites": [],
        "prefix": "",
        "proxy_allowed": [],
        "client_ip_proxy_header": "",
        "client_ip_header_depth": 0
      }
    ],

A continuación, pasa a la opción«httpd» y activa el soporte seguro HTTPS, después introduce la ruta de los certificados SSL. También puedes especificar la dirección IP de la opción «httpd» si tienes varias direcciones IP.

  "httpd": {
    "bindings": [
      {
        "port": 8080,
        "address": "",
        "enable_web_admin": true,
        "enable_web_client": true,
        "enabled_login_methods": 0,
        "enable_https": true,
        "certificate_file": "/etc/letsencryt/live/sftp.hwdomain.io/fullchain.pem",
        "certificate_key_file": "/etc/letsencryt/live/sftp.hwdomain.io/privkey.pem",
        "min_tls_version": 12,
        "client_auth_type": 0,
        "tls_cipher_suites": [],
        "proxy_allowed": [],
        "client_ip_proxy_header": "",
        "client_ip_header_depth": 0,
        "hide_login_url": 0,
        "render_openapi": true,
        "web_client_integrations": [],

Guarda el archivo y sal del editor si has terminado.

Por último, reinicia el servicio sFTPGo para aplicar los nuevos cambios mediante el comando systemctl que aparece a continuación.

sudo systemctl restart sftpgo

Ahora tienes el sFTPGo funcionando en el servidor Linux Rocky. Y has habilitado varios protocolos para clientes, que incluyen el SFTP (habilitado por defecto), el WebDAV y el httpd. Todos estos protocolos también están protegidos mediante certificados SSL.

Configurar el usuario sFTPGo

Una vez finalizada la instalación de sFTPGo, deberás configurar el usuario administrador a través del protocolo «httpd» que se ejecuta en el puerto 8080 por defecto. Además, crearás un nuevo usuario en sFTPGo a través del panel de administración.

Abre el navegador web y visita la URL del nombre de dominio de tu instalación de sFTPGo (es decir: https://sftp.hwdomain.io «8080/).

En la primera pantalla, se te pedirá que crees un nuevo usuario administrador para sFTPGo. Introduce los datos del usuario admin y la contraseña, y haz clic en«Crear admin«.

crear usuario administrador sftpgo

Ahora deberías ver el panel de administración de sFTPGo.

panel de administración de sftpgo

A continuación, crearás un nuevo grupo para tus usuarios de sFTPGo.

Haz clic en el menú«Grupos» de la izquierda, introduce el nombre y la descripción del nuevo grupo y haz clic en «Enviar«. En este ejemplo, crearás un nuevo grupo con el nombre«gestor«, y además podrás añadir configuraciones adicionales como ACLs (Listas de Control de Acceso) y establecer cuotas de disco y ancho de banda específicas para cada grupo.

crear nuevo grupo

Una vez creado el grupo, haz clic en el menú«Usuarios» de la parte izquierda para crear un nuevo usuario.

Introduce el nombre de usuario y la contraseña, así como el grupo, y haz clic en«Enviar» para continuar. En este ejemplo, crearás un nuevo usuario «alice«con el grupo principal«administrador«.

crear nuevo usuario

Ahora, deberías ver la lista de usuarios en el panel de administración de sFTPGo.

lista de usuarios

Ahora ya has creado un usuario sFTPGo. A continuación, aprenderás cómo los usuarios pueden acceder o subir archivos a sFTPGo a través de varios clientes, que incluyen el Cliente Web de sFTPGo (a través de httpd), FileZilla (a través de SFTP) o utilizando un gestor de archivos (a través de Webdav).

Conexión mediante SFTP y FileZilla

En el primer ejemplo, aprenderás a conectarte como cliente al servidor sFTPGo mediante el protocolo FileZilla y SFTP. Así que, antes de empezar, asegúrate de que el cliente FTP FileZilla está instalado en tu ordenador local.

Ahora abre la aplicación FileZilla y haz clic en el menú«Archivo» y selecciona«Administrador de sitios», o simplemente pulsa«Ctrl+S«.

Haz clic en «Nuevo sitio» e introduce los datos de usuario, contraseña y la dirección IP o nombre de dominio del servidor SFTP y el puerto.

  • Protocolo: SFTP – Protocolo SSH de transferencia de archivos
  • Host: sftp.hwdomain.io
  • Puerto: 2022
  • Tipo de inicio de sesión: Normal
  • Usuario: alice
  • Contraseña: TuContraseña

Haz clic en«Conectar» para confirmar y conectarte al servidor SFTP.

conectarse a través de FileZilla

Ahora se te pedirá que confirmes el certificado de tu servidor SFTP, haz clic en «Aceptar» para confirmar.

confirmar certificados

Después de conectarte mediante el protocolo SFTP, puedes intentar subir el archivo a tu servidor sFTPGo. El ejemplo siguiente muestra que el archivo ISO se sube al servidor sFTPGo a través del cliente FileZilla.

subir por sftp

Acceder a través del Cliente Web de sFTPGo

Por defecto, sFTPGo proporciona a los clientes acceso a través del WebClient que se ejecuta en el puerto«httpd» 8080. Con el WebClient de sFTPGo, puedes subir y gestionar tus archivos, configurar una autenticación adicional de dos factores y compartir archivos entre usuarios dentro del servidor sFTPGo.

Abre el navegador web y visita el nombre de dominio de tu instalación de sFTPGo con el puerto httpd«8080» y la ruta así (es decir: https://sftp.hwdomain.io:8080/web/client/login). Deberías obtener la página de inicio de sesión para el acceso del cliente.

Introduce el nombre de usuario«alice» y la contraseña, y haz clic en«Iniciar sesión«.

conectar mediante sftpgo

Si el nombre de usuario y la contraseña son correctos, deberías ver el panel de usuario de sFTPGo. Además, podrás ver el archivo ISO que acabas de subir antes a través de FileZilla y SFTP.

aplicación web sftpgo

También puedes subir archivos a través del WebClient y añadir autenticación adicional de dos factores o compartir archivos con otros usuarios a través del WebClient de sFTPGo.

Conectarse a sFTPGo mediante Webdav

Para conectarte mediante el protocolo WebDAV, puedes utilizar el gestor de archivos de tu ordenador. Para Windows, puedes utilizar File Explored; para los usuarios de Linux puedes utilizar Nautilus, Thunar o Dolphin, y para los usuarios de macOS, puedes utilizar el gestor de archivos oficial.

Puedes utilizar la dirección WebDAV del gestor de archivos que estés utilizando, como «davs://sftp.hwdomain.io:8090/». El «davs» es la versión segura del protocolo Webdav «dav».

protocolo webdav

Ahora se te pedirá el nombre de usuario y la contraseña. Introduce el usuario alice con tu contraseña, y luego haz clic en«Conectar«.

introducir usuario contraseña webdav

Una vez conectado, deberías ver que el protocolo Webdav se añade a la sección Red. En este ejemplo, puedes ver el archivo ISO subido mediante el protocolo SFTP y FileZilla.

conectar vía webdav

Conclusión

En este tutorial, has configurado un servidor FTP moderno y seguro con sFTPGo en un servidor Linux Rocky. También has configurado el sFTPGo con varios protocolos, SFTP, httpd y Webdav, y has habilitado las conexiones seguras.

Al final de este tutorial, también has aprendido a conectarte al servidor sFTPGo a través de múltiples aplicaciones cliente, utilizando FileZilla con el protocolo SFTP, utilizando el WebClient de sFTPGo con conexiones seguras HTTPS, y utilizando el gestor de archivos con Webdav/s.

También te podría gustar...