SFTP服务器SFTPGo 2.2.0发布

SFTPGo 2.2 服务器版本已经发布,它允许您使用 SFTP、SCP/SSH、Rsync、HTTP 和 WebDav 协议组织对文件的远程访问。 除此之外,SFTPGo 可用于使用 SSH 协议提供对 Git 存储库的访问。 数据既可以从本地文件系统传输,也可以从与 Amazon S3、Google Cloud Storage 和 Azure Blob Storage 兼容的外部存储传输。 可以以加密形式存储数据。 为了存储用户数据库和元数据,使用支持 SQL 或键/值格式的 DBMS,例如 PostgreSQL、MySQL、SQLite、CockroachDB 或 bbolt,但也可以将元数据存储在 RAM 中,这不需要连接外部数据库。 该项目代码是用 Go 编写的,并根据 GPLv3 许可证分发。

在新版本中:

  • 添加了对使用有时间限制的一次性密码的双因素身份验证的支持(TOTP、RFC 6238)。 Authy 和 Google Authenticator 等应用程序可以用作身份验证器。
  • 通过插件扩展功能的能力已经实现。 已经可用的插件包括:支持额外的密钥交换服务、集成发布/订阅方案、存储和搜索有关 DBMS 中事件的信息。
  • 除了 JWT 令牌之外,REST API 还添加了对使用密钥进行身份验证的支持,并且还提供了设置与各个目录和用户相关的数据存储策略(限制数据的生命周期)的功能。 默认情况下,Swagger UI 可以在不使用外部实用程序的情况下导航 API 资源。
  • Web 界面添加了对写入操作的支持(上传文件、创建目录、重命名和删除),实现了通过电子邮件确认重置密码的功能,还集成了文本文件编辑器和 PDF 文档查看器。 新增创建 HTTP 链接的功能,为外部用户提供对单个文件和目录的访问,并能够设置单独的访问密码、限制 IP 地址、设置链接生命周期和限制下载次数。

SFTPGo 的主要特点:

  • 每个帐户都是 chroot 的,限制了对用户主目录的访问。 可以创建引用用户主目录之外的数据的虚拟目录。
  • 帐户存储在与系统用户数据库不相交的虚拟用户数据库中。 SQLite、MySQL、PostgreSQL、bbolt 和内存存储可用于存储用户数据库。 提供了映射虚拟和系统帐户的方法 - 可以进行直接或任意映射(一个系统用户可以映射到另一个虚拟用户)。
  • 支持公钥、SSH 密钥和密码身份验证(包括使用键盘密码输入的交互式身份验证)。 可以为每个用户绑定多个密钥,也可以设置多因素、多阶段认证(例如,如果密钥认证成功,可能会额外要求输入密码)。
  • 可以为每个用户配置不同的身份验证方法,也可以定义他们自己的方法,通过调用外部身份验证器程序(例如,通过 LDAP 进行身份验证)或通过 HTTP API 发送请求来实现。
  • 可以连接外部处理程序或 HTTP API 调用以动态更改在用户登录之前调用的用户设置。 支持在连接时动态创建用户。
  • 支持数据大小和文件数量的单独配额。
  • 通过单独设置传入和传出流量限制以及同时连接数限制来支持带宽限制。
  • 与用户或目录相关的访问控制工具(您可以限制查看文件列表,禁止上传、下载、覆盖、删除、重命名或更改访问权限,禁止创建目录或符号链接等)。
  • 对于每个用户,您可以定义单独的网络限制,例如,您只能允许来自特定 IP 或子网的访问。
  • 它支持与个人用户和目录相关的可下载内容过滤器的连接(例如,您可以阻止具有特定扩展名的文件的下载)。
  • 您可以将在各种操作期间启动的处理程序与文件绑定(加载、删除、重命名等)。 除了调用处理程序之外,还支持以 HTTP 请求的形式发送通知。
  • 自动终止非活动连接。
  • 不中断连接的原子配置更新。
  • 提供用于在 Prometheus 中进行监控的指标。
  • 支持 HAProxy PROXY 协议来组织负载平衡或代理连接到 SFTP/SCP 服务,而不会丢失用户的源 IP 地址。
  • 用于管理用户和目录、创建备份和报告活动连接的 REST API。
  • 用于配置和监控的 Web 界面 (http://127.0.0.1:8080/web)(也支持通过常规配置文件进行配置)。
  • 能够以 JSON、TOML、YAML、HCL 和 envfile 格式定义设置。
  • 支持通过 SSH 连接,但对系统命令的访问权限有限。 例如,允许运行 Git(git-receive-pack、git-upload-pack、git-upload-archive)和 rsync 所需的命令,以及几个内置命令(scp、md5sum、sha*sum、 cd、pwd、sftpgo-copy 和 sftpgo-remove)。
  • 用于共享一个共享目录的便携式模式,自动生成通过多播 DNS 公布的连接凭证。
  • 用于性能分析的内置分析系统。
  • 简化的 Linux 系统帐户迁移过程。
  • 以 JSON 格式存储日志。
  • 支持虚拟目录(比如某个目录的内容可以不从本地文件系统中获取,而是从外部云存储中获取)。
  • 支持 cryptfs 在保存到文件系统时透明地动态加密数据并在上传时解密。
  • 支持将连接转发到其他 SFTP 服务器。
  • 能够使用 SFTPGo 作为 OpenSSH 的 SFTP 子系统。
  • 使用 KMS 服务器(密钥管理服务)(例如 Vault、GCP KMS、AWS KMS)以加密形式存储凭据和机密数据的能力。

来源: opennet.ru

添加评论