如何在 Linux 上设置 FTP 服务器,使用 API 进行身份验证而不是静态用户列表?

如何在 Linux 上设置 FTP 服务器,使用 API 进行身份验证而不是静态用户列表?

我想要在 Unix 机器上拥有一个 FTP 服务器,它将能够查询某个 API(可能是通过 HTTP 或本地 shell 脚本)以便对客户端进行身份验证。

如果有一台服务器可以处理以下场景就足够了:

  1. 客户端通过 FTP 连接到我的服务器
  2. 客户端发送用户名和密码
  3. 服务器根据给定的参数执行本地脚本
  4. (脚本里面的我的自定义逻辑)
  5. 向 FTP 服务器返回成功/失败代码/消息

市场上有这样的服务器吗?或者是否可以定制一些现有的服务器来满足上述场景?


注 1: 我看到vsftpd为虚拟用户提供了一个模块,但(对我而言)如何用自定义(例如:HTTP)API 设置这样的模块还不太清楚

笔记2:似乎有一些方法可以构建(在 C 中) PAM 模块,但我希望有一种更简单的方法(允许我配置身份验证机制而不是构建 C 库)。

注 3: 关于被搁置的问题:请注意,这个问题主要关注使用自定义协议/API 实现 FTP 身份验证的方法。我不是在寻找特定产品,而是在尝试解决特定问题。显然,由于我们正在处理 FTP 服务器,因此需要一种产品来实现这样的解决方案。

答案1

它似乎纯FTPD正是您所需要的。以下是他们“关于”部分中的两点,似乎完全符合您的需求:

  • 多种身份验证方法可以按任意顺序串联。例如,可以同时使用 SQL 帐户、LDAP 目录和系统帐户。
  • 可以轻松添加自定义身份验证方法。Pure-FTPd 支持外部身份验证模块,编写新的后端只需几行 shell 脚本即可。

更多信息:https://www.pureftpd.org/project/pure-ftpd

相关内容