Ngăn chặn việc xóa nhầm dữ liệu trong Windows Server 2003 Active Directory

Có thể nói rằng một trong những vấn đề “đau đầu” nhất trong khâu quản lý, làm việc với Active Directory là việc xóa nhầm dữ liệu hoặc đối tượng do vô tình hoặc người dùng xử lý không chính xác.

Tất nhiên, về mặt kỹ thuật thì họ phải có quyền đầy đủ trong Active Directory thì mới có thể thực hiện được việc xóa đối tượng bên trong. Bên cạnh đó, còn 1 trường hợp cũng rất dễ xảy ra, đó là người dùng xóa toàn bộ Organizational Unit – OU với tất cả những gì bên trong đó mà không hề để ý đến cửa sổ thông báo hiển thị tiếp theo.

Một trong những vấn đề khác thường xuyên gặp phải là di chuyển nhầm 1 đơn vụ OU với tất cả các đối tượng bên trong sang một OU khác:

Hãy nhớ rằng, là một người quản trị hệ thống, thì những thành viên của nhóm Domain Admins, Enterprise Admins hoặc Schema Admins groups là các vị trí hết sức quan trọng. Nếu bạn không chắc chắn rằng họ có thể đảm nhận được công việc hay không thì tốt nhất là không nên gán quyền cho họ. Các phương pháp được áp dụng ở đây chủ yếu dành cho Active Director và Domain Controller của Windows Server 2003, còn đối với Windows Server 2008 thì đã có thêm một số tùy chọn trên giao diện đồ họa.

Về mặt lý thuyết, nếu muốn tránh khỏi chuyện xóa nhầm dữ liệu hoặc đối tượng bên trong thì người quản trị phải phân quyền tương ứng đối với từng Object hoặc Organizational Unit của Active Directory. Bên cạnh đó, các bạn có thể sử dụng phương pháp dưới đây để gán Access Control Entries – ACEs:

– Đối với thành phần Organizational Unit cần “bảo vệ”, gán thêm Deny ACEs tới mức phân quyền Delete và Delete Subtree của group Everyone.

– Với phần Container bên ngoài có chứa OU thì hãy gán Deny ACE tới Delete All Child Objects của group Everyone.

Cách làm này sẽ giúp người quản trị ngăn chặn được các đối tượng OU khỏi việc bị xóa nhầm. Cụ thể là khi ai đó cố tình hoặc vô ý xóa những thành phần đang được bảo vệ này, hệ thống sẽ hiển thị lỗi thông báo rằng quyền truy cập và thực hiện thao tác bị từ chối.

Cách 1: sử dụng Active Directory Users and Computers:

Để thực hiện, các bạn hãy đăng nhập trên member của group Domain Admins, sau đó mở Active Directory Users and Computers từ Start Menu -> Administrative Tools hoặc gõ DSA.MSC trong cửa sổ Run. Tiếp theo, áp dụng mức phân quyền phù hợp với đối tượng OU cần bảo vệ bằng cách nhấn chuột phải và chọn Properties.

Tại cửa sổ thuộc tính của đối tượng, chọn thẻ Security và Advanced:

Lưu ý rằng thẻ Security không hiển thị sẵn ở chế độ mặc định. Để mở cửa sổ này, các bạn hãy đóng phần Property và chọn Advanced Features từ ADUC View:

Trong mục Advanced Security Settings, nhấn Add, gõ Everyone sau đó nhấn OK:

Tại phần Permissions của Permission Entry, các bạn đánh dấu vào ô checkbox Deny tương ứng của Delete và Delete Subtree. Đánh dấu tiếp vào ô Apply these permissions to objects and/or containers within this container only như hình dưới:

Nhấn OK để đóng cửa sổ Permission Entry:

Nhấn tiếp Apply tại Advanced Security Settings. Sau đó, xem lại các thông tin khi cửa sổ Windows Security hiển thị và chọn Yes để tiếp tục:

Nhấn OK để đóng cửa sổ Advanced Security Settings và tiếp tục OK để đóng OU Properties.

Tiếp theo, áp dụng mức phân quyền tương tự như vậy với phần Container có chứa OU cần bảo vệ. Để thực hiện, chúng ta nhấn chuột phải vào Container đó và chọn Properties:

Chọn tab Security trong cửa sổ Container Properties. Sau đó, nhấn Add, gõ Everyone và OK. Trong mục Permissions for Everyone, các bạn đánh dấu vào ô checkbox Deny của Delete All Child Objects, sau đó nhấn Apply:

Sau đó, đóng hết tất cả các cửa sổ của phần này lại. Khi xóa 1 đối tượng OU bất kỳ nào đó thì hệ thống sẽ hiển thị thông báo lỗi như hình dưới:

Để gỡ bỏ cơ chế bảo vệ này, các bạn hãy xóa Deny ACEs đã được gán cho group Everyone.

Cách 2: sử dụng câu lệnh DACLS:

Mặt khác, nếu các bạn muốn sử dụng chức năng DSACLS để bảo vệ cho đối tượng OU thì có thể áp dụng:

dsacls “ou=Company Users,dc=mydomain,dc=com” /d Everyone:SDDT

Còn nếu muốn bảo vệ cho toàn bộ cấu trúc OU thì có thể sử dụng lệnh:

for /f “tokens=*” %i in (‘dsquery ou -limit 0’) do dsacls %i /d Everyone:SDDT

Lưu ý rằng câu lệnh trên sẽ tiến hành áp dụng với Organizational Unit EVERY trong domain Active Directory. Còn nếu muốn áp dụng từng mức khác nhau thì hãy thay đổi lệnh dsquery.

Chúc các bạn thành công!

Theo Quantrimang

Bài viết liên quan