Debian Lenny에서 StartTLS가 손상된 OpenLDAP

Debian Lenny에서 StartTLS가 손상된 OpenLDAP

저는 Lenny의 OpenLDAP를 StartTLS와 함께 작동시키려고 합니다. 테스트용 클라이언트로 사용하고 있는 Fedora 13 시스템이 있습니다. 지금까지 Fedora 클라이언트는 ldapsearch를 사용하여 연결을 시도할 때 /etc/ldap.conf의 'host' 지시문을 무시했습니다. ldapsearch를 사용할 때 -H ldaps://server.name을 지정하더라도 클라이언트는 127.0.0.1:389에 연결하려고 합니다. 클라이언트 시스템의 /etc/ldap.conf는 모드 444입니다.

하지만 SSH 세션에서 로컬로 연결하려고 해도 다음과 같은 오류가 표시됩니다. ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)

누군가가 단서로 나를 때렸습니다.

업데이트: 'host'와 같은 설정에는 ~/.ldaprc를 사용해야 합니다. 또한 방금 LDAP 서버에 대해 nmap을 사용했는데 열린 상태에서 636과 389가 표시되었습니다.

연결을 시도할 때 화면에 인쇄되는 내용은 다음과 같습니다.ldapsearch -ZZ –x '(objectclass=*)'+ -d -1

LDAP_create
ldap_extended_Operation_s
ldap_extended_Operation
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP 192.168.10.41:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: 192.168.10.41:636 시도 중
ldap_pvt_connect: fd: 3 tm: -1 비동기: 0
ldap_open_defconn: 성공
ldap_send_server_request
ber_scanf fmt ({it) ber:
ber_dump: buf=0x9bdbdb8 ptr=0x9bdbdb8 end=0x9bdbdd7 len=31
  0000: 30 1d 02 01 01 77 18 80 16 31 2e 33 2e 36 2e 31 0....w...1.3.6.1  
  0010: 2e 34 2e 31 2e 31 34 36 36 2e 32 30 30 33 37 .4.1.1466.20037   
ber_scanf fmt ({) ber:
ber_dump: buf=0x9bdbdb8 ptr=0x9bdbdbd end=0x9bdbdd7 len=26
  0000: 77 18 80 16 31 2e 33 2e 36 2e 31 2e 34 2e 31 2e w...1.3.6.1.4.1.  
  0010: 31 34 36 36 2e 32 30 30 33 37 1466.20037        
ber_flush2: sd 3에 31바이트
  0000: 30 1d 02 01 01 77 18 80 16 31 2e 33 2e 36 2e 31 0....w...1.3.6.1  
  0010: 2e 34 2e 31 2e 31 34 36 36 2e 32 30 30 33 37 .4.1.1466.20037   
ldap_write: 원함=31, 기록됨=31
  0000: 30 1d 02 01 01 77 18 80 16 31 2e 33 2e 36 2e 31 0....w...1.3.6.1  
  0010: 2e 34 2e 31 2e 31 34 36 36 2e 32 30 30 33 37 .4.1.1466.20037   
ldap_result ld 0x9bd3050 msgid 1
wait4msg ld 0x9bd3050 msgid 1 (무한 시간 초과)
wait4msg 계속 ld 0x9bd3050 msgid 1 모두 1
** ld 0x9bd3050 연결:
* 호스트: 192.168.10.41 포트: 636(기본값)
  참조: 2 상태: 연결됨
  마지막 사용: 2010년 6월 6일 일요일 12:54:05


** ld 0x9bd3050 처리되지 않은 요청:
 * msgid 1, origid 1, 상태 InProgress
   뛰어난 추천 수 0, 상위 수 0
  ld 0x9bd3050 요청 횟수 1(폐기됨 0)
** ld 0x9bd3050 응답 대기열:
   비어 있는
  ld 0x9bd3050 응답 횟수 0
ldap_chkResponseList ld 0x9bd3050 msgid 1 모두 1
ldap_chkResponseList가 ld 0x9bd3050 NULL을 반환함
ldap_int_select
read1msg: ld 0x9bd3050 msgid 1 모두 1
ber_get_next
ldap_read: 원하는=8, 얻었습니다=0

ber_get_next가 실패했습니다.
ldap_err2string
ldap_start_tls: LDAP 서버에 접속할 수 없습니다(-1)

답변1

기본적으로 클라이언트는 서버의 인증서를 확인합니다. /etc/openldap/ldap.conf에 "TLS_REQCERT never"를 추가하기만 하면 됩니다.

답변2

저는 최근 Lenny에서 SLAPD와 SSL을 작동시키는 데 성공했습니다. 내가 무엇을 했는지 정확히 기억나지는 않지만, GNUTLS와 OPENSSL 사이의 암호 차이와 관련이 있었던 것으로 기억합니다. Lenny용 SLAPD 패키지는 GNUTLS에 대해 컴파일되었습니다. 뭔가 관련이 있을지도 모르지이것.

답변3

키 파일을 읽을 수 없는 것 같습니다. 비밀번호가 없는 키가 있어야 합니다. SSL-cert 그룹에 openldap을 추가합니다. ssl-cert 키와 권한 440에 대한 그룹을 만듭니다. openssl s_client 명령을 사용하여 tls 문제를 디버깅할 수 있습니다.

답변4

중간 인증서(요즘은 흔하지 않음)로 서명된 SSL 인증서가 있는 경우 Lenny 아래의 slapd에서 TLS에 문제가 발생합니다. sybreon이 언급했듯이 Lenny는 필요한 모든 옵션을 지원하지 않는 GNUTLS와 연결합니다.

해결책은 slapd의 Lenny 백포트를 사용하는 것입니다. 그러나 우리는 2.4.17-2.1~bpo50+1 백포트가 libdb4.6에 대해 컴파일한다는 것을 발견했습니다. libdb4.6에는 약 일주일 동안 실행한 후 우리에게 영향을 미치는 버그가 있습니다.

따라서 이 시점에서는 TLS가 필요한 경우 Lenny를 사용하여 slapd를 실행하는 것을 권장하지 않습니다. 대신 스퀴즈로 업그레이드하세요.

관련 정보