저는 학교용 웹 사이트를 개발하고 있습니다. 그 학교에서는 LDAP를 통해 사용자를 인증하므로 학교 사이트를 통해 동일한 작업을 수행 할 생각이있었습니다. 그 사이트에서 모든 것이 완벽하게 작동하지만 개발 중에는 그러한 솔루션이 작동하는지 테스트해야합니다. 내 변경 사항을 자주 커밋하지 않으려면 로컬 컴퓨터에서이 사이트를 테스트하고 싶지만 LDAP 연결을 위해서는 ssh 터널을 사용하고 싶습니다. 학교 네트워크에서 우리는 학교 네트워크 내부와 연결되어있는 마녀를 통해 하나의 서버를 가지고 있습니다. 주소는 phoenix.lo5.bielsko.pl
입니다. 이 네트워크에는 389 및 636 포트가 열린 LDAP 서버가 있습니다. 주소는 auth.lo5
입니다. SSH를 통해 auth.lo5
에 액세스 할 수 없기 때문에 일부 LDAP 항목을 가져 오기 위해 연결할 수만 있습니다. 그래서, 내가 실행하여 SSH 터널을 실행하려고했습니다 다음PHP는 SSH 터널을 통해 다른 네트워크의 LDAP에 연결합니다.
ssh -L 636:auth.lo5:636 [email protected]
, 나는 /etc/hosts
auth.lo5
그 127.0.0.1
가리키는 내에서 설정했습니다.
ldap_connect('ldaps://auth.lo5', 636);
하지만 오류 Can't contact LDAP server
받고 있어요 : 나는 그런 방식으로 PHP에서 LDAP에 연결하고 있습니다. 내 생각에, 그 문제는 012HB의 SSH 데몬 설정이나 ldap_connect()
함수에 전달 된 인수에있을 수 있습니다. sshd_config에서 무엇을 설정해야합니까? 아니면 ldap_connect
에 전달 된 인수로 작동시켜야합니까?
동일한 질문을 similar thread에 올렸지 만 아무도 내 질문에 답변하지 않았습니다.
P. 내 /etc/ssh/sshd_config
에서 나는이 라인 AllowTcpForwarding yes
LDAP 명령 줄 도구를 사용하는 경우 제대로 작동합니까? 'ldapwhoami -H ldaps : // auth.lo5'를 먼저 사용하십시오 - PHP는 명령 행 LDAP 유틸리티만큼 유용한 메시지를보고하지 않습니다. – Borealid
@Borealid 우리 LDAP 서버는 익명으로 바인딩 할 수 없으므로'ldapwhoami -D cn = lo5-www, ou = services, dc = auth, dc = lo5 -W -H ldaps : // auth .lo5' 그리고 phoenix에 대한 대답은'dn : cn = lo5-www, ou = services, dc = auth, dc = lo5'이지만 내 데스크톱에서는'ldap_sasl_bind (SIMPLE) : LDAP 서버에 연결할 수 없습니다 (-1)' – Hfaua
명령 줄 도구가 작동 할 때까지 SSH 터널이 작동하지 않습니다. 사용하고있는 명령어가 똑똑하기 때문에 (솔직히, SSH 터널링은 복잡하다!) 나는 한 가지 더 제안 만하고있다. ('ssh -L 9999 : auth.lo5.bielsko.pl : 636'처럼) 로컬 포트에 대해 비 특권 포트 (1024 이상)를 사용해보십시오. 또한 FQDN을 지정하십시오! 그래도 명령 줄 도구로 테스트하십시오. 그리고 그들이 phoenix.lo5에서 auth.lo5까지 작동하는지 확인하십시오! – Borealid