เปิด Two-Factor Authentication สำหรับหน้า Login WordPress
รหัสผ่านเพียงอย่างเดียวไม่พอสำหรับป้องกันหน้า Login ของ WordPress เพราะรหัสผ่านรั่วได้จากหลายทาง ทั้งการใช้รหัสซ้ำกับเว็บอื่น มัลแวร์ในเครื่อง หรือการเดาด้วยโปรแกรมอัตโนมัติ Two-Factor Authentication (2FA) เพิ่มขั้นตอนที่สอง คือรหัส 6 หลักจากแอปบนมือถือ ทำให้แม้มีคนรู้รหัสผ่าน ก็ยังเข้าระบบไม่ได้
WordPress ยังไม่มี 2FA ในตัว ต้องเพิ่มผ่านปลั๊กอิน บทความนี้ใช้ปลั๊กอิน Two Factor ซึ่งพัฒนาโดยทีมผู้ร่วมพัฒนา WordPress และเผยแพร่บน WordPress.org เป็นตัวอย่างหลัก พร้อมแนะนำทางเลือกเมื่อต้องการบังคับใช้ 2FA กับผู้ใช้ทุกคน และวิธีกู้การเข้าถึงเมื่อทำโทรศัพท์หาย
สิ่งที่ต้องเตรียม
- บัญชี Administrator ของ WordPress
- แอป Authenticator บนมือถือ เช่น Google Authenticator, Microsoft Authenticator หรือแอปจัดการรหัสผ่านที่รองรับ TOTP
- สิทธิ์ SSH พร้อม WP-CLI หรือ File Manager ไว้สำหรับกู้การเข้าถึงหากถูกล็อก (ดู จัดการ WordPress ด้วย WP-CLI)
- เวลาของเซิร์ฟเวอร์ถูกต้อง เพราะรหัส TOTP อิงเวลา ดู ตั้งค่า Timezone และซิงก์เวลาอัตโนมัติบน Linux Server
หมายเหตุ: ชื่อเมนูและตัวเลือกของปลั๊กอินอาจเปลี่ยนตามเวอร์ชัน หากหน้าจอไม่ตรงกับบทความ ให้ดูหน้าเอกสารของปลั๊กอินบน WordPress.org ประกอบ ระหว่างตั้งค่าให้เปิดหน้าหลังบ้านค้างไว้อีกหนึ่งแท็บ และทดสอบการเข้าสู่ระบบในหน้าต่าง Incognito เพื่อไม่ให้ล็อกตัวเองออก
ขั้นตอนที่ 1: ติดตั้งปลั๊กอิน Two Factor
- ไปที่ Plugins > Add New Plugin
- ค้นหาคำว่า
Two Factorเลือกปลั๊กอินชื่อ Two Factor ที่อยู่ในหน้า https://wordpress.org/plugins/two-factor/ (ระวังปลั๊กอินชื่อคล้ายกันจากผู้พัฒนาอื่น) - คลิก Install Now แล้วคลิก Activate
หรือติดตั้งด้วย WP-CLI
wp plugin install two-factor --activate
ผลที่ถูกต้องคือ Plugin 'two-factor' activated. และ Success: Installed 1 of 1 plugins.
ขั้นตอนที่ 2: เปิด 2FA ให้บัญชีของตัวเอง
- ไปที่ Users > Profile เลื่อนลงไปที่ส่วน Two-Factor Options
- ติ๊กเปิด Authenticator App (TOTP) ระบบจะแสดง QR Code และรหัสลับแบบตัวอักษร
- เปิดแอป Authenticator บนมือถือ เลือกเพิ่มบัญชี แล้วสแกน QR Code
- พิมพ์รหัส 6 หลักที่แอปแสดงลงในช่องยืนยัน แล้วกดปุ่มยืนยันข้างช่อง (ชื่อปุ่มอาจเป็น Submit หรือ Verify ตามเวอร์ชัน)
- ติ๊กเปิด Backup Verification Codes แล้วคลิก Generate Verification Codes ระบบจะแสดงรหัสสำรองใช้ครั้งเดียวชุดหนึ่ง
- เลือก Authenticator App เป็นวิธีหลัก (Primary) แล้วคลิก Update Profile
รหัสสำรองแสดงเพียงครั้งเดียว ให้ดาวน์โหลดหรือพิมพ์เก็บไว้ในที่ปลอดภัย เช่น ในโปรแกรมจัดการรหัสผ่าน แยกจากโทรศัพท์ที่ใช้รับรหัส
วิธียืนยันตัวตนที่เลือกได้
| วิธี | ข้อดี | ข้อควรระวัง |
|---|---|---|
| Authenticator App (TOTP) | ไม่ต้องใช้อินเทอร์เน็ตบนมือถือ ปลอดภัยกว่าอีเมล | ทำโทรศัพท์หายต้องใช้รหัสสำรอง |
| ตั้งค่าง่าย ไม่ต้องติดตั้งแอป | ถ้าอีเมลถูกเจาะ 2FA ก็ไร้ผล และเว็บต้องส่งอีเมลได้ ดู ตั้งค่า WordPress ให้ส่งอีเมลผ่าน SMTP | |
| Backup Verification Codes | ใช้กู้การเข้าถึงเมื่อไม่มีโทรศัพท์ | แต่ละรหัสใช้ได้ครั้งเดียว |
แนะนำให้ผู้ใช้ระดับ Administrator ใช้ Authenticator App เป็นวิธีหลักและมีรหัสสำรองเสมอ
ขั้นตอนที่ 3: ให้ผู้ใช้คนอื่นเปิดใช้
ปลั๊กอิน Two Factor ให้ผู้ใช้แต่ละคนเปิดใช้เองจากหน้า Profile ผู้ดูแลสามารถเข้าไปที่ Users > All Users เลือกผู้ใช้ แล้วดูส่วน Two-Factor Options ได้ แต่การตั้ง Authenticator App ต้องให้เจ้าของบัญชีสแกน QR Code ด้วยโทรศัพท์ของตัวเอง ให้แจ้งผู้ใช้ทุกคนที่เป็น Administrator, Editor และ Shop Manager ให้เปิดใช้ทำตามขั้นตอนที่ 2
ปลั๊กอิน Two Factor ไม่มีหน้าตั้งค่าสำหรับบังคับใช้ 2FA ตามบทบาทผู้ใช้ หากต้องการบังคับ ให้พิจารณาปลั๊กอินที่มีความสามารถนี้ เช่น Wordfence Login Security ซึ่งกำหนดได้ว่าบทบาทใดต้องใช้ 2FA (ตัวเลือกอยู่ในหน้า Login Security > Settings และอาจต่างกันตามเวอร์ชัน) ไม่ควรติดตั้งปลั๊กอิน 2FA สองตัวพร้อมกัน เพราะหน้า Login อาจทำงานซ้อนกันจนเข้าไม่ได้
ขั้นตอนที่ 4: ตรวจช่องทางเข้าระบบอื่นที่ไม่ผ่าน 2FA
2FA ป้องกันหน้า wp-login.php แต่ WordPress ยังมีช่องทางอื่นที่ใช้ชื่อผู้ใช้และรหัสผ่าน
- Application Passwords สำหรับ REST API ดูได้ที่ Users > Profile ส่วน Application Passwords ลบรายการที่ไม่รู้จักหรือไม่ใช้แล้ว
- XML-RPC หากไม่ใช้ ควรปิดที่เว็บเซิร์ฟเวอร์ ตามที่อธิบายใน เช็กลิสต์ความปลอดภัยเว็บไซต์ WordPress
- จำกัดการเข้าถึงหน้า Login เพิ่มเติมด้วย ป้องกันหน้า Admin ด้วย Basic Auth และ Rate Limit บน Nginx
ตรวจสอบผลลัพธ์
- เปิดหน้าต่าง Incognito แล้วเข้า
https://example.com/wp-login.php - กรอกชื่อผู้ใช้และรหัสผ่าน ระบบต้องแสดงหน้าขอรหัสยืนยันเพิ่ม
- กรอกรหัสจากแอป ต้องเข้าหลังบ้านได้
- ทดสอบซ้ำโดยใช้รหัสสำรองหนึ่งรหัส เพื่อยืนยันว่ารหัสสำรองใช้ได้จริง (รหัสที่ใช้แล้วจะหมดอายุ)
ตรวจรายชื่อผู้ใช้ที่เปิด 2FA แล้วด้วย WP-CLI
wp user list --role=administrator --field=user_login | while read u; do
echo "$u: $(wp user meta get "$u" _two_factor_enabled_providers --format=json 2>/dev/null)"
done
ผู้ใช้ที่ยังไม่เปิด 2FA จะไม่มีค่าแสดงหลังชื่อ
ปัญหาที่พบบ่อย
รหัสจากแอปไม่ถูกต้องทุกครั้ง
เวลาของเซิร์ฟเวอร์หรือโทรศัพท์คลาดเคลื่อน ตรวจเวลาเซิร์ฟเวอร์ด้วย timedatectl ว่า System clock synchronized: yes และตั้งโทรศัพท์ให้ใช้เวลาอัตโนมัติ
ทำโทรศัพท์หายและไม่มีรหัสสำรอง
ผู้ดูแลที่มีสิทธิ์ SSH ลบการตั้งค่า 2FA ของบัญชีนั้นได้ด้วย WP-CLI (เปลี่ยน somchai เป็นชื่อผู้ใช้)
wp user meta delete somchai _two_factor_enabled_providers
wp user meta delete somchai _two_factor_provider
จากนั้นให้ผู้ใช้เข้าระบบด้วยรหัสผ่าน แล้วตั้ง 2FA ใหม่ทันที หากเป็นกรณีฉุกเฉินและไม่แน่ใจชื่อ Meta ให้ปิดปลั๊กอินทั้งตัวชั่วคราวด้วย wp plugin deactivate two-factor หรือเปลี่ยนชื่อโฟลเดอร์ปลั๊กอิน ตาม ปิดปลั๊กอิน WordPress เมื่อเข้าหลังบ้านไม่ได้ แล้วเปิดกลับเมื่อแก้เสร็จ
ไม่ได้รับรหัสทางอีเมล
เว็บส่งอีเมลไม่ออกหรืออีเมลเข้า Spam ให้ตั้งค่า SMTP และตรวจ SPF, DKIM ของโดเมน ดู ตั้งค่า SPF, DKIM และ DMARC เพื่อลดโอกาสอีเมลเข้า Spam ระหว่างนี้ใช้รหัสสำรองเข้าระบบแล้วเปลี่ยนไปใช้ Authenticator App
ปลั๊กอิน Cache ทำให้หน้ายืนยันรหัสทำงานผิดปกติ
ตรวจว่าปลั๊กอิน Cache หรือ CDN ไม่ได้ Cache หน้า wp-login.php และ /wp-admin/ ปลั๊กอิน Cache ส่วนใหญ่ยกเว้นให้อยู่แล้ว แต่การตั้ง Cache ที่ CDN แบบ Cache Everything อาจรวมหน้าเหล่านี้ด้วย
หากทำตามขั้นตอนแล้วยังติดปัญหา สามารถติดต่อทีมสนับสนุนของ 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
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


