1. Active Directory 소개 디렉토리란 사용자, 컴퓨터 파일 등과 같은 개체에 대한 정보 단일 컴퓨터의 파일 시스템에서는 디렉토리에 파일 관련 정보가 저장 네트워크 환경에서는 네트워크에 분산되어 있는 컴퓨터, 프린터 및 다른 사용자에 대한 정보가 디렉토리에 저장 디렉토리 서비스는 네트워크에서 원하는 개체를 검색해 주는 서비스 Active Directory는 Windows 기반의 디렉토리 서비스
도메인, 포리스트, 글로벌 카탈로그
02. Active Directory의 구조 데이터 모델: X.500의 데이터 모델을 기반으로 함 디렉토리에는 네트워크의 여러 개체에 대한 정보가 저장 각 개체는 스키마에서 정의 스키마: Active Directory의 디렉토리에 저장되는 개체의 클래스에 대한 정의로 구성 보안 모델: 디렉토리에 대한 접근은 ACL(접근제어목록)에 의해 제어 관리 모델: 인증된 사용자에 대하여 Active Directory의 관리를 수행할 수 있도록 함 DSA(디렉토리 시스템 에이전트)는 물리적인 디렉토리를 관리
Active Directory 서비스에 대한 접근 LDAP(Lightweight Directory Access Protocol)를 사용하여 클라이언트 및 도메인 컨트롤러 사이의 통신을 수행 LDAP는 TCP/IP 네트워크에서 사용할 수 있도록 IETF 그룹에서 제정한 표준 통신 프로토콜 복잡성을 배제하고 디렉토리 서비스에 효율적으로 접근할 수 있도록 개발된 개방형 인터넷 Active Directory는 LDAP 버전 2와 3를 구현하고 있다.
Active Directory 서비스 구조
Active Directory 서비스 구조 DSA(디렉토리 시스템 에이전트): 디렉토리에 저장된 부모자식 관계에 의한 계층 구조를 정의 디렉토리 접근에 대한 API(응용 프로그램 인터페이스)를 제공 데이터베이스 계층: 응용 프로그램과 데이터베이스 사이의 추상화를 지원 ESE(확장 가능한 저장소 엔진): 데이터 저장소의 각 레코드에 직접 접근 데이터 저장소: ESE가 관리하는 디렉토리의 데이터를 저장한 파일(Ntds.dit)
데이터 저장소 Active Directory에서 사용자, 그룹, 컴퓨터, 도메인, 조직 구성 단위 및 보안 정책과 같은 네트워크의 개체에 대한 디렉토리 정보를 저장하는 장소 도메인 데이터 도메인 데이터에는 도메인에 있는 개체에 대한 정보가 저장(이메일 주소등) 구성 데이터 구성 데이터는 디렉토리의 토폴로지에 관한 정보를 저장 도메인, 트리, 포리스트의 목록과 도메인 컨트롤러 및 글로벌 카탈로그의 위치가 포함. 스키마 데이터 도메인에 속한 모든 개체에 대한 정의가 저장(ex. 사용자, 컴퓨터) 응용 프로그램 데이터 관리자 혹은 응용 프로그램이 만들고 관리
Active Directory의 서버 도메인 컨트롤러 모든 도메인 컨트롤러가 멀티마스터 복제에 참여 구성원 서버 파일 서버 응용 프로그램 서버 데이터베이스 서버 웹 서버 인증 서버 방화벽 및 원격 액세스 서버 등
Active Directory 클라이언트 Active Directory 클라이언트는 Windows 2000 Professional 또는 Windows XP Professional에는 기본적으로 제공 Windows 95, Windows 98 및 Windows NT 4.0을 실행하는 컴퓨터에서도 별도의 Active Directory 클라이언트 소프트웨어를 설치하여 사용
Active Directory 클라이언트의 특징 사이트를 인식하여 네트워크에서 가장 가까운 위치의 도메인 컨트롤러에 로그인 ADSI(Active Directory 서비스 인터페이스)를 사용 DFS(분산 파일 시스템) 공유 자원에 액세스 NTLM 버전 2의 인증 기능을 사용 가능 Active Directory WAB(Windows 주소록) 속성 페이지의 전화번호 같은 특성을 변경 가능 Active Directory 검색 기능을 이용할 수 있다. [시작] 메뉴에 있는 [검색]을 사용
03. 이름 체계 Active Directory의 이름 공간은 DNS(Domain Name System) 이름과 호환 DNS를 사용하여 Active Directory 도메인, 사이트 및 서비스 이름을 IP 주소로 변환
Active Directory의 이름 공간 연속적인 이름 공간: 자식 개체의 이름에 부모 도메인의 이름이 포함 도메인 트리는 연속적인 이름 공간이다. 불연속적인 이름 공간: 부모 개체와 자식 개체의 이름이 서로 다르다. 포리스트는 불연속적인 이름 공간
Active Directory에서 사용하는 이름 DN(고유 이름) : 도메인 및 포리스트 전역에서 고유한 이름 CN=mycomputer, OU=myunit, DC=microsoft, DC=com 정식 이름 : 고유 이름과 같지만 다른 표기법 microsoft.com/myunit/mycomputer RDN(상대 고유 이름) : 특정 부모 컨테이너 내의 개체를 식별 mycomputer라는 컴퓨터의 LDAP RDN은 다음과 같다. CN=mycomputer
LDAP 약어의 의미(RFC 2253) 약어 X.500 속성 CN 일반 이름 L 위치 이름 ST 지방 이름 O 조직 이름 OU 조직 구성 단위 이름 C 국가 이름 STREET 거리 이름 DC 부분 도메인 이름 UID 사용자 ID
보안 사용자의 이름 보안 사용자는 Active Directory 자원으로의 접근을 제어하기 위한 SID(보안 식별자)를 할당받는 사용자 사용자, 그룹, 서비스 또는 컴퓨터 등
사용자 계정 UPN(사용자 이름)을 사용 로그인 이름은 포리스트 전역에서 고유한 이름 UPN은 RFC 822에 따라 만들어지며 다음 형식을 가진다. ‘사용자 로그인 이름’@’UPN 접미사’ ‘username@sales.korea.microsoft.com’
컴퓨터 계정 LDAP의 상대 고유 이름으로 사용 전체 컴퓨터 이름은 DNS의 FQDN(정규화된 도메인 이름) FQDN은 도메인 트리의 전체 경로가 표시되도록 정의된 DNS 이름 FQDN은 이름 공간의 루트의 위치를 나타내기 위해 마지막에 마침표(.)를 추가(예: computername.microsoft.com.) [제어판] → [시스템]의 ‘컴퓨터 이름’ 탭에 표시 컴퓨터의 NetBIOS 이름은 15바이트, DNS 이름은 63바이트, FQDN은 255자를 사용
GUID(전역 고유 식별자) SID(보안 식별자)와 보안 사용자를 식별하는 데 사용 보안 사용자를 다른 도메인으로 이동하거나 이름을 바꾸면 SID, DN, RDN 및 정식 이름은 변경되지만 GUID는 변경되지 않는다
04. 네트워크 구성 OU 도메인 트리 포리스트
OU(조직 단위) 사용자, 그룹, 컴퓨터, 프린터, 공유 폴더 또는 같은 도메인에 속한 다른 OU를 포함하는 컨테이너 개체 도메인 내의 개체를 조직화하는 기본 단위
OU를 사용한 도메인 내의 계층 구조
도메인 Active Directory에서 관리자가 정의한 컴퓨터, 사용자 및 그룹 개체의 집합 도메인에는 반드시 하나 이상의 도메인 컨트롤러가 존재 DNS에서의 도메인은 DNS 이름 공간에서의 트리 또는 하위 트리를 의미 Active Directory에서 사용하는 도메인의 이름은 DNS의 도메인 이름과 일반적으로 일치
도메인의 특징 조직의 구성을 반영하여 개체를 조직 소규모의 조직이라면, 하나의 도메인만으로 충분 부서 단위 등의 더 작은 조직은 OU를 사용 Active Directory에 속한 개체들은 도메인 단위로 디렉토리에 정보가 저장되고 게시 도메인에 그룹 정책 개체를 적용하면 자원 관리와 보안 관리가 통합 사용자 권한 및 암호 정책과 같은 보안 설정은 도메인 단위로 적용
트리(Tree) 다중 도메인이 연속적 이름 공간을 사용하는 경우 도메인 트리라고 함 DNS에서의 도메인 트리는 도메인 이름을 색인화하는 데 사용하는 역 계층 트리 구조 Active Directory에서 트리는 연속된 이름 공간을 가지는 도메인의 계층적 구조
포리스트 스키마와 글로벌 카탈로그를 공유하는 하나 이상의 도메인 포리스트는 Active Directory의 최상위 컨테이너
05. 글로벌 카탈로그 글로벌 카탈로그는 포리스트에 있는 모든 Active Directory 개체에 대한 정보를 가지고 있는 도메인 컨트롤러 가장 일반적으로 검색되는 특성을 글로벌 카탈로그에 저장하면 사용자가 다른 도메인에 속한 개체를 검색할 때 다른 도메인에 속한 도메인 컨트롤러를 불필요하게 조회하지 않아도 되므로 네트워크의 부하를 줄임 글로벌 카탈로그는 포리스트의 첫번째 도메인 컨트롤러에 자동으로 만들어짐
글로벌 카탈로그의 역할 개체 찾기 포리스트의 모든 도메인에 속한 개체의 디렉토리 정보를 검색 [시작] → [검색]에서 ‘전체 디렉토리 옵션’을 선택 UPN 인증 제공 로그인하려는 사용자의 계정 정보가 해당 도메인의 도메인 컨트롤러에 존재하지 않을 때 다중 도메인 환경에서 유니버설 그룹 구성원 자격 정보 제공 유니버설 그룹 구성원 자격은 글로벌 카탈로그에만 저장 포리스트 내에서의 개체 참조 확인 다른 도메인의 개체에 대한 참조를 확인하는 데도 사용
06. 트러스트 트러스트는 도메인 사이에 설정되는 신뢰 관계 사용자가 다른 도메인의 자원을 사용할 수 있도록 함 Windows Server 2003 포리스트의 기본 트러스트는 모두 전이적, 양방향 트러스트
트러스트의 방향성 단방향 트러스트: 트러스트 방향이 일방적으로 설정된 경우 양방향 트러스트: 두 개의 도메인이 서로 상대방 도메인에 대하여 트러스트를 준 경우
트러스트의 전이성 전이적 트러스트: 트러스트 관계가 트러스트 경로를 통하여 다른 도메인으로 확장된다. 비전이적 트러스트: 트러스트 관계가 두 도메인으로만 제한되며, 다른 도메인으로 확장되지 않는다
트러스트의 종류 - 기본 트러스트 부모 및 자식 트러스트: 새 자식 도메인을 기존 도메인 트리에 추가하면 기본적으로 부모 및 자식 트러스트가 만들어진다. 트리 루트 트러스트: 기존 포리스트에서 도메인 트리를 새로 만들면 기본적으로 트리 루트 트러스트가 만들어진다.
기타 트러스트 바로가기 트러스트: 대규모의 복잡한 도메인 트리나 포리스트에서 트러스트 경로를 줄이는 데 사용 바로가기 트러스트: 대규모의 복잡한 도메인 트리나 포리스트에서 트러스트 경로를 줄이는 데 사용 전이적이며, 단방향 또는 양방향 포리스트 트러스트: 포리스트간에 자원을 공유하기 위해 사용 두 포리스트의 루트 도메인 사이에 설정 전이적이며 단방향 또는 양방향 영역 트러스트: Active Directory 도메인과 커버러스 V5 영역 사이에 설정 전이적 또는 비전이적이며, 단방향 또는 양방향 외부 트러스트: Windows Server 2003 도메인과 Windows NT 도메인 사이에서 만들어지는 트러스트 비전이적이며, 단방향 또는 양방향
트러스트의 동작 방법 - 커버러스 V5의 인증 과정
07. 사이트 및 복제 사이트는 네트워크의 물리적 구조를 반영 사이트는 네트워크의 물리적 구조를 나타내는 반면에 도메인은 조직의 논리적 구조를 표현 사이트를 사용하면 다음의 몇 가지 활동을 쉽게 할 수 있다. 복제: Active Directory는 사이트의 구성에 관한 정보를 사용하여 최신 디렉토리 정보 유지 필요성과 대역폭 최적화 필요성 사이의 균형을 조정 인증: 사용자가 도메인에 로그인하려 할 때 먼저 해당 로컬 사이트를 검색하여 인증할 도메인 컨트롤러를 찾는다. Active Directory 사용 서비스: 사이트 정보를 이용하여 클라이언트에게 가장 인접한 서버를 쉽게 찾을 수 있도록 한다.
사이트 및 도메인의 이해
08. 스키마 디렉토리에 존재하는 모든 개체에 대한 정의가 포함 개체 클래스와 특성으로 구성 기본 스키마는 대부분의 조직에 필요한 충분한 개체 클래스와 특성 집합을 제공 X.500 표준을 준수 Active Directory의 스키마는 확장이 가능 개체 클래스의 정의는 특성 목록으로 구성 예를 들어, 기본 스키마의 사용자 클래스는 givenName, surName, streetAddress와 같은 특성으로 정의 새로 만들어진 사용자 개체는 사용자 클래스의 인스턴스 각 포리스트는 스키마를 하나씩만 포함 스키마는 스키마 디렉토리 파티션에 저장되며 모든 도메인 컨트롤러에 복제
09. 보안 및 액세스 제어 LSA(로컬 보안 기관)의 핵심 기능으로 로그인 인증과 사용자 권한 부여 액세스 토큰을 사용하여 사용자는 단일 로그인으로 도메인 및 트러스트된 도메인에 속한 모든 허가된 자원을 사용 Active Directory는 커버러스 V5 인증 프로토콜, X.509 v3 인증서, 스마트 카드, PKI(공개 키 구조) 및 SSL(Secure Sockets Layer)등을 사용하는 LDAP가 포함
보안 설명자 DACL(임의 액세스 제어 목록): 개체에 대한 접근이 허가되었거나 거부된 사용자와 그룹을 식별 DACL은 기본적으로 개체 소유자나 생성자에 의해 제어되며, 개체에 대한 사용자 접근을 결정하는 ACE(액세스 제어 항목)가 포함 SACL(시스템 액세스 제어 목록): SACL은 개체에 성공적으로 접근하거나 실패한 경우를 감사할 사용자와 그룹을 식별 SACL은 개체 소유자나 생성자에 의해 제어 사용자의 개체에 대한 접근 시도가 성공했는지, 실패했는지의 기록 여부를 결정하는 ACE(액세스 제어 항목)가 포함
사용자 인증 Active Directory에서 사용자가 확인되면 인증 도메인 컨트롤러의 LSA가 사용자의 액세스 토큰을 생성하고 SID(보안 식별자)를 해당 사용자에게 할당 액세스 토큰: 액세스 토큰에는 사용자의 이름, 사용자가 속한 그룹, 사용자의 SID, 사용자가 속한 모든 그룹의 SID가 저장되어 있다. SID(보안 식별자): 보안 사용자 개체가 만들어질 때 자동으로 SID가 할당된다. 보안 사용자는 사용자 및 컴퓨터, 그룹과 같은 사용 권한을 할당받을 수 있는 Active Directory의 계정을 말한다.
Active Directory의 보안을 위한 조치 사항 모든 도메인 컨트롤러를 접근이 제한된 안전한 방에 두고 잠궈두는 것이 좋다. 관리자에 해당하는 Enterprise Admins, Domain Admins, Account Operators, Server Operators, Print Operators, Backup Operators 그룹의 구성원을 조직 내에서 믿을 수 있는 사람으로 임명해야 한다. 사용자가 강력한 암호를 사용할 수밖에 없도록 설정한다. 감사 정책을 사용하여 이벤트 로그를 수시로 점검한다. 반복된 로그인 시도의 실패가 있을 경우, 사용자 계정 잠금이 실행되도록 하여 보안 공격자의 로그인 가능성을 줄인다. 사용자 계정에 암호 사용 내역을 시행한다. 사용자 계정에 최소 및 최대 암호 사용 기간을 설정한다. 공개 키 암호화를 사용하여 사용자의 유효성을 확인한다. 꼭 필요한 경우에만 관리 자격 증명을 사용하여 컴퓨터를 실행한다. 사용자, 그룹 및 컴퓨터가 공유 자원에만 접근하도록 제한한다