dmz의 읽기 전용 Windows KDC에 대해 인증하기 위한 LAMP 서버 kerberos 구성

dmz의 읽기 전용 Windows KDC에 대해 인증하기 위한 LAMP 서버 kerberos 구성

배경:

우리는 VPN을 통해 연결되고 AD 신뢰 관계를 구축한 다수의 AD 네트워크(도메인)를 보유하고 있습니다. 우리는 외부에서 호스팅되는 웹 서버를 가지고 있으며 구성했습니다.원활한 인증신뢰할 수 있는 네트워크 내의 모든 사용자에 대해. 이는 작동하지만 IT 부서에서 관리하지 않는 외부 웹 서버에 대한 VPN의 존재는 네트워크 팀에서 너무 큰 보안 위험으로 간주했습니다.

내부 네트워크에 대한 관리자 액세스 권한은 없지만 웹 서버에 대한 전체 관리자 액세스 권한은 있습니다.

고 싶어요:

모든 인증 요청을 처리하기 위해 DMZ에서 읽기 전용 DC를 사용하여 VPN 없이 동일한 원활한 인증을 설정합니다.

세부:

  1. 우리는 서로 신뢰하고 VPN 터널을 통해 연결된 여러 AD 도메인을 보유하고 있습니다.
  2. 기본 AD 네트워크에 연결된 DMZ에 읽기 전용 DC가 있습니다.
  3. 외부 LAMP 웹 서버 - 단일 인스턴스를 사용하여 새 구성을 테스트합니다.

완료된 작업:

  1. 호스트 파일에 DMZ DC를 추가했습니다.
  2. krb5.conf 파일을 업데이트하고 단일 영역 및 도메인(domain1)을 DMZ DC와 연결했습니다.
  3. kinit를 사용하여 명령줄에서 인증 테스트(작동)
  4. DMZ DC를 가리키는 모든 도메인이 포함된 추가 영역 및 도메인 영역 매핑으로 krb5.conf 파일을 업데이트했습니다.
  5. 추가 영역 중 하나의 사용자를 사용하여 명령줄에서 인증을 테스트했지만 실패했습니다.

현재 구성의 예

/etc/hosts/ : (기밀유지를 위해 실제 IP를 x와 실제 도메인 이름으로 대체했습니다)

xxx.xxx.xxx.xxx  dc01.domain1.com, dc01.domain2.com, dc01.domain3.com, dc01.domain4.com

/etc/krb5.conf:

[libdefaults]
 default_realm = REALM1.COM
 dns_lookup_realm = true
 dns_lookup_kdc = true
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 clockskew = 12000
 kdc_timesync = 1

[realms]
 REALM1.COM = {
  kdc = dc01.domain1.com
  admin_server= dc01.domain1.com
 }
 REALM2.COM = {
  kdc = dc01.domain2.com
  admin_server= dc01.domain2.com
 }
 REALM3.COM = {
  kdc = dc01.domain3.com
  admin_server= dc01.domain3.com
 }
 REALM4.COM = {
  kdc = dc01.domain4.com
  admin_server= dc01.domain4.com
 }

문제:

DMZ가 신뢰할 수 있는 도메인에 대한 인증 요청을 처리하고 있지 않습니다. 이것이 DC 구성의 결과인지 Kerberos 구성의 결과인지 알 수 없으므로 도움을 요청합니다.

서버 결함, 인터넷 검색 및 튜토리얼 읽기에 대한 다른 질문을 검토하는 데 몇 시간을 보냈지만 우리 시나리오와 일치하는 것은 아무것도 없는 것 같습니다.

우리가 시도하는 일을 할 수 있습니까? 그렇다면 그것이 작동하도록 하려면 어떻게 해야 합니까? DMZ를 다른 영역의 kdcs에 대한 프록시로 설정하는 간단한 경우입니까?


Nathan C에 대한 응답으로 보안 로그에는 다음과 같은 Kerberos 서비스 티켓 요청이 표시됩니다.

감사 성공 14/05/2014 11:05 Microsoft-Windows-Security-Auditing 4769 Kerberos 서비스 티켓 작업 "Kerberos 서비스 티켓이 요청되었습니다.

계정 정보: 계정 이름: [이메일 보호됨] 계정 도메인: DOMAIN1.COM 로그온 GUID: {C93D9AAC-6968-6C00-83EF-2C2D54E2363B}

서비스 정보: 서비스 이름: RODC01$ 서비스 ID: DOMAIN1\RODC01$

네트워크 정보: 클라이언트 주소: ::1 클라이언트 포트: 0

추가 정보: 티켓 옵션: 0x40810000 티켓 암호화 유형: 0x17 오류 코드: 0x0 전송된 서비스: -

이 이벤트는 컴퓨터나 Windows 서비스와 같은 리소스에 대한 액세스가 요청될 때마다 생성됩니다. 서비스 이름은 액세스가 요청된 리소스를 나타냅니다.

이 이벤트는 각 이벤트의 로그온 GUID 필드를 비교하여 Windows 로그온 이벤트와 상호 연관될 수 있습니다. 로그온 이벤트는 액세스된 컴퓨터에서 발생합니다. 이 컴퓨터는 서비스 티켓을 발행한 도메인 컨트롤러와 다른 컴퓨터인 경우가 많습니다.

티켓 옵션, 암호화 유형 및 실패 코드는 RFC 4120에 정의되어 있습니다.

불행히도 나에게 전송된 로그 추출은 내가 인증을 시도한 시간과 일치하지 않으므로 해당 로그 항목이 실제로 무엇과 관련되어 있는지 알 수 없습니다. 또 다른 추출을 요청했습니다.


계정 정보:

계정 이름: jameel.rahmaa

제공되는 영역 이름: DOMAIN1.COM

사용자 ID: NULL SID

서비스 정보:

서비스 이름: krbtgt/DOMAIN1.COM

서비스 ID: NULL SID

네트워크 정보:

클라이언트 주소: [웹 IP 숨김]

클라이언트 포트: 34567

추가 정보:

티켓 옵션: 0x40800000

결과 코드: 0x6

티켓 암호화 유형: 0xffffffff

사전 인증 유형: -

인증서 정보:

인증서 발급자 이름:

인증서 일련번호:

인증서 지문:

인증서 정보는 사전 인증에 인증서를 사용한 경우에만 제공됩니다.

사전 인증 유형, 티켓 옵션, 암호화 유형 및 결과 코드는 RFC 4120에 정의되어 있습니다.

이유는 모르겠지만 내 이름의 마지막 글자가 잘렸습니다.

답변1

0x6. KDC_ERR_C_PRINCIPAL_UNKNOWN저기...이걸 조사해 보세요. SPN이 올바르게 설정되지 않았거나 존재하지도 않는 계정을 사용하려는 것 같습니다. Wireshark는 요청 시 DC에서 무엇을 얻는지 확인하기 위해 웹 서버에서 실행할 수 있는 또 다른 좋은 도구입니다.

관련 정보