Você pode procurar usar o módulo mod_proxy para o ProFTPD. Você poderia configurá-lo para ser um proxy de FTP reverso, com usuários autenticados pelo proxy, e com um conjunto diferente de credenciais usadas para acessar seus servidores de backend.
Por exemplo:
# 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>
Usamos mod_ldap
do ProFTPD para autenticação LDAP e informamos mod_proxy
para autenticar usuários localmente (em vez de ter o servidor backend selecionado para autenticar o usuário). Por fim, observe que as URLs do servidor backend para a diretiva ProxyReverseServers
usam a sintaxe da URL que contém um nome de usuário / senha. Essa sintaxe é usada para configurar / substituir o nome de usuário / senha que mod_proxy
usa ao autenticar no servidor backend.
Isso significa que seus usuários (os clientes "frontend") autenticam normalmente, usando seu nome de usuário / senha LDAP, para mod_proxy
. O proxy, ao se conectar aos seus servidores, usa os nomes de usuários / senhas que você não quer necessariamente compartilhar com seus usuários.