Triển khai Windows 7 – Phần 20: Bảo mật MDT (1)

Quản trị mạngTrong loạt bài này, chúng tôi sẽ tiếp tục giới thiệu cho các bạn các bước cần thực hiện để bảo mật môi trường triển khai MDT.

Triển khai Windows 7 – Phần 1: Những cải tiến của Windows AIK 2.0
Triển khai Windows 7 – Phần 2: Sử dụng DISM
Triển khai Windows 7 – Phần 3: Tìm hiểu về MAP 4.0
Triển khai Windows 7 – Phần 4: Sử dụng MAP 4.0
Triển khai Windows 7 – Phần 5: Những nâng cao của MDT 2010
Triển khai Windows 7 – Phần 6: Lite Touch bằng MDT 2010
Triển khai Windows 7 – Phần 7: Triển khai LTI tự động
Triển khai Windows 7 – Phần 8: Tìm hiểu về các file cấu hình LTI
Triển khai Windows 7 – Phần 9: Triển khai Windows 32-bit và 64-bit
Triển khai Windows 7 – Phần 10: Capture và triển khai image của máy tính tham chiếu
Triển khai Windows 7 – Phần 11: Capture một cài đặt hiện có
Triển khai Windows 7 – Phần 12: Lên kế hoạch cho vấn đề tương thích ứng dụng
Triển khai Windows 7 – Phần 13: Chuyển thủ công từ Windows XP sang Windows 7
Triển khai Windows 7 - Phần 14: Chuyển tự động từ Windows XP sang Windows 7
Triển khai Windows 7 – Phần 15: Cấu hình cơ sở dữ liệu MDT
Triển khai Windows 7 – Phần 16: Sử dụng cơ sở dữ liệu MDT
Triển khai Windows 7 – Phần 17: Triển khai dựa trên model và kiểu chế tạo
Triển khai Windows 7 – Phần 18: Xác định UUID của máy tính
Triển khai Windows 7 – Phần 19: Tạo một WinPE Tools CD tùy chỉnh

Mẹo: Bạn có thể tìm kiếm thêm thông tin về triển khai tự động LTI trong Windows 7 Resource Kit của Microsoft.

Các thông tin qua trọng trong file Bootstrap.ini

Chúng tôi sẽ sớm quay trở lại giải thích về cách cấu hình và sử dụng cơ sở dữ liệu MDT, tuy nhiên ở đây, chúng tôi muốn đề cập đến một vấn đề trong bảo mật MDT. Cho tới phần 20 của loạt bài triển khai Windows 7 này, chúng ta vẫn chưa quan tâm tới vấn đề bảo mật. Cho ví dụ, file Bootstrap.ini mà chúng ta đang sử dụng cho deployment share của mình trong các bài này có nội dung như dưới đây:

[Settings]
Priority=Default
[Default]
DeployRoot=\\SEA-DC1\DeploymentShare$
UserID=Administrator
UserDomain=CONTOSO
UserPassword=Pa$$w0rd
KeyboardLocale=en-US
SkipBDDWelcome=YES

Tài khoản người dùng được chỉ định bởi các thuộc tính UserID, UserPassword và UserDomain trong file Bootstrap.ini, file được sử dụng bởi Windows Deployment Wizard trên máy tính mục tiêu để kết nối đến deployment share trên máy chủ MDT và truy cập nội dung của chia sẻ này. Cho tới đây, chúng ta vẫn đang sử dụng tài khoản Administrator mặc định trong miền cho mục đích này. Có hai lý do tại sao đây không phải là một ý tưởng tốt.

Thứ nhất, nếu tự khởi tạo triển khai Lite Touch (LTI) bằng cách khởi động các máy tính mục tiêu có sử dụng LiteTouchPE CD, khi đó bạn sẽ biết rằng file Bootstrap.ini của mình quả thực có trong CD đó. Để xem file này, chúng ta hãy bắt đầu bằng cách kiểm tra nội dung của LiteTouchPE CD trong Windows Explorer (hình 1):


Hình 1: Nội dung bên trong của LiteTouchPE CD khi được xem trong Windows Explorer

Lưu ý rằng hầu hết các CD đều có chứa file image của Windows, Boot.wim, đây là file được tìm thấy trong thư mục \sources trên CD của bạn. (Thư mục \boot chỉ chứa một số file được sử dụng để cho phép CD khởi động và gắn image này). Giả sử rằng bạn để LiteTouchPE CD ở đâu đó và ai đó đã đánh cắp chúng. Tên trộm sau khi đánh cắp được CD của bạn có thể cài đặt Windows AIK 2.0 trên một máy tính và gắn file Boot.wim trên CD này vào một thư mục trống bằng cách sử dụng lệnh Imagex như thể hiện dưới đây (hình 2):


Hình 2: Gắn file Boot.wim từ LiteTouchPE CD

Khi file Boot.wim được gắn cho một thư mục trống rỗng (ở đây thư mục đó có tên C:\PEbootfiles), kẻ trộm có thể duyệt nội dung của image đã được gắn bằng Windows Explorer (hình 3):


Hình 3: File Bootstrap.ini của bạn có trong file Boot.wim của LiteTouchPE CD

Sau đó tên trộm còn có thể mở được file Bootstrap.ini trong Notepad (hình 4):


Hình 4: File Bootstrap.ini này gồm có các dữ liệu quản trị quan trọng cho miền!

Tại đây, toàn bộ cơ sở hạ tầng Windows của bạn đã bị thỏa hiệp do tên trộm đã thu được các dữ liệu cần thiết của quản trị viên miền. Vì vậy, nếu sẽ sử dụng các dữ liệu quản trị viên miền trong file Bootstrap.ini của mình, bạn cần bảo vệ LiteTouchPE CD (hoặc DVD hoặc USB phụ thuộc vào thiết bị khởi động đang sử dụng để khởi tạo quá trình LTI). Nói theo cách khác, không cho người không có quyền có thể truy cập các thiết bị như vậy.

Một vấn đề bảo mật khác có liên quan đến việc truyền tải các dữ liệu quan trọng trên mạng. Khi bạn khởi động máy tính mục tiêu vào Windows PE bằng cách sử dụng thiết bị khởi động LiteTouchPE của mình, máy tính sẽ yêu cầu một địa chỉ IP từ một máy chủ DHCP và sau đó sẽ cố gắng thiết lập kết nối với deployment share trên máy chủ MDT. Lúc này, nếu sử dụng MDT trong kịch bản máy tính mới (New Computer, kịch bản thực hiện một triển khai bare metal vào máy tính mục tiêu hiện chưa có hệ điều hành) thì thẩm định Kerberos hoặc NTLM sẽ được sử dụng để trao đổi một cách an toàn các dữ liệu quan trọng trong file Bootstrap.ini từ máy tính mục tiêu đến máy chủ MDT, và kẻ nào đó đang “đánh hơi” mạng trong của bạn sẽ không thể đánh cắp được các dữ liệu quan trọng này. Tuy nhiên nếu bạn sử dụng MDT trong kịch bản Refresh Computer (kịch bản để re-image một máy tính đang tồn tại trước đó, sau đó lưu và khôi phục các thông tin trạng thái của người dùng), thì file Bootstrap.ini được xử lý từ deployment share và các dữ liệu quan trọng sẽ được truyền tải qua mạng dưới dạng văn bản trong sáng. Điều này có nghĩa nếu có kẻ nào đó đang “đánh hơi” trong mạng của bạn thì hắn có thể đánh cắp các thông tin quan trọng được chỉ định trong file Bootstrap.ini, và nếu có các thông tin quản trị miền thì mạng của bạn sẽ bị thỏa hiệp.

Rõ ràng, nếu sử dụng MDT trong môi trường test, hoặc trong phòng thí nghiệm an toàn có mirror mạng sản xuất của bạn nhưng có một miền khác thì tốt nhất là bạn nên để tài khoản quản trị viên mặc định cho miền trong file Bootstrap.ini như thể hiện trong hình 4 ở trên. Mặc dù vậy nếu sử dụng MDT trong môi trường sản xuất, bạn chắc chắn không muốn thực hiện như vậy. Chúng ta sẽ đi xem xét một giải pháp có thể cho vấn đề này ngay dưới đây.

Xem tiếp trang 2


Các dữ liệu quan trọng trong file CustomSettings.ini

Một địa điểm có dữ liệu quan trọng khác có trong MDT là file CustomSettings.ini cho triển khai của bạn ở đây. Đặc biệt, phần dưới đây của file CustomSettings.ini được sử dụng để tự động hóa quá trình join các máy tính mục tiêu vào miền trong giao đoạn cuối cùng của quá trình triển khai:

JoinDomain=CONTOSO
DomainAdmin=Administrator
DomainAdminDomain=CONTOSO
DomainAdminPassword=Pa$$w0rd

Lưu ý rằng, chúng ta đang sử dụng cùng một tài khoản (CONTOSO\Administrator) trong bài viết này cho cả file Bootstrap.ini (để cho phép máy tính mục tiêu truy cập deployment share) và CustomSettings.ini (để join máy tính mục tiêu vào miền khi cài đặt hoàn tất). Lúc này file CustomSettings.ini của bạn sẽ không hiện diện trong thiết bị khởi động LiteTouchPE, vì vậy không có vấn đề bảo mật liên quan đến nó ở đây. Tuy nhiên trong tất cả các kịch bản triển khai, nơi quá trình gia nhập miền được thực hiện một cách tự động, các thông tin ở trên chứa trong file CustomSettings.ini sẽ được truyền tải qua mạng, từ máy chủ MDT đến máy tính mục tiêu dưới dạng văn bản trong sáng. Điều này có nghĩa rằng nếu bạn sử dụng tài khoản quản trị viên miền Domain Admin để tự động hóa việc gia nhập (join) các máy tính đã triển khai vào miền, thì kẻ đang “đánh hơi” trong mạng của bạn sẽ có thể thỏa hiệp dễ dàng sự bảo mật toàn bộ mạng. Mặc dù vậy, các chứng chỉ mức quản trị viên được yêu cầu nếu bạn muốn gia nhập một máy tính nào đó vào miền. Do đó có một số biện pháp phòng tránh cho vấn đề này và chúng tôi sẽ giới thiệu cho các bạn ở bên dưới. Mặc dù vậy, nếu sử dụng MDT trong môi trường test hoặc trong một phòng thí nghiệm an toàn thì bạn có thể để tài khoản Administrator mặc định cho miền trong CustomSettings.ini như thể hiện ở trên.

Sử dụng bộ tách và join các tài khoản

Nếu sẽ sử dụng máy chủ MDT để triển khai Windows trong môi trường sản xuất, thứ đầu tiên chúng ta có thể thực hiện để làm cho MDT trở nên an toàn hơn là sử dụng các tài khoản người dùng riêng biệt cho việc kết nối với deployment share và cho việc join các máy tính vào miền. Trong ví dụ này, chúng ta sẽ tạo hai tài khoản người dùng mới:

  • mdt_build Tài khoản "build" này sẽ được sử dụng để tạo các máy tính mục tiêu để kết nối đến deployment share của chúng ta.
  • mdt_join Tài khoản "join" này sẽ được sử dụng để join tự động các máy tính mục tiêu vào miền khi quá trình triển khai kết thúc trên các máy tính.

Khi bạn tạo các tài khoản này trong Active Directory Users và Computers, chúng sẽ tự động được gán hội viên trong nhóm Domain Users. Hãy để sau vấn đề này – không add tài khoản này vào nhóm Domain Admins.

Lúc này chúng ta cần nghiên cứu tỉ mỉ các ACL trên deployment share của mình. Hình 5 chỉ thị rằng nhóm Users trên máy chủ MDT, máy chủ gồm có nhóm Domain Users như một thành viên, có đặc quyền Read & Execute trên deployment share.


Hình 5: Nhóm ACL of Users cho một deployment share

Nếu tất cả các bạn đều sử dụng deployment share này cho việc cài đặt Windows trên các máy tính mục tiêu, thì đặc quyền Read & Execute hoàn toàn đủ khả năng vì nó cho phép máy tính mục tiêu đọc các file có trong chia sẻ và chạy kịch bản và các chương trình trong chia sẻ. Nói cách khác, tài khoản “build” của chúng ta, được chỉ định trong Bootstrap.ini, có thể là một tài khoản Domain Users đơn giản – nó không cần phải là tài khoản Domain Admins. Đó là một tin tốt! Vì vậy chúng ta hãy tiếp tục và thay đổi tài khoản được chỉ định bởi thuộc tính UserID trong file Bootstrap.ini từ Administrator vào mdt_build. Khi đã thực hiện xong, file Bootstrap.ini mới của chúng ta sẽ giống như thể hiện trong hình 6 bên dưới:


Hình 6: File Bootstrap.ini hiên chỉ định tài khoản người dùng miền

Không quên rằng sau khi thay đổi file Bootstrap.ini của mình, bạn cần nâng cấp deployment share (hình 7):


Hình 7: Luôn luôn cập nhật deployment share sau khi thay đổi Bootstrap.ini

Thêm vào đó, cũng không được quên rằng sau khi nâng cấp deployment share, bạn cần burn một LiteTouchPE CD mới vì file Bootstrap.ini được nhóm trong nó.

Cho tới đây, quá tốt! Tuy nhiên lúc này vấn đề sử dụng tài khoản join có đôi chút phức tạp hơn, vì vậy chúng ta hãy đề cập đến trong phần sau. Nhưng chúng tôi cần đề cập một vấn đề cho bạn ở đây là, thay đổi mà bạn thực hiện trong file Bootstrap.ini đã phá hỏng thứ gì đó nếu bạn cấu hình cơ sở dữ liệu MDT để triển khai Windows cho các máy tính khác dựa trên UUID, địa chỉ MAC của máy tính hoặc thuộc tính các máy khác như mô tả trong phần 16 và 17 của loạt bài này, bạn sẽ phát hiện ra rằng vấn đề sẽ không làm việc! Đặc biệt bạn có thể triển khai Windows 7 bằng cách sử dụng MDT nhưng các tùy chỉnh mà bạn đã thực hiện trong cơ sở dữ liệu MDT sẽ không được áp dụng (và máy tính mục tiêu sẽ không join vào miền). Bạn có thể hoặc không thể thấy thông báo lỗi hiển thị ở cuối quá trình triển khai, tuy nhiên dù thực hiện cách nào thì khi kiểm tra file BDD.log trong thư mục %WINDIR%\Temp\Deployment logs trên máy tính mục tiêu đã triển khai, bạn cũng sẽ thấy thông báo lỗi sau:

ZTI error opening SQL Connection: Cannot open database "MDT" requested by the login. The login failed. (-2147467259)

Chúng tôi sẽ giới thiệu cách cách khắc phục vấn đề này trong phần tiếp theo của loạt bài, thêm đó chúng tôi cũng sẽ giới thiệu tỉ mỉ vấn đề join an toàn vào miền.

Thứ Sáu, 23/04/2010 16:44
31 👨 2.194
0 Bình luận
Sắp xếp theo
    ❖ Tổng hợp