ตั้งค่า Account Lockout Policy ป้องกันการเดารหัสผ่าน RDP
Windows Server ที่เปิด Remote Desktop (RDP) สู่อินเทอร์เน็ตจะถูกโปรแกรมอัตโนมัติสแกนและลองเดารหัสผ่านตลอดเวลา โดยเฉพาะชื่อผู้ใช้ยอดนิยมอย่าง Administrator, admin หรือ user Account Lockout Policy เป็นนโยบายในตัวของ Windows ที่ล็อกบัญชีชั่วคราวเมื่อใส่รหัสผ่านผิดติดกันเกินจำนวนที่กำหนด ทำให้การเดารหัสผ่านทีละหลายพันครั้งทำไม่ได้
บทความนี้อธิบายการตั้งค่าทั้งผ่านหน้าจอ Local Security Policy และผ่าน Command Line การเลือกค่าที่เหมาะสม และข้อควรระวังที่อาจทำให้ผู้ดูแลเองถูกล็อกออกจากเซิร์ฟเวอร์
สิ่งที่ต้องเตรียม
- Windows Server 2019 หรือ 2022 ที่อัปเดตล่าสุดแล้ว ตาม อัปเดต Windows Server ผ่าน Windows Update และ sconfig
- บัญชีในกลุ่ม Administrators
- บัญชีผู้ดูแลสำรองอย่างน้อยหนึ่งบัญชีที่ใช้งานได้จริง ดู สร้างผู้ใช้ใหม่สำหรับ Remote Desktop บน Windows Server
- ช่องทางเข้าเครื่องที่ไม่ผ่าน RDP สำหรับกรณีฉุกเฉิน เช่น การ Remote เข้า Console Server ผ่าน Web UI
หมายเหตุ: การล็อกบัญชีมีผลกับการเข้าสู่ระบบทุกช่องทาง รวมถึง Console ด้วย ถ้าบัญชีที่คุณใช้ถูกล็อก จะต้องรอจนครบเวลาที่ตั้งไว้ หรือเข้าด้วยบัญชีผู้ดูแลอื่น ให้เปิด Session RDP ปัจจุบันค้างไว้ระหว่างตั้งค่า และทดสอบด้วยบัญชีทดสอบจากหน้าต่างที่สองก่อนปิด Session เดิม
ทำความเข้าใจค่าทั้งสาม
| ค่า | ความหมาย | ค่าที่แนะนำ |
|---|---|---|
| Account lockout threshold | จำนวนครั้งที่ใส่รหัสผ่านผิดติดกันก่อนบัญชีถูกล็อก ค่า 0 คือไม่ล็อกเลย | 5-10 ครั้ง |
| Account lockout duration | ระยะเวลาที่บัญชีถูกล็อกเป็นนาที ค่า 0 คือล็อกจนกว่าผู้ดูแลจะปลดเอง | 15-30 นาที |
| Reset account lockout counter after | ถ้าไม่ได้ใส่ผิดเพิ่มภายในเวลานี้ ตัวนับครั้งที่ผิดจะกลับเป็น 0 | เท่ากับหรือน้อยกว่า Lockout duration |
ตัวอย่างการคำนวณ ถ้าตั้ง 10 ครั้ง ล็อก 15 นาที ผู้โจมตีจะเดาได้ไม่เกินประมาณ 40 ครั้งต่อชั่วโมงต่อบัญชี แทนที่จะเป็นหลายพันครั้ง ไม่ควรตั้ง Duration เป็น 0 บนเซิร์ฟเวอร์ที่เปิด RDP สู่อินเทอร์เน็ต เพราะผู้ไม่หวังดีสามารถจงใจใส่รหัสผิดเพื่อล็อกบัญชีของคุณไว้ถาวรได้ และการตั้ง Threshold ต่ำเกินไป เช่น 3 ครั้ง ก็ทำให้ผู้ใช้จริงถูกล็อกบ่อยจากการพิมพ์ผิดธรรมดา
ขั้นตอนที่ 1: ตรวจค่าปัจจุบัน
เปิด Command Prompt หรือ PowerShell แบบ Run as administrator แล้วรัน
net accounts
ดูสามบรรทัดนี้ในผลลัพธ์ (ตัวอย่างด้านล่างเป็นเครื่องที่ยังไม่ได้เปิดการล็อก ตัวเลขอาจต่างกันตามรุ่น)
Lockout threshold: Never
Lockout duration (minutes): 30
Lockout observation window (minutes): 30
Never หมายถึงยังไม่ได้เปิดการล็อก ส่วน Lockout observation window คือค่า Reset account lockout counter after
ขั้นตอนที่ 2: ตั้งค่าผ่าน Local Security Policy
- กด Win+R พิมพ์
secpol.mscแล้วกด Enter - ไปที่ Security Settings จากนั้น Account Policies และ Account Lockout Policy
- ดับเบิลคลิก Account lockout threshold ใส่
10แล้วกด OK - Windows จะแสดงหน้าต่าง Suggested Value Changes เสนอค่าอีกสองค่าให้อัตโนมัติ กด OK เพื่อรับไว้ก่อน
- ดับเบิลคลิก Account lockout duration ตั้งเป็น
15นาที - ดับเบิลคลิก Reset account lockout counter after ตั้งเป็น
15นาที
ค่า Duration และ Reset counter จะแก้ไขได้หลังจากตั้ง Threshold เป็นค่าที่ไม่ใช่ 0 แล้วเท่านั้น และ Windows ไม่ยอมให้ Reset counter มากกว่า Duration
Allow Administrator account lockout
ในอดีตบัญชี Administrator ที่มากับระบบ (Built-in) จะไม่ถูกล็อกเลย ซึ่งเป็นช่องโหว่ใหญ่เพราะเป็นชื่อที่ถูกเดามากที่สุด ตั้งแต่อัปเดตความปลอดภัยเดือนตุลาคม 2022 เป็นต้นมา Microsoft เพิ่มนโยบาย Allow Administrator account lockout ในหน้าเดียวกันนี้ ถ้าเซิร์ฟเวอร์ของคุณเห็นนโยบายนี้ ให้ตรวจว่าเป็น Enabled ค่าเริ่มต้นของนโยบายนี้ต่างกันตามรุ่นและวิธีติดตั้ง จึงควรตรวจเองทุกเครื่อง ถ้าไม่เห็นนโยบายนี้ แปลว่าเครื่องยังไม่ได้รับอัปเดต ให้อัปเดต Windows ก่อน
ทางที่ดีกว่านั้นคือไม่ใช้บัญชี Administrator เข้า RDP เลย ให้สร้างบัญชีผู้ดูแลชื่ออื่นใช้งาน แล้วปิดหรือเปลี่ยนชื่อบัญชี Built-in ที่ Local Policies, Security Options นโยบาย Accounts: Rename administrator account
ขั้นตอนที่ 3: หรือตั้งค่าด้วย Command Line
ได้ผลเช่นเดียวกับขั้นตอนที่ 2 เหมาะกับการตั้งหลายเครื่องหรือเขียนเป็นสคริปต์ ต้องตั้ง Threshold ก่อน แล้วค่อยตั้งอีกสองค่า
net accounts /lockoutthreshold:10
net accounts /lockoutduration:15 /lockoutwindow:15
ถ้าสำเร็จจะแสดง The command completed successfully. คำสั่งนี้ไม่มีตัวเลือกสำหรับ Allow Administrator account lockout ให้ตั้งค่านั้นผ่าน secpol.msc
ขั้นตอนที่ 4: กรณีเซิร์ฟเวอร์อยู่ใน Active Directory Domain
ถ้าเซิร์ฟเวอร์เข้าร่วม Domain ค่าที่ตั้งใน Local Security Policy สำหรับบัญชี Domain จะไม่มีผล นโยบายรหัสผ่านและการล็อกของบัญชี Domain กำหนดที่ระดับ Domain ใน Group Policy Management โดยแก้ Default Domain Policy ที่ Computer Configuration, Policies, Windows Settings, Security Settings, Account Policies, Account Lockout Policy ส่วนค่าในเครื่องยังมีผลกับบัญชี Local ของเครื่องนั้น
ตรวจสอบผลลัพธ์
- รัน
net accountsอีกครั้ง ต้องเห็น Lockout threshold เป็น 10 และสองค่าที่เหลือเป็น 15 - สร้างบัญชีทดสอบชั่วคราวที่อยู่ในกลุ่ม Remote Desktop Users จากเครื่องอื่นเปิด RDP แล้วใส่รหัสผ่านผิดให้ครบตามจำนวนที่ตั้ง ครั้งถัดไปควรได้ข้อความว่าบัญชีถูกล็อก (The referenced account is currently locked out)
- เปิด Event Viewer ที่ Windows Logs, Security จะเห็น Event ID
4625สำหรับการเข้าสู่ระบบที่ล้มเหลวแต่ละครั้ง และ4740เมื่อบัญชีถูกล็อก รายละเอียดการอ่าน Event ดูที่ ตรวจสอบประวัติการเข้าระบบ RDP ด้วย Event Viewer - ลบบัญชีทดสอบเมื่อเสร็จ
ดูรายการ Event การล็อกล่าสุดด้วย PowerShell ได้เช่นกัน
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4740} -MaxEvents 20 |
Format-Table TimeCreated, @{n='Account';e={$_.Properties[0].Value}} -AutoSize
ปลดล็อกบัญชีที่ถูกล็อก
ถ้าไม่ต้องการรอให้ครบเวลา ให้ผู้ดูแลอีกคนเปิด lusrmgr.msc (Local Users and Groups) ไปที่ Users ดับเบิลคลิกบัญชีที่ถูกล็อก แล้วเอาเครื่องหมายออกจากช่อง Account is locked out แล้วกด OK สำหรับบัญชี Domain ใช้ Active Directory Users and Computers ที่แท็บ Account แทน
ปัญหาที่พบบ่อย
บัญชีผู้ดูแลถูกล็อกซ้ำ ๆ ทั้งที่ไม่ได้ใส่รหัสผิด
แปลว่ามีคนภายนอกกำลังเดารหัสผ่านบัญชีนั้นอยู่ Lockout Policy ทำงานถูกต้องแล้ว แต่ก็ทำให้คุณใช้งานไม่ได้เช่นกัน ทางแก้คือลดการเปิดเผย RDP: จำกัด IP ที่เข้า RDP ได้ด้วย Firewall ตาม เปิด Port บน Windows Defender Firewall (แก้กฎ Remote Desktop ให้รับเฉพาะ IP ของสำนักงาน) เปลี่ยนพอร์ตตาม เปลี่ยน Port Remote Desktop (RDP) บน Windows Server และใช้ชื่อบัญชีที่เดายาก หากเซิร์ฟเวอร์มี Security Group หรือ Firewall ภายนอกจากฝั่งผู้ให้บริการ ให้จำกัด IP ที่นั่นด้วย
บัญชีบริการหรือแอปพลิเคชันถูกล็อกหลังเปลี่ยนรหัสผ่าน
Scheduled Task, Service หรือ Drive ที่ Map ไว้ซึ่งยังเก็บรหัสผ่านเก่าจะพยายามเข้าสู่ระบบซ้ำจนบัญชีถูกล็อก ดู Event 4625 เพื่อหาชื่อโปรแกรมและเครื่องต้นทาง แล้วอัปเดตรหัสผ่านในจุดนั้น เช่น ใน Task Scheduler ดู ตั้งเวลาให้งานทำงานอัตโนมัติด้วย Task Scheduler บน Windows Server
ตั้งค่าแล้วแต่ net accounts ยังแสดงค่าเดิม
ถ้าเครื่องอยู่ใน Domain ค่าจาก Group Policy ของ Domain จะเขียนทับค่าในเครื่อง ให้ตรวจด้วย gpresult /h C:\gp.html แล้วเปิดไฟล์ดูว่านโยบายใดเป็นตัวกำหนด หรือสั่ง gpupdate /force หลังแก้ที่ระดับ Domain
Account Lockout Policy เป็นเพียงหนึ่งชั้นของการป้องกัน ควรใช้ร่วมกับรหัสผ่านที่ยาวและการจำกัด IP เสมอ หากต้องการความช่วยเหลือในการตั้งค่า ติดต่อทีมงาน THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


