The Small Space
 
내 멋대로 이야기
세계 정복 프로젝트
컴퓨터
하루
재태크
     
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
 
 
 
 
  

Total , yesterday , today
powered by Tatter tools, designed by kokoro studio.
  1. 2009.11.03 Active Directory

1.Active Directory1

윈도우 2000을 가장 어렵게 만드는 요소들 중 하나만 꼽으라고 한다면 누구나 Active Directory를 들 겁니다. 기존의 NT에 상당히 익숙해 있던 사용자 또는 관리자라고 하더라도 생소한 개념이기 때문이죠. 게다가 윈2000에선 거의 모든 서비스가 이 Active Directory라는 디렉토리 서비스와 연동되어 있어서 기존의 지식이 별무소용처럼 느껴지기 때문입니다.

먼저 디렉토리 서비스가 무엇인지 부터 짚고 넘어가기로 하겠습니다

디렉토리 하면 제일 먼저 연상되는 것... 전 탐색기를 열었을 때 나타나는 수많은 폴더들이 생각납니다.
디렉토리 안에는 컴퓨터의 거의 모든 파일들이 나열되어 있구요.디렉토리 서비스의 디렉토리란 것도 뭔가 이와 비슷한 것이 아닐까요?

Directory Service란 네트워크상의 자원(Resources)을 정의하고 사용자 및 응용프로그램이 이를 사용할 수 있도록 하는 네트워크 서비스를 말하는데 여기서 자원이란 컴퓨터, 이메일주소, 프린터 등을 포함하는데 이상적인 디렉토리 서비스는 물리적인 네트워크 토폴로지나 프로토콜을 투명하게 해서 (물리적으로 그것들이 어떻게 구성되어 있건 간에) 사용자가 자원을 이용하고자 할 때 실제로 그 자원이 어디에 어떻게 연결되어 있는지 몰라도 이용가능하도록 구현되어야 한다고 합니다.

현재 가장 널리이용되는 디렉토리 서비스를 들라고 하면 이멜일 주소를 대상으로 주로 사용되는 LDAP과 노벨 넷웨어 네트워크에서 이용되는 NDS(Netware Directory Service)가 있으며 거의 모든 디렉토리 서비스가 ITU(Int'l Telecommunication Union)의 X.500 표준에 기반하고 있다는 군여. 그냥 간단하게 말하면 네트워크 상의 모든 자원에 관한 정보를 담고 있는 중앙 서비스 또는 서버라고 하면 되겠습니다.

윈2000의 Active Directory는 위와 같은 표준에 따른 Microsoft사 버젼의 디렉토리 서비스입니다.

위에서 말했던 것처럼 Active Directory는 윈2000 네트워크의 근간을 이루고 있어서 윈2000을 개인적으로
사용할 목적이 아니라 MS사가 당초 의도했던 대로 기업 네트워크를 관할하는 명실상부한 서버로 이용하려고 한다면 Active Directory의 개념을 제대로 이해해야 합니다. 네트워크에 존재하는 거의 모든 것들이 Active Directory의 범주에 포함되어야 하고 Active Directory는 구조화되어야 하니까요

2.Active Directory2

Active Directory를 도입함으로써 기존의 NT Server에 비해 어떻게 일이 복잡해지는지(?) 하나씩 알아보겠습니다.

1. 사용자 계정 관리

NT에서 로근온 이름, 암호, 소속된 그룹 등의 사용자 정보를 담고 있던 일종의 DB파일을 SAM(Security Account Manager)이라고 불렀습니다만 윈2000에선 NTDS.dit란 이름으로 바뀌었고 취급하는 정보도 훨씬 많아졌어여. 이 NTDS.dit가 담고 있는 정보와 이 파일을 관리하는 프로그램(?)을 합쳐서 디렉토리 서비스라고 부릅니다. (NTDS는 NT Directory Service인 것 처럼 보이죠).
사용자 계정에 관한 내용은 추후에 알아보도록 하겠습니다.

소규모 네트워크에선 별로 필요성을 느끼지 못할테지만 컴퓨터와 사용자가 수천 수만에 이르고 부서도
엄청나게 많은 대규모 네트워크의 경우에는 필요에 따라 네트워크 서비스를 제공하는 서버에 로그온해야 할 일도 많은데 그것들이 각각 별도의 사용자 이름과 암호를 요구하는 경우 이걸 다 어떻게 관리하죠?
게다가 보안상의 이유로 일정기간이 지나면 사용자 이름과 암호를 변경하도록 정책이 수립되어 있다면
문제는 더 복잡해질 겁니다.

디렉토리 서비스를 이용함으로써 이론적으로는 하나의 로그온 이름과 암호로 네트워크 상의 모든 파일서버, 프린트 서버, DB서버등에 로그온이 가능해집니다.
2. 컴퓨터 찾기

디렉토리 서비스 (DS)는 자원 정보를 담고 있다고 했고 이 자원은 사용자에 국한되는 것이 아니라고 말씀드렸었죠. 네트워크상의 사용자들이 필요상 특정 서버에 접속해야 할 경우 Active Directory (AD)에 물어보면 됩니다. 클라이언트-서버 환경이 보다 단순화 또는 집중화 되는 거죠.

3. 계층적 구조

인터넷이 인터넷이란 이름을 갖기 전의 시절에는 지리적으로 떨어져 있는 네트워크상의 컴들간에 통신을 위해서 hosts파일을 이용했습니다. 이 파일의 구성은 간단해요. 컴이름과 그 컴의 IP주소를 한 줄에 하나씩 죽 적어놓은 텍스트 파일이었습니다. 아래처럼 생겼다는 얘깁니다.

mars 10.0.0.1
mars-pro 191.168.123.1
koku10 210.112.123.1
... ....

이걸 한 곳에서 관리했구요. 통신하는 컴들이 얼마 되지 않을 때는 가능했지만 점차 컴의 수가 많아지자 이 파일만을 관리하는 사람을 두고도 도저히 늘어나는 컴의 이름과 IP정보를 감당할 수 없게 되었습니다. 그래서 등장한게 DNS(Domain Name System)입니다.

DNS는 제일 상위에 .(dot 또는 root) 네임서버가 있고 하위에 com, net, org 등의 도메인을 관리하는 네임서버들이 있고 그 하위에 microsoft.com, ods.org 등 각 기업체의 네임서버가 존재합니다. 단계별로 각각의
네임서버는 상위 네임서버로부터 관리권한을 위양받아서 자기 할 일만 하면 되게 되었죠. 이렇게 뿌리를 뻗어가는 계층적 구조의 최대 이점은 아무리 많은 컴이 새로 등록되더라도 편입 및 관리가 용이하다는
것입니다.
DS 또한 계층적 구조를 갖고 있기 때문에 새로운 자원이 등록되더라도 수월하게 등록할 수 있는 등 네트워크상에 산재해 있는 자원의 관리가 용이해지고 권한 위임이라는 개념도 그대로 적용됩니다.


AD를 이용함으로써 가능하게 되는 것들이 무수히 많지만 일단 이 정도로 넘어가겠습니다. 각각의 서비스에서 자주 언급될테니까 실제 업무와 직접 연결되는 내용들을 다루는 것으로 미뤄 놓겠습니다. 
 

3.Active Directory3

MS가 자사의 DS를 AD(Active Directory)라는 이름으로 새로 만들어내면서 여러가지 용어들 또한 만들어
냈습니다. 용어도 생소하고 그 상관관계가 상당히 복잡하지만 윈2000 서버군을 보다 효율적으로 결과적으로 윈2000 네트워크를 보다 효율적으로 이용하기 위해선 이들 개념을 정확하게 이해해야 할 것 같습니다. 주요한 개념들을 아래에서 다루겠습니다.

NT 서버가 관장하는 네트워크를 Domain이라고 부릅니다. NT Domain에서 도메인 관리자가 신경써야 할
개념들은 도메인, 사용자 계정, 컴퓨터 계정, 그룹, 트러스트 정도가 있었지만 윈2000에선 이것들 외에도 많은 것들이 추가 되었습니다.

기존의 NT 도메인에서와 같은 이름으로 불리더라도 윈2000에선 실제 적용에 있어 약간은 다른 의미를
가지기 때문에 전체적으로 알아보겠습니다.


1. Domain

도메인이란 무엇인가 하는 질문에 대한 전통적인 대답은 "NT 보안의 한 단위"라는 것입니다. NT 서버를
인증서버로 하는 네트워크의 한 단위라는 뜻이죠. 자기 컴(Local Computer)을 사용하고자 할 때는 local computer에 등록된 사용자 계정과 암호를 이용하여 로근온하면 됩니다. 그러나 이러한 사용자 계정과 암호가 NT 도메인에 등록되어 있지 않다면 또는 등록은 되어 있더라도 로그온시 도메인을 정확히 지정하지 않으면 NT 네트워크의 한 단위인 도메인에 속해 있는 자원에 대한 접근은 불가능하게 되는 거죠.

보안의 가장 기초적인 개념이 특정 컴 또는 네트워크 전체에 있는 자원에 대한 접근 시도를 사용자 계정과 암호를 통하여 인증(Authentication)하는 것이라고 본다면 이들 사용자 정보를 어디에 어떻게 저장하느냐 하는 문제가 대두됩니다.

NT에선 로컬 컴 및 도메인 전체의 사용자 정보를 SAM이라고 하는 파일로 저장했습니다. 로컬 사용자 정보는 로컬 컴에 SAM파일로, 도메인 사용자 정보는 이를 중앙집중하여 관리하는 서버에 역시 SAM이라는
파일로 저장했는데 이 때 도메인 SAM파일을 가지고 있는 서버컴을 Domain Controller (DC)라고 불렀죠.
윈2000도 기본적으로는 이와 유사합니다. 도메인 사용자 정보를 저장하고 있는 서버컴을 역시 DC라고 부르니까요. 다른 점은 도메인 사용자 정보를 담고 있는 파일은 SAM이 아니라 NTDS.dit이고 이것은 여러번 말씀 드렸던 것처럼 AD의 다른 이름입니다. 이런 의미에서 윈2000 네트워크에서는 DC를 달리 Active Directory Server 라고도 부릅니다. 로컬 사용자 정보는 여전히 SAM 파일로 저장됩니다.


2. 사용자(컴퓨터) 그룹

사용자 계정과 더불어 컴퓨터 계정이 NT 도메인에서 필요합니다. 도메인내에 있지 않은 컴은 원천적으로 로그온에 이용될 수 없어야 하니까요. 인증의 과정을 거쳐 도메인에 로그온한 다음엔 어떤 과정이 필요할까요? 도메인에 로그온하는 이유는 로컬 컴에서는 수행할 수 없는 어떤 일을 하기 위함인데 이를 위해선 필히 도메인에 있는 자원에 접근(Access)해야 합니다.

다만 도메인 사용자 또는 컴퓨터라 하더라도 필요에 따라 접근자체를 제한하거나 접근의 수위를 제한해야 할 필요가 있습니다. 자원사용권한(Permission)을 통해 이를 구현하는데, 문제는 계정단위로 이 작업을
하려면 해야 할 일이 너무나 많다는 겁니다. 관리 작업을 보다 편하게 하기 위해 등장한 개념이 사용자
계정 또는 컴퓨터 계정을 필요한 분류 기준에 따라 묶어 놓은 Group이라는 것인데 컴그룹은 기존의 NT
네트워크에선 없던 것을 윈2000에서 새로이 도입했습니다.

NT에선 그룹이라고 하면 local group과 global group 둘 뿐이었습니다. 물론 둘다 사용자 그룹이구요.
두 그룹의 차이는 로컬 그룹은 로컬 컴에서만 권한을 갖는데 반해 글로벌 그룹은 DC에서만 생성될 수
있으며 권한이 필요한 컴의 로컬 그룹의 멤버가 됨으로써 해당 컴에 대한 권한을 획득하죠. 관리목적으로 사용자 계정을 그룹으로 묶는다고 하는 개념에 가장 부합하는 그룹입니다.

보다 단순하게 말한다면 로컬 그룹은 사용자 계정 및 글로벌 그룹을 담는데 쓰이고, 글로벌 그룹은 사용자 계정을 묶어서 필요한 로컬 그룹의 멤버가 되는 겁니다.

윈2000에선 그룹의 종류가 네개가 되었습니다.
각각 Domain local group(DLG), Machine local group(MLG), Domain global group, Universal group이 그것들입니다. 참고로 윈2000에서 그룹 정책은 이들 그룹에 적용시키지 않게 되었습니다. OU나 도메인, 사이트가 그 적용대상이 되었습니다.

Machine local group은 NT의 local group에 해당합니다. Domain local group은 그 성격 및 용도는 Machine local group과 동일하지만 DC에 존재하는 그룹이라는 사실만이 다를 뿐입니다.
Global Group은 NT의 그것과 동일합니다.
Universal group은 이름에서도 짐작할 수 있는 것처럼 로컬 그룹과 글로벌 그룹의 성격을 모두 갖고 있습니다. 즉, 다른 그룹의 멤버가 될 수도 있고 다른 그룹을 담을 수도 있습니다.

Universal Group이 굉장히 파워풀해 보이지만 두가지 제약사항이 있습니다. 하나는 네트워크상에 NT DC가 하나라도 있는 Mixed Mode에서는 이 그룹을 생성할 수 없다는 것이고 다른 하나는 Global Catalog (도메인이 여러개 모여서 Tree를 만들고 Tree가 모여서 Forest를 만드는데 Forest에 속한 모든 도메인의 AD 중
몇몇 사용자 및 그룹 정보를 모아 놓은 것)를 무척이나 크게 만들어서 반응속도 및 성능을 저하시킨다는 점입니다.

다음은 각각의 그룹이 멤버로 담을 수 있는 그룹들을 표시합니다.

MLG : 같은 도메인에 있는 Global/Universal/DLG, 트러스트 관계를 맺은 윈2000 도메인의 Global/Universal, 트러스트 관계 맺은 NT 도메인의 Global

DLG : 같은 도메인에 있는 Global/Universal/DLG, Forest내의 모든 도메인에 있는Global/Universal

Global : 같은 도메인에 있는 Global

Universal : Forest내의 모든 도메인에 있는 Global/Universal


3. Organizational Unit (OU)

개인적으로 가장 이해하기 어려운 부분이라고 생각됩니다. 도대체가 Group이란 것과의 차이점을 찾아내기 힘드니까요. 개념상으로는 관리목적상 도메인을 세분화시킨 것으로 주로 계정 정책, 그룹 정책, 시스템 정책을 적용시키기 위해 사용자 및 컴 계정을 묶는 데 사용합니다. OU와 Group의 차이가 뭐냐고 물으면
실무적인 의미에서 자원 사용 권한은 Group에 부여하고 정책은 OU에 적용한다고만 이해하기로 합시다.


4. Site

OU가 Group과 혼동하기 쉬운 개념이라면 Site는 Domain과 혼동하기 쉬운 개념이지만 그다지 어려운 개념은 아닙니다. Site란 랜으로 연결된 범위를 말합니다.
따라서 기업의 네트워크 구조에 따라 Site가 Domain보다 큰 개념일 수도 있고 그렇지 않은 개념일 수도
있습니다. 예를 들어 지리적으로 떨어져 있는 여러 사무실을 하나의 Domain으로 관리하는 경우엔 Site보다 Domain이 영역상 더 큰 개념일테고 하나의 랜환경이지만 여러개의 도메인으로 구성된 경우에는 Site가
더 큰 개념이 되는 거죠.

Site가 윈2000 네트워크에서 의미를 가지는 것은 서로 다른 랜영역에 있는 (WAN환경) DC간에 AD정보를
주고 받을 때 LAN보다는 WAN에서 네트워크 성능이 취약한 점을 고려하여 자동으로 주고 받는 데이터를 압축할 뿐만 아니라 가장 비용이 적게 되는 경로를 이용한다는 것입니다. 괜찮은 기능입니다.


5. 도메인 트리 (Tree), 도메인 포레스트 (Forest)

여러개의 도메인으로 구성된 멀티도메인 기업 환경에서 이들 도메인 전체를 도메인 트리라 하고 Tree가 모여 도메인 포레스트(Forest)를 구성합니다.
최초로 구성되는 윈2000 도메인(inside2k.co.kr)이 Tree의 뿌리(root domain)가 되고 이후 만들어지는 도메인(seoul.inside2k.co.kr, daejeon.inside2k.co.kr...)은 자동으로 뿌리의 자식(child domain)이 될 뿐만 아니라 둘 사이에 양방향 트러스트 관계(two-way trust relationships)가 형성되어 관리작업을 줄여줍니다. 참고로 이렇게 생성되는 트러스트 관계는 전이성(transitive)을 갖추게 됩니다. 도메인 트리는 당연히 계층적 구조를 띄게 되죠. 마치 아브라함이...를 낳고....낳고... 또 낳고 했던 것처럼 말이죠. 도메인 트리가 모여서
도메인 포레스트가 됩니다. 

,
*1