我正在寻找以下情况的解决方案。
我有很多 ftp 帐户(很多服务器)和很多用户。他们需要访问这些服务器。我不想把每个服务器的密码都告诉每个用户。
我的想法是设置带有 LDAP 身份验证的 ftp 代理,这样每个用户都必须使用自己的密码。为此,ftp 代理必须具有 ftp 帐户列表。
Ftp-proxy 支持 LDAP 但我不知道是否有办法实现帐户列表。
答案1
您可能会考虑使用mod_proxyProFTPD 的模块。您可以将其配置为反向 FTP 代理,由代理对用户进行身份验证,和使用一组不同的凭证登录到后端服务器。
例如:
# Authenticate via LDAP
<IfModule mod_ldap.c>
# Add your mod_ldap configuration here
...
AuthOrder mod_ldap.c
</IfModule>
<IfModule mod_proxy.c>
ProxyEngine on
ProxyTables /var/ftpd/proxy/
ProxyRole reverse
ProxyReverseServers ftp://server1:[email protected] ftp://server2:[email protected]
# Tell mod_proxy to authenticate users locally (e.g. via mod_ldap)
ProxyOptions UseReverseProxyAuth
</IfModule>
我们使用 ProFTPDmod_ldap
进行 LDAP 身份验证,并告知mod_proxy
在本地对用户进行身份验证(而不是让选定的后端服务器对用户进行身份验证)。最后,请注意,该ProxyReverseServers
指令的后端服务器 URL 使用包含用户名/密码的 URL 语法。该语法用于配置/覆盖mod_proxy
向后端服务器进行身份验证时使用的用户名/密码。
这意味着您的用户(“前端”客户端)将使用其 LDAP 用户名/密码正常进行身份验证mod_proxy
。代理在连接到您的服务器时,使用您不一定想与用户共享的用户名/密码。