1. Windows Domain#
- Tại sao phải học Active Directory: Với những công ty, tập đoàn lớn, chúng ta không thể cấu hình hay sửa lỗi bằng tay cho hàng ngàn máy tính trong nội bộ. Việc quản lý tập trung là bắt buộc.
- Các khái niệm cốt lõi:
- Windows Domain: Là một nhóm gồm các máy tính, máy in, và người dùng được đặt dưới quyền quản lý chung.
- Active Directory (AD): Là một cơ sở dữ liệu tập trung lưu trữ cấu hình mạng.
- Domain Controller (DC): Là máy chủ đang chạy dịch vụ AD. Đây chính là “bộ não” điều hành toàn bộ Domain.
2. Active Directory#
1. Active Directory Domain Service (AD DS)#
Là trái tim của hệ thống. Nó hoạt động như một “quyển danh bạ khổng lồ” lưu trữ thông tin của mọi thứ tồn tại trong mạng nội bộ công ty. Mỗi một “thứ” trong danh bạ đó sẽ được coi là một đối tượng (Object). Ví dụ: Users, Machines, Groups, Shares…
2. Một số Object cần lưu ý:#
- Users (Người dùng): Đây là đối tượng phổ biến nhất. “User” còn được gọi là Chủ thể bảo mật (Security Principal) - có thể cung cấp tài khoản, mật khẩu để hệ thống “xác thực”, sau đó hệ thống sẽ “cấp quyền” cho Chủ thể bảo mật được phép làm gì với các đối tượng khác. Có 2 loại User:
- People: Dành cho con người (nhân viên công ty).
- Service: Dành cho phần mềm/dịch vụ chạy ngầm như Web Server (IIS) hay Database (MSSQL). Dịch vụ cũng cần tài khoản để chạy nhưng nó bị giới hạn quyền rất chặt chẽ, chỉ được phép chạy dịch vụ đó thôi.
- Machines (Máy tính): Máy tính cũng là một Object. Bất kỳ máy nào gia nhập vào Domain thì AD sẽ tự động tạo cho nó một tài khoản riêng gọi là Machine Account. Máy tính cũng được xem như một Chủ thể bảo mật:
- Tên tài khoản của máy tính luôn có dấu
$ở cuối. Ví dụ:DC01$. - Mật khẩu tài khoản cực kỳ phức tạp (lên đến 120 ký tự ngẫu nhiên) và Windows sẽ tự động thay đổi định kỳ.
- Tài khoản này có quyền Local Administrator trên chính cái máy tính đó.
- Tên tài khoản của máy tính luôn có dấu
- Security Groups (Nhóm bảo mật): Dùng để cấp quyền cho nhiều người. Nhét 1000 users vào 1 Group, họ sẽ tự động kế thừa quyền của Group đó. Group có thể chứa Users, Machines, và thậm chí chứa 1 Group khác (Nested Group). Security Group cũng được xem là một Security Principal.
- Một số Groups quyền lực mặc định có sẵn trên AD:
| Security Group | Mô tả chi tiết |
|---|---|
| Domain Admins | Nắm quyền sinh sát toàn bộ hệ thống Domain (bao gồm cả các máy chủ DC). |
| Server Operators | Có quyền quản trị máy chủ DC nhưng không có quyền thay đổi thành viên của các group Quản trị khác. |
| Backup Operators | Được quyền truy cập bất kỳ file nào (bỏ qua mọi rào cản phân quyền) để phục vụ sao lưu dữ liệu. |
| Account Operators | Có quyền tạo, xóa, sửa tài khoản của người dùng khác. |
| Domain Users/Computers/Controllers | Chứa tất cả các người dùng, máy tính, máy chủ DC hiện có trong hệ thống. |
3. Active Directory Users and Computers (ADUC)#
- Để cấu hình, ta đăng nhập vào máy chủ DC và mở công cụ ADUC. Tại đây, chúng ta sẽ thấy một cây thư mục chứa các Container mặc định do Windows tự tạo:
- Builtin: Chứa các Groups mặc định.
- Computers: Chứa các máy tính mới join Domain (có thể di chuyển sau).
- Domain Controllers: Chứa các máy chủ DC.
- Managed Service Accounts: Chứa tài khoản của các dịch vụ.
- Ngoài các thư mục mặc định trên, chúng ta có thể tự tạo các thư mục riêng (OUs) để sắp xếp và gán các Policy phù hợp.
4. Phân biệt Security Group vs OUs#
| Tiêu chí | OUs (Organizational Units) | Security Groups (Nhóm bảo mật) |
|---|---|---|
| Mục đích chính | Dùng để áp đặt Policies (Chính sách cấu hình). VD: Cấm đổi hình nền, cấm mở Control Panel, ép cài phần mềm… | Dùng để cấp Permissions (Quyền truy cập). VD: Được phép đọc thư mục Kế Toán, được dùng máy in tầng 3… |
| Số lượng tham gia | Một User/Máy tính CHỈ ĐƯỢC NẰM TRONG 1 OU duy nhất tại một thời điểm (Không thể vừa ở phòng Marketing, vừa ở phòng IT vì chính sách sẽ bị xung đột). | Một User/Máy tính có thể THAM GIA RẤT NHIỀU GROUP cùng lúc (Vừa có quyền in ấn, vừa có quyền xem file dự án A, B…). |
💡 Tóm lại: OU giống như phòng ban chúng ta ngồi làm việc (phải tuân thủ mọi nội quy của phòng đó), còn Security Group giống như chùm chìa khóa dùng để mở cửa (càng có nhiều chìa thì mở được càng nhiều cửa).
3. Quản lý người dùng trong AD#
1. Dọn dẹp OUs và Users#
- Khi cố xóa một OU, hệ thống thường báo lỗi từ chối do cơ chế bảo vệ chống xóa nhầm đang bật.
- Để “mở khóa”, ta thực hiện:
- Trên thanh menu của ADUC, bấm vào View -> Chọn Advanced Features.
- Click chuột phải vào OU muốn xóa -> Chọn Properties.
- Chuyển sang tab Object -> Bỏ tích ở ô Protect object from accidental deletion.
- Nhấn OK. Bây giờ OU đó đã có thể bị xóa bình thường.
2. Delegation (Ủy quyền kiểm soát)#
- Cho phép một “ai đó” được toàn quyền sử dụng “một quyền cụ thể” trên “một khu vực nhất định” mà không cần trao cho họ toàn bộ đặc quyền Domain Admin.
- Cách thức thực hiện (VD: Cấp quyền reset mật khẩu cho nhân viên IT Support - Phillip):
- Click chuột phải vào OU Sales -> Chọn Delegate Control.
- Cửa sổ hiện ra, nhập tên
phillip, nhấn Check Names để xác thực. - Ở cửa sổ chọn quyền, tích vào ô Reset user passwords and force password change at next logon.
- Bấm Next -> Finish. Bây giờ, Phillip đã được phép reset mật khẩu cho toàn bộ nhân viên phòng Sales.
3. Dùng PowerShell để Reset Password (Dưới vai trò Phillip)#
Phillip là nhân viên thường nên không có quyền mở giao diện ADUC. Anh ấy bắt buộc phải dùng lệnh PowerShell để giao tiếp với AD.
Cách thực hiện:
- Đăng nhập vào tài khoản của Phillip qua Remote Desktop Connection.
- Mở PowerShell và gõ lệnh sau để đổi pass cho nhân viên Sophie:
1Set-ADAccountPassword sophie -Reset -NewPassword (Read-Host -AsSecureString -Prompt 'New Password') -Verbose- Nhập Password mới. Lưu ý, mật khẩu phải tuân thủ các chính sách bảo mật (Password Policy):
- Chiều dài tối thiểu (thường từ 7-8 ký tự).
- Độ phức tạp: Chứa ít nhất 3 trong 4 loại ký tự (Chữ Hoa, Chữ thường, Số, Ký tự đặc biệt).
- Không được trùng với các mật khẩu cũ đã sử dụng.
(Ví dụ hợp lệ:
NewPassword123!)
- Best Practice: Mặc dù Phillip vừa đặt mật khẩu cho Sophie, nhưng theo nguyên tắc bảo mật, IT không được phép biết mật khẩu của người dùng. Cần chạy thêm lệnh sau để ép Sophie tự đổi lại mật khẩu khác ngay trong lần đăng nhập tới:
1Set-ADUser -ChangePasswordAtLogon $true -Identity sophie -Verbose- Quá trình thiết lập lại mật khẩu an toàn đã hoàn tất.
4. Quản lý máy tính trong AD#
- Mặc định, mọi máy tính mới join Domain đều bị nhét chung vào một Container là
Computers. Nếu để nguyên, chúng ta sẽ không thể áp dụng các Group Policy (GPO) riêng biệt cho từng loại thiết bị. - Để dễ quản lý, trong mạng thực tế thường chia máy tính thành 3 loại OUs:
- Workstations (Máy trạm): Đây là PC hoặc Laptop của nhân viên. Các tài khoản có đặc quyền cao (như Domain Admins) tuyệt đối không được phép đăng nhập vào Workstation vì rất dễ bị đánh cắp thông tin nếu máy nhiễm mã độc. Tên máy thường có tiền tố PC hoặc LPT.
- Servers (Máy chủ): Đây là những cỗ máy chạy 24/7 để cung cấp dịch vụ. Chúng cần những chính sách bảo mật khắt khe và không được phép áp dụng chính sách tự động sleep/tắt màn hình như máy nhân viên. Tên máy thường có tiền tố SVR hoặc SRV.
- Domain Controllers (DCs): Các máy chủ chạy Active Directory. Đây là mục tiêu quan trọng nhất của mọi cuộc tấn công mạng. Windows đã tự động tạo sẵn một OU
Domain Controllersđể bảo vệ riêng cho chúng.
5. Group Policies#
1. Group Policy Object (GPO)#
- Về bản chất, GPO là một “gói” chứa các cài đặt cấu hình và quy định bảo mật. Một GPO luôn được chia làm 2 nửa rõ rệt:
- Computer Configuration (Cấu hình máy tính): Chỉ áp dụng lên máy tính, bất kỳ ai đăng nhập vào cũng bị ảnh hưởng. VD: Ép máy tính tự động khóa màn hình sau 5 phút.
- User Configuration (Cấu hình người dùng): Chỉ áp dụng lên tài khoản người dùng, người dùng đó đi đăng nhập vào máy nào cũng bị ảnh hưởng. VD: Cấm mở Control Panel.
2. Nguyên lý Áp dụng và Kế thừa:#
- Dùng Group Policy Management (GPM) để tạo và quản lý GPO.
- Cách áp dụng (Linking): Sau khi tạo ra một GPO, chúng ta phải kéo thả (link) nó vào một OU hoặc Domain cụ thể thì nó mới có tác dụng.
- Quy tắc Kế thừa: Hoạt động như một “Thác nước”. Nếu link một GPO vào một thư mục gốc, toàn bộ các thư mục con (Sub-OUs) nằm bên dưới đều sẽ tự động “hứng” trọn quy định đó.
- Security Filtering: Mặc định GPO áp dụng cho tất cả mọi người trong OU. Tuy nhiên, tính năng này cho phép chỉ định đích danh GPO chỉ áp dụng cho một người dùng/nhóm cụ thể.
3. Cách GPO phân phối trong mạng (SYSVOL):#
- Tất cả GPO được lưu tập trung trong một Network Share có tên là SYSVOL, nằm tại
C:\Windows\SYSVOL\sysvol\trên máy chủ DC. Máy tính của nhân viên sẽ tự động kết nối vào thư mục này để kéo luật mới về theo chu kỳ (thường là mỗi 90 phút). - Để ép máy nhân viên cập nhật luật ngay lập tức, mở Command Prompt/PowerShell và gõ:
| |
4. Các kịch bản thực chiến#
- Giới hạn truy cập Control Panel: (Chỉ chặn nhân viên thường, không chặn IT)
- Loại Policy: Thuộc nhóm User Configuration.
- Thực hiện:
- Mở
Group Policy Management. - Tạo GPO mới tên:
Restrict Control Panel Access. - Click chuột phải vào GPO ->
Edit. - Tại cửa sổ Group Policy Management Editor, theo đường dẫn:
User Configuration->Policies->Administrative Templates->Control Panel. - Click chuột phải vào
Prohibit access to Control Panel and PC settings->Edit. - Chọn
Enable->OK. - Ra ngoài cửa sổ chính, kéo thả GPO Restrict Control Panel Access vào các OUs của nhân viên (như Sales, Marketing). Tránh OU IT ra.
- Mở
- Tự động khóa màn hình sau 5 phút:
- Loại Policy: Thuộc nhóm Computer Configuration.
- Thực hiện:
- Mở
Group Policy Management. - Tạo GPO mới tên:
Auto Lock Screen. - Click chuột phải ->
Edit. - Theo đường dẫn:
Computer Configuration->Policies->Windows Settings->Security Settings->Local Policies->Security Options. - Click đúp vào
Interactive logon: Machine inactivity limit. - Chọn
Define this policy setting, nhập thời gian là300seconds ->OK. - Mẹo: Kéo thả GPO Auto Lock Screen vào thẳng root domain
thm.local. Vì GPO này chỉ chứa rule cho máy tính, nên khi lan xuống, các OU chỉ chứa người dùng (như Sales) sẽ tự động phớt lờ nó, chỉ các máy tính trong nhóm Workstations/Servers mới áp dụng.
- Mở
6. Các phương thức xác thực mạng (Authentication)#
- Trong môi trường Domain, DC là nơi lưu trữ toàn bộ mật khẩu. Khi bạn truy cập một dịch vụ (như file share), máy chủ dịch vụ không biết mật khẩu của bạn, nó phải nhờ DC xác minh.
- Có 2 giao thức chính:
- Kerberos: Giao thức mặc định, hiện đại và an toàn nhất hiện nay.
- NetNTLM: Giao thức đời cũ (Legacy), kém an toàn hơn nhưng giữ lại để tương thích ngược.
1. Giao thức Kerberos (Cơ chế dùng “Vé”)#
Hoạt động qua 3 bước cốt lõi:
Bước 1: Yêu cầu vé vào cổng (Request TGT)#
- Hành động: Client gửi Tên đăng nhập và một Timestamp (mã hóa bằng mật khẩu của user) đến KDC (Key Distribution Center - nằm trên DC).
- Phản hồi: KDC giải mã để xác minh. Nếu đúng, KDC cấp cho Client một cái vé TGT (Ticket Granting Ticket) và một Session Key.
- Bảo mật: Vé TGT này bị khóa chặt bằng mã băm (Hash) của một tài khoản siêu quyền lực tên là
krbtgt. Client không thể mở hay đọc được TGT, chỉ có thể giữ nó làm bằng chứng.

Bước 2: Yêu cầu vé dịch vụ (Request TGS)#
- Hành động: Khi Client muốn truy cập máy chủ Database (MSSQL). Nó gửi TGT + SPN (Service Principal Name - tên định danh dịch vụ) tới KDC.
- Phản hồi: KDC tự mở TGT ra kiểm tra (bằng khóa
krbtgt). Hợp lệ, KDC cấp tiếp một vé dịch vụ TGS (Ticket Granting Service) kèm Service Session Key. - Bảo mật: Lần này, vé TGS bị khóa bằng Service Owner Hash (Mật khẩu của chính máy chủ đang chạy MSSQL). Client vẫn chỉ được cầm chứ không đọc được.

Bước 3: Xác thực vào dịch vụ (Authenticate to Service)#
- Hành động: Client mang vé TGS đến gõ cửa máy chủ dịch vụ.
- Kết quả: Máy chủ dịch vụ dùng mật khẩu của nó để giải mã vé TGS. Giải mã thành công, đọc được Service Session Key bên trong -> Cho phép Client truy cập.
2. Giao thức NetNTLM (Cơ chế Thử thách - Trả lời)#
NetNTLM không truyền mật khẩu qua mạng, mà dùng cơ chế Challenge-Response (Thử thách - Trả lời) qua 6 bước:
- Authentication Request: Client gõ cửa Server yêu cầu truy cập.
- Challenge: Server không biết mật khẩu của Client, nó ném lại một bài toán ngẫu nhiên (Challenge).
- Response: Client dùng NTLM Hash (mã băm mật khẩu của mình) làm công thức giải bài toán đó. Xong gửi đáp án (Response) lại cho Server.
- Send: Server cầm bài toán và đáp án chạy đến hỏi DC.
- Verify: DC lôi NTLM Hash của Client từ database ra, tự giải lại bài toán đó. * Nếu đáp án của DC khớp với Response của Client -> Xác nhận đúng người. * DC gửi kết quả (Allow/Deny) lại cho Server.
- Server báo kết quả cuối cùng cho Client.
Lưu ý: Nếu đăng nhập bằng Local Account của máy đó, Server không cần hỏi DC, nó tự lôi file SAM trong ổ cứng ra để kiểm tra đáp án.
7. Trees, Forests và Trust Relationships#
1. Khái niệm về Cây (Trees)#
- Định nghĩa: Một Tree là tập hợp của nhiều Domain có chung một không gian tên (namespace).
- Cấu trúc: Domain gốc là
thm.local. Có thể tạo ra các nhánh con nhưuk.thm.localvàus.thm.local.

- Lợi ích:
- Phân quyền rõ ràng: IT của chi nhánh UK có DC riêng. Họ toàn quyền quản lý nhánh UK nhưng không có quyền thò tay sang nhánh US.
- Chính sách riêng: Triển khai GPO độc lập không sợ đụng chạm.
- Vai trò mới: Quyền Domain Admins chỉ giới hạn ở từng nhánh. Để làm “Tổng quản” cai quản toàn bộ cây, user phải thuộc nhóm Enterprise Admins.
2. Khái niệm về Rừng (Forests)#
- Định nghĩa: Khi gộp nhiều Cây có Namespace khác nhau (Ví dụ:
thm.localsáp nhập vớimht.local) vào chung một mạng lưới, ta có một Forest. - Đặc điểm: Các công ty tuy chung một “Rừng” nhưng vẫn giữ nguyên được tên tuổi và hệ thống quản trị IT độc lập của mình.

3. Mối quan hệ tin cậy (Trust Relationships)#
- Định nghĩa: Là “cây cầu” thiết lập giữa hai Domains để cho phép người dùng bên này có thể truy cập tài nguyên bên kia.
- Có 2 loại Trust cơ bản:
- One-way Trust (Tin cậy 1 chiều):
- Chiều tin tưởng ngược lại với chiều truy cập.
- VD: Domain AAA (chứa File) tin tưởng Domain BBB (chứa User). Kết quả: User BBB được phép sang AAA lấy file. Nhưng User AAA không được sang BBB.
- Two-way Trust (Tin cậy 2 chiều):
- Cả hai Domain tin nhau. User hai bên có thể đi lại, truy cập tài nguyên của nhau.
- Mặc định, khi khởi tạo Trees và Forests, hệ thống tự động giăng sẵn các đường Two-way Trust.
- One-way Trust (Tin cậy 1 chiều):
⚠️ Lưu ý bảo mật: Mở Trust Relationship không có nghĩa là người ta được tự do lấy mọi thứ. Nó chỉ cấp quyền “bước qua biên giới”. Còn việc họ có mở được file hay không hoàn toàn phụ thuộc vào Quyền hạn (Permissions) mà bạn cấp riêng cho file/folder đó.