เพื่อให้แน่ใจว่ามีการรักษาความปลอดภัยระดับสูงสำหรับบัญชีผู้ใช้ในโดเมน 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 woshub.com -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 แสดงอยู่ในตารางด้านล่าง:
นโยบาย | ค่าเริ่มต้น |
บังคับใช้ประวัติรหัสผ่าน | รหัสผ่าน 24 อัน |
อายุรหัสผ่านสูงสุด | 42 วัน |
อายุรหัสผ่านขั้นต่ำ | 1 วัน |
ความยาวรหัสผ่านขั้นต่ำ | 7 |
รหัสผ่านต้องตรงตามข้อกำหนดด้านความซับซ้อน | เปิดใช้งาน |
จัดเก็บรหัสผ่านโดยใช้การเข้ารหัสแบบย้อนกลับ | ปิดการใช้งาน |
ระยะเวลาการปิดบัญชี | ไม่ได้ตั้งค่า |
เกณฑ์การปิดบัญชี | 0 |
รีเซ็ตตัวนับการปิดบัญชีหลังจาก | ไม่ได้ตั้งค่า |
ในชุดเครื่องมือการปฏิบัติตามข้อกำหนดด้านความปลอดภัย Microsoft ขอแนะนำให้ใช้การตั้งค่านโยบายรหัสผ่านต่อไปนี้:
- บังคับใช้ประวัติรหัสผ่าน:24
- อายุรหัสผ่านสูงสุด:ไม่ได้ตั้งค่า
- อายุรหัสผ่านขั้นต่ำ:ไม่ได้ตั้งค่า
- ความยาวรหัสผ่านขั้นต่ำ:14
- รหัสผ่านต้องตรงตามความซับซ้อน:เปิดใช้งาน
- จัดเก็บรหัสผ่านโดยใช้การเข้ารหัสแบบย้อนกลับ:ปิดใช้งาน
จะตรวจสอบนโยบายรหัสผ่านปัจจุบันในโดเมน AD ได้อย่างไร
คุณสามารถดูการตั้งค่านโยบายรหัสผ่านปัจจุบันได้ในนโยบายโดเมนเริ่มต้นใน gpmc.msc
คอนโซล (บนแท็บการตั้งค่า)
คุณยังสามารถแสดงข้อมูลนโยบายรหัสผ่านโดยใช้ PowerShell (ต้องติดตั้งโมดูล AD PowerShell บนคอมพิวเตอร์):
Get-ADDefaultDomainPasswordPolicy
ComplexityEnabled: True DistinguishedName: DC=woshub,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 และ Block Inheritance จะไม่มีผลกับผู้ใช้
นโยบายรหัสผ่านโดเมนมีผลกับวัตถุ AD ของผู้ใช้เท่านั้น รหัสผ่านคอมพิวเตอร์ที่ให้ความสัมพันธ์ความเชื่อถือโดเมนมีการตั้งค่า GPO ของตนเองก่อนหน้า Active Directory ใน Windows Server 2008 สามารถกำหนดค่านโยบายรหัสผ่านได้เพียงนโยบายเดียวต่อโดเมน ใน AD เวอร์ชันใหม่กว่า คุณสามารถสร้างนโยบายรหัสผ่านได้หลายแบบสำหรับผู้ใช้หรือกลุ่มต่างๆ โดยใช้ Fine-Grained Password Policies (FGPP) นโยบายรหัสผ่านแบบละเอียดช่วยให้คุณสร้างและบังคับใช้ Password Settings Objects (PSO) ที่แตกต่างกันได้ ตัวอย่างเช่น คุณสามารถสร้าง PSO ที่มีความยาวหรือความซับซ้อนของรหัสผ่านเพิ่มขึ้นสำหรับบัญชีผู้ดูแลระบบโดเมน (ดูบทความการรักษาความปลอดภัยบัญชีผู้ดูแลระบบในโดเมน AD) หรือสร้างรหัสผ่านของบางบัญชีให้ง่ายขึ้นหรือปิดการใช้งานอย่างสมบูรณ์
ในสภาพแวดล้อมเวิร์กกรุ๊ป คุณจะต้องกำหนดนโยบายรหัสผ่านในคอมพิวเตอร์แต่ละเครื่องโดยใช้ตัวแก้ไข GPO ในพื้นที่ - gpedit.msc หรือคุณสามารถโอนการตั้งค่านโยบาย GPO ในพื้นที่ระหว่างคอมพิวเตอร์โดยใช้วิธีนี้