כיצד לגבות בקר תחום של Active Directory?
במאמר זה נדבר על גיבוי בקר תחום של Active Directory ונלמד כיצד להגדיר גיבוי AD אוטומטי באמצעות PowerShell וכלי Windows Server מוכללים.
האם עליי לגבות את Active Directory?
פעמים רבות שמעתי מעמיתיי מנהלי המערכת שאם יש לך מספר בקרי תחום (3, 8 וכו') המפוזרים על פני מיקומים גיאוגרפיים שונים, אינך צריך לגבות את AD שלך כלל. מכיוון שעם DCs מרובים סיפקת עמידות בפני תקלות תחום. זוהי הסכימה כאשר הכשל בו זמנית של כל DCs נוטה 0, ואם אחד מבקרי התחום נכשל, אתה יכול לפרוס במהירות אחד חדש באותו אתר ולהסיר את הישן באמצעות ntdsutil.
עם זאת, בפרקטיקה שלי נתקלתי בתרחישים שונים שבהם התברר שכל בקרי הדומיינים ניזוקו: במקרה אחד כל בקרי הדומיינים (למרות שהיו יותר מ-20 מהם בערים שונות) הוצפנו עקב לכידת סיסמת מנהל דומיין על ידי תוכנת כופר באמצעות הכלי mimikatz, במקרה אחר שכפול של NTD פגום. קובץ DIT גרם לכשל בתחום.
אז אתה יכול וצריך לגבות את המודעה שלך. עליך לגבות לפחות בקרי תחום מרכזיים ובעלים של תפקידי FSMO (פעולות חד-ראשיות גמישות) באופן קבוע. באפשרותך לקבל את רשימת בקרי התחום עם תפקידי FSMO באמצעות פקודה זו:
netdom query fsmoקבל את תאריך הגיבוי האחרון של בקר תחום של Active Directory
באפשרותך לבדוק מתי בקר התחום הנוכחי של Active Directory גובה בפעם האחרונה באמצעות כלי repadmin:
repadmin /showbackup
ניתן לראות שבדוגמה זו הפעם האחרונה שמחיצות DC ו- AD גובו הייתה 2017-02-18 (סביר להניח שהגיבוי לא נעשה מאז פריסת בקר התחום).
באפשרותך לקבל את מצב הגיבוי עבור כל DCs בתחום באמצעות פקודה זו:
repadmin /showbackup *אם בקרי התחום שלך פועלים במחשבים וירטואליים ואתה מגבה אותם באמצעות תמונות (ראה דוגמה עם גיבוי Hyper-V), תאריכי הגיבוי לא יעודכנו מסיבה ברורה. לרוב כלי הגיבוי המודרניים יש אפשרות שניתן לבדוק כדי לציין שמדובר ב- DC ויש לעדכן נתונים בספריית LDAP במהלך הגיבוי.
גיבוי בקר תחום AD באמצעות גיבוי Windows Server
אם אין לך תוכנת גיבוי מיוחדת, באפשרותך להשתמש בגיבוי Windows Server המובנה (רכיב זה החליף את הכלי NTBackup). באפשרותך להגדיר משימת גיבוי אוטומטי בממשק המשתמש הגרפי של גיבוי שרת Windows, אך יש לה כמה מגבלות. החיסרון העיקרי הוא שגיבוי שרת חדש תמיד יחליף גיבוי קודם.
בעת גיבוי בקר תחום באמצעות WSB, אתה יוצר גיבוי מצב מערכת. מצב המערכת כולל את מסד הנתונים של Active Directory (NTDS. DIT), אובייקטי מדיניות קבוצתית, תוכן ספריות SYSVOL, הרישום, המטה-נתונים של IIS, מסד הנתונים של AD CS וקבצים ומשאבים אחרים של המערכת. הגיבוי נוצר באמצעות שירות עותק צל של אמצעי אחסון (VSS).
באפשרותך לבדוק אם גיבוי שרת Windows מותקן באמצעות ה- cmdlet Get-WindowsFeature PowerShell:
Get-WindowsFeature Windows-Server-Backupאם WSB אינו מותקן, באפשרותך להוסיף אותו באמצעות PowerShell:
Add-Windowsfeature Windows-Server-Backup -Includeallsubfeatureלחלופין, התקן את גיבוי שרת Windows באמצעות Server Manager -> Features.
אני אשמור את הגיבוי של בקר תחום AD זה בתיקיית רשת משותפת בשרת גיבוי ייעודי. לדוגמה, נתיב לספריית הגיבוי עשוי להיראות כך:
\\mun-back1\backup\dc01. קביעת תצורה של הרשאות NTFS עבור תיקיה זו: הענק הרשאות גישת קריאה וכתיבה לקבוצות מנהלי תחומים ובקרי תחום בלבד.
גיבוי Active Directory באמצעות PowerShell
בוא ננסה לגבות בקר תחום באמצעות PowerShell. כדי לשמור רמות מרובות של עותקי גיבוי AD, נאחסן כל עותק גיבוי בספרייה נפרדת עם תאריך יצירת הגיבוי כשם התיקייה.
Import-Module ServerManager
[string]$date = get-date -f 'yyyy-MM-dd'
$path=”\\mun-back1\backup\dc1\”
$TargetUNC=$path+$date
$TestTargetUNC= Test-Path -Path $TargetUNC
if (!($TestTargetUNC)){
New-Item -Path $TargetUNC -ItemType directory
}
$WBadmin_cmd = "wbadmin.exe START BACKUP -backupTarget:$TargetUNC -systemState -noverify -vssCopy -quiet"
Invoke-Expression $WBadmin_cmdהפעל את קובץ ה-script של PowerShell. מסוף wbadmin יופיע. הוא מכיל מידע על תהליך יצירת גיבוי הדיסק (עותק צל):
The backup operation to \\mun-back1\backup\dc1\2020-06-01 is starting.
Creating a shadow copy of the volumes specified for backup...הניסיון הראשון שלי לגבות DC נכשל עם שגיאה (בקר התחום היה מכונה וירטואלית של VMWare):
Detailed error: The filename, directory name, or volume label syntax is incorrect.
The backup of the system state failed [01.06.2020 8:31].פתחתי את יומן השגיאות של WSB — C:\Windows\Logs\WindowsServerBackup\Backup_Error-01-06-2020_09-23-14.log.
אירעה השגיאה הבאה בקובץ:
Error in backup of C:\windows\\systemroot\ during enumerate: Error [0x8007007b] The filename, directory name, or volume label syntax is incorrect.
במבט קדימה, אני אגיד כי הבעיה היתה בנתיב שגוי של מנהל ההתקן VMWware Tools.
כדי לתקן את השגיאה, הפעל את שורת הפקודה להגביה והפעל פקודה זו:
DiskShadow /L writers.txt
list writers detailedלאחר קבלת הרשימה, הקלד quit ופתח את C:\Windows\System32\writers.txt. מצא את המחרוזת המכילה "windows\\ " בתוכה.
במקרה שלי המחרוזת שמצאתי נראתה כך:
File List: Path = c:\windows\\systemroot\system32\drivers, Filespec = vsock.sysכפי שניתן לראות, נעשה שימוש בנתיב שגוי למנהל ההתקן VSOCK.SYS.
כדי לתקן את הנתיב, פתח את עורך הרישום ועבור אל מפתח reg HKLM\SYSTEM\CurrentControlSet\Services\vsock.
שנה את הערך ImagePath מ
\systemroot\system32\DRIVERS\vsock.sysל
System32\DRIVERS\vsock.sysהפעל שוב את קובץ ה- Script לגיבוי.
אם הגיבוי הצליח, תראה את ההודעות הבאות ביומן:
The backup operation successfully completed.
The backup of volume (C:) completed successfully.
The backup of the system state successfully completed [01.06.2020 09:52].בדוק את הזמן של גיבוי DC האחרון:
repadmin /showbackupעכשיו זה אומר כי גיבוי בקר התחום האחרון בוצע היום.
גודל הספרייה עם גיבוי בקר התחום בשרת הוא כ- 9GB. למעשה, יש לנו קובץ VHDX שבו אתה יכול להשתמש כדי לשחזר את מערכת ההפעלה מ- WSB, או שאתה יכול לטעון ידנית את קובץ VHDX ולהעתיק את הקבצים או התיקיות שאתה צריך ממנו.
אם קיימים DCs מרובים ב- Active Directory, אינך צריך לגבות את כולם. כדי לחסוך מקום, מספיק לגבות מעת לעת את מסד הנתונים של Active Directory — קובץ ntds.dit. לשם כך, השתמש בפקודות הבאות:
$WBadmin_cmd = "wbadmin start backup -backuptarget:$path -include:C:\Windows\NTDS\ntds.dit -quiet"
Invoke-Expression $WBadmin_cmdגודלו של גיבוי כזה יהיה רק 50-500MB בהתאם לגודל מסד הנתונים AD.
לגיבוי AD אוטומטי, צור את קובץ ה-script C:\PS\Backup_AD_DC.ps1 ב-DC. הפעל אותו בהתאם ללוח הזמנים באמצעות מתזמן המשימות. באפשרותך ליצור משימת מתזמן מממשק המשתמש הגרפי או באמצעות PowerShell. הדרישה העיקרית היא כי המשימה חייבת להיות מופעלת תחת
NT AUTHORITY\SYSTEMחשבון עם האפשרות הפעל עם ההרשאות הגבוהות ביותר מסומנת. לגיבוי יומי של בקר תחום AD, צור את המשימה המתוזמנת הבאה:
$Trigger= New-ScheduledTaskTrigger -At 02:00am -Daily
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:\PS\Backup_AD_DC.ps1"
Register-ScheduledTask -TaskName "BackupAD-DC-daily" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest -Forceלכן, הגדרנו גיבוי AD, ואנו נדבר על דרכים לשחזר AD מגיבוי מצב מערכת בקר תחום במאמר הבא שלנו.









