การกำหนดค่านโยบายรหัสผ่านโดเมนใน Active Directory
เพื่อให้แน่ใจว่ามีการรักษาความปลอดภัยระดับสูงสำหรับบัญชีผู้ใช้ในโดเมน Active Directory ผู้ดูแลระบบต้องกำหนดค่าและใช้นโยบายรหัสผ่านของโดเมน นโยบายรหัสผ่านควรมีความซับซ้อนเพียงพอ ความยาวของรหัสผ่าน และความถี่ในการเปลี่ยนรหัสผ่านของบัญชีผู้ใช้และบัญชีบริการ ดังนั้น คุณสามารถทำให้ผู้โจมตีใช้กำลังดุร้ายหรือจับรหัสผ่านของผู้ใช้ได้ยากเมื่อส่งผ่านเครือข่าย
นโยบายรหัสผ่านในนโยบายโดเมนเริ่มต้น
ตามค่าเริ่มต้น ในการตั้งค่าข้อกำหนดทั่วไปสำหรับรหัสผ่านของผู้ใช้ในโดเมน AD จะใช้การตั้งค่า Group Policy (GPO) นโยบายรหัสผ่านของบัญชีผู้ใช้โดเมนได้รับการกำหนดค่าใน นโยบายโดเมนเริ่มต้น นโยบายนี้เชื่อมโยงกับรากของโดเมนและต้องใช้กับตัวควบคุมโดเมนที่มีบทบาทตัวจำลอง PDC
ในการกำหนดค่านโยบายรหัสผ่านของบัญชี AD ให้เปิดคอนโซล การจัดการนโยบายกลุ่ม (
gpmc.msc);
ขยายโดเมนของคุณและค้นหา GPO ชื่อ นโยบายโดเมนเริ่มต้น คลิกขวาแล้วเลือก แก้ไข
นโยบายรหัสผ่านอยู่ในส่วน GPO ต่อไปนี้: การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> การตั้งค่า Windows->การตั้งค่าความปลอดภัย -> นโยบายบัญชี -> นโยบายรหัสผ่าน;
คลิกสองครั้งที่การตั้งค่านโยบายเพื่อแก้ไข หากต้องการเปิดใช้การตั้งค่านโยบายเฉพาะ ให้ทำเครื่องหมายที่ กำหนดการตั้งค่านโยบายนี้ และระบุค่าที่จำเป็น (ในภาพหน้าจอด้านล่าง ฉันได้กำหนดความยาวขั้นต่ำของรหัสผ่านไว้ที่ 8 อักขระ) บันทึกการเปลี่ยนแปลง
การตั้งค่านโยบายรหัสผ่านใหม่จะถูกนำไปใช้กับคอมพิวเตอร์โดเมนทั้งหมดในพื้นหลังในบางเวลา (90 นาที) ระหว่างการบู๊ตของคอมพิวเตอร์ หรือคุณสามารถใช้นโยบายได้ทันทีโดยเรียกใช้
gpupdate /forceสั่งการ.
คุณสามารถเปลี่ยนการตั้งค่านโยบายรหัสผ่านจากคอนโซลการจัดการ GPO หรือโดยใช้ PowerShell cmdlet Set-ADDefaultDomainPasswordPolicy:
Set-ADDefaultDomainPasswordPolicy -Identity a-d.site -MinPasswordLength 10 -LockoutThreshold 3การตั้งค่านโยบายรหัสผ่านพื้นฐานบน Windows
ลองพิจารณาการตั้งค่ารหัสผ่าน Windows ที่มีทั้งหมด มีการตั้งค่ารหัสผ่านหกรายการใน GPO:
บังคับใช้ประวัติรหัสผ่าน - กำหนดจำนวนรหัสผ่านเก่าที่จัดเก็บไว้ใน AD ซึ่งจะป้องกันไม่ให้ผู้ใช้ใช้รหัสผ่านเก่า
อย่างไรก็ตาม ผู้ดูแลโดเมนหรือผู้ใช้ที่ได้รับมอบสิทธิ์รีเซ็ตรหัสผ่านใน AD สามารถตั้งรหัสผ่านเดิมสำหรับบัญชีด้วยตนเองได้
-
อายุรหัสผ่านสูงสุด - กำหนดวันหมดอายุของรหัสผ่านเป็นวัน หลังจากรหัสผ่านหมดอายุ Windows จะขอให้ผู้ใช้เปลี่ยนรหัสผ่าน รับประกันความสม่ำเสมอของการเปลี่ยนรหัสผ่านโดยผู้ใช้
คุณสามารถค้นหาเมื่อรหัสผ่านของผู้ใช้เฉพาะหมดอายุโดยใช้ PowerShell:
Get-ADUser -Identity j.werder -Properties msDS-UserPasswordExpiryTimeComputed | select-object @{Name="ExpirationDate";Expression= {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") }} ความยาวรหัสผ่านขั้นต่ำ - ขอแนะนำว่ารหัสผ่านควรมีสัญลักษณ์อย่างน้อย 8 ตัว (หากคุณระบุ 0 ที่นี่ ไม่ต้องใช้รหัสผ่าน)
อายุขั้นต่ำของรหัสผ่าน - กำหนดความถี่ที่ผู้ใช้สามารถเปลี่ยนรหัสผ่านได้ การตั้งค่านี้จะไม่อนุญาตให้ผู้ใช้เปลี่ยนรหัสผ่านบ่อยเกินไปเพื่อกลับไปใช้รหัสผ่านเก่าที่ต้องการโดยการลบออกจากประวัติรหัสผ่านหลังจากเปลี่ยนรหัสผ่านหลายครั้งติดต่อกัน ตามกฎแล้วควรตั้ง 1 วันที่นี่เพื่อให้ผู้ใช้สามารถเปลี่ยนรหัสผ่านได้เองหากถูกบุกรุก (มิฉะนั้นผู้ดูแลระบบจะต้องเปลี่ยนรหัสผ่าน)
รหัสผ่านต้องเป็นไปตามข้อกำหนดด้านความซับซ้อน - หากเปิดใช้งานนโยบาย ผู้ใช้จะไม่สามารถใช้ชื่อบัญชีในรหัสผ่านได้ (ไม่เกิน 2 สัญลักษณ์ของ
usernameหรือ
Firstnameติดต่อกัน) นอกจากนี้ ต้องใช้สัญลักษณ์ 3 ประเภทในรหัสผ่าน ได้แก่ ตัวเลข (0-9), ตัวพิมพ์ใหญ่, ตัวพิมพ์เล็ก และอักขระพิเศษ ($, #, % เป็นต้น) นอกจากนี้ เพื่อป้องกันการใช้รหัสผ่านที่ไม่รัดกุม (จากพจนานุกรมรหัสผ่าน) ขอแนะนำให้ตรวจสอบรหัสผ่านของผู้ใช้เป็นประจำในโดเมน AD
จัดเก็บรหัสผ่านโดยใช้การเข้ารหัสแบบย้อนกลับได้ - รหัสผ่านของผู้ใช้จะถูกจัดเก็บแบบเข้ารหัสในฐานข้อมูล AD แต่ในบางกรณี คุณต้องให้สิทธิ์เข้าถึงรหัสผ่านของผู้ใช้แก่บางแอป หากเปิดใช้งานการตั้งค่านโยบายนี้ รหัสผ่านจะได้รับการป้องกันน้อยกว่า (เกือบจะเป็นข้อความล้วน) ไม่ปลอดภัย (ผู้โจมตีสามารถเข้าถึงฐานข้อมูลรหัสผ่านได้หาก DC ถูกบุกรุก สามารถใช้ตัวควบคุมโดเมนแบบอ่านอย่างเดียว (RODC) เป็นหนึ่งในมาตรการป้องกัน)
หากผู้ใช้พยายามเปลี่ยนรหัสผ่านที่ไม่ตรงกับนโยบายรหัสผ่านในโดเมน ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้น:
Unable to update the password. The value provided for the new password does not meet the length, complexity, or history requirements of the domain.
นอกจากนี้ ควรกำหนดค่าการตั้งค่ารหัสผ่านต่อไปนี้ในส่วน GPO รหัสผ่านการล็อกบัญชี:
เกณฑ์การล็อกบัญชี - จำนวนครั้งในการพยายามลงชื่อเข้าใช้ที่ล้มเหลว (ด้วยรหัสผ่านผิด) สามารถทำได้โดยผู้ใช้ก่อนที่บัญชีจะล็อกเอาต์
ระยะเวลาการล็อกบัญชี - ระยะเวลาที่บัญชีจะถูกล็อก หากผู้ใช้ป้อนรหัสผ่านผิดหลายครั้ง
รีเซ็ตตัวนับเกณฑ์การล็อกบัญชีหลังจาก - จำนวนนาทีที่ตัวนับเกณฑ์การล็อกบัญชีจะถูกรีเซ็ต
หากบัญชีโดเมนใดบัญชีหนึ่งถูกล็อกบ่อยเกินไป คุณสามารถระบุแหล่งที่มาของการล็อกบัญชีโดยใช้วิธีนี้
การตั้งค่าเริ่มต้นของนโยบายรหัสผ่านในโดเมน AD แสดงอยู่ในตารางด้านล่าง:
| Policy | Default value |
| Enforce password history | 24 passwords |
| Maximum password age | 42 days |
| Minimum password age | 1 day |
| Minimum password length | 7 |
| Password must meet complexity requirements | Enabled |
| Store passwords using reversible encryption | Disabled |
| Account lockout duration | Not set |
| Account lockout threshold | 0 |
| Reset account lockout counter after | Not set |
ใน Security Compliance Toolkit Microsoft ขอแนะนำให้ใช้การตั้งค่านโยบายรหัสผ่านต่อไปนี้:
บังคับใช้ประวัติรหัสผ่าน: 24
อายุรหัสผ่านสูงสุด: ไม่ได้ตั้งค่า
อายุรหัสผ่านขั้นต่ำ: ไม่ได้ตั้งค่า
ความยาวรหัสผ่านขั้นต่ำ: 14
รหัสผ่านต้องเป็นไปตามความซับซ้อน: เปิดใช้งาน
จัดเก็บรหัสผ่านโดยใช้การเข้ารหัสย้อนกลับ: ปิดใช้งาน
ในคำแนะนำ Security Baseline 1903 ล่าสุด Microsoft ระบุว่าไม่จำเป็นต้องเปิดใช้งานนโยบายการหมดอายุของรหัสผ่านสำหรับผู้ใช้ การหมดอายุของรหัสผ่านไม่ได้เพิ่มความปลอดภัย แต่สร้างปัญหาที่ไม่จำเป็นเท่านั้น (ลิงก์)
จะตรวจสอบนโยบายรหัสผ่านปัจจุบันในโดเมน AD ได้อย่างไร
คุณสามารถดูการตั้งค่านโยบายรหัสผ่านปัจจุบันได้ในนโยบายโดเมนเริ่มต้นใน
gpmc.mscคอนโซล (บนแท็บการตั้งค่า)
คุณยังสามารถแสดงข้อมูลนโยบายรหัสผ่านโดยใช้ PowerShell (ต้องติดตั้งโมดูล AD PowerShell บนคอมพิวเตอร์):
Get-ADDefaultDomainPasswordPolicyComplexityEnabled: True
DistinguishedName: DC=a-d,DC=com
LockoutDuration: 00:20:00
LockoutObservationWindow: 00:30:00
LockoutThreshold: 0
MaxPasswordAge: 60.00:00:00
MinPasswordAge: 1.00:00:00
MinPasswordLength: 8
objectClas : {domainDNS}
PasswordHistoryCount: 24
ReversibleEncryptionEnabled: Falseนอกจากนี้ คุณสามารถตรวจสอบการตั้งค่านโยบายรหัสผ่าน AD ปัจจุบันบนคอมพิวเตอร์โดเมนใดก็ได้โดยใช้คำสั่ง gpresult
นโยบายรหัสผ่านหลายรายการในโดเมน Active Directory
ตัวควบคุมโดเมน ซึ่งเป็นเจ้าของบทบาท PDC Emulator FSMO มีหน้าที่รับผิดชอบในการจัดการนโยบายรหัสผ่านของโดเมน ต้องมีสิทธิ์ของผู้ดูแลระบบโดเมนในการแก้ไขการตั้งค่า นโยบายโดเมนเริ่มต้น
ในขั้นต้น อาจมีนโยบายรหัสผ่านเดียวในโดเมน ซึ่งใช้กับรูทของโดเมนและมีผลกับผู้ใช้ทั้งหมดโดยไม่มีข้อยกเว้น (มีความแตกต่างเล็กน้อย แต่เราจะพูดถึงในภายหลัง) แม้ว่าคุณจะสร้าง GPO ใหม่ด้วยการตั้งค่ารหัสผ่านที่แตกต่างกัน และนำไปใช้กับ OU เฉพาะที่มีพารามิเตอร์ Enforced and Block Inheritance ก็จะไม่มีผลกับผู้ใช้
นโยบายรหัสผ่านของโดเมนมีผลกับวัตถุ AD ของผู้ใช้เท่านั้น รหัสผ่านคอมพิวเตอร์ที่ให้ความสัมพันธ์ที่เชื่อถือของโดเมนมีการตั้งค่า GPO ของตนเอง
ก่อน Active Directory ใน Windows Server 2008 สามารถกำหนดค่านโยบายรหัสผ่านได้เพียงหนึ่งนโยบายต่อโดเมน ใน AD เวอร์ชันใหม่ คุณสามารถสร้างนโยบายรหัสผ่านหลายรายการสำหรับผู้ใช้หรือกลุ่มต่างๆ โดยใช้นโยบายรหัสผ่านแบบละเอียด (FGPP) Grained Password Policy ให้คุณสร้างและบังคับใช้ Password Settings Objects (PSOs) ที่แตกต่างกัน ตัวอย่างเช่น คุณสามารถสร้าง PSO ที่มีความยาวหรือความซับซ้อนของรหัสผ่านเพิ่มขึ้นสำหรับบัญชีผู้ดูแลระบบของโดเมน หรือทำให้รหัสผ่านของบางบัญชีง่ายขึ้น หรือแม้แต่ปิดการใช้งานโดยสิ้นเชิง
ในสภาพแวดล้อมแบบเวิร์กกรุ๊ป คุณจะต้องกำหนดค่านโยบายรหัสผ่านบนคอมพิวเตอร์แต่ละเครื่องโดยใช้โปรแกรมแก้ไข GPO ในเครื่อง - gpedit.msc หรือคุณสามารถถ่ายโอนการตั้งค่านโยบาย GPO ในเครื่องระหว่างคอมพิวเตอร์โดยใช้วิธีนี้





