我想要在 Unix 机器上拥有一个 FTP 服务器,它将能够查询某个 API(可能是通过 HTTP 或本地 shell 脚本)以便对客户端进行身份验证。
如果有一台服务器可以处理以下场景就足够了:
- 客户端通过 FTP 连接到我的服务器
- 客户端发送用户名和密码
- 服务器根据给定的参数执行本地脚本
- (脚本里面的我的自定义逻辑)
- 向 FTP 服务器返回成功/失败代码/消息
市场上有这样的服务器吗?或者是否可以定制一些现有的服务器来满足上述场景?
注 1: 我看到vsftpd为虚拟用户提供了一个模块,但(对我而言)如何用自定义(例如:HTTP)API 设置这样的模块还不太清楚
笔记2:似乎有一些方法可以构建(在 C 中) PAM 模块,但我希望有一种更简单的方法(允许我配置身份验证机制而不是构建 C 库)。
注 3: 关于被搁置的问题:请注意,这个问题主要关注使用自定义协议/API 实现 FTP 身份验证的方法。我不是在寻找特定产品,而是在尝试解决特定问题。显然,由于我们正在处理 FTP 服务器,因此需要一种产品来实现这样的解决方案。
答案1
它似乎纯FTPD正是您所需要的。以下是他们“关于”部分中的两点,似乎完全符合您的需求:
- 多种身份验证方法可以按任意顺序串联。例如,可以同时使用 SQL 帐户、LDAP 目录和系统帐户。
- 可以轻松添加自定义身份验证方法。Pure-FTPd 支持外部身份验证模块,编写新的后端只需几行 shell 脚本即可。