Wed. Dec 25th, 2024

SFTPGo: Servidor SFTP de código abierto con funcionalidad de soporte WebDAV

By admin Jan 29, 2024

SFTPGo es un servidor SFTP de código abierto con muchas funciones que ofrece compatibilidad con HTTP/S, FTP, FTPS y WebDAV.

También admite varios backends de almacenamiento como sistema de archivos local, sistema de archivos local cifrado, almacenamiento de objetos S3 (compatible), Google Cloud Storage, Azure Blob Storage, SFTP.

El proyecto está escrito en el lenguaje de programación Go. Es una solución ideal para empresas y equipos creativos que requieren algo rápido y eficiente.

Características

  • Soporte para servir sistema de archivos local, sistema de archivos local cifrado, almacenamiento de objetos compatible con S3, Google Cloud Storage, Azure Blob Storage u otras cuentas SFTP a través de SFTP/SCP/FTP/WebDAV.
  • Se admiten carpetas virtuales: una carpeta virtual puede utilizar cualquiera de los servidores de almacenamiento compatibles. Por lo tanto, puede tener, por ejemplo, un usuario de S3 que exponga un depósito de GCS (o parte de él) en una ruta específica y un sistema de archivos local cifrado en otra. Las carpetas virtuales pueden ser privadas o compartidas entre varios usuarios; para las carpetas virtuales compartidas puede definir diferentes límites de cuota para cada usuario.
  • Configurable comandos personalizados y/o enlaces HTTP al cargar, cargar previamente, descargar, descargar previamente, eliminar, eliminar previamente, cambiar nombre, mkdir, rmdir en comandos SSH y al agregar, actualizar y eliminar usuarios.
  • Cuentas virtuales almacenadas dentro de un “proveedor de datos”.
  • Se admiten SQLite, MySQL, PostgreSQL, CockroachDB, Bolt (almacenamiento de claves/valores en Go puro) y proveedores de datos en memoria.
  • Aislamiento de chroot para cuentas locales. Las cuentas basadas en la nube se pueden restringir a una ruta base determinada.
  • Permisos virtuales por usuario y por directorio, para cada ruta expuesta puede permitir o denegar: listado de directorios, carga, sobrescritura, descarga, eliminación, cambio de nombre, creación de directorios, creación de enlaces simbólicos, cambio de propietario/grupo/modo de archivo y hora de modificación.
  • API DESCANSO para administración de usuarios y carpetas, retención de datos, respaldo, restauración e informes en tiempo real de las conexiones activas con posibilidad de cerrar forzosamente una conexión.
  • El Administrador de evento permite definir flujos de trabajo personalizados basados ​​en eventos o horarios del servidor.
  • Interfaz de administración basada en web para administrar fácilmente usuarios, carpetas y conexiones.
  • Interfaz de cliente web para que los usuarios finales puedan cambiar sus credenciales, administrar y compartir sus archivos en el navegador.
  • Autenticación de clave pública y contraseña. Se admiten varias claves públicas por usuario.
  • Usuario SSH autenticación de certificado.
  • Autenticación interactiva con teclado. Puede configurar fácilmente una autenticación multifactor personalizable.
  • Autenticación parcial. Puede configurar la autenticación de varios pasos que requiere, por ejemplo, la contraseña del usuario después de una autenticación de clave pública exitosa.
  • Métodos de autenticación por usuario.
  • Autenticación de dos factores basado en contraseñas de un solo uso basadas en el tiempo (RFC 6238) que funciona con Authy, Google Authenticator y otras aplicaciones compatibles.
  • Administraciones de usuarios simplificadas mediante grupos.
  • Autenticación personalizada mediante programas externos/API HTTP.
  • Compatibilidad con interfaces de usuario de cliente web y administrador web Conexión OpenID autenticación y por lo tanto pueden integrarse con proveedores de identidad como capa de llaves. Puedes encontrar más detalles aquí.
  • Cifrado de datos en reposo.
  • Modificación dinámica del usuario antes de iniciar sesión a través de programas externos/API HTTP.
  • Compatibilidad con cuotas: las cuentas pueden tener una cuota de disco individual expresada como tamaño total máximo y/o número máximo de archivos.
  • Limitación del ancho de banda, con configuraciones separadas para carga y descarga y anulaciones basadas en la dirección IP del cliente.
  • Límites de ancho de banda de transferencia de datos, con límite total o configuraciones separadas para cargas y descargas y anulaciones basadas en la dirección IP del cliente. Los límites se pueden restablecer utilizando la API REST.
  • Por protocolo limitación de velocidad es compatible y se puede conectar opcionalmente al defensor incorporado para bloquear automáticamente los hosts que exceden repetidamente el límite configurado.
  • Sesiones simultáneas máximas por usuario.
  • Filtros de IP globales y por usuario: el inicio de sesión se puede restringir a rangos específicos de direcciones IP o a una dirección IP específica.
  • Filtros de patrones tipo shell por usuario y por directorio: los archivos se pueden permitir, denegar y, opcionalmente, ocultar según patrones tipo shell.
  • Terminar automáticamente las conexiones inactivas.
  • Gestión automática de listas de bloqueo utilizando el incorporado defensor.
  • Filtrado Geo-IP usando un enchufar.
  • Las cargas atómicas son configurables.
  • Asignación de propiedad de archivos/carpetas por usuario: puede asignar todos los usuarios a la cuenta del sistema que ejecuta SFTPGo (se admiten todas las plataformas) o puede ejecutar SFTPGo como usuario raíz y asignar cada usuario o grupo de usuarios a una cuenta de sistema diferente ( *Solo NIX).
  • Soporte para repositorios Git sobre SSH.
  • Se admiten SCP y rsync.
  • Se admite FTP/S. Puede configurar el servicio FTP para que requiera TLS tanto para las conexiones de control como de datos.
  • WebDAV esta apoyado.
  • Se admite el protocolo ACME. SFTPGo puede obtener y renovar automáticamente certificados TLS para HTTPS, WebDAV y FTPS desde Let's Encrypt u otras autoridades de certificación que cumplan con ACME, utilizando el HTTP-01 o TLS-ALPN-01 tipos de desafíos.
  • La autenticación TLS bidireccional, también conocida como TLS con autenticación de certificado de cliente, es compatible con REST API/Web Admin, FTPS y Web
    DAV a través de HTTPS.
  • Restricciones de protocolos por usuario. Puede configurar los protocolos permitidos (SSH/HTTP/FTP/WebDAV) para cada usuario.
  • Métricas de Prometeo están expuestos.
  • Soporte para el protocolo HAProxy PROXY: puede proxy y/o equilibrar la carga del servicio SFTP/SCP/FTP sin perder la información sobre la dirección del cliente.
  • Fácil migración desde cuentas de usuario del sistema Linux.
  • Modo portátil: una manera conveniente de compartir un único directorio bajo demanda.
  • Modo de subsistema SFTP: puede utilizar SFTPGo como subsistema SFTP de OpenSSH.
  • Análisis de rendimiento utilizando incorporado perfilador.
  • El formato de configuración es de su elección: se admiten JSON, TOML, YAML, HCL y envfile.
  • Los archivos de registro son precisos y se guardan en formato JSON fácilmente analizable (más información).
  • SFTPGo admite una sistema de complementos.

Plataformas compatibles

El proyecto está funcionando en Linux, macOS y Windows. Pero fue construido y probado principalmente en Linux.

Requisitos

  • Vaya como dependencia de solo compilación. Admitimos las versiones de Go utilizadas en flujos de trabajo de integración continua.
  • Un servidor SQL adecuado para utilizar como proveedor de datos:
  • Versiones compatibles con PostgreSQL, MySQL y MariaDB.
  • Establo de CockroachDB.
  • El servidor SQL es opcional: puede optar por utilizar un SQLite integrado, un perno o un proveedor de datos en memoria.

Licencia

El proyecto se publica bajo la licencia GNU AGPL-3.0 únicamente.

Recursos

Etiquetas

servidor webdav Ftp de código abierto Servidores basados ​​en web Autohospedado

By admin

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *