Eu quero me conectar a um servidor LDAP em execução em um servidor ldap.subnet.example.com
usando o Apache Directory Studio .
Estou executando o Apache Directory Studio 2.0.0.v20200411-M15 java-14-openjdk
no Manjaro Linux.
Infelizmente, o servidor LDAP só pode ser acessado de dentro da mesma sub-rede e eu estou fora dessa sub-rede (meu host é mypc.example.org
). No entanto, posso acessar o host portal.subnet.example.com
via SSH, que está na mesma sub-rede do servidor LDAP e, portanto, pode se vincular a ele.
Minha maneira de resolver isso é criar um proxy SOCKS usando o seguinte comando em mypc.example.org
:
ssh -D 8080 [email protected]
Em seguida, configuro o software para usar esse proxy SOCKS. Isso funciona muito bem com, por exemplo, o Firefox.
No entanto, parece não funcionar com o Apache Directory Studio. Fiz as seguintes configurações em "Janela" > "Preferências" > "Geral" > "Conexões de Rede":
- Provedor ativo: Manual
- Entradas de proxy:
- HTTP (nada especificado aqui, mas também não posso excluí-lo)
- HTTPS (o mesmo que acima)
- SOCKS: Host
localhost
, Port8080
, ProviderManual
, AuthNo
- Desvio de proxy:
localhost
, ProvedorManual
(configurações padrão, não modifiquei isso)127.0.0.1
, ProvedorManual
(configurações padrão, não modifiquei isso)
Ainda assim, quando tento me conectar ao servidor, "Abrir conexão: (14%)" aparece por um tempo no canto inferior esquerdo antes de receber um "Erro ao abrir conexão - MSG_04177_CONNECTION_TIMEOUT (5000)".
Também tentei configurar o proxy no ApacheDirectoryStudio.ini
, novamente, sem sucesso.
-vmargs
-DsocksProxyHost=localhost
-DsocksProxyPort=8080
Esse problema pode estar relacionado – o último comentário me deixa com a impressão de que a API Apache LDAP simplesmente ignora essas configurações porque é baseada no Apache MINA, que é configurado de forma diferente; No entanto, não descobri como. Esta pergunta do Stack Overflow corresponde ao problema descrito no problema, mas, infelizmente, as soluções são em código - preciso de uma solução de configuração.
Minha maneira de resolver isso seria usando o tunelamento SSH.
Supondo que a porta LDAP padrão
389
seja usada:Isso significa que, em seu host
mypc.example.org
, todo o tráfego que passa pela porta local389
será enviado para o servidor SSH eportal.subnet.example.com
, em seguida, encaminhado para o destino remotoldap.subnet.example.com
na porta389
(a qual o servidor SSH tem acesso).As consultas usarão o endereço local e a porta:
ldap://localhost:389
ouldap://mypc.example.org:389
.Nenhum proxy usado e o túnel SSH é transparente para o Apache Directory Studio.
NB: Aqui sugiro a porta local
389
(como emssh -L 389:
) por conveniência, mas você pode usar qualquer número de porta local arbitrário disponível.