- Capacidad de gestionar transferencias seguras mediante múltiples protocolos como SFTP, HTTP/S, WebDAV y FTP/S.
- Soporte avanzado de almacenamiento que incluye sistemas de archivos locales y servicios de nube como Amazon S3, Azure y Google Cloud.
- Control exhaustivo de accesos con usuarios virtuales, autenticación de doble factor y gestión de cuotas.
En la actualidad, mover datos de un lado a otro de forma segura se ha vuelto un quebradero de cabeza para muchos. Ya sea que necesites colaborar en un proyecto conjunto o automatizar el flujo de trabajo de tu empresa, contar con un servidor de transferencia de archivos (por ejemplo, compartir archivos con SFTPGo) que no deje fisuras en la seguridad es absolutamente fundamental para evitar filtraciones y garantizar que la información llegue intacta a su destino.
SFTPGo es una herramienta de código abierto para gestionar archivos de forma sencilla. No se queda solo en el protocolo SFTP, sino que abre el abanico hacia opciones como WebDAV, HTTP/S y FTP/S, permitiendo que el administrador tenga el control total sobre quién entra, qué ve y cuánto puede subir al servidor, adaptándose tanto a entornos locales como a la potente infraestructura de la nube.
¿Qué es exactamente SFTPGo y qué ofrece?
Para los que no estén muy puestos, SFTPGo es un servidor completo que permite organizar el acceso remoto a los archivos. Una de sus mayores ventajas es que no depende de los usuarios del sistema Linux, sino que utiliza una base de datos de usuarios virtuales. Esto significa que puedes crear cuentas sin tener que dar permisos de shell al sistema operativo, lo cual es un alivio en términos de seguridad.
Este software es extremadamente versátil en cuanto al almacenamiento. Puedes usar el disco duro de tu máquina, pero también puedes conectar servicios de almacenamiento de objetos como Amazon S3, Google Cloud Storage o Azure Blob Storage. Incluso permite cifrar los datos de forma transparente gracias al soporte de Cryptfs, asegurando que nadie pueda husmear en el contenido sin la llave adecuada. Compartir archivos con SFTPGo es también muy fácil.
En cuanto a la gestión de identidades, SFTPGo no se anda con chiquitas. Soporta desde las clásicas contraseñas hasta claves SSH y autenticación de múltiples factores (MFA) mediante TOTP, compatible con aplicaciones como Google Authenticator. Si necesitas algo más empresarial, puedes integrar LDAP o utilizar APIs HTTP externas para validar a los usuarios en tiempo real.
Configuración en entornos específicos: Docker y NAS
Mucha gente intenta montar SFTPGo usando Docker para aprovechar la facilidad de despliegue. Un punto clave aquí es lograr que el contenedor acceda a un recurso compartido que ya existe en el host. Aunque a veces la documentación es un poco escueta, la clave reside en mapear correctamente los volúmenes del sistema de archivos local hacia el contenedor para que SFTPGo pueda leer y escribir en esas carpetas preexistentes.
Si eres usuario de NAS QNAP, existen paquetes QPKG que facilitan la instalación. Un detalle importante es que, por defecto, SFTPGo suele usar el puerto 8080, que a menudo choca con el panel de gestión de QTS. Para solucionar este marrón, basta con editar el archivo sftpgo.json y cambiar el puerto por uno libre, como el 9063, reiniciando el servicio para que los cambios surtan efecto.
Hecho esto, ya vas a poder compartir archivos con SFTPGo sin problemas.
Integración con Oracle Cloud Infrastructure (OCI)
Para quienes buscan escalar al máximo, integrar SFTPGo con el Object Storage de Oracle Cloud es una jugada maestra. El proceso comienza activando la API compatible con S3 en el arrendamiento de OCI y generando las claves secretas necesarias. Una vez creado el cubo de almacenamiento, se configura SFTPGo para que actúe como puente.
- Se debe seleccionar el almacenamiento como S3 Compatible en la configuración del usuario.
- Es vital introducir correctamente el punto final (endpoint) de OCI, sustituyendo el namespace y la región.
- Se recomienda activar la opción de estilo de dirección de ruta (path-style address) para que la conexión sea estable.
Una vez hecho esto, el usuario podrá conectarse via SFTP y verá el contenido del cubo de Oracle como si fuera una carpeta local, permitiendo una escalabilidad masiva de los datos sin preocuparse por el espacio físico del disco duro de la instanciapara poder compartir archivos con SFTPGo.
Dominando el uso de SFTP desde la línea de comandos
Aunque SFTPGo tiene un panel web muy intuitivo, saber moverse por la consola es lo que diferencia a un novato de un pro. El comando sftp permite establecer una conexión segura donde podemos usar instrucciones similares a las de una shell. Por ejemplo, con ls vemos los archivos remotos y con lls podemos listar los archivos de nuestra propia máquina local.
Para mover archivos, los comandos estrella son get y put. El primero descarga un archivo del servidor a nuestro PC, mientras que el segundo sube la información. Si queremos mover carpetas enteras, simplemente añadimos el indicador recursivo -r. También es posible ejecutar comandos locales desde la sesión SFTP anteponiendo un signo de exclamación, lo que nos permite, por ejemplo, chequear el espacio en disco con !df -h.
Novedades y funcionalidades avanzadas
Las versiones más recientes, como la 2.2, han traído mejoras que son canela fina. Ahora es posible crear enlaces HTTP temporales para que personas externas descarguen archivos sin necesidad de tener una cuenta, pudiendo limitar el número de descargas o ponerles una fecha de caducidad. Además, se ha integrado un editor de texto y un visor de PDF directamente en la interfaz web.
Otra característica potente es la capacidad de definir cuotas de almacenamiento y restringir acciones mediante ACLs (Listas de Control de Acceso). Puedes decidir que un usuario solo pueda leer archivos en una subcarpeta específica o prohibir la subida de archivos con ciertas extensiones, como los .mp3, manteniendo así el servidor limpio y organizado.
Toda esta arquitectura se apoya en bases de datos flexibles. SFTPGo puede guardar los metadatos de los usuarios en SQLite, MySQL o PostgreSQL, e incluso en la memoria RAM si no necesitas persistencia a largo plazo, lo que lo hace extremadamente rápido y adaptable a cualquier necesidad técnica.
Esta herramienta se consolida como una solución robusta que combina la seguridad del cifrado con la flexibilidad de la nube y el almacenamiento local. Gracias a su soporte multprotocolo y su capacidad de integración con servicios S3, permite gestionar flujos de datos complejos sin complicaciones, ofreciendo un control granular sobre los permisos y una interfaz versátil tanto para administradores como para usuarios finales.
Redactor especializado en temas de tecnología e internet con más de diez años de experiencia en diferentes medios digitales. He trabajado como editor y creador de contenidos para empresas de comercio electrónico, comunicación, marketing online y publicidad. También he escrito en webs de economía, finanzas y otros sectores. Mi trabajo es también mi pasión. Ahora, a través de mis artículos en Tecnobits, intento explorar todas las novedades y nuevas oportunidades que el mundo de la tecnología nos ofrece día a día para mejorar nuestras vidas.