Thường xuyên kiểm tra và loại bỏ tài khoản người dùng không hoạt động trong Active Directory

Tại sao hãy xem xét điều này

Hơn 10 phần trăm tài khoản người dùng trong Active Directory đã được phát hiện là không hoạt động (cũ), dựa trên lần cuối cùng mật khẩu được thay đổi hoặc dấu thời gian đăng nhập cuối cùng của người dùng. Tài khoản người dùng cũ trong Active Directory là rủi ro bảo mật đáng kể vì chúng có thể được kẻ tấn công hoặc nhân viên cũ sử dụng. Những tài khoản không hoạt động này cũng tiêu thụ không gian cơ sở dữ liệu có thể nhận được.

Xem Kỹ sư khách hàng giải thích sự cố

Các phương pháp & nhất của Ngữ cảnh

Active Directory chứa một tài khoản cho mọi người dùng. Theo thời gian, người dùng rời khỏi tổ chức và các tài khoản người dùng đó có thể không bị loại bỏ khỏi Active Directory. Tài khoản người dùng cũ là một vấn đề bảo mật quan trọng, vì các nhân viên cũ và kẻ tấn công bên ngoài có thể sử dụng các tài khoản đó để tấn công tổ chức. Tài khoản cũ cũng dùng hết bộ nhớ trong cơ sở dữ liệu thư mục có thể thu hồi được.

Tài khoản người dùng có thuộc tính được gọi là PasswordLastSet, ghi lại lần cuối cùng người dùng thay đổi mật khẩu của mình. Bởi vì PasswordLastSet là một thuộc tính sao chép, chỉ có một bộ điều khiển tên miền trong mỗi tên miền phải được truy vấn.

Windows Server 2003 đã giới thiệu một thuộc tính mới được gọi là lastLogonTimeStamp để hỗ trợ trong việc xác định các tài khoản có khả năng cũ. Thuộc tính này kích hoạt trong vùng được đặt ở cấp độ chức năng Windows Server 2003, Windows Server 2008, Windows Server 2008R2, Windows Server 2012 hoặc Windows Server 2012R2. Không giống như các thuộc tính lastLogon, mà đã có sẵn từ Windows NT 4.0, lastLogonTimeStamp được sao chép mỗi khi nó được cập nhật. Truy vấn thuộc tính này thuận tiện hơn vì chỉ có một bộ điều khiển tên miền trong mỗi tên miền phải được truy vấn.

Để tìm các tài khoản, chạy một script truy vấn Active Directory cho các tài khoản người dùng không hoạt động. Trong Mô-đun Active Directory cho phiên Windows PowerShell, Search-ADAccount –AccountInactive – Lệnh UsersOnly trả về tất cả tài khoản người dùng không hoạt động. Sử dụng các khóa chuyển -DateTime hoặc -TimeSpan để thu hẹp ngày mà trên đó máy tính đăng nhập lần cuối vào.

Lưu ý: Lastlogontimestamp không được sao chép mỗi khi ai đó đăng nhập. Hãy xem Hiểu thuộc tính Tài khoản AD - LastLogon, LastLogonTimeStamp và LastLogonDate, tại https://social.technet.microsoft.com/wiki/contents/articles/22461.understanding-the-ad-account-attributes-lastlogon-lastlogontimestamp-and-lastlogondate.aspx.

Đối phó với tài khoản người dùng cũ thường đi xuống để thực hiện các quy trình deprovisioning có hiệu quả. Tuy nhiên, người dùng có thể không làm việc và do đó không đăng nhập trong một khoảng thời gian mở rộng. Ngoài ra, tài khoản dịch vụ có thể không đăng nhập trong thời gian mở rộng. Do đó, bạn nên kết hợp nhiều kiểm tra và có biện pháp bảo vệ tại chỗ để giúp ngăn chặn việc vô hiệu hóa hoặc xóa các tài khoản vẫn còn đang được sử dụng.

Hành động được Đề xuất

Bạn nên thực hiện kiểm tra thường xuyên để tìm kiếm bất kỳ tài khoản người dùng nào đã không thay đổi mật khẩu của họ trong sáu tháng qua, sau đó vô hiệu hóa và loại bỏ các tài khoản từ Active Directory.

Chạy script trong mỗi miền truy vấn Active Directory cho tài khoản người dùng nơi tuổi mật khẩu là trong một thời gian nhất định. Trong Mô-đun Active Directory dành cho Windows PowerShell, hãy chạy script sau để liệt kê các tài khoản người dùng mà ở đó mật khẩu không thay đổi trong sáu tháng qua.

$d = [DateTime]::Today.AddDays(-180)

Get-ADUser -Filter '(PasswordLastSet -lt $d) -or (LastLogonTimestamp -lt $d)' -Properties PasswordLastSet,LastLogonTimestamp | tên ft,PasswordLastSet,@{N="LastLogonTimestamp"; E={[datetime]::FromFileTime($_. LastLogonTimestamp)}}

Sau khi cũ tài khoản được xác định, khuyên bạn vô hiệu hóa các tài khoản người dùng, chờ vài tuần, và sau đó xóa các tài khoản nếu không có vấn đề đã được báo cáo.