Ich entwickle Website für meine Schule. In dieser Schule authentifizieren wir Benutzer über LDAP, also gab es eine Idee, das gleiche über die Schule zu tun. Auf dieser Seite läuft alles perfekt, aber während der Entwicklung muss ich sehr oft testen, ob eine solche Lösung funktioniert, oder nicht. Um meine Änderungen nicht so oft zu begehen, möchte ich diese Seite auf meinem lokalen Computer testen, aber für die Verbindung mit LDAP möchte ich ssh tunnel verwenden. Im Schulnetzwerk haben wir einen Server durch den wir mit unserem Schulnetzwerk verbunden sind. Die Adresse lautet phoenix.lo5.bielsko.pl
. In diesem Netzwerk haben wir einen LDAP-Server mit geöffneten 389 und 636 Ports. Die Adresse lautet auth.lo5
. Ich habe keinen Zugriff auf auth.lo5
über SSH, ich kann nur mit ihm verbinden, um einige LDAP-Einträge zu bekommen. Also, ich habe versucht, SSH-Tunnel laufen, indem Sie:PHP über SSH-Tunnel mit LDAP in anderen Netzwerk verbinden
ssh -L 636:auth.lo5:636 [email protected]
Dann habe ich gesetzt in meinem /etc/hosts
dass auth.lo5
zeigt auf 127.0.0.1
. Ich bin eine Verbindung zu LDAP in PHP in einer solchen Art und Weise:
ldap_connect('ldaps://auth.lo5', 636);
Aber ich bin immer Fehler Can't contact LDAP server
. Ich denke, dieses Problem könnte auf phoenix.lo5.bielsko.pl
in seiner SSH-Daemon-Konfiguration oder in Argumenten an ldap_connect()
Funktion übergeben werden. Können Sie mir sagen, was ich in sshd_config oder in Argumenten setzen sollte, die an ldap_connect
übergeben werden, damit es funktioniert?
Ich habe die gleiche Frage in similar thread geschrieben, aber niemand hat meine Frage beantwortet.
P.S. In meinem /etc/ssh/sshd_config
habe ich Linie AllowTcpForwarding yes
Wenn Sie die LDAP-Befehlszeilentools verwenden, funktionieren sie? Verwenden Sie zuerst 'ldapwhoami -H ldaps: // auth.lo5' - PHP meldet nicht so viele hilfreiche Nachrichten wie die Befehlszeilen-LDAP-Dienstprogramme. – Borealid
@Borealid, unser LDAP-Server erlaubt kein anonymes Binding, also habe ich 'ldapwhoami -Dcn = lo5-www, ou = dienste, dc = auth, dc = lo5 -W -H ldaps: // auth eingegeben .lo5' und auf Phoenix Antwort ist 'dn: cn = lo5-www, ou = Dienste, dc = auth, dc = lo5', aber auf meinem Desktop seine' ldap_sasl_bind (SIMPLE): Kann LDAP Server nicht kontaktieren (-1) ' – Hfaua
Bis die Befehlszeilentools funktionieren, ist Ihr SSH-Tunnel nicht aktiv. Da der Befehl, den Sie verwenden, genau richtig ist (und, ehrlich gesagt, ich bin * beeindruckt * Sie wissen, wie man das macht - SSH-Tunneling ist kompliziert!), Habe ich nur einen weiteren Vorschlag. Versuchen Sie einen unprivilegierten Port (höher als 1024) für den lokalen Port zu verwenden (wie in 'ssh -L 9999: auth.lo5.bielsko.pl: 636'). Geben Sie auch einen FQDN an! Testen Sie dennoch mit den Befehlszeilentools. Und stellen Sie sicher, dass sie von phoenix.lo5 bis auth.lo5 funktionieren! – Borealid