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.
Además, si se te pide que aceptes las claves GPG del repositorio sFTPGo, vuelve a introducir Y.
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
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:
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
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 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«.
Ahora deberías ver el 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.
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«.
Ahora, deberías ver la lista de usuarios en el panel de administración de sFTPGo.
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.
Ahora se te pedirá que confirmes el certificado de tu servidor SFTP, haz clic en «Aceptar» para confirmar.
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.
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«.
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.
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».
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«.
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.
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.