sftpgo es un servidor SFTP gratuito, de código abierto, con todas las funciones y altamente configurable, con compatibilidad opcional con HTTP/S, FTP/S y WebDAV: S3, Google Cloud Storage, Azure Blob.
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 con el backend de S3 que asigne 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 que 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, Microsoft Authenticator y otras aplicaciones compatibles.
- Administraciones de usuarios simplificadas mediante grupos.
- Roles permite crear administradores limitados que solo pueden crear y administrar usuarios con su rol.
- 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 elHTTP-01
oTLS-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 WebDAV a través de HTTPS.
- Restricciones de protocolos por usuario. Pu
ede configurar los protocolos permitidos (SSH/HTTP/FTP/WebDAV) para cada usuario. - Métricas de Prometeo son compatibles.
- 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 y por lo tanto se puede ampliar mediante complementos externos.
- Soporte de infraestructura como código (IaC) mediante el Proveedor de terraforma.
Plataformas
SFTPGo está desarrollado y probado en Linux. Después de cada confirmación, el código se crea y prueba automáticamente en Linux, macOS, Windows y FreeBSD. Otras variantes de *BSD también deberían funcionar.
Servidor de almacenamiento
S3/GCP/Azure
Cada usuario puede ser mapeado con un Almacenamiento de objetos compatible con S3 /Almacenamiento en la nube de Google/Almacenamiento de blobs de Azure cubo o una carpeta virtual de cubo.
servidor SFTP
Cada usuario se puede asignar a otra cuenta de servidor SFTP o a una subcarpeta de la misma. Se puede encontrar más información aquí.
backend cifrado
El cifrado de datos en reposo se admite a través de servidor de cryptfs.
Servidor HTTP/S
El backend HTTP/S le permite escribir su propio backend de almacenamiento personalizado mediante la implementación de una API REST. Se puede encontrar más información aquí.
Otros backends de almacenamiento
Agregar nuevos backends de almacenamiento es bastante fácil:
- Implementar el interfaz fs.
- Actualizar el método de usuario
GetFilesystem
para devolver el nuevo backend - Actualice la interfaz web y la CLI de la API REST
- agregue las banderas para el nuevo almacenamiento respaldado en el
portable
modo
De todos modos, algunos backends requieren una cuenta de pago por uso (u ofrecen una cuenta gratuita solo por un período de tiempo limitado). Para poder agregar soporte para dichos backends o revisar solicitudes de extracción, proporcione una cuenta de prueba. La cuenta de prueba debe estar disponible durante el tiempo suficiente para poder mantener el backend y realizar pruebas básicas antes de cada nuevo lanzamiento.
Licencia
- Sólo GNU AGPL-3.0
Recursos
Etiquetas
servidor ftp Servidores de medios Idioma Go autohospedado