
일부 LDAP 호출을 사용하여 작동하는 RHEL6 시스템에 배포된 PHP 애플리케이션이 있습니다. 특히 ldap_connect와 ldap_bind는 사용자를 확인하고 세부 정보를 조회하는 데 사용됩니다.
이 메커니즘은 Ubuntu 서버에서 실행되는 개발 서버에서 잘 작동합니다. RHEL6에서 실행되는 프로덕션 시스템에서는 프로세스가 실패합니다. 두 경우 모두 동일한 자격 증명을 사용하여 동일한 LDAP 서버에 연결하므로 RHEL6 서버에 문제가 있는 것이 분명합니다. 우리는 SSL이 아닌 기본 LDAP를 사용하고 있습니다.
새 서버에는 방화벽이나 네트워크 문제가 없는 것을 확인할 수 있습니다. LDAP 서버에 대한 ping이 제대로 작동합니다. 또한 ldap_connect 호출도 성공했습니다.
애플리케이션에서 문제를 격리하기 위해 아래의 간단한 PHP 테스트 스크립트를 사용했습니다.
<?php
// Set the ldap server
$ldapurl = "[snipped]";
$ldapuser = "[snipped]";
$ldappass = "[snipped]";
// Set the debug flag
$debug = true;
// Set debugging
if ($debug) {
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
}
// connect to ldap server
echo "Trying to connect<br/>";
echo "1: " . date('l jS \of F Y h:i:s A') . "<br/>";
$ldapconn = ldap_connect($ldapurl) or die ("Couldn't connect");
echo "2: " . date('l jS \of F Y h:i:s A') . "<br/>";
// binding to ldap server
echo "Trying to bind with $ldapuser - $ldappass<br/>";
echo "3: " . date('l jS \of F Y h:i:s A') . "<br/>";
$ldapbind = @ldap_bind($ldapconn, $ldapuser, $ldappass);
echo "4: " . date('l jS \of F Y h:i:s A') . "<br/>";
if (!$ldapbind) {
echo "Unable to bind to server $ldapurl\n";
echo "OpenLdap error message: " . ldap_error($ldapconn) . "\n";
exit;
}
// Rest of code goes here
?>
두 서버 모두에서 위 스크립트를 실행하고 있습니다. 우리 개발 서버에서는 모든 것이 정상입니다. RHEL6 서버에서는 연결이 작동하지만 1분 이상 지연된 후 바인딩이 실패합니다.
OpenLdap 오류 메시지: LDAP 서버에 접속할 수 없습니다.
저는 시스템 관리자가 아니기 때문에 온라인에서 이 오류에 관해 발견된 대부분의 토론을 완전히 이해하지 못합니다. 여기 누군가가 나를 도와줄 수 있기를 바랍니다. 미리 감사드립니다.
답변1
RHEL5, RHEL6과 달리필요하다openldap에 연결하기 위한 SSL 인증서(특히 TLS)입니다. 나는 해결 방법을 찾기 위해 계속 노력했고 마침내 SSL 인증서를 사용하는 것이 그것을 사용하지 않는 방법을 찾는 것보다 더 쉽고 안전하다는 사실에 정착했습니다.
이 링크가 도움이 될 수 있습니다: http://www.linuxquestions.org/questions/linux-enterprise-47/rhel-6-ldap-now-requires-tls-843917/
레거시 모드를 강제로 시도하면 효과가 있을 수 있지만 완전히 작동하지 않으며 나중에 문제가 발생할 수 있다는 사실을 발견했습니다.
authconfig --enableldap --enableldapauth --forcelegacy=yes --ldapserver=myldapserver.com --ldapbasedn="dc=example,dc=com" --update
답변2
centos7/RHEL7의 경우 값을 변경합니다.
authconfig --enableforcelegacy --enableshadow --enablemd5 --enableldap --enableldapauth --disableldaptls --ldapserver=127.0.0.1 --ldapbasedn="dc=**ldap,dc=***.uk" --enablemkhomedir --disablesssd --disablesssdauth --update